FPV RC Car

Having explored precise motion control with the Robotic Arm and intelligent vision with the Smart Camera, let's take the next logical step: combining these capabilities onto a mobile platform. This project guides you through building a 4WD FPV (First Person View) RC Car, a versatile robot that brings together locomotion, optional manipulation, and real-time video streaming within the HomeGenie ecosystem.

Integrating motion and vision

This FPV RC Car serves as an excellent practical example of system integration, demonstrating how multiple HomeGenie Mini devices, each running specialized firmware, can collaborate under the orchestration of HomeGenie Server to create a complex, interactive machine. It's a platform ripe for experimentation with telepresence, autonomous navigation (leveraging AI vision), and remote interaction tasks.

A dual-controller architecture

To effectively manage the distinct tasks of complex motion control and high-quality video streaming, this project utilizes a dual-controller architecture:

  1. Motion controller (ESP32-S3 Zero with smart-motor firmware): Dedicated to handling the real-time demands of controlling up to 8 servos simultaneously (4 for 4WD skid-steering drive and 4 for the optional robotic arm). This ensures smooth, responsive movement without being burdened by video processing. A custom PCB with stabilizing capacitors is recommended for reliable power delivery to the servos.
  2. FPV camera (ESP32-S3-CAM with smart-cam firmware): Focused solely on capturing, encoding, and streaming the video feed. Using a separate ESP32-S3-CAM (preferred for its performance) guarantees the best possible video quality and frame rate for FPV piloting and allows for seamless integration with HomeGenie Server's AI vision processing pipelines without impacting motion control.

Both ESP32 devices communicate independently via WiFi/MQTT with HomeGenie Server, which synchronizes control inputs, displays the video feed, runs automation logic, and applies AI algorithms locally.

Project Highlights

Building upon the previous projects, the FPV RC Car offers:

Platform Features

All projects based on the HomeGenie Mini firmware, including this one, come with these powerful features built-in:

Getting started

This guide walks through the construction of the 3D-printed FPV RC Car.

Hardware Requirements

The components for this project are widely available and affordable. The list is divided into core components and an optional robotic arm module.

Core Components

Fasteners & Wiring

Optional: Robotic Arm Module

To mount the Robotic Arm on the car, you will need the pre-assembled arm from the linked project. You will reuse the following parts from its original base stand (which is not used in this build):

Printing the car parts

Download the 3MF or STL archive file from the Project files section below. The file includes all parts required to build the FPV RC Car:

Printing all parts typically takes around 8 hours with standard settings (0.4mm nozzle, 0.20mm layer height).

Material recommendations

Ensure your slicer software correctly interprets the 3MF file and its settings. Verify printer calibration for dimensional accuracy, especially for parts that need to fit together precisely.

Firmware upload and initial setup

Before assembling install HomeGenie Mini firmware on both ESP32 boards. By doing so, you can easily verify if the assembly works as expected while assembling the RC Car base, the FPV Camera and the Robotic Arm.

  1. Flash ESP32-S3 Zero board: Use the firmware upload form below. Select the smart-motor profile compatible with your ESP32 board. Configure it for 8 servo motors if using the arm (Connectors S1-S4 for Drive, S5-S8 for Arm), or 4 servos (S1-S4 for Drive) if building the car only.
  2. Flash ESP32-S3-CAM: Follow the instructions from the Smart Camera + AI page to set up the camera firmware.

Assembling the FPV RC Car

Follow the video and images below for assembly.

FPV RC Car with Robotic Arm

Assembly instructions.


Open media

Chassis and drive assembly

Mount the four MG90S 360° drive servos into the main chassis base. Attach the small plastic brackets to each servo using two M2 screws, then fasten them. Attach the wheels firmly to the servo shafts. You might want to secure them with the small screw included with the servo kit.

Battery and electronics housing

This RC Car requires two battery packs: one for the ESP32-S3 Zero (Motion Controller) and its connected servos, and another dedicated to the ESP32-S3-CAM. Install the first battery pack (for motion controller) in its compartment, ensuring its cable points towards the rear of the chassis. Position the second battery pack (for the camera) on top of the first one.
Place the electronics container on the back of the chassis and secure it with two screws. Neatly route all servo wires into the container and connect them to the custom PCB shield.
Now, install the robotic arm's base servo on the underside of the Top Chassis with its two included screws. Then, join the Top Chassis to the Main Chassis, fastening them together with four screws from underneath.

At this point, you can briefly connect the battery power cable to test if the motors are working as expected using HomeGenie Panel or HomeGenie Server UI. Be extremely careful when connecting the battery to respect the correct polarity (+/-); reversing polarity can severely damage the board.

Top cover, FPV camera and antenna

Before attaching the top cover, the ESP32-CAM module must be installed.

First, carefully thread the camera sensor's FFC cable through the designated hole and connect it to the ESP32-CAM. Then, place the module into its compartment inside the top cover and secure it with its bracket and four screws. The bracket is designed to leave only the two battery pins accessible via a keyed slot, which prevents accidental reverse polarity.

Next, connect the antenna pigtail cable (U.FL/IPEX) to the ESP32-CAM. Mount the other end's connector in the rear hole of the top cover, securing it with its nut.

Finally, screw the external antenna onto the connector and place the completed top cover onto the chassis.

Mounting the Robotic Arm (optional)

If you are installing the Robotic Arm, ensure its base servo is already mounted under the Top Chassis.

First, assemble the arm's rotating base. To do this, press a servo horn into the main bracket, mount this assembly onto the servo shaft, and lock it with the central screw. Then, reinforce the joint by placing the horn holder plate on top and securing it with four M2x4mm screws.

Next, mount the arm itself in two parts by securing first the left bracket and then the main arm body to the rotating base with their respective screws. Finally, route the arm's servo cables through the chassis and connect them to the PCB as shown in the diagram.

The final assembly step is to install the camera sensor. To do this, you'll need to route its cable through the arm's wrist. Temporarily unscrew the left wrist bracket to create a gap. Carefully feed the FFC cable through the opening, then re-secure the bracket, making sure the cable is not pinched. Finally, mount the camera sensor (inside its bracket) to the underside of the gripper using two screws.

Assembly complete. To power on the device, connect the battery plugs to the motor PCB and the ESP32-CAM. The FPV Car is now ready for operation.

HomeGenie Motor Controller PCB

To simplify wiring and ensure stable power delivery for demanding motor applications like the FPV RC Car, we've designed the HomeGenie Motor Controller Shield. This custom PCB is specifically tailored for ESP32-C3/S3 development boards (e.g., ESP32-S3 Zero) and offers a clean, robust solution for controlling multiple servo motors with flexible power management.

Key features of the shield include:

This shield is the ideal companion for the FPV RC Car and Robotic Arm projects, providing a reliable and versatile foundation for your mechatronic creations.

Motor Controller Shield (Front View)

STEP 1: Solder the 2-pin power input headers (JST or screw terminals)


Open media

Motor Controller Shield (Front View)

STEP 2: Solder the 3-pin male headers for the servo motor outputs (up to 8 servo channels)


Open media

Motor Controller Shield (Front View)

STEP 3: Solder capacitors (e.g., 2x 1000µF 16V aluminum polymer shown; up to 4 can be mounted)


Open media

Motor Controller Shield (Rear View)

STEP 4: Solder the female pin headers for mounting the ESP32 development board (2x 9-pin)


Open media

Project files download

(updated 12 July 2025)

FPV RC Car V2

PCB Gerber download V1 R02

FPV RC Car 3MF download V2 R01

FPV RC Car STL download V2 R01

FPV RC Car files by G-Labs licensed under CC BY-NC 4.0

Create this device now! 🪄

Flash the Motion Controller (ESP32-S3 Zero) with the smart-motor firmware:

Connect your ESP32/ESP8266 microcontroller to your computer via USB, select your firmware version, and click "Create device" to upload the HomeGenie Mini firmware.

1. Select device type

2. Select firmware flavor

VERSION  

3. Let the magic happen!

Installing firmware directly from this page works only in browsers with Web Serial API enabled.

(To flash the FPV Camera (ESP32-S3-CAM), please refer to the firmware upload instructions on the Smart Camera + AI page).

See the Device setup page for further information about configuring a HomeGenie Mini device after flashing.

Modules and API

In addition to the common Device API, this device implements the following modules and API.

MT1 module - Motion Control

This module coordinates the 4WD motors to move the FPV RC Car forward and backward. Because of the way the 4 servo motors are mounted, to achieve the correct motion the 2 wheels in the back (S1 and S2) will always move in the opposite direction of the two in the front (S3 and S4).

Domain / Address

Automation.Components/MT1

Properties

Commands

Example

Entering the following URL in a browser or other HTTP client will cause the FPV RC Car to move slowly forward.

HTTP

http://<device_address>/api/Automation.Components/MT1/Control.Level/60

Serial terminal

/api/Automation.Components/MT1/Control.Level/60

ST1 module - Steering Control

This module makes the FPV RC Car spin on the spot (tank steer). To achieve this, the wheels on the right side (S1, S3) move in the opposite direction of the wheels on the left side (S2, S4).

Domain / Address

Automation.Components/ST1

Properties

Commands

Example

Entering the following URL in a browser or other HTTP client will cause the FPV RC Car to start spinning to the left at a moderate speed.

HTTP

http://<device_address>/api/Automation.Components/MT1/Control.Level/20

Serial terminal

/api/Automation.Components/MT1/Control.Level/20

S<n> module

Represents and controls the servo motor with address S<n> where <n> can be from '1' to '8'.
In the FPV RC Car configuration, S1 to S4 are the 4WD motors. When the Robotic Arm is enabled, S5 to S8 control the 4 axes of the arm.

Domain / Address

Automation.Components/S<n>

Properties

Commands

menu_open Content index
forum Q & A discussion forum
HomeGenie
MINI 1.2 — Documentation