

The Big One
ESP32-S3-WROOM-1 RC car controller PCB with Wi-Fi app control (KiCad, ESP-IDF, MIT App Inventor)
- Size
- 97.8 × 66.2 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 86
- Nets
- 83
- Pads
- 360
- Tracks, vias
- 524, 53
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 18 Oct 2026
- Updated
- 19 Oct 2026
Overview
The Big One is an open-source printed circuit board by iustinG-afk, from the iustinG-afk/The48ErrCar repository on GitHub, published under the MIT licence. It is a 2-layer board of 97.8 × 66.2 mm with 86 parts on 83 nets, routed with 524 tracks and 53 vias.
It is built around the ESP32-S3-WROOM-1-N8, TPS54331D and DRV8833PWP, with the AMS1117-1.5 among its other parts. Its parts include 24 resistors, 18 capacitors, 6 transistors, 5 ICs and 4 diodes. It belongs with the radio and wireless boards and the ESP32 boards of this library.
Main components
4ESP32-S3-WROOM-1-N8
SMD,25.5x18mm-40℃~+85℃ -98.2dBm 2.4GHz 20.5dBm 355mA 3V~3.6V 95mA Bluetooth5.0 ESP32-S3 Chip On-board PCB Antenna UART、SPI、I2C、I2S、USB SMD,25.5x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesTPS54331D
SOIC-8-40℃~+150℃@(TJ) 1 110uA 3.5V~28V 3A 570kHz 800mV~25V Adjustable Buck Buck Built-in No SOIC-8 DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersDRV8833PWP
ETSSOP-16-EP-40℃~+85℃ 1.5A 2 2.7V~10.8V 2.7V~10.8V 360mΩ Bipolar Driver Overcurrent Protection、Short-Circuit Protection、Over temperature protection、Under-voltage lockout、Dead-time / shoot-through protection Yes ETSSOP-16-EP Stepper Motor Driver ROHSTexas InstrumentsStepper Motor DriverAMS1117-1.5
SOT-223-40℃~+125℃ 0.003%Vout 1 1.3V@(1A) 1.5V 18V 1A 5mA 60dB@(120Hz) Fixed Over Current Protection Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSUMWVoltage Regulators - Linear, Low Drop Out (LDO) Regulators
README
README.mdThe48ErrCar: ESP32-S3 RC Car Controller Board
A custom-designed PCB that turns an RC car chassis into a Wi-Fi-controlled, sensor-equipped vehicle, driven from a mobile app built in MIT App Inventor.
I designed the board from scratch in KiCad, wrote the firmware in C (ESP-IDF) with the help of AI, hand-soldered every component, and built the control app. This was my first PCB project, so this repository also documents what went wrong and what I learned from it.

Highlights
- Custom 2-layer PCB designed in KiCad, with an ESP32-S3-WROOM-1 at its core
- Two buck converters from a 7.4 V battery pack (2x 18650 in series): one to 3.3 V for logic, one to 5 V for peripherals
- Dual-motor-pair drive through a DRV8833 H-bridge, plus servo steering
- Wi-Fi control: the ESP32 hosts its own access point and a small web server, and the phone app talks to it over HTTP
- Native USB-C programming through the ESP32-S3's built-in USB controller, so no USB-to-serial chip is needed
- Hand-assembled with a soldering iron and heat gun (SMD, 0805/1206 passives, SOIC and HTSSOP packages)
Features
| Feature | Status | Notes |
|---|---|---|
| Forward / reverse drive | Working | PWM speed control through DRV8833 |
| Steering | Working | Servo driven by PWM |
| Front headlights | Working | N-MOS low-side switching |
| Brake / rear lights | Working | Automatically on when reversing or braking, with a manual override |
| Left / right turn signals | Working | Blinking at 500 ms |
| Horn / buzzer | Working | Hold-to-sound from the app |
| Water pump | Working | Low-side N-MOS switch with flyback diode |
| Temperature & humidity (DHT11) | Working | Read on demand from the app |
| Ultrasonic rear parking sensor | Working | Cuts reverse motor power at 5 cm or closer and beeps |
| Clap-controlled turn signals | Working, limited | Microphone detects volume spikes: 2 claps = left, 3 claps = right, 4 claps = hazard |
| Camera (OV3660, 24-pin FPC) | Not working | See Known issues |
System overview
2x 18650 (≅7.4 V)
|
[3A PTC polyfuse]
|
+----------------+----------------+
| | |
Buck -> 3.3 V Buck -> 5 V Motor supply
(TPS54331) (TPS54331) (7.4 V)
| | |
ESP32-S3, DHT11, Servo, pump, DRV8833
mic, camera LDO buzzer, US sensor -> L / R motor pairs
|
ESP32-S3 (Wi-Fi AP + HTTP server)
^
| HTTP over Wi-Fi
|
MIT App Inventor app (phone)
Hardware
Power
- Battery: 7.4 V (2x Li-Ion 18650 in series), protected by a 3 A resettable PTC polyfuse.
- 3.3 V rail: TPS54331 buck converter, 10 µH inductor, 22 µF output capacitor. Feedback divider 31.6 kΩ / 10 kΩ gives about 3.33 V. Soft-start, bootstrap and compensation networks are included.
- 5 V rail: a second TPS54331 stage (52.3 kΩ / 10 kΩ divider) for the servo, pump, buzzer and ultrasonic sensor.
- Why buck converters instead of linear regulators: they step the voltage down by fast switching rather than burning the difference as heat, which matters when running from a battery.
- Test points on +7.4 V, +5 V, +3.3 V and GND for easy debugging.
Microcontroller
- ESP32-S3-WROOM-1 (integrated antenna and matching network)
- Reset/boot circuitry: RC delay on
EN, pull-ups, and two buttons for reset and download mode - Local decoupling (22 µF + 100 nF) placed directly beside the module
- USB-C connector wired straight to the S3's native USB D+/D- (CC pull-downs of 5.1 kΩ)
Motor driver and steering
- DRV8833 dual H-bridge drives the left-side and right-side motor pairs (connectors J5 / J4)
- Bulk capacitor on the motor supply to absorb current spikes when starting or stalling
- Current-sense pins tied to ground (full current)
- Servo signal on a 3-pin header
Switched loads
Water pump, buzzer and four lights (front, rear, left and right signals) each use a logic-level N-MOSFET low-side switch with:
- a 10 kΩ pull-down on every gate, so nothing switches on randomly while the ESP32 is booting
- a Schottky flyback diode on inductive loads (pump, buzzer)
- 220 Ω current-limiting resistors on the LEDs
Connectors
Sensors, motors, servo, microphone and lights connect through pin headers and jumper wires rather than being soldered to the board, so they can be mounted wherever they fit on the chassis.
| PCB layout | 3D render |
|---|---|
![]() | ![]() |
Firmware
Written in C with ESP-IDF and FreeRTOS (main.c).
- Starts a Wi-Fi access point and an HTTP server on the ESP32 (default address
192.168.4.1) - Control endpoint
/cmd?c=...handles lights, signals, horn, pump, microphone mode and drive commands;/dhtreturns temperature and humidity - Drive and steering use LEDC PWM channels
- Dedicated FreeRTOS tasks run in parallel for:
- turn signals / rear lights
- reverse safety, using an ultrasonic distance check that stops the motors at 5 cm or closer
- clap detection, sampling the microphone through the ADC and counting volume spikes
- DHT11 is read with a custom bit-banged driver
- MJPEG camera stream server on
/stream(disabled in practice because the camera hardware does not work, see below)
Security note: the access point name and password are defined in
main.c. Change them before using the car anywhere other than your desk.
Mobile app
Built in MIT App Inventor (block-based). The app:
- shows an intro screen and checks the connection by pinging the car (
/cmd?c=ping) - enables the Start button only once the car answers, and shows "Connect to Wi-Fi!" if it times out
- provides the control interface for driving, lights, signals, horn, pump, temperature and microphone mode
- includes a credits screen with links to my Instagram, LinkedIn and GitHub
| Start | Credits |
|---|---|
![]() | ![]() |
The App Inventor block screenshots are in MIT/.
Design revisions
V1 (fabricated and assembled)
- Built and soldered by hand. Most of the board works, but it has the issues described below.
V2 (current layout in this repository)
- Corrected the MOSFET footprints (the V1 pinout was wrong, see below)
- Added a 1.5 V LDO (AMS1117-1.5) with 2x 10 µF capacitors for the camera supply
- Added 4.7 kΩ I²C pull-ups on the camera SDA/SCL lines
- Reworked routing around the camera connector
V3 (through-hole version)
- A through-hole variant of the board for easier hand assembly, built after the SMD experience
| Schematic | PCB layout | 3D render |
|---|---|---|
![]() | ![]() | ![]() |
Known issues
This was my first PCB, and I would rather document the mistakes honestly than hide them:
- MOSFET pinout reversed. I used an N-MOS symbol and footprint with a gate-source-drain order that doesn't match the actual SOT-23 parts. On the fabricated V1 board, the six transistors had to be fitted upside down on the back of the board to work. Fixed in V2.
- Camera does not work. I designed for an OV2640, but the module I received from AliExpress turned out to be an OV3660. The pinout is very similar, so the firmware targets the OV3660. I didn't realise the 24-pin FPC connector is numbered 1 to 24 and wired my pin mapping in reverse. I tried a reversing workaround, but the camera never came up. The cause may also be a damaged connector or poor pad contact after rework. I also initially forgot the 1.5 V supply that the camera needs, which V2 adds.
- Microphone is a spike detector, not an audio input. It only measures volume peaks, which is enough for clap detection but not for recording sound.
- Layout is not optimal. The routing was rushed. The V2 layout cleans it up, but it has not been fabricated.
What I learned
- Always check pin numbering and orientation against the datasheet and footprint, and verify symbol pin order, not just names
- Add pull-down resistors on MOSFET gates and understand why
- How buck converters work: feedback dividers, soft-start, bootstrap, compensation, inductor and diode placement
- The value of decoupling capacitors and keeping switching components away from the antenna
- Hand-soldering SMD parts with an iron and heat gun is hard, and rewarding
- Firmware design on ESP-IDF with FreeRTOS tasks
Bill of materials (summary)
| Qty | Part |
|---|---|
| 1 | ESP32-S3-WROOM-1 |
| 2 | TPS54331D buck converter (SOIC-8) |
| 1 | DRV8833PWP motor driver (HTSSOP-16) |
| 1 | AMS1117-1.5 LDO (V2) |
| 6 | N-channel MOSFET (SOT-23) |
| 4 | Schottky diode (SMA) |
| 2 | 10 µH inductor |
| 1 | 3 A PTC resettable fuse |
| 1 | USB-C receptacle |
| 1 | 24-pin 0.5 mm FPC connector |
| 22 | 0805 resistors |
| 9 / 7 | 0805 / 1206 capacitors |
| 2 | Tactile push buttons |
| 1 | Buzzer |
| - | Pin headers |
Off-board: DC motors, servo, DHT11, HC-SR04-style ultrasonic sensor, microphone module, water pump, LEDs, 2x 18650 cells.
Repository structure
.
|-- docs/ images, gifs, documentation
|-- Through-hole/ KiCad project, schematic, layout V2
|-- MIT/ MIT App Inventor project pictures, videos, logo
|-- The48ErrCar.apk Apk to download the app
|-- firmware.c/ ESP-32 Code
|-- hardware.c/ KiCad project, schematic, layoutAssembly
The board was assembled entirely by hand with a soldering iron and a heat gun.

Status
The board, firmware and app work together. The car was not assembled onto a chassis: my focus was the PCB design, schematic and firmware, so mounting is left as a DIY step.
Author
Parts
86| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 10k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R4, R7, R8, R11, R12, R13, R15, R16, R18, R20, R22 |
| 9 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | Back, Front, J1, J3, J4, J5, J7, Left, Right |
| 6 | Q_NMOS_GDS | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 4 | 220 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R14, R17, R19, R21 |
| 4 | D_Schottky | Diode_SMD:D_SMA | D1, D2, D3, D4 |
| 4 | TestPoint | TestPoint:TestPoint_Pad_D2.0mm | TP1, TP2, TP3, TP4 |
| 3 | 100n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C4, C13 |
| 3 | 10u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C3, C8, C11 |
| 3 | 22u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1, C6, C15 |
| 3 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Temp1, J6, J10 |
| 2 | 10u | Inductor_SMD:L_Taiyo-Yuden_NR-60xx_HandSoldering | L1, L2 |
| 2 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C17, C18 |
| 2 | 2.2n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C7, C14 |
| 2 | 22k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R6, R9 |
| 2 | 4.7k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R23, R24 |
| 2 | 47n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C5, C12 |
| 2 | 5.1k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2, R3 |
| 2 | SW_Push | Button_Switch_THT:SW_PUSH_6mm_H5mm | SW1, SW2 |
| 2 | TPS54331D | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2, U4 |
| 1 | 10n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C10 |
| 1 | 1u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C16 |
| 1 | 2.2u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C9 |
| 1 | 31.6k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R5 |
| 1 | 3A | Fuse:Fuse_1812_4532Metric | F1 |
| 1 | 52.3k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R10 |
| 1 | AMS1117-1.5 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U5 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J9 |
| 1 | Conn_01x24 | Connector_FFC-FPC:Hirose_FH12-24S-0.5SH_1x24-1MP_P0.50mm_Horizontal | J8 |
| 1 | DRV8833PWP | Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm_ThermalVias | U3 |
| 1 | ESP32-S3-WROOM-1 | RF_Module:ESP32-S3-WROOM-1 | U1 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J2 |
The 82 most common of 86 parts.
Similar boards
- 4 layers80 × 52.7 mm

- 2 layers56.1 × 49.1 mm

- 2 layers

Esp32s3 pcb
prasannan-robots/Energy-Management-using-Surveillance-Camera
This is a project which uses camera to detect the humans and control indoor appliances
59 parts - 2 layers0.7 × 0.5 mm

- 4 layers102 × 34 mm

Netscore
arcticlula/Netscore
Device that keeps track of a volleyball's game score (points and sets). Ideally it should be mounted on the net, since it has a display on the front and back and buttons on the sides.
115 partsMIT - 4 layers115 × 82.3 mm

MainPCB
HelloAlex4/Maturitaetsarbeit-Design-and-Development-of-a-Portable-Stereoscopic-Wigglegram-Camera
Documentation of the merged wigglegram camera
288 parts12 - 4 layers33 × 71.5 mm

- 2 layers98.6 × 39 mm

GWR pcb
juicykinklabs/TongueTyper
A talking-gag that acts as a game controller, posture trainer, speaker, and more.
68 parts1GPL-3.0
Questions
How big is the The Big One PCB?
It measures 97.8 × 66.2 mm and has 2 copper layers, 1.6 mm thick.
What parts does the The Big One use?
86 parts, built around the ESP32-S3-WROOM-1-N8, TPS54331D, DRV8833PWP and AMS1117-1.5. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the The Big One KiCad files?
From the iustinG-afk/The48ErrCar repository on GitHub, at the commit this page was made from: the board is hardware/The Big One.kicad_pcb and its schematic hardware/The Big One.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the The Big One design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).






