How to Build a Remote-Controlled Car with a 3D-Printed Chassis

Building Remote-Controlled Cars / Visits:7

Building a remote-controlled car from scratch is one of the most satisfying projects any maker can undertake. But when you throw a 3D-printed chassis and a micro servo motor into the mix, you’re not just building a toy—you’re engineering a precision machine. Micro servo motors are the unsung heroes of modern RC design. They’re small, cheap, incredibly responsive, and perfect for steering mechanisms where space is tight and weight is critical. In this guide, I’ll walk you through every step of building a fully functional RC car, from designing the 3D-printed chassis to wiring up the micro servo for buttery-smooth steering control.

Why Micro Servo Motors Are the Secret Sauce

Before we dive into the build, let’s talk about why micro servo motors deserve center stage. A standard servo motor is bulky and overkill for a small RC car. A micro servo, like the popular SG90 or MG90S, weighs around 9 grams, draws minimal current, and delivers enough torque (1.5–2.0 kg·cm) to turn a set of front wheels with authority. The key advantage? Precision. Unlike a DC motor that just spins, a micro servo lets you command an exact angle between 0 and 180 degrees. That means you can program your car to steer gradually or snap into a tight turn instantly. For a 3D-printed chassis, where every gram of weight savings matters, the micro servo is a no-brainer.

Anatomy of a Micro Servo

  • Control wire (yellow or white): Receives PWM signals from your microcontroller.
  • Power wire (red): Typically 4.8–6V DC.
  • Ground wire (brown or black): Common ground with the rest of the circuit.
  • Output spline: A small plastic or metal gear that attaches to your steering linkage.

The MG90S variant adds metal gears, which is a smart upgrade if you plan to run your car on rough terrain. Plastic gears strip easily under sudden impact.

Designing the 3D-Printed Chassis

The chassis is the backbone of your RC car. With 3D printing, you can iterate designs rapidly, tweak geometry for weight distribution, and integrate mounting points for the micro servo, battery, and motor. I recommend using PETG filament for its balance of strength, flexibility, and heat resistance. PLA works too, but it’s brittle and may crack at screw holes over time.

Chassis Design Principles

  1. Low center of gravity: Keep the battery and electronics as low as possible. A top-heavy car flips on turns.
  2. Servo pocket: Design a recessed pocket that holds the micro servo snugly. Use M2 screws to secure it.
  3. Suspension mounts: Even a simple rigid chassis benefits from flexible 3D-printed leaf springs.
  4. Motor mount: Leave space for a DC motor (e.g., N20 micro metal gearmotor) and gearbox.

I designed my chassis in Fusion 360, exporting STL files for slicing. Here’s a breakdown of the key components you’ll model:

  • Main body plate (4mm thick): Houses the battery compartment, servo pocket, and ESC (electronic speed controller) slot.
  • Front axle carrier: A separate piece that bolts onto the main plate, holding the front wheels and steering linkage.
  • Rear axle carrier: Similar but simpler—just a bearing mount for the drive shaft.

Servo Pocket Design Details

The micro servo has two mounting flanges with small holes spaced 14mm apart. In your 3D model, create a rectangular pocket 23mm long, 12mm wide, and 22mm deep. Add two M2 threaded inserts (or just tap the plastic) at the flange locations. Leave a 5mm gap beneath the servo for the wires to pass through. This prevents pinching when you install the servo arm.

Electronics and Wiring

Here’s the bill of materials for the electronics:

  • Microcontroller: Arduino Nano or ESP32 (for Bluetooth control).
  • Motor driver: L298N or DRV8833 (I prefer DRV8833 for its small footprint).
  • Micro servo: MG90S (metal gear).
  • DC motor: N20 6V 1000RPM with encoder (optional).
  • Battery: 2S LiPo 7.4V 500mAh.
  • Receiver: HC-05 Bluetooth module (if using ESP32, built-in BLE works).
  • Wheels: 65mm diameter rubber tires with 3D-printed hubs.

Wiring the Micro Servo

The micro servo connects directly to the Arduino’s PWM pin (e.g., pin 9). Power it from the 5V rail of the Arduino or a separate BEC (battery eliminator circuit) if your motor driver has one. Never power the servo from the Arduino’s onboard regulator if you’re also running a motor—the current draw will brown out the microcontroller.

Arduino Pin 9 (PWM) --> Servo Yellow Wire Arduino 5V --> Servo Red Wire Arduino GND --> Servo Brown Wire

For the motor driver, connect the Arduino’s digital pins to the driver’s IN1, IN2, and ENA pins. The driver powers the DC motor from the battery.

Power Distribution

Use a breadboard or perfboard to create a power distribution hub. The 7.4V battery feeds the motor driver directly. The driver’s 5V output (if using L298N) powers the Arduino and servo. If your driver doesn’t have a 5V regulator, use a separate 5V step-down converter (like a mini 7805 or Pololu D24V5F5).

Assembling the Steering Mechanism with the Micro Servo

This is the heart of the build. The micro servo needs to translate rotational motion into linear motion to turn the front wheels. A classic method is the bell crank and tie rod setup.

Step-by-Step Steering Assembly

  1. Attach the servo arm: The MG90S comes with several plastic arms. Choose the one with a single hole offset from center (the “1-arm” type). Screw it onto the servo spline with the included screw. Center the servo by sending a 90-degree command in your code.
  2. Create the tie rod: Cut a 30mm length of 2mm steel rod or use a paperclip. Bend both ends into small loops.
  3. Fabricate the bell crank: 3D-print a small L-shaped bracket. One leg connects to the servo arm via a 2mm screw and nut. The other leg connects to the tie rod.
  4. Mount the steering knuckles: Each front wheel sits on a 3D-printed knuckle that pivots on a vertical pin. The tie rod connects both knuckles. When the servo pulls one side, the wheels turn.

Pro tip: Add a small spring (like a pen spring) between the servo arm and the bell crank. This creates a mechanical “soft limit” that prevents the servo from burning out if the wheels hit an obstacle.

Calibrating the Micro Servo

In your Arduino code, use the Servo.h library. Start with myservo.write(90) to center. Then test left and right limits:

cpp

include <Servo.h>

Servo steeringServo; void setup() { steeringServo.attach(9); steeringServo.write(90); // center } void loop() { // Turn left steeringServo.write(45); delay(2000); // Turn right steeringServo.write(135); delay(2000); }

Adjust the angle values if the wheels bind. Most micro servos can go from 0 to 180, but your mechanical linkage might limit the range to, say, 30 to 150. Don’t force it—servos that hit a hard stop draw excessive current and can overheat.

3D Printing Tips for the Chassis

Printing a functional chassis requires attention to layer adhesion, infill, and orientation.

Recommended Print Settings

  • Layer height: 0.2mm for a balance of speed and strength.
  • Infill: 40% gyroid pattern. Gyroid provides uniform strength in all directions.
  • Wall thickness: At least 3 perimeters (1.2mm with a 0.4mm nozzle).
  • Supports: Enable supports only for overhangs steeper than 45 degrees. The servo pocket might need a small support block.
  • Orientation: Print the main body plate flat on the bed. The front axle carrier should be printed with the axle holes vertical to avoid layer separation under load.

Post-Processing

  • Sand the servo pocket lightly to ensure a snug fit.
  • Use a 2mm drill bit to clean out screw holes.
  • Apply a thin layer of superglue to threaded inserts before pressing them in.

Writing the Control Code

For a remote-controlled car, you need two-way communication: a transmitter (your smartphone or a joystick) and the receiver (the Arduino). I’ll use Bluetooth with an ESP32 for simplicity.

ESP32 Bluetooth Code Snippet

cpp

include <BluetoothSerial.h>

include <Servo.h>

BluetoothSerial SerialBT; Servo steeringServo;

int motorSpeed = 0; int steeringAngle = 90;

void setup() { SerialBT.begin("RCCar"); steeringServo.attach(9); pinMode(10, OUTPUT); // Motor PWM pinMode(11, OUTPUT); // Motor direction 1 pinMode(12, OUTPUT); // Motor direction 2 }

void loop() { if (SerialBT.available()) { char command = SerialBT.read(); switch (command) { case 'F': motorSpeed = 255; break; // Forward case 'B': motorSpeed = -255; break; // Backward case 'L': steeringAngle = 45; break; // Left case 'R': steeringAngle = 135; break; // Right case 'S': motorSpeed = 0; break; // Stop } steeringServo.write(steeringAngle); // Motor control logic here analogWrite(10, abs(motorSpeed)); digitalWrite(11, motorSpeed > 0 ? HIGH : LOW); digitalWrite(12, motorSpeed < 0 ? HIGH : LOW); } }

On the smartphone side, use a simple Bluetooth terminal app (like “Serial Bluetooth Terminal” for Android) or write a custom app with MIT App Inventor. Send single-character commands: ‘F’, ‘B’, ‘L’, ‘R’, ‘S’.

Tuning the Micro Servo Response

The micro servo’s speed is fixed by its internal potentiometer and gear ratio. But you can smooth the steering by interpolating angles. Instead of jumping from 90 to 45 instantly, ramp the angle over 100 milliseconds:

cpp int targetAngle = 45; int currentAngle = 90; for (int i = currentAngle; i != targetAngle; i += (targetAngle > currentAngle ? 1 : -1)) { steeringServo.write(i); delay(5); }

This prevents the car from jerking and reduces stress on the servo gears.

Testing and Troubleshooting

Once assembled, test the car on a flat surface. Listen for servo buzzing—that means the servo is fighting against a mechanical bind. Common issues and fixes:

  • Servo jitters: Insufficient power. Add a 470µF capacitor across the servo power pins.
  • Wheels don’t turn fully: The tie rod length is wrong. Adjust the bell crank hole position.
  • Car pulls to one side: The servo center isn’t calibrated. Re-center with myservo.write(90) and adjust the servo arm position.
  • Bluetooth disconnects: The motor causes electrical noise. Add a ferrite bead to the motor wires.

Real-World Performance Observations

The MG90S micro servo handles steering beautifully at low speeds (under 5 mph). On gravel or grass, the steering remains crisp. On high-friction carpet, the servo struggles slightly—you might need to upgrade to an SG90 with higher torque (though it’s heavier). For a 1:24 scale car, the micro servo is ideal. For larger scales, consider a standard servo like the MG996R.

Upgrades and Modifications

Once your basic RC car runs, you can push the micro servo further.

Adding a Servo Saver

A servo saver is a spring-loaded mechanism that disconnects the servo from the steering linkage during a crash. It’s a small 3D-printed part with a compression spring. This protects the servo gears from stripping. The MG90S has metal gears, but even metal can bend under extreme force.

Differential Steering with Two Micro Servos

For a tank-style RC car, replace the DC motor with two micro servos driving each rear wheel independently. Use the Servo.write() function to control each wheel’s speed (by modifying the servo’s continuous rotation mode—some micro servos can be modified for 360-degree rotation). This gives you skid-steer capability: spin in place by running one wheel forward and one backward.

Telemetry Feedback

The micro servo’s internal potentiometer can be read as an analog signal. With a small modification (soldering a wire to the potentiometer wiper), you can send the steering angle back to your smartphone. This is advanced but useful for debugging.

The Micro Servo’s Role in the Broader RC Ecosystem

Micro servo motors have revolutionized small-scale RC vehicles. Before their widespread availability, builders used bulky mechanical linkages or expensive miniature hydraulic systems. Now, a $3 micro servo gives you proportional control with sub-degree accuracy. In the context of 3D printing, the micro servo enables rapid prototyping of steering mechanisms that would be impossible with off-the-shelf parts. You can design a custom bell crank, a rack-and-pinion, or even a four-wheel steering system—all driven by a tiny motor that fits in the palm of your hand.

The next frontier is integrating sensor feedback. Imagine a micro servo that self-centers when you release the joystick, using a PID loop in the Arduino. Or a micro servo that automatically adjusts steering based on wheel speed, mimicking a traction control system. The hardware is cheap enough to experiment freely.

Final Build Checklist

Before you declare your RC car finished, run through this list:

  • [ ] Micro servo centered at 90 degrees with no load.
  • [ ] Steering linkage moves freely without binding.
  • [ ] Battery voltage stable under load (no brownouts).
  • [ ] Bluetooth range at least 10 meters in open air.
  • [ ] Wheels spin true (no wobble from 3D-printed hubs).
  • [ ] Screws tight but not stripping the plastic.
  • [ ] Servo wires secured with zip ties to prevent snagging.

Building an RC car with a 3D-printed chassis and a micro servo motor is a project that teaches you about mechanics, electronics, and programming in equal measure. The micro servo, despite its size, is the component that gives your car personality—it makes the difference between a car that just goes forward and one that dances through corners with precision. So fire up your printer, solder those wires, and get ready to see your design come to life at the push of a button.

Copyright Statement:

Author: Micro Servo Motor

Link: https://microservomotor.com/building-remote-controlled-cars/rc-car-3d-printed-chassis.htm

Source: Micro Servo Motor

The copyright of this article belongs to the author. Reproduction is not allowed without permission.

About Us

Lucas Bennett avatar
Lucas Bennett
Welcome to my blog!

Tags