3D Printed Modular RC Rover

Other Projects

For as long as I can remember, one of my dreams has been to design and build my own remote-controlled car. This was one of the things that got me into electronics as a kid. I grew up and never got to building my own until - almost by accident - I got a 3D printer as a gift...

The result is this small 3D-printed remote-controlled rover. The design may not be elegant (I'm still learning the tricks of mechanical design) but is modular and easy to tinker with. You can use only the wheel frames and build your own chassis, replace the control box with something else, add or remove attachments such as FPV camera, GoPro holder, design your own tank tracks, etc.

The modularity makes the rover easy to repair too. For example, if the friction bearings need replacement, you can only print and replace the small bearing jackets instead of the whole wheel frame.

The rover is not intended for racing - with the motors I used it is rolling around at a slow deliberate pace. But this was the goal - with FPV goggles, even exploring the backyard turns into an adventure. You can change the motors, if you wish, and make it faster - just beware that you have to select motors that are powerful enough to provide enough torque.

The following videos will show you what you can expect with the "default" motors I used:

The rover is controlled over WiFi by a Raspberry Pi Zero 2 W. You can control it from your phone or from a computer, with or without joystick.

This project assumes you are able to wire up the motors, the motor controller, and the Raspberry Pi (or whatever else you decide to use) on your own. Some coding may also be needed, even if you decide to use the provided control software - you will need to adjust the GPIO pins in the code to match your wiring. In addition, configuring the Raspberry Pi - setting the network, is up to you. I recommend setting the network in a standalone hotspot mode - this way you can take the rover anywhere and control it from your phone. Alternatively, you may wish to have it connect to your home Wi-Fi - this way you'll be able to control it remotely over the internet.

What you need

STL files for the 3D printed parts. Click here to download. All parts can be printed without support (however, you may have to rotate the parts before printing them to ensure that). Check the details further down on this page on what you have to print and what is optional and how all pieces fit together. Also, the Image Gallery has photos of the various 3D printed parts.

A bunch of #4 1/2 flat head wood screws. You'll need those to assemble the rover. A box with 100 screws should be plenty. Note that you may have to chop the tips of the screws when attaching certain parts to make sure they don't protrude too much. I found that diagonal cutting pliers work excellent. An alternative is to have a small box of shorter screws, if you can find some. In addition to the #4 screws, if you are using Raspberry Zero 2 W, you will need four M2.5 mounting screws or some small wood/plastic screws to mount it in the control box.

A pair of geared 12V mini RC motors. There are many variations of this type of motor. I'd recommend picking something that's in the 100-300 RPM range, since this provides a decent torque. You can go with higher RPMs, but then you have to make sure the motor you pick has enough power/torque.

Motor controller. I used an L298N-based module, but you can use whatever you like. If you get something different, you may have to change the design of the motor controller holder.

A Raspberry Pi or something equivalent. I have the Zero 2 W, but you can use whatever you are most comfortable with.

Power is provided by an AC55385 car jump starter battery pack. You can use any of the many available battery packs of the same size. The battery gives me hours of runtime on a single charge. If you use a different power pack, you have to change the chassis dimensions to make it fit.

I found that the 5V USB output from my battery pack was unreliable and was causing the Raspberry Pi to hang and reboot randomly, so I used a 12V to 5V power regulator with 3A output. If your battery already has a reliable 5V output, you don't need this.

A power switch. The STL files include the design for a simple power switch holder and a safety cover for the switch (so the rover doesn't turn off if it bumps into something). You may have to change the design of those two components, depending on the power switch you happen to have.

While you can power the rover off just by toggling the power switch, this is not a nice thing to do. I've included a push-button that is connected to two of the Raspberry Pi GPIO pins. The software (see next item) monitors those two pins. When you press and hold the switch for more than 5 seconds, the RPi will shut down. Then you can power it off.

Control software. Click here to download. If you wish, you can use the code I've written for controlling the rover. It is a Python Flask server that lets you connect from a browser on port 5000 of the RPi. If you have a joystick, you can use this too. I even tried pairing a Nintendo Switch controller to my phone and the whole contraption just worked. Note that you may want to change the GPIO pin numbers in the code, depending on how you wire the rover.

An FPV camera with transmitter. Optional. If you already happen to have FPV goggles I highly recommend getting an FPV camera. Depending on the camera you get you might have to redesign the FPV camera/transmitter holder.

Raspberry Pi camera module. Optional. If you want to do something more (like, having a way to take high-resolution pictures from the rover, or try your hand at autonomous navigation), you can get one of those. The STL files include a tilting camera holder.

I recommend printing, assembling, nd testing the rover piece by piece. For example, try printing the wheels and the wheel frame, make sure this works and fits your motors, that you are satisfied with the speed and torque. Different 3D printers and printing materials may require slight adjustments and the earlier you find about any problems, the less time and materials you will waste. Once you have a component that works and fits the rest, continue with the next part.

You don't need all components to get a functional rover. For example, if you are going to be using the rover exclusively indoors, you don't really need the crawler tracks. The toothed wheels are perfectly suited for use on the floor and work even on thick carpet. Similarly, if you don't plan to add an FPV camera, you won't need the camera holder.

Below you will find description of the different components and the way they are assembled, in the order I would recommend printing them. If something is not clear, you can refer to the Image Gallery which has additional close-ups.

Wheel Frames

The rover drives around on two wheel frames. Each wheel frame consists of the following elements:

Tracks (optional)

While the rover can be used without tracks indoors, if you plan to take it outdoors you will need tracks to protect the wheel gears and to give it extra support on soft surfaces. There are two types of track link - smooth ones, and track links with a bar on the inner surface that grips the gear wheel teeth.

For each wheel frame you will need 21 links. I recommend using ~16 smooth links and ~5 links with inner bar. Attach the links with short pieces of printer filament, then pinch each piece on both sides with pliers, flattening the ends to keep it in place.

Chassis

The chassis attaches to the wheel frames and holds the battery in place. The chassis includes:

Chassis Electronics Attachments

The parts here will depend on how you will choose to wire your rover and what switch you will find. The design below fits my power switch and the PCB I used, but you may need to modify it to fit your requirements. The attachments include:

Control Box

I used a Raspberry Pi Zero 2 W to control the rover. If you are using a different controller, you may have to change the design of the control box. The current box is large enough to hold a standard-size Raspberry Pi too, but you may need to adjust the attachment points. The box I have consists of:

Optional Attachments

Here are several optional parts you can use on your rover:

Here is how everything fits together:

If you decide to build this rover, and encounter any problems, please feel free to contact me at alex@avtanski.net. I'll appreciate your feedback, and also any photos or videos of your rover you'd like to share.

 

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.