April 2026
I designed this car around a 55 cm chassis plate. It has four-wheel suspension with coil-over shocks, front and rear axles with differentials, and a central driveshaft between them. The electronics sit in 3D-printed trays on top.
An ESP32 reads a PS5 controller over Bluetooth. It drives the brushed motor through an L298N and moves the steering servo. Power comes from a hard-case LiPo, and a DFRobot buck converter makes 5 V for the ESP32 and the servo.
Before the ESP32, I tried controlling the car from a Raspberry Pi 5 with the same controller.
Parts
- ESP32 dev board
- PS5 DualSense controller
- L298N motor driver
- DFRobot power module (5 V buck converter)
- Brushed DC motor with a finned heatsink
- Steering servo
- LiPo battery (hard case, T-plug)
- Front and rear axles with differentials, central driveshaft
- 4 coil-over shocks and off-road wheels
- Chassis plate and 3D-printed mounts
Code
The first thing I wrote was a steering test. Ps5controller.py reads the PS5 stick on my computer and sends an angle over USB to a board that moves the servo.
The car's own firmware got lost, so rc_car_esp32.ino is a rewrite of it. The left stick steers, R2 goes forward and L2 reverses, and the car stops if the controller disconnects. I haven't run the rewrite on the car yet.