
Transmitter Schematics
devansh2004sharma-tech/nrf24-rc-car-controller
KiCad schematics and PCB layouts for a wireless RC car — ATtiny85 remote (TX) and ATmega328P motor-control receiver (RX), linked over NRF24L01+.

KiCad schematics and PCB layouts for a wireless RC car — ATtiny85 remote (TX) and ATmega328P motor-control receiver (RX), linked over NRF24L01+.
Receiver PCB is an open-source printed circuit board by devansh2004sharma-tech, from the devansh2004sharma-tech/nrf24-rc-car-controller repository on GitHub. It is a 2-layer board of 66.5 × 39 mm with 21 parts on 41 nets, routed with 287 tracks and 4 vias.
It is built around the ATMEGA328P-PU, DRV8833PW and AMS1117-3.3, with the TP4056-42-ESOP8 among its other parts. Its parts include 10 capacitors, 5 ICs, 3 connectors, 2 resistors and 1 crystal. It belongs with the robots and motor control boards and the AVR (ATmega, ATtiny) boards of this library.
A two-board wireless RC car electronics design, built as a solo project: a compact ATtiny85-based handheld remote transmitting over an NRF24L01+ 2.4GHz radio link, and an ATmega328P-based receiver board that decodes commands and drives two DC motors through a DRV8833 dual H-bridge. Designed end-to-end in KiCad — schematics, PCB layout, and manufacturing (gerber) files for both boards.
The goal of this project was to design the complete electronics for a simple, battery-operated RC toy car: a handheld remote that a user holds and presses buttons on, and a receiver board mounted inside the car that reads those commands wirelessly and moves the car accordingly.
The car supports four commands — forward, reverse, left, right — sent over a 2.4GHz wireless link and translated into motor driver signals on the receiving end.
Transmitter → Wireless communication → Receiver → Motor driver → MotorsAt the top level, the remote (TX) is a battery-powered handheld device with four buttons. Pressing a button causes the TX's microcontroller to send a corresponding command byte over SPI to its NRF24L01+ radio module, which transmits it over 2.4GHz.
The car's receiver (RX) board listens continuously with its own NRF24L01+ module. When a command arrives, its microcontroller decodes which button was pressed and sets the appropriate control lines on the DRV8833 motor driver, which in turn drives the two onboard DC motors — one motor handles forward/reverse, the other handles left/right steering.
Both boards use the same RF module and the same SPI pin mapping convention, which kept firmware and sourcing simpler — one driver, one part number, two boards.
Purpose: a small, battery-powered handheld remote with four buttons.
| Function | Component |
|---|---|
| Microcontroller | ATtiny85-20PU |
| Wireless | NRF24L01+ breakout module (SPI) |
| Input | 4x 6x6mm tactile switches |
| Power | 2x AAA batteries (3V), no regulator needed since both the ATtiny85 and the NRF24L01+ run happily at 3V |
| Decoupling | 100nF ceramic caps at the MCU and RF module's supply pins, plus a 10µF bulk cap at the RF module (its transmit bursts draw noticeably more current than idle) |
The pin-count constraint. The ATtiny85 has only 5 usable GPIOs (PB0–PB4). Between 4 buttons and a 5-signal SPI bus (MOSI, MISO, SCK, CSN, CE) to the NRF24L01+, that's 9 signals competing for 5 pins. Two things were done to make it fit:
This kept the whole design on a single small, cheap 8-pin MCU rather than moving to a larger chip just for pin count.
Purpose: the board that lives inside the car, decodes commands, and drives the motors.
| Function | Component |
|---|---|
| Microcontroller | ATmega328P-P (DIP-28) |
| Wireless | NRF24L01+ breakout module (SPI) |
| Motor driver | DRV8833 dual H-bridge (TSSOP-16) |
| Battery charging | TP4056 Li-ion charge/protection module |
| Voltage regulation | AMS1117-3.3 linear regulator |
| Battery | 1S Li-ion 18650 cell |
| Motors | 2x DC gear motor (one drive, one steering) |
Two separate power rails. The receiver needs more current and a different voltage than the transmitter, so the board runs two rails off the same battery:
Motor control signals. The ATmega328P drives the DRV8833's four logic inputs (AIN1, AIN2, BIN1, BIN2) directly from four GPIO pins, letting firmware set each motor's direction and (with PWM-capable pins) speed. AISEN and BISEN (the DRV8833's current-sense pins) are tied to GND, disabling active current limiting — an acceptable simplification for small hobby motors, though a production design would typically use these for over-current protection.
A firmware-availability tradeoff worth noting. Early in wiring, the motor control lines were placed on PD0/PD1 (the ATmega328P's hardware UART pins). Since those pins are also needed to reprogram or serial-debug the chip later, they were moved to PC1–PC4 instead, keeping UART free for firmware development and debugging.
| Component | Part / value | Approx. price (₹) |
|---|---|---|
| MCU | ATtiny85-20PU | 60–80 |
| RF transmitter | NRF24L01+ module | 90–120 |
| Tactile switches (x4) | 6x6mm THT tact switch | 12 |
| Battery + holder | 2x AAA (3V) | 40–60 |
| Decoupling capacitors | 100nF x2, 10µF x1 | 10 |
| Pull-up resistor | 10k (button-ladder ADC pin) | 4 |
| Ladder resistors | 2k2, 4k7, 1k | 8 |
| PCB fabrication | 2-layer, ~40x60mm, 5pcs | ~150 |
| Component | Part / value | Approx. price (₹) |
|---|---|---|
| MCU | ATmega328P-P (DIP-28) | 150–200 |
| RF receiver | NRF24L01+ module | 90–120 |
| Motor driver | DRV8833 (TSSOP-16) | 80–100 |
| Battery charger | TP4056 Li-ion charge/protect | 80–120 |
| Voltage regulator | AMS1117-3.3 | 15 |
| Crystal | 16MHz + 2x 22pF load caps | 15 |
| Battery | 1S Li-ion 18650 | 80–100 |
| Motors | 2x TT gear motor (drive + steering) | 120–200 |
| Decoupling capacitors | 100nF x4, 10µF x2, 100µF x1 | 30 |
| Reset pull-up | 10k | 2 |
| Charge-current resistor | 1.2k (TP4056 PROG pin) | 2 |
| PCB fabrication | 2-layer, ~80x60mm, 5pcs | ~150 |
Approximate total per unit (TX + RX, excluding one-time PCB fab batch cost): ₹1,000–₹1,300 in components.
Why NRF24L01+ over a simpler 433MHz ASK/OOK pair? The NRF24L01+ gives a digital SPI interface with built-in auto-acknowledgement, which is significantly more reliable in noisy environments than basic OOK modulation. Using the identical module on both ends also meant writing one SPI driver and reusing it on both boards, rather than maintaining two different RF stacks.
Why ATtiny85 on TX but ATmega328P on RX? The transmitter's job is simple — read buttons, push bytes over SPI — so a small, cheap, low-power 8-pin MCU is sufficient. The receiver has to decode incoming packets, drive four motor-control lines, and manage two power rails and a battery charger, which needs more I/O and headroom than the ATtiny85 offers.
Why DRV8833 for motor driving? A single small IC contains two independent H-bridges, so one part drives both the forward/reverse motor and the steering motor, rather than needing two separate driver chips. It also includes internal current limiting and thermal shutdown, covering basic motor protection without extra components.
Why TP4056 + AMS1117 instead of designing charging from scratch? The TP4056 is a purpose-built, inexpensive Li-ion charge/protection IC — reinventing that circuit from discrete parts adds risk (over-charge, over-discharge protection is safety-critical) for no real benefit at this scale. The AMS1117 then steps the raw battery voltage down to a clean 3.3V for the digital logic, kept on a separate rail from the higher-voltage, higher-noise motor supply.
Why 2xAAA on TX but rechargeable Li-ion on RX? The remote is handled constantly and benefits from simple, swappable batteries. The car's board benefits more from rechargeability and a compact single-cell form factor that fits inside a small chassis.
/tx-remote/ KiCad project for the transmitter board (schematic, PCB, gerbers)
/rx-car/ KiCad project for the receiver board (schematic, PCB, gerbers)
/docs/ BOM + design write-up document, exported schematic PDFsDesigned in KiCad 9.0.5. To open either board:
.kicad_pro file inside tx-remote/ or rx-car/..kicad_sch) and PCB (.kicad_pcb) files are both included and editable.This project is shared openly for reference and reuse — feel free to fork or adapt for your own RC or wireless-control projects.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100nF | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C3, C4, C5, C6 |
| 3 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Horizontal | J1, J2, J3 |
| 2 | 10uF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C7, C8 |
| 2 | 22pF | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C1, C2 |
| 1 | 1.2k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C9 |
| 1 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1 |
| 1 | 10nF | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C10 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U5 |
| 1 | ATmega328P-P | Package_DIP:DIP-28_W7.62mm | U1 |
| 1 | Crystal_GND24 | Crystal:Crystal_HC49-4H_Vertical | Y1 |
| 1 | DRV8833PW | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U3 |
| 1 | NRF24L01_Breakout | RF_Module:nRF24L01_Breakout | U2 |
| 1 | TP4056-42-ESOP8 | Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.3mm_ThermalVias | U4 |

devansh2004sharma-tech/nrf24-rc-car-controller
KiCad schematics and PCB layouts for a wireless RC car — ATtiny85 remote (TX) and ATmega328P motor-control receiver (RX), linked over NRF24L01+.


ZharbolatDinmukhamed/Haptic-Glove-PCB
A wrist-mounted PCB for a haptic feedback glove, developed as part of my Research Assistantship at the Tactile Laboratory, Nazarbayev University.

RoboticsBrno/Robutek
Robůtek je robotická platforma založená na čipu ESP32-S3. Je velice rozšitiřelný, ale ze základu umí jezdit, kreslit fixou, jezdit po čáře, pohybovat se bludištěm. Programování je přes Jaculus.


DauntlessDog/The-Ant
Small lightweight pusher bot powered by 2 N20 motors, a LiHv 1s battery, on an ESP32. Custom PCB, custom 3D printed chassis, and custom gearbox design and integration


HarshiKrishn/Temperature-monitoring-thermal-control-system
Embedded system for monitoring and automatic fan control using aurdino,lcd,and pcb design in kicad
It measures 66.5 × 39 mm and has 2 copper layers, 1.6 mm thick.
21 parts, built around the ATMEGA328P-PU, DRV8833PW, AMS1117-3.3 and TP4056-42-ESOP8. 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.
From the devansh2004sharma-tech/nrf24-rc-car-controller repository on GitHub, at the commit this page was made from: the board is Receiver_PCB.kicad_pcb and its schematic Receiver_Schematics.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask devansh2004sharma-tech before reusing the design.