Skip to the content
PCBKitNew board
2 layers47 × 97 mmRC CAR TEST PCB, the printed circuit board in 3D

RC CAR TEST PCB

ManasNik/An-RC-project

A small RC car with an IMU based steering controller!

Size
47 × 97 mm
Copper layers
2
Thickness
1.6 mm
Parts
11
Nets
47
Pads
94
Tracks, vias
201, 12
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
15 Feb 2025
Updated
4 Dec 2025

Overview

RC CAR TEST PCB is an open-source printed circuit board by ManasNik, from the ManasNik/An-RC-project repository on GitHub. It is a 2-layer board of 47 × 97 mm with 11 parts on 47 nets, routed with 201 tracks and 12 vias.

Its parts include 9 connectors and 2 resistors.

README

README.md

An RC car project

This is a work in progress personal project that I started with a goal of building an RC car from scratch with an IMU based steering controller imitating real life steering action and to gain experience with STM32 microcontrollers. My initial goal for this project is to complete the basic functioning of the car and steering control. I have planned and I am planning to add more features in the future such as controls to adjust certain parameters to affect the handling of the car, telemetry, lap time counter and even a camera to get a First Person View(FPV)!

Current status

WhatsApp Image 2025-12-03 at 16 24 01_00abe4af

Hardware:

  • The car prototype is almost complete. I designed a simple prototype PCB to mount the off-the-shelf modules that I previously tested on the breadboard. The layout is intentionally minimal to reduce cost, keep complexity low, and allow the modules to be reused in future projects.
  • Added extra capacitors on the PCB to suppress electrical noise generated by the motors on the power rails.
  • The car is powered by a 600 mAh 25C LiPo battery.
  • The controller circuit is still under development on the breadboard. I’m currently testing different features, tuning behavior, and iterating on the design.

Software:

  • Developed a NRF24L01 driver for wireless communication between the controller and the car.
  • Developed a driver for the MPU6050 IMU. Using a complementary filter to combine accelerometer and gyroscope data for accurate steering-angle estimation.
  • Implemented the core firmware for basic motion control (forward, reverse, left, right).

Development journey

The following section documents my project journey in detail from the start to the current stage.

Components used(so far)

TB6612FNG x2
STM32F103CBT6 x2
Potentiometers for intial testing x2
NRF24L01 x2 MPU6050 x1

The initial breadboard circuit

Initial Prototype (It's a mess of wires!)

I started my project by testing individual motors with the driver and eventually wired them all together. I initially tested using the STM32F446RE Nucleo board since it was readily available with me then. Obviously it's an overkill for this project and so I decided to use the STM32F103CBT6, which is still a powerful MCU for this project but leaves me headroom for adding interesting features later on in the future. I used two potentiometers - one for speed control(throttle) and the other for steering control. This is the point I learned about DMA(Direct Memory Access) as it was needed to process the two ADC channels efficiently. Additionally I used the built-in button on the Nucleo board to enable/disable reverse under a specified speed. My idea is to implement the reverse button on the steering wheel controller later on in the future to engage/disengage reverse like in an F1 car! It has to be noted that the controller is not designed or involved in this initial setup - This is a hardwired test.

I wanted to design a simple platform to hold my motors (the chassis) and small wheels to fit my desired form factor. I decided to design and 3D print my own design.

Chassis design Chassis design

Wheel design Wheel design

The outcome of the design Finished model parts (Placed a mouse there for comparison!)

Implementing remote control

Circuit with wireless control
(The car circuit is on the left and the controller on the right)

In this stage of the project I decided to add the remote control using two NRF24L01 modules - one on the car and one in the controller. To develop the driver for communicating with this module, I followed a YouTube tutorial and the NRF24l01 datasheet. This is the first time I wrote a driver by manipulating low level registers - a great learning experience indeed! Once the driver development was done, it was time to test it. I shifted the two potentiometers and the reverse button to one of the two STM32F103CBT6 boards I will be using for the rest of this project and connected the NRF24L01 module via SPI. Similarly, I shifted the motor drivers to the other STM32F103CBT6 board and connected the other NRF24L01 module via SPI. I was now able to control the car through wireless communication!

Implementing IMU based steering control

I chose the cheap and easily available MPU6050 Inertial Measurement Unit(IMU) module and developed a driver to communicate with it using I2C. After I confirmed I was receiving the gyroscope and accelerometer data from the IMU, I started working on the code to process it. I used a simple Exponential Moving Average (EMA) filter to smoothen out some noise from the readings, and used a complementary filter to combine the readings of both the gyroscope and the accelerometer to improve the steering angle estimation.

I scaled the steering angle estimation and computed a steering amount to add or subtract from the PWM control values to change the motor speeds according to the direction of the steering. The car doesn't have a deciated mechanical steering system and the steering rotation is achieved by varying the speeds on each side of the car. To turn left, the speed is reduced on the left side and increased on the right side and vice versa.

PCB Design

I designed a simple 2-layered PCB to transfer the breadboard circuit onto the 3d printed car platform I previously designed. I can now test the car on the ground with the control logic I developed in software and fine tune it to improve the handling characteristics. I intentionally made the PCB design simple by using footprints for female/socket headers spaced appropriately to insert the off-the-shelf modules. This reduced the complexity of the design, made it cheaper to manufacture and made it possible to resue the modules for other projects.

Schematic RC car schematic_page-0001

PCB design

Screenshot 2025-12-03 183949

Final PCB WhatsApp Image 2025-12-03 at 16 24 01_501648d1

This was my first time designing a PCB on my own and ordering it. Obviously I made mistakes!

  • I forgot to include capacitors in the design to reduce the noise on the power lines, since the brushed DC motors cause electrical noise due to brush-commutator sparking. This noise interfered a lot with the NRF24L01 module making it lose connection with the controller. I greatly reduced this later by soldering electrolytic and ceramic capacitors near the motor termianls and power supply pins of the modules.
  • I should've taken extra care to provide a stable power supply directly to the NRF24L01 module instead of supplying it from the 3.3V pin of the STM32 module.

What's next?

(This section will be updated from time to time till the completion of the project)

  • The car is pretty quick on the ground and coasts to a stop instead of stopping quickly. I am working on a braking logic to slow down the car on command. The brake paddle will be one of the two paddles I'm planning to add behind my steering wheel controller with the other one being the throttle paddle. I will develop the logic in such a way that the user can fine tune the characteristics of the car according to their preference.
  • I'm planning to add a Time-Of-Flight sensor at the front of the car to detect obstacles ahead to avoid a head-on collision when the controller connection is lost - A backup safety feature.
  • I will develop a simple pit limiter making use of a hall sensor to measure wheel RPM to enable closed loop speed control. The hall sensor will also be crucial to avoid unwanted movement of the car due to steering movement even when no throttle is applied at rest.

This project for me isn't just about building an RC car - it's a fun learning experience that will help me dive deep into complete embedded system design from the ground up.

Parts

11
QtyValueFootprintReferences
4Screw_Terminal_01x02TerminalBlock_4Ucon:TerminalBlock_4Ucon_1x02_P3.50mm_HorizontalJ6, J7, J8, J9
2Conn_02x08_SocketCustom_footprints:TB6612FNGJ2, J3
2RResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1, R2
1Conn_01x02_PinConnector_JST:JST_VH_B2P-VH_1x02_P3.96mm_VerticalJ5
1Conn_01x04_SocketCustom_footprints:NRF24L01J4
1Conn_02x20_SocketCustom_footprints:BluepillJ1

Questions

How big is the RC CAR TEST PCB PCB?

It measures 47 × 97 mm and has 2 copper layers, 1.6 mm thick.

What parts does the RC CAR TEST PCB use?

11 parts. 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 RC CAR TEST PCB KiCad files?

From the ManasNik/An-RC-project repository on GitHub, at the commit this page was made from: the board is PCB DESIGN/PCB DESIGN PROTOTYPE/RC_CAR_TEST_PCB/RC_CAR_TEST_PCB.kicad_pcb and its schematic PCB DESIGN/PCB DESIGN PROTOTYPE/RC_CAR_TEST_PCB/RC_CAR_TEST_PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RC CAR TEST PCB design in my own project?

Its repository states no licence, so its author keeps all rights: ask ManasNik before reusing the design.

Similar boards

  • 2 layers60 × 30 mmController, the printed circuit board in 3D

    Controller

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    11 parts3kApache-2.0
  • 2 layers103 × 30.5 mmTS Front Endcap, the printed circuit board in 3D

    TS Front Endcap

    EEVengers/ThunderScope

    ThunderScope GitHub Repo

    11 parts1.3kMIT
  • 2 layers26 × 30 mmExpansion Card, the printed circuit board in 3D

    Expansion Card

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    11 parts1.1kCC-BY-4.0
  • 2 layers53.9 × 23.2 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    11 parts1kGPL-3.0
  • 2 layers10 × 20 mm2 connector Sensor Board, the printed circuit board in 3D

    2 connector Sensor Board

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    11 parts915
  • 2 layersFet module, the printed circuit board in 3D

    Fet module

    ByteWelder/Decktility

    A handheld PC

    11 parts855CC-BY-SA-4.0
  • 2 layers47 × 33 mmSevensegment led display module, the printed circuit board in 3D

    Sevensegment led display module

    tardate/LittleArduinoProjects

    a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!

    11 parts803MIT
  • 2 layers42.5 × 36.8 mmDevboard, the printed circuit board in 3D

    Devboard

    basilfx/TRADFRI-Hacking

    Hacking IKEA TRÅDFRI products, such as light bulbs, window blinds and other accessories.

    11 parts743CC-BY-4.0