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-ESP32 approach

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.

Core capabilities

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

FPV Car and control dashboard

View of the assembled car alongside the HomeGenie control interface.


Open media

Getting started

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

Firmware upload and initial setup

  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 (Pins S1-S4 for Drive, S5-S8 for Arm), or 4 servos (S1-S4 for Drive) if building the car only. Assign the correct GPIO pins according to your custom PCB wiring.
  2. Flash ESP32-S3-CAM: Follow the instructions from the Smart Camera + AI page to set up the camera firmware for the RC Car. (Note: The firmware upload form below is only for the Motion Controller).

Printing the car parts

Download the 3MF project file containing all components from the Project files section below. This single file includes optimized settings and layout for:

Printing all parts typically takes around 5 hours with standard settings (e.g., 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.

3D printed components

All necessary FPV RC Car parts printed and ready for assembly.


Open media

Assembling the FPV RC Car

Gathering hardware

Follow the image sequences below for assembly.

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.

Assembly step 1: Drive servos

Mount the four MG90S 360° servos into the chassis base.


Open media

Assembly step 2: Servos detail

Close-up of the drive servos installed in the main chassis.


Open media

Assembly step 3: Secure the servos

Attach the plastic brackets to each servo using two M2 screws.


Open media

Assembly step 4: Fasten brackets

Tighten the screws securing the servo brackets.


Open media

Assembly step 5: Wheels mounted

Attach the wheels to the drive servos. Base mobile platform assembled.


Open media

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. 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 ESP32-S3 Zero PCB shield. At this point, you can briefly connect the battery power cable to test if the motors are working as expected via the HomeGenie UI. Be extremely careful when connecting the battery to respect the correct polarity (+/-); reversing polarity can severely damage the board. Position the second battery pack (for the camera) on top of the first one.

Assembly step 6: Battery install

Place the first battery pack (for motion controller) into the central chassis compartment.


Open media

Assembly step 7: Electronics container prep

Chassis with the first battery installed, ready to mount the rear container for electronics.


Open media

Assembly step 8: Rear container mounted

Attach the rear container, securing it with two screws.


Open media

Assembly step 9: Motion controller PCB

Place the motion controller electronics (ESP32-S3 Zero on PCB) in the rear container. Route servo wires.


Open media

Quick motor test using HomeGenie UI

Briefly connect power and test drive motors.


Open media

Assembly step 10: Add second battery pack

Position the second battery (for ESP32-CAM) on top of the first one.


Open media

Mounting the pre-assembled robotic arm (Optional)

If you have already built the Robotic Arm from the previous example and wish to mount it on the FPV Car:

  1. Prepare the arm: Carefully detach the main arm assembly (gripper + main body segments) from its original 3D printed base stand. Also, remove the rotation servo from that stand, keeping its servo horn.
  2. Position servo: Position the rotation servo into the designated slot on the underside of the FPV car's top cover part.
  3. Attach horn: Secure the double-sided servo horn onto the rotation servo motor shaft using its small screw. Ensure it is aligned correctly for the desired rotation (typically centered horizontally when the servo is commanded to the 50% position - you may need to briefly power the controller and use HomeGenie UI to verify).
  4. Route cables: Carefully feed the three servo cables from the main arm assembly through the cable pass-through hole in the top cover. (Note: The shortest cable might require an extension to comfortably reach the PCB connector).
  5. Attach main arm: Align the main arm assembly with the mounting points on the rotating part of the top cover. Secure it using the required M2 screws.

Adapt arm step 1: Insert rotation servo

Insert the rotation servo (removed from the original arm stand) into the underside of the FPV car top cover.


Open media

Adapt arm step 2: Center the servo

Power the ESP32 briefly and use HomeGenie UI to ensure the rotation servo is positioned at 50% (center).


Open media

HomeGenie UI motor widget

The Arm base motor positioned at 50%.


Open media

Adapt arm step 3: Attach horn

Secure the double-sided servo horn onto the centered rotation servo shaft, ensuring it is horizontally aligned.


Open media

Adapt arm step 4: Route upper arm cables

Route the three servo cables from the pre-assembled main arm body through the hole in the chassis top cover.


Open media

Adapt arm step 5: Attach main arm

Position the main arm body onto the top cover mounting points and secure with its screws.


Open media

Antenna mounting and top cover attachment

Before attaching the top cover to the car chassis, insert the base of the external antenna's U.FL/IPEX pigtail cable connector through the central hole from the inside and secure it with its nut on the outside. Screw the antenna mast onto this connector base. Finally, carefully position the top cover (with arm attached, if applicable) onto the chassis, ensuring wires are tucked inside. Fasten the top cover using four M2 8mm screws.

Assembly step 11: Mount antenna connector

Insert antenna connector base through the top cover hole and secure with its nut.


Open media

Assembly step 12: Prepare top cover screws

Position the M2 nuts and prepare the four M2 screws for attaching the top cover.


Open media

Assembly step 13: Attach top cover

Position the top cover on the chassis and secure it firmly with the four screws.


Open media

Top cover mounted

Secure the antenna mast to its mount.


Open media

FPV camera assembly

Connect the antenna pigtail cable to the U.FL connector on the ESP32-S3-CAM module. Insert the camera module into its dedicated front cover housing. Connect the second battery pack's power cable to the appropriate power input pins on the ESP32-S3-CAM board (typically marked 5V/VCC and GND - verify your specific board pinout). Again, be extremely careful with polarity. Slide the front cover housing onto the front of the main chassis.

FPV camera and front cover

The ESP32-S3-CAM module and its 3D printed front cover/housing.


Open media

Assembly step 14: Connect camera antenna

Connect the antenna pigtail cable to the U.FL connector on the ESP32-S3-CAM module.


Open media

Assembly step 15: Insert camera module

Insert the ESP32-S3-CAM module into its front cover housing.


Open media

Assembly step 16: Connect camera power & test

Carefully connect the second battery cable to the GND and VCC pins on the ESP32-CAM. Briefly test.


Open media

Assembly step 17: Attach front cover

Slide the front cover housing onto the main chassis.


Open media

Finalizing and recharging

The assembly is now complete! Ensure all wires are neatly tucked away. The front camera cover and the rear electronics container lid can be slid off without removing screws, providing easy access to the batteries for recharging. Use the USB recharging cables provided with the battery packs to recharge them when needed.

Batteries recharging access

Front and rear covers removed for easy battery recharging access.


Open media

HomeGenie Motors Controller PCB

To simplify wiring and ensure stable power delivery for demanding motor applications like the FPV RC Car, we've designed the HomeGenie Motors 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.

Motors Controller Shield (Front View)

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


Open media

Motors Controller Shield (Front View)

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


Open media

Motors 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

Motors Controller Shield (Rear View)

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


Open media

Project file download

3D Printed FPV RC Car

PCB Gerber download REV. 2

FPV RC Car 3MF download REV. 4

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

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.

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