English | 简体中文 | Deutsch | Français | Español
We have designed a robot body for widely available 1:16 scale RC-toy trucks/buggies (such as this on Amazon).
We also have a generic body designed for a simple wheeled robot which relies on low-cost, readily available hobby hardware. Build instructions for the regular OpenBot can be found here.
The chassis of OpenBot RC-Truck consists of two main components: (a) A 1:16 scale RC-toy truck of your choice and (b) a number of custom-designed parts which we provide and can be 3D-printed.
To build your own OpenBot RC-Truck, you will need a 1:16 scale RC-toy truck/buggy. We provide Amazon links to compatible RC-toy trucks for Germany (EU), (EU), and the United States (US) with fast shipping. A number of similar 1:16 scale toy trucks can also be found on other online retailers such as ebay, Alibaba, or AliExpress, often for discounted price but with slow shipping speed.
Irrespective of the retailer and the version of RC-toy truck you choose for your build, make sure that it is indeed a 1:16 scale RC-truck. This is important because the 3D printed parts we provide are currently designed to fit only 1:16 scale trucks with some minor adjustments (more on this later). Some examples of compatible 1:16 scale RC-toy trucks/buggies are shown below.
You will need to print the following parts in order to build your OpenBot RC-Truck.
main_frame
(STL, STEP)side_cover
[x2] (STL, STEP)phone_mount_bottom
(STL, STEP)phone_mount_top
(STL, STEP)
Notice that [xN] indicates the number of copies (i.e., N) you need to print of a particular part (wherever applicable).
Following parts are optional (but recommended) to make your OpenBot RC-Truck more compact and aesthetically pleasing.
camera_elevator
(STL, STEP)electronics_cover
[x2] (STL, STEP)spacer
[x4] (STL, STEP)front_light_spacer
[x2] (STL, STEP)
For all the above parts, your build plate needs to be at least 260mmx220mm, which is the print size of the main_frame
.
Since a lot of common 3D printers have a smaller build volume (usually 220mmx220mm), there are two more options that can work.
First option is to print the main_frame
at 45 degrees with additional support material.
Second option requires modifying the original main_frame
part. We recommend using Autodesk Fusion 360 for such CAD modifications (Fusion 360 has a free 1-year academic license available).
For this option, we make its STEP file available, which you can cut into two/three smaller parts.
The resulting sub-parts will then fit on a standard (i.e., 220mmx220mm) build plate and can be joined together after printing.
In future, we may also release such a modular version of the main_frame
here. All other parts require a minimum build plate of 220mmx60mm.
On an Ultimaker S5, we achieved good results with the following settings:
- layer height: 0.2mm
- wall thickness: 1.5mm
- infill density: 20%
- infill pattern: grid
- print speed 80 mm/s
- no support
We were able to print the chassis with PLA, CPE and ABS. In our experience the print was not affected very much by the print settings. However, if you have the patience, printing slower and with smaller layer height will improve the print. Also adding a support structure can improve the print, but it will require additional work to remove afterwards.
Before you proceed with the build, you may need to clean the 3D print. However, using the above settings, we did not need any filing or cleaning during our build process. If possible, we recommend using a combination of two different colors (for example green/black or red/black) for printing different parts of the same OpenBot RC-Truck as shown below.
Tip: Click on the images to open them in full resolution in a new tab.
While it is possible to build your OpenBot RC-Truck with a DIY approach similar to the regular OpenBot (see DIY build components and instructions for OpenBot here), we recommend using the OpenBot custom PCB for building and assembling the OpenBot RC-Truck. This option is recommended if you desire a cleaner build or want to build multiple OpenBot RC-Trucks. An additional advantage of using our custom PCB is that you can use the same components to build and switch between different OpenBot bodies.
OpenBot RC-Truck mainly relies on readily available hobby electronics. We provide Amazon links for Germany (EU) and the United States (US) with fast shipping. If you have the patience to wait a bit longer, you can also get the components a lot cheaper from AliExpress (AE). You will need the following components.
- 1x RC-toy truck/buggy (EU, EU, US)
- 1x Arduino Nano (EU, US, AE)
- 1x OpenBot Custom PCB
- 1x USB OTG cable (EU ,US, AE)
- 1x spring or rubber band (EU, US, AE)
- 6x M3x25 screw (EU, US, AE)
- 6x M3 nut (EU, US, AE)
- Dupont cables (EU, US, AE)
- 1x Ultrasonic Sensor (EU, US, AE)
- 2x On/Off Switch (EU, US, AE)
- 4x Orange LED 5mm (EU, US, AE)
- 4x Red LED 5mm (EU, US, AE)
- 2x White LED lamps (EU, US, AE)
- Variable Resistor for LEDs (EU, US, AE)
Tip: Click on the images to open them in full resolution in a new tab.
- Disassemble the RC-toy truck. Remove its top cover and unscrew the four mouting pins from the base as shown in the figures below. Keep all four mounting pins and their respective screws safe, since you will be using them to mount the
main_frame
onto the RC-Truck body after all the wiring is done. All compatible RC-toy trucks come with two motors: one for throttle and the other for steering, a speed controller (with a built-in 5-7V UBEC) for the throttle motor, and a 2S 7.4V LiPo battery pack. Unmount and remove the battery pack from the base of the truck and recharge it with the charger that came with the truck. Expose/losen the wire connectors for both motors as well as the UBEC output from the speed controller. In our case, the UBEC output was 6V. - Notice that the two dimensions d1 amd d2 (as shown below) on the
main_frame
are dependent on the model of the RC-toy truck used. We designed ourmain_frame
part for this RC-toy truck model. Based on what (1:16 scale) truck you use, you may need to adjust these dimensions slightly using themain_frame
STEP file. We recommend using Autodesk Fusion 360 for such CAD modifications (Fusion 360 has a free 1-year academic license available). Also, note that the small wedge/triangle on themain_frame
represents the forward direction. - (Optional) Install the ON/OFF switch for powering the robot. You can simply do this by cutting the positive wire that goes from speed controller to the battery and soldering the switch in-between the two split parts of this wire. Please ensure that the switch connectors are insulated via shrink tube or electric tape and the power cable is long enough so that the switch can fit through the rectangular opening on the back side of the
main_frame
after assembly (see the figure below). - (Optional) Install the ultrasonic sensor through the front grill of the
main_frame
. You can use hot glue to keep it in place if needed. Gently push the connector into a straight position before putting it in place. This will make accessing the connector easier after assembly. Run the dupont cables from the ultrasonic connector all the way back to the rectangular opening on the back side of themain_frame
. - (Optional) Install the orange LEDs for the indicator signals both at front and back of the
main_frame
. You can use hot glue to keep them in place if needed. For each side i.e., left and right, you need to connect the front and back LEDs in parallel. To achieve this, simply connect their positive and negative terminals together respectively. Similar to the ultrasonic sensor cable, run the postive and negative dupont cables from both left and right indicator signals all the way back to the rectangular opening on the back side of themain_frame
where they will connect to their respective indicator signal pins (both +ve and -ve) on the PCB.
Tip: To avoid cluttering and potential grounding mistakes during wiring, it is recommended to form a unified ground loop for the negative terminals of all the LEDs. This simply means running a wire underneath the main_frame
which connects all the negative terminals of the LEDs. This ground loop can then be connected to the Arduino Nano ground pin using a single dupont cable, which is run to the rectangular opening on the back side of the main_frame
.
- (Optional) Install the front LED lamps. You can use hot glue to keep the base in place and screw the lamp into its respective base through the front opening on each side. Connect both front LED lamps in parallel by connecting their positive and negative terminals together respectively. Since these lamps operate on 6V, you can connect them directly to the UBEC output by their positive terminals. Connect the negative terminals to the ground loop (see the tip above). The internal resistance of these LEDs is fairly high so there is no need to add any external resistance. After installing the LED lamps, insert and hot glue the two
front_light_spacers
on each side to lock the LEDs in place. - (Optional) Install the Red LEDs for rear lights. You can use hot glue to keep them in place if needed. Connect all four Red LEDs in parallel; i.e., connect their positive and negative terminals together repectively. The negative terminals will go to the ground, while the positive terminals will be collectively connected to the UBEC output via an appropriate voltage divider (see the next step for details on voltage divider construction).
- (Optional) Install the voltage divider for rear Red LEDs. Most color LEDs (e.g. Red, Orange, Yellow etc.) operate on 2-3V and not the traditional 5V, which is the normal operating voltage of the Arduino Nano. Therefore, a voltage divider is needed in order to operate these LEDs safely. For indicator signals, we already have a built-in voltage divider in our custom PCB. So, you do not need to do anything for using the indicator signal (i.e., orange) LEDs. However, if you choose to add rear light i.e., Red LEDs as well, then an external voltage divider is required for them. We recommend using a variable resistor of 10kΩ or higher for making your voltage divider. Based on your UBEC output voltage (6V in our case), you need to set up a voltage divider with 2-3V output. This can be done by applying the UBEC output on the external ends of the resistor and by turning the screw on its top and monitoring the output voltage using a digital multimeter in between the ground and the middle terminal (see figure below). Once the output voltage of the variable resistance i.e., the voltage divider is set to the appropriate 2-3V range, lock its screw in place using some hot glue and fix its position underneath the
main_frame
in a convenient position. - (Optional) You can also use a single or two separate ON/OFF switches for turning the front and rear LEDs ON and OFF. Please follow instructions in Step 3 to install a switch (or multiple switches) for this purpose.
- Now you are almost done with the wiring of the robot. At this point, take some time to ensure that all wires and connections underneath the
main_frame
are correct and well insulated using either shrink tube or electric tape. Use hot glue to keep any loose wires in place so they do not come in contact with the wheels or any moving parts of the robot after assembly. Make sure all cables from motors, speed controller UBEC, LEDs, and ultrasonic sensor can freely make it out of the rectangular opening on the back side of themain_frame
. - Mount the
phone_mount_bottom
to themain_frame
using two M3x25 screws and nuts. Optionally, you can insert one or morecamera_elevators
in between if you would like to adjust the vertical height of your phone mount. If you use acamera_elevator
you will need M3x35 or longer screws for mounting the phone mount onto themain_frame
. - Insert the
phone_mount_top
and install the spring or rubber band. - Insert the two
side_covers
into their respective slots. - Mount the
main_frame
onto the RC-Truck body using the four mounting pins and their respective screws. Make sure all cable connectors and the power switch for the robot are accessible through the rectangular opening on the back side of themain_frame
for PCB connections. Pull out the battery connector from the triangular opening on the front of themain_frame
. - Mount the PCB with four M3x25 screws and nuts with four
spacers
in between on the back side ofmain_frame
. Mount the Arduino Nano onto the PCB and attach the USB OTG cable to the Arduino Nano's USB port. - Connect the ultrasonic sensor cables to the connector marked "sonar" on the PCB. Make sure the +ve/-ve polarity and the data lines are correctly matched between the sensor and the PCB ports.
- Connect the left and right indicator LED cables to their respective indicator signal connectors on the PCB. Ensure the correct polarity of +ve and -ve LED terminals.
- Connect the UBEC output (+6V) to the Vin pin of the Arduino Nano (optional, Arduino can also be powered by phone), and the UBEC GND to the Arduino GND pin (next to Vin).
- Connect the UBEC output (+6V) to the +ve terminals of the steering servo, the front LED lamps, and the rear Red LEDs through the voltage divider.
- Connect the ground cable of the steering servo to the GND pin of Arduino as well.
- Connect the PWM cable of the throttle servo (from the speed controller) to pin A0 on the Arduino Nano or PCB breakout.
- Connect the PWM cable of the steering servo to pin A1 on the Arduino Nano or PCB breakout. Tip: If you have created a unified ground loop for the LED wiring, then connect the ground loop cable to one of the Arduino GND pins as well. Arduino Nano has three GND pins available. If you have not constructed a ground loop, then make sure that all LEDs, the steering servo, sensors, the Arduino Nano, and the speed controller's UBEC share the same ground with appropriate wiring and connections.
- Connect the battery pack at the front and keep it in place using some velcro or mounting tape. Having the battery at front makes it easily accessible for recharging. This placement also helps with balancing the robot weight when a smartphone is mounted on top.
- Put on the front and back
electronics_covers
. Pull out the USB OTG cable from the rearelectronics_cover
gap for connecting it to an android smartphone.
Flash the Arduino Firmware