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 Files section below. The archive contains all the 3D printable parts needed to build the FPV RC Car.

Included Parts:

Recommended Print Settings

The total print time is approximately 5 hours with standard settings (e.g., 0.4mm nozzle, 0.20mm layer height).

However, for the Mecanum Wheels Adapters, it is highly recommended to use a finer 0.12mm layer height. This will ensure the best results and a precise fit for the wheels.

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.

Optional: 3D Printed wheels

If you prefer to print your own wheels instead of purchasing Mecanum wheels, in the 3d printing files archive you will also find files for:

Material recommendations for printed wheels:

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 and secure them with the included screw.

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.

Base Components Mounted

The car's base now holds the four 360° servos, the rear PCB enclosure, and the dual 6V battery packs, all secured and ready for the next step.


Open media

Base Servo Mounted

The base servo for the robotic arm is now securely installed underneath the Top Chassis, ready for the arm to be attached.


Open media

Fastening the Servo

The two screws included with the servo are used to lock the motor firmly in place.


Open media

Chassis Secured

Four M2x8mm screws, inserted from the bottom, now lock the Main and Top Chassis together. Optional nuts can be used for added strength.


Open media

Testing the Base Assembly

The battery is connected to the PCB via the keyed slot to perform a brief functionality test.


Open media

Testing the Drive System

Using the HomeGenie Panel app to remotely control the motors and confirm that everything is working correctly.


Open media

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.

Camera Installation Begins

The installation process starts by carefully routing the camera sensor's FFC cable through the Top Cover.


Open media

FFC Cable Connection

The camera's FFC cable is carefully inserted into the connector on the ESP32-CAM module before mounting.


Open media

Installing the Camera Bracket

The ESP32-CAM module is now secured in its final position on the Top Cover with the mounting bracket and four M2x4mm screws.


Open media

Antenna Cable Connection

The antenna cable is now connected, with one end attached to the ESP32-CAM and the other end secured in the rear hole of the top cover.


Open media

Final Touches

The build is finalized by attaching the external antenna and placing the Top Cover on the chassis, enclosing all the internal electronics.


Open media

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.

Arm Base Assembly

The main bracket is now locked onto the servo, with the horn holder plate providing extra stability and reinforcement.


Open media

Mounting the Left Bracket

The left bracket for the arm body is now attached to the base on the chassis with two screws.


Open media

Routing the Arm Cables

After securing the robotic arm body to its base, the servo cables are passed through the chassis to be connected to the controller board.


Open media

Making Way for the Camera Cable

The left wrist bracket is briefly detached, allowing the FFC ribbon cable to be safely threaded through the arm's structure.


Open media

Camera and Bracket

The camera sensor is now placed inside its mounting bracket, ready for the final installation.


Open media

Attaching the Camera

The camera assembly is now attached to the arm's gripper using two mounting screws.


Open media

Connecting Camera Power

The battery connector is now securely plugged into the ESP32-CAM module located under the top cover.


Open media

Assembly Complete!

Power on! The FPV RC Car is now fully assembled and ready to be put to the test. Let the fun begin!


Open media

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 R02

FPV RC Car STL download V2 R02

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