3D Printed DIY Remote Controlled Tank With Operati
3D Printed DIY Remote Controlled Tank With Operati
3D Printed DIY Remote Controlled Tank With Operati
by TRDB
I started this project to dive into the world of DIY mechanics, electronics, CAD, 3D printing, and programming. I had the
idea of a 3D printed, remote controlled vehicle with some additional capabilities besides driving because it's always good
to have a speci c goal in mind that you want to achieve. This is the third generation of this project, and it nally reached
a state at which I dare to call it a success. The challenge of this project was to keep it DIY as much as possible: The whole
design was done in Fusion 360, all the mechanical parts were 3D printed at home, and the electronics are selfmade based
on ESP32s as cheap microcontrollers, with some o -the-shelf motor drivers, and sensors. The microcontrollers are not
only used to control the vehicle but are also employed as a remote control using my own code. Have a look at the end of
this instructable for some more video footage of the tank.
This tank has a footprint of 440 mm (length) by 310 mm (width), and it di ers from typical remote-controlled vehicles
due to its additional functions:
Lights: A version of KITT's running light is implemented using RGB LED strips. Headlights and rear lights
automatically turn on based on the track movement, and two bright LEDs can be used as additional
headlights
Clearance from ground: The tank can adjust its main body tilt angle and its clearance from ground
(between around 1.5 to 5 cm) using four linear actuators, and it can auto-level its main body when
standing still
Drive modes: You can choose between fast and slow drive modes, between controlling the tracks using
one or two joysticks, and you can ne-tune the controls (speed levels, interpolated or direct transmission
of control inputs) within the menu of the remote control
Gun: The tank features a fully operational gun with a 16 bullet drum with automatic ring of single bullets
(and the remote control displays the number of remaining bullets). But don't worry, the weapon is only
for show: It's safe to use with very little kinetic energy in the small plastic bullets
Two-directional remote control: The remote control reads and displays the battery status, the connection
quality, and the ammunition status of the tank. Also, it includes safety features such as emergency stop
on connection loss, main motor stop when stalling is detected, and it prevents further operation when
the battery voltage is low
This project can be built using standard equipment for makers (like an FDM 3D printer, a drill, and a soldering iron). I tried
to keep everything as simple and reusable as possible: All parts are connected using standard M3 screws and nuts, up to
the connection between the single track links. No glue and no post-processing of the printed parts are needed.
Nonetheless, it should be noted that this project takes a lot of time for printing, wiring, soldering, calibrating, assembling,
and troubleshooting (of course).
I enjoyed the project a lot, and I learned a lot - and I hope you'll do the same! Feel free to build this project, or use parts of
it in your own projects or as an inspiration to make it better - because there is always room for improvement! Please leave
a comment if something is unclear or if I missed something. I'm happy to help :)
3D Printed DIY Remote Controlled Tank With Operational Gun: Page 1
Supplies:
I only list very general items here, and things that you can very well procure in larger batches. Speci c items are listed in
the single steps.
Tools and devices:
FDM 3D printer, capable of printing PETG and TPU. I used a Prusa i3 MK3S with Prusament PETG ( Jet Black
and Jungle Green) and FilaFlex 40 black TPU lament. You need around 2-3 kg of PETG but less than 500 g
TPU.
Soldering iron, multimeter, and lab power supply
Set of hex keys; get a 2.5 mm ball head hex key
Pillar drill, metal saw, rasp, thread cutter for M3 screws
Wires (0.14 mm² for logic voltage; 0.25 mm² for low-power motors; 2.5 mm² for the track motors; 4 mm²
for battery connections)
Wire stripper, crimping pliers, and equipment for crimping 2.54 mm Dupont connectors
Battery charger for LiPo batteries (3S) and for NiMH batteries (AA)
Bearings:
608 (8x22x7 mm): Get a pack with at least 50 (38 are needed; I chose these 608RS)
605 (5x14x5 mm): Get a pack with 100 (58 are needed; I chose these 605RS)
6802 (15x24x5 mm): 4 pieces are needed (I chose these 6802RS)
683 (3x7x3 mm): 2 pieces are needed (I chose these 683ZZ)
LM6UU linear bearings: 16 are needed
Metal parts: There are literally hundreds of screws that you'll need. Look for online stores that sell them in packs with at
least 100 pieces (as an example: M3x22 is used for the tracks => there are 92 tracks, so get more than 100 from this size). I
opted for metric cylinder head screws that can be driven using a 2.5 mm hex key. A ball head hex key is highly
recommended.
M3x4, M3x6, M3x8, M3x10, M3x12, M3x16, M3x20, M3x22, M3x25, M3x30, M3x35, M3x40, M3x45, M3x50
M3x6 grub screw (8 pieces are required)
M3 standard hex nut (you will need more than 500!)
M3 threaded insert (I used Ruthex 5.7 mm)
Aluminium round bar (6 mm diameter) (several pieces with a length of around 5 to 15 cm required; get 3-
4 m in total and cut them accordingly)
Compression springs (9 x 35 mm). I used springs from this box (you'll need this box twice)
Money: Unfortunately, although I tried to use cheap components, this project can become quite costly. You can buy
many of the required items in larger quantities, meaning that you will be able to use parts of them later on, but if you do
not have them at home yet, you still have to invest this money once. As a rough estimate (based on prices of the
suppliers here in Germany), I spent around 100 € for screws, nuts, and threaded inserts, another 100 € for bearings and
springs, around 100 € for the 10 motors with their motor drivers, 100 € for lament, 100 € for batteries, and somewhere
around 200 to 300 € for the electronics and little stu like LEDs, wires, connectors, ange couplings, lead screws,
aluminium round bars, and so on.
The main body contains the electronics and the batteries of the tank, and it provides the anchor point for the motors and
gearboxes and the whole drive train. It is designed as several individual parts that are assembled using M3 screws and
nuts. Actually, the whole tank was designed in relatively small components that are connected using screws and nuts. I
prefer this design over bigger parts because 1) it minimizes material loss if a print fails, and 2) it harbors the option of
adjusting the layout of a single piece of a large assembly without having to reprint everything. The connections that are
di cult to reach are designed with threaded inserts instead of hexnuts to prevent nuts from falling out of their pockets.
The electronics compartment within the main body includes mounting points for holders on which the electronic
components are mounted. The electronics with their holders are installed in step 4. The battery compartment is located
at the bottom of the tank to lower the center of gravity Also, it is speci cally designed for the 3S LiPo batteries listed
below (closing the battery cover xes the battery packs within the tank). The dimensions need to be adjusted if you want
to use battery packs of a di erent size.
The CAD les for printing are attached to this step. All parts can be printed from PETG. The top frame and the side covers
are needed twice. Required extra parts for the main body:
IMPORTANT: The two batteries are internally wired in parallel to double the capacity. Thus, you have to charge them to
the exact same voltage before putting them into the tank - otherwise, you can destroy them!
View in 3D Download
https://www.instructables.com/FL0/SDZC/LFPEV8IL/FL0SDZCLFPEV8IL.step
View in 3D Download
https://www.instructables.com/FLN/7D3R/LFPEV8IP/FLN7D3RLFPEV8IP.step
View in 3D Download
https://www.instructables.com/F9B/B2PB/LFPEV8IQ/F9BB2PBLFPEV8IQ.step
View in 3D Download
https://www.instructables.com/FJJ/KYVI/LFPEV8IR/FJJKYVILFPEV8IR.step
View in 3D Download
https://www.instructables.com/F1H/4C0N/LFPEV8IS/F1H4C0NLFPEV8IS.step
View in 3D Download
https://www.instructables.com/FS2/5OKH/LFPEV8IT/FS25OKHLFPEV8IT.step
View in 3D Download
https://www.instructables.com/FHN/HFT9/LFPEV8IX/FHNHFT9LFPEV8IX.step
View in 3D Download
https://www.instructables.com/FVX/2P4A/LFPEV8IY/FVX2P4ALFPEV8IY.step
View in 3D Download
https://www.instructables.com/FK6/H5NT/LFPEV8IZ/FK6H5NTLFPEV8IZ.step
View in 3D Download
https://www.instructables.com/F4B/OX0U/LFPEV8J1/F4BOX0ULFPEV8J1.step
The front and rear of the tank contain the main parts of the motor train: The two big 775 brushed DC motors (which are a
bit oversized, to be honest) and a gearbox that comes with a 9:1 gear reduction. The gears were designed with two tricks
to enhance their lifetime: Firstly, the gears are herringbone gears (a type of double-helical gears), which are ideal for
being manufactured by 3D printing because they can be printed as easily as classical spur gears but they run a bit more
silent and, more importantly, they can withstand a larger torque. Secondly, the gears are designed with a hollow core.
The sti ness of the gears is increased by pushing aluminium bars with 6 mm diameter through the center of the gears.
This shaft not only holds the gears in place within the gearbox but it also minimizes bending under load (which is one of
the main reasons for failing of 3D printed gears: bending causes the gear to break because of the mechanically weak line-
to-line connection of FDM prints).
The motors are actively cooled by two computer fans (40x40x10 mm, running on 5 V), and the front assembly includes
two high-power LEDs as optional headlights. Front and rear include RGB LED strips with 11 LEDs per assembly to display
KITT's famous running light. Also, the RGB LED strips are used as headlights and rear lights when the tank is driving. A
photoelectric switch is included in the front and rear compartment. It measures the speed of the drive train, which is
internally used as a safety feature: Motion is automatically stopped when the system detects motor stalling. First, I tried
to play around with a speed control based on a feedback loop with these sensors (maybe with a PID control), but I
realized that I did not get enough counts per second from the sensors to make proper use of such a control. Also, the
motors are so ridiculously strong that the speed literally always matches the PWM duty cycle provided to the motor
drivers, no matter if you drive uphill or not, so I did not continue with this option.
The front assembly includes a motor driver that I had to put there because I ran out of space in the electronics
compartment. This motor driver is responsible for the main motors of the weapon (acceleration wheel motors). Since this
driver only needs to drive them in one direction, you can wire the DIR input of both channels to ground. Both PWM
inputs are merged into one wire that is routed to the µC because the motors should always spin at the same speed. Thus,
one pin of the µC is su cient to run the two motors of the weapon.
In the rear assembly, the supplementary motors of the weapon (responsible for shooting and reloading) are controlled
by a very simple DIY motor driver. For this function, I rst tried to use another (refer to the electronics section to see why
"another") L293D dual-channel motor driver but that did not work out as expected: The supplementary motors needed
to not move at all while powering up, but the L293D driver caused motor twitching during startup until the µC was
actively controlling its pins. I circumvented this issue by building a DIY motor driver with pulldown resistors, and this
solution works decently. For each of the two motors, the DIY driver uses an IRLZ 44N logic level transistor (this transistor
works well with the 3.3 V of the ESP32) with a 22 kOhm pulldown resistor and a 1 kOhm gate resistor, and a 1N 5819
Schottky diode as a free-wheeling diode. A 100 µF capacitor is added to the driver to stabilize the motor supply voltage.
For the assembly of front and rear, it is important to start with the gearboxes. Take the outer and inner frame of the
gearboxes and add the hexnuts and the ball bearings. Secure the hexnuts using some duct tape (to prevent that they fall
out of their pockets). Push the three axle spacers into the bearings and assemble the gears by pushing the aluminium
axles through their center holes. Install the long 34 teeth gear in the inner gearbox frame and push the sensor wheel
onto the aluminium bar. Fix the 34 teeth gear on its aluminium axle using the M3 grub screws. Then, you can install the
DC motor using two M4x10 screws. Prepare the motor gear by reinforcing it with the threaded insert and the internal
screw, and then mount it on the ange coupling. Push the ange coupling onto the motor shaft and install the 36 teeth
to 17 teeth gear between the motor gear and the 34 teeth gear. Add the outer gearbox frame and install the assembly at
3D Printed DIY Remote Controlled Tank With Operational Gun: Page 10
the main body using four M3x50 screws. Add grease to the gears and secure the ange coupling on the motor shaft
using the grub screws that were delivered with the couplings. I replaced the grub screws of the ange couplings with
M3x4 cylinder head screws because they can be tightened with more torque (the grub screws had the tendency to
loosen over time). Also, you can install the inner and outer frame of the idler side using four M3x50 screws.
Next, you can install the photoelectric switch on the gearbox bottom cover using two M3x12 screws and connect the
gearbox bottom cover with the idler bottom cover using two M3x10 screws. Attach the cover at the gearbox and idler
frames using eight M3x6 screws. Align the sensor wheel to be centered within the photoelectric switch and secure it
using two M3 grub screws. Cut the RGB LED strip into two pieces with 11 LEDs each and solder them in series (use
su ciently long wires to lead them through the body of the tank!). Push them into the groove of the two center covers
and install the covers at bottom covers with two M3x10 screws. Be careful not to push the nexnuts into the body of the
tank. Install two side covers in the front and the other two in the rear with four M3x12 screws per side cover.
Install the fans in the top covers with four fan screws each. Assemble the high-power LED headlights by screwing the LED
into its socket and tting the socket into the headlight barrel. Secure it in place with the headlight back cover using an
M3x8 screw and route the wires of the LED through the bottom opening of the back cover and the headlight barrel (this
is done to avoid them from getting caught in the sensor wheel). Install the headlights in the front top cover plates. Install
the front motor driver after adding all wire connections (refer to the attached image) and close the front of the tank using
eight M3x6 screws from top and two M3x12 screws from the front.
Finally, you can install the power switch at the back frame (idler side) and also attach the DIY motor driver at one of the
mounting points at the inner back frame (idler side) after connecting all wires (see the attached image). You can leave the
back cover open since you will have to access this side later on to connect the battery connectors with the electronics of
the tank.
The CAD les for printing are attached to this step. All parts can be printed from PETG. The assembly is required twice; all
parts besides the outer frame (with and without switch), the top cover (with and without headlight cutout), and the
central cover (with and without headlight cutout) are equal for the front and the rear of the tank. The parts for the
headlights (left and right) and the motor driver holder are needed once. Required extra parts for both assemblies:
2x 775 brushed DC motor. The motors I bought are speci ed with 10.000 rpm at 12 V and consume
around 1.1 A at 12 V without any load (estimated stall current: >60 A). I used 2.5 mm² wires to connect
these with their motor driver
6x 608 bearing (8x22x7 mm)
2x 6802 bearing (15x24x5 mm)
2x ange coupling with 5 mm inner diameter . I had issues with the pre-installed M3 grub screws (they
loosened over time) and replaced them by M3x4 screws.
2x aluminium roundbar (6 mm diameter, 116 mm length)
2x aluminium round bar (6 mm diameter, 49 mm length)
2x 40x40x10 mm DC fan (5 V) with four fan screws per fan
2x photoelectric sensor
1x WS2812 RGB LED strip (5 V, 100 LED/m). 11 LEDs are needed per assembly, so 22 in total
2x 2 W LED with 2x E10 bulb socket. Note: I had these LEDs at hand, which are designed to work at 6 V.
Thus, I needed another DC-DC converter in the electronics compartment. If you can nd LEDs operating
at 5 V, then go for those
1x Cytron MDD3A dual-channel DC motor driver. 0.25 mm² wires are used to connect to power and the
motors; 0.14 mm² are used for logic connections
1x selfmade dual-channel DC motor driver (2x IRLZ 44N Mosfet, 1x 63V/100 µF capacitor, 2x 1N 5819
Schottky diode, 2x 22 kOhm pulldown resistor, 2x 1 kOhm gate resistor, 2.54 mm pitch pins, 1x
breadboard). 0.25 mm² wires are used to connect to power and the motors; 0.14 mm² are used for logic
connections. The circuit sketch shows one channel of this driver: you have to duplicate it
1x mechanical on/o switch (Marquardt 01801.2106-01; 19.4 x 13 mm cutout dimensions)
3D Printed DIY Remote Controlled Tank With Operational Gun: Page 11
4x M4x10 screws
8x M3x6 grub screws
32x M3x6 screws
14x M3x8 screw
10x M3x10 screw
32x M3x12 screw
2x M3x22 screw
8x M3x50 screw
96x M3 hexnut
14x M3 threaded insert
View in 3D Download
https://www.instructables.com/FDJ/G9YT/LFQUC682/FDJG9YTLFQUC682.step
View in 3D Download
https://www.instructables.com/F7F/6PZR/LFQUC683/F7F6PZRLFQUC683.step
View in 3D Download
https://www.instructables.com/F2W/CEKF/LFQUC684/F2WCEKFLFQUC684.step
View in 3D Download
https://www.instructables.com/FA4/J253/LFQUC685/FA4J253LFQUC685.step
View in 3D Download
https://www.instructables.com/FVG/N0B8/LFQUC686/FVGN0B8LFQUC686.step
View in 3D Download
https://www.instructables.com/FUF/4LDQ/LFQUC687/FUF4LDQLFQUC687.step
View in 3D Download
https://www.instructables.com/FJ5/SZZ1/LFQUC688/FJ5SZZ1LFQUC688.step
View in 3D Download
https://www.instructables.com/F47/01WQ/LFQUC689/F4701WQLFQUC689.step
View in 3D Download
https://www.instructables.com/FJF/6OC8/LFQUC68B/FJF6OC8LFQUC68B.step
View in 3D Download
https://www.instructables.com/FEX/ESPB/LFQUC68C/FEXESPBLFQUC68C.step
View in 3D Download
https://www.instructables.com/FZ3/VS50/LFQUC68D/FZ3VS50LFQUC68D.step
View in 3D Download
https://www.instructables.com/FK4/C3HO/LFQUC68E/FK4C3HOLFQUC68E.step
View in 3D Download
https://www.instructables.com/F51/9SWR/LFQUC68F/F519SWRLFQUC68F.step
View in 3D Download
https://www.instructables.com/FZM/8508/LFQUC68G/FZM8508LFQUC68G.step
View in 3D Download
https://www.instructables.com/FPJ/2PLL/LFQUC68H/FPJ2PLLLFQUC68H.step
View in 3D Download
https://www.instructables.com/FPW/G6KA/LFQUC6CO/FPWG6KALFQUC6CO.step
View in 3D Download
https://www.instructables.com/FQ1/8GCS/LFQUC68I/FQ18GCSLFQUC68I.step
View in 3D Download
https://www.instructables.com/FMH/2SJE/LFQUC68J/FMH2SJELFQUC68J.step
View in 3D Download
https://www.instructables.com/F9W/QL7B/LFQUC68L/F9WQL7BLFQUC68L.step
View in 3D Download
https://www.instructables.com/FBH/ZHJC/LFQUC68M/FBHZHJCLFQUC68M.step
View in 3D Download
https://www.instructables.com/F4A/31UM/LFQUC68N/F4A31UMLFQUC68N.step
View in 3D Download
https://www.instructables.com/FNB/0O9S/LFQUC68O/FNB0O9SLFQUC68O.step
View in 3D Download
https://www.instructables.com/FH6/GEZO/LFQUC68P/FH6GEZOLFQUC68P.step
The linear actuators move the chain wheel units up and down, which provides the tank with the capability to adjust its
clearance from ground and its tilt angle. The actuators are a part of the main body of the tank, and they need to be
calibrated individually in order be fully operational. They provide a direct readout of their current position using a
potentiometer, and due to the poor linearity of the analog digital converters of the ESP32, the analog readout over the
full height range rst needs to be recorded once for every actuator. This data is used to write a correction function that is
applied on the raw readings of every actuator. It is important to assemble and add the actuators prior to installing the
main electronics (makes wiring easier), and you'll have to write your own piece of code to test them and run the
View in 3D Download
https://www.instructables.com/FVK/O5T5/LFPEV5YU/FVKO5T5LFPEV5YU.step
View in 3D Download
https://www.instructables.com/FPI/53PI/LFPEV5YV/FPI53PILFPEV5YV.step
View in 3D Download
https://www.instructables.com/FUP/7HIN/LFPEV5YW/FUP7HINLFPEV5YW.step
View in 3D Download
https://www.instructables.com/FYH/LQ32/LFPEV5YX/FYHLQ32LFPEV5YX.step
View in 3D Download
https://www.instructables.com/F1T/YFN3/LFPEV5YY/F1TYFN3LFPEV5YY.step
View in 3D Download
https://www.instructables.com/FAG/EP41/LFPEV5Z1/FAGEP41LFPEV5Z1.step
View in 3D Download
https://www.instructables.com/FFQ/FZ9B/LGZ4YC35/FFQFZ9BLGZ4YC35.step
View in 3D Download
https://www.instructables.com/FEO/9A5V/LGZ4YC36/FEO9A5VLGZ4YC36.step
View in 3D Download
https://www.instructables.com/FYG/7XU1/LGZ4YC33/FYG7XU1LGZ4YC33.step
View in 3D Download
https://www.instructables.com/F5M/DL6U/LGZ4YC34/F5MDL6ULGZ4YC34.step
Step 4: Electronics
First of all, you need to be warned that I'm not an electrician. However, I had to (and wanted to) customize the electronics
of the tank to a certain extent compared to the options provided by typical RC transmitters and receivers to implement
the functions that the tank should have. I am very certain that the solutions that I developed are far from ideal, but so far
they work: The tank is controlled by two ESP32 microcontrollers, of which one ("primary") acts as a receiver for the
remote control, and the other ("secondary") receives commands from the primary controller. This concept enables the
primary controller to control driving, lights, the weapon, read sensor inputs, and communicate bidirectionally with the
ESP32 in the remote control. The secondary controller is responsible for the height and tilt adjustment, including an
automatic tilt compensation using an MPU6050 accelerometer. Special thanks go to StudioPieters for their overview and
description of the pins and options of the ESP32, which was a great help in identifying which pin can be used for which
input or output.
I used a CNC mill to manufacture single-layer PCBs that carry many of these components. Note that this is not needed; a
breadboard can be used as well. However, the holders for the electronics are designed to match the mounting holes of
these custom PCBs. You need to modify the holders for varying sizes of customized breadboards. Also, I had to add some
modi cations to the electronics on the y after milling and soldering everything onto the PCB. For example, I realized
that the outputs of the microcontroller that connect to the motor driver for the track motors require an external
pulldown resistor to prevent motor twitching during startup (before the pin is actively set to a logical low by the sketch
that is running on the controller). Long story short: I didn't share these les because now I would design them di erently
anyway. However, I provide sketches of the circuits of the PCBs so that you can build your own breadboards/PCBs.
I did not include the wiring toward the logic level converters and the external motor drivers in these circuit sketches to
keep them simple. The Cytron MDD20A can be operated directly with inputs from the ESP32 since 3.3 V are su cient for
this driver to read a logical high. However, as mentioned, make sure to add a pulldown resistor (e.g., 10 kOhm) to its
PWM inputs to prevent the tank from moving involuntarily during startup. The same holds true for the Cytron MDD3A for
the weapon. These pulldown resistors are already included in the DIY motor drivers for the supplementary weapon
motors, meaning that you can directly wire those. The motor drivers for the linear actuators are connected using logic
level converters (3.3 V -> 5 V) because I noticed issues when trying to operate the L293D drivers at 3.3 V. I changed the
wiring to these L293D drivers compared to their standard layout: Their enable pins are directly connected to 5 V, and the
two input channels per motor are each connected to a PWM output of the secondary ESP32. Thus, only two µC pins are
needed per channel of an L293D. You do not need pulldown resistors on those.
An important safety and control feature that I wanted to use in this tank is a proper on/o switch. RC cars can be
designed more simple by directly plugging the battery connectors into the power connectors of the motor drivers
without a mechanical switch between them. The reason why one would use this approach is simple: The motors can
draw large currents, which can easily exceed 50 A, and mechanical switches that are rated for such a high current are also
View in 3D Download
https://www.instructables.com/FST/9BBN/LG54QJM8/FST9BBNLG54QJM8.step
View in 3D Download
https://www.instructables.com/FIT/XOJI/LG54QJM9/FITXOJILG54QJM9.step
View in 3D Download
https://www.instructables.com/FVX/9K2R/LG54QJMA/FVX9K2RLG54QJMA.step
View in 3D Download
https://www.instructables.com/F4Q/WFG8/LG54QJMB/F4QWFG8LG54QJMB.step
View in 3D Download
https://www.instructables.com/FJ4/ALWO/LG54QJMC/FJ4ALWOLG54QJMC.step
View in 3D Download
https://www.instructables.com/FZQ/8EHI/LG54QJMD/FZQ8EHILG54QJMD.step
View in 3D Download
https://www.instructables.com/FLP/NI8M/LG54QJME/FLPNI8MLG54QJME.step
View in 3D Download
https://www.instructables.com/FWW/WJCX/LG54QJMF/FWWWJCXLG54QJMF.step
Download
https://www.instructables.com/FRW/KFIL/LHW03C06/FRWKFILLHW03C06.ino
The chain wheel units carry the weight of the tank, and they are connected to the linear actuators that enable the
adjustment of the tilt angle of the main body and also its clearance from ground. They feature two chain wheels at their
bottom, which are interconnected but can rotate some degrees to increase the exibility of the tracks. The upper side of
each chain wheel unit harbors one chain wheel, which is used as a tensioner for the tracks. You will need four chain wheel
units in total.
First, you have to assemble all the chain wheels (608 bearings with outer and inner sides, interconnected using the hubs
of the lower chain wheel unit and the upper chain tensioner. Then, the chain wheel carrier is connected with the hubs of
the lower chain wheels, and the whole setup is xed at the suspension bracket. Prepare the aluminium bars and push
them through the body connector. You can already x the outer (shorter) aluminium bars, but do not tighten the screws
for the inner (longer) aluminium bars yet. Add the compression springs onto the aluminium bars and place the chain
wheels on the aluminium bars. Now, you have to align the inner aluminium bars to set the maximum travel of the
suspension: Add the spring endstop onto the inner aluminium bars and position them so that the suspension has an
extended length of 20 mm (maximum). Then, you can tighten the inner aluminium bars and the chain wheel unit is ready.
Please note that you should only place one spring endstop at the chain tensioner (upper chain wheel) to avoid the
aluminium bar from touching the chain (see image with mounted chain wheel units).
The CAD les for printing are attached to this step. All parts can be printed from PETG. Required extra parts per chain
wheel unit (four units are needed in total):
2x aluminium round bar (6 mm diameter, 63 mm length)
2x aluminium round bar (6 mm diameter, 102 mm length), with M3 inner threads at their bottom and top
sides
6x compression spring (9 mm diameter, 35 mm length)
6x 608 bearing (8x22x7 mm)
2x 605 bearing (5x14x5 mm)
18x M3x4 screw
3x M3x6 screw
8x M3x12 screw
2x M3x16 screw
1x M3x30 screw
3x M3x35 screw
4x M3x40 screw
36 M3 hexnuts
View in 3D Download
https://www.instructables.com/FBV/CQXF/LFNZO3VA/FBVCQXFLFNZO3VA.step
View in 3D Download
https://www.instructables.com/F1Z/686A/LFNZO3VB/F1Z686ALFNZO3VB.step
View in 3D Download
https://www.instructables.com/FGK/FL32/LFNZO3VC/FGKFL32LFNZO3VC.step
View in 3D Download
https://www.instructables.com/FCK/JM0W/LHW03CSD/FCKJM0WLHW03CSD.step
View in 3D Download
https://www.instructables.com/FN1/GI11/LFNZO3VD/FN1GI11LFNZO3VD.step
View in 3D Download
https://www.instructables.com/FC9/IPFI/LFNZO3VE/FC9IPFILFNZO3VE.step
View in 3D Download
https://www.instructables.com/FYM/L2PV/LFNZO3VF/FYML2PVLFNZO3VF.step
View in 3D Download
https://www.instructables.com/FO0/FVTJ/LFNZO3VH/FO0FVTJLFNZO3VH.step
View in 3D Download
https://www.instructables.com/FEN/L6YU/LFNZO3VI/FENL6YULFNZO3VI.step
View in 3D Download
https://www.instructables.com/FJT/7VBE/LFNZO3VJ/FJT7VBELFNZO3VJ.step
View in 3D Download
https://www.instructables.com/FD3/WJI2/LFNZO3VK/FD3WJI2LFNZO3VK.step
View in 3D Download
https://www.instructables.com/FDG/68FW/LFNZO3VL/FDG68FWLFNZO3VL.step
View in 3D Download
https://www.instructables.com/FL5/H2TI/LFNZO3VM/FL5H2TILFNZO3VM.step
The sprockets that drive the tracks are designed as epicyclic gearboxes. They feature a detachable cover because it's
really nice to see the gearbox do its job but the gears degrade very quickly if it is operated openly: The printed gears do
not like dust and tiny stones at all. Thus, the gearbox can be closed to increase its lifetime. This gearbox includes a 4:1
gear reduction ratio (together with the inner gearbox, the total transmission ratio between motor and sprocket is 36:1). It
is driven by the sun gear that protrudes from the main body of the tank. The planets of the gearbox are xed, and the
hollow gear acts as the chain sprocket with its 12 teeth. Every gear of the epicyclic gearbox was designed with a module
of 1, and the number of teeth per gear (sun: 12; planets: 18; hollow: 48) was chosen to enable a 120° angle between the
planets.
The hollow gear is centered on the planet carrier using three ball bearings that run in slots within the hollow gear, and
the screws that run through the planets attach the sprockets to the main body of the tank. The whole component is
designed to be attachable after the main body has been completed, and therefore also enables a simple replacement of
single gears in case of wear and tear.
First, the hollow gear needs to be assembled. Print the outer and the inner gear ring and the central tooth ring. They can
3D Printed DIY Remote Controlled Tank With Operational Gun: Page 49
be screwed together using four M3x25 screws and four M3 hexnuts. Further, the threaded inserts for the outer and inner
caps need to be added to the gear rings using a soldering iron. Then, the inner cap can be screwed onto the inner gear
ring using four M3x8 screws.
Next, the planet carrier has to be prepared. Push three M3x35 screws through the holes that are attached to the longer
shafts of the outer part of the planet carrier, and push one 605 ball bearing (5x14x5 mm) on each screw together with the
little printed bearing spacers (two per bearing, therefore six in total). Then, you can t the outer part of the planet carrier
into its nal position from the outside of the sprocket with the 605 bearings within the slot of the hollow gear. Prepare
the three planet gears by pushing one ball bearing per side into the gears, and don't forget their internal spacer (the
friction will increase a lot if this spacer is not added). Add three M3x50 screws to the outer part of the planet carrier, and
push the planets onto the screws (the side with the ball bearing being deeper inside the gear needs to face the outside of
the gearbox).
In the next step, you can push the inner part of the planet carrier into place and x it by adding three M3 hexnuts and
tightening the M3x35 screws. Don't forget to add some grease to the gears before pushing the sprockets onto the sun
gears that protrude from the main body of the tank, and tighten the gearbox to the body using the three M3x50 screws.
Do not overtighten these screws as that will increase the friction signi cantly. Now it's up to you whether you want to
seal the gearbox using the outer cap or not. In case you want, you can do that equally to the inner cap using four M3x8
screws.
You need to prepare this sprocket four times. Only two of them are actively driven by a motor (one per side), but for the
sake of symmetry, the front and back are designed identical on each side of the tank. Also, you can consider that as a
measure to create redundancy: If gears on the driven sprocket fail, this sprocket can be readily exchanged with the idler
sprocket. The CAD les for printing are attached to this step. All parts can be printed from PETG. Required extra parts per
sprocket:
9x 605 ball bearing (5x14x5 mm)
8x M3x8 screw
4x M3x25 screw
3x M3x35 screw
3x M3x50 screw
8x M3 threaded insert
7x M3 hexnut
Download
https://www.instructables.com/FZI/FTR3/LGC9YC1S/FZIFTR3LGC9YC1S.step
Download
https://www.instructables.com/FFQ/P1VS/LGC9YC1T/FFQP1VSLGC9YC1T.step
Download
https://www.instructables.com/FI2/20CQ/LGC9YC1U/FI220CQLGC9YC1U.step
Download
https://www.instructables.com/FKE/HMCX/LGC9YC1V/FKEHMCXLGC9YC1V.step
Download
https://www.instructables.com/F5I/3CBR/LGC9YC1W/F5I3CBRLGC9YC1W.step
Download
https://www.instructables.com/FVH/JUCL/LGC9YC1X/FVHJUCLLGC9YC1X.step
Download
https://www.instructables.com/FM8/8RVR/LGC9YC1Y/FM88RVRLGC9YC1Y.step
Download
https://www.instructables.com/FOP/EY2P/LGC9YC1Z/FOPEY2PLGC9YC1Z.step
View in 3D Download
https://www.instructables.com/F0A/Y9MD/LGC9YC20/F0AY9MDLGC9YC20.step
The tracks are 3D printed from PETG and feature a tread made from TPU to improve traction on smooth surfaces. The
sprocket grips the tracks in their central indentation, and the two grooves at the edges are used to center the tracks on
the chain wheels.
Each link consists of three main printed parts. The tracks are 40 mm in width and a single link has a length of 20 mm. They
are assembled using one M3 hexnut and one M3x22 cylinder head screw per link. The joint is formed by the printed pin
and the next track (plastic gliding on plastic) with the screw xing the printed pin. I chose this design to prevent the
screw from unscrewing itself and so far it works well. Please note that an overtightening of the screw will increase the
friction of the joints between the chain links signi cantly.
The treads are tted into grooves within the main parts of the tracks, which enables them to be easily replaced if needed
but still prevent them from being ripped o when high torque is acting on the track. The treads need to be printed as two
separate pieces per link to enable a simple (dis)assembly of the nal tracks. You can adjust the height of the treads
depending on the use case. For instance, reducing the tread height decreases the forces acting on the tracks when
operating the tank on carpet. I did not attempt serious o road applications of the tank because it is not sealed against
dust and dirt.
The tank requires 47 tracks per side; thus, you need 92 tracks in total, which also means that you will need 92 screws and
nuts. I printed the tracks with their bottom side facing upward, which did work out well without requiring any support.
Printing a single chain link takes a bit less than 1 h, so be aware that printing the full tracks will take quite some time. The
CAD les for printing are attached to this step. The treads need to be printed from TPU. All other parts can be printed
from PETG. Required extra parts per chain link of the track:
1x M3x22 screw
1x M3 hexnut
View in 3D Download
https://www.instructables.com/FGL/PBUR/LFJYW1UL/FGLPBURLFJYW1UL.step
View in 3D Download
https://www.instructables.com/FSE/T8U6/LFJYW1UM/FSET8U6LFJYW1UM.step
View in 3D Download
https://www.instructables.com/F57/IOFD/LFJYW1UN/F57IOFDLFJYW1UN.step
View in 3D Download
https://www.instructables.com/F33/Q3GK/LFJYW1UO/F33Q3GKLFJYW1UO.step
Step 8: Weapon
The weapon of the tank is designed on the top cover of the tank. If you prefer to build a simple tracked vehicle without
the capability of shooting, you can skip this part and only print a plain top cover (the CAD le for that is provided below).
This gun is not powerful; it can shoot a distance of about 3-4 m, and stopping a bullet with your hand does not hurt. It is
meant as a proof of concept. The main challenge was to design a fully 3D printed shooting mechanism that would
actually work. The weapon is xed on the tank and it cannot be rotated or tilted (because I ran out of pins of the µC...).
However, you can slightly change the weapon tilt angle (default: 5°) by tilting the main body of the tank.
3D Printed DIY Remote Controlled Tank With Operational Gun: Page 62
The gun uses 3D printed bullets that are accelerated between two spinning wheels. This design was inspired by Markus
Purtz's Nerf dart launcher, although I deviated from that design regarding the bullets and the loading mechanism. I
wanted to use printed bullets, and neither did I want to rely on gravity to reload the gun, nor did I trust springs due to the
somewhat unpredictable friction of 3D printed parts. Hence, I designed and built a mechanism that actively pushes
single bullets (bullet by bullet) between the acceleration wheels. The concept is kind of based on the drum of a revolver.
The drum has slots for eight bullets, but I wanted to have a larger capacity than only eight shots. Therefore, my design
features a second row of bullets within the drum, which results in total capacity of 16 shots.
Shooting of the gun is done fully automatically: Upon "pulling the trigger" at the remote control, a conveyor belt pushes
a bullet between the acceleration wheels so that it is red. The system recognizes that a shot has been red and forwards
this information to the remote control, which displays the remaining ammunition. When having red both rows of a slot
position of the drum, the drum rotates by an increment so that the next slot with its two bullets is engaged. With this
algorithm, the tank can shoot all its 16 bullets without any manual interference (unless there is an issue causing the
weapon to become jammed). Both the conveyor belt and the drum are moved by little N20 brushed DC motors with
included gearboxes, and sensors are used to detect the position of drum and belt. The acceleration wheels are powered
by another pair of brushed DC motors.
Reloading an empty clip of the gun has to be done manually (pushing a bullet into the drum and rotating the belt pulley
with a hex key), and after reloading the drum with bullets, the remote control is used to update the tank with the
information that its ammunition is full again. The remaining ammunition count is stored within the ash memory of the
µC so that switching the tank o and on with partially emptied clip is possible: The currently remaining number of bullets
will be retrieved from the ash memory upon switching on the tank.
I tried to design, build and program the weapon mechanism as sturdy as possible, but due to gearbox backlash, inertia of
belt and drum, and the tolerances of the printed parts, there is the risk of a bullet becoming stuck somewhere within the
mechanism, which may cause a motor to stall. Therefore, the code for the weapon control includes a safety feature: If the
code snippet for ring is not completed within 3 s, all weapon motors are automatically switched o to prevent damage
due to overheating of stalled motors, and the weapon error is displayed by the remote control. If the weapon is jammed,
it can be reset by the remote control using the reloading option. Note that the bullet count will then be reset to full since
jamming means that the actual number of bullets is unknown to the system (it does not know where the jamming
occurred, and if it occurred prior or post shooting the bullet).
The weapon is built by rst assembling the acceleration wheel motors with their clamps. Mount them onto the base
plate, and install the belt with the idler at the clamp. Then, you can prepare the drum with its insert: Make sure to x the
drum insert tightly on the aluminium round bar and put it between the two drum parts before securing them using the
screws. Assemble the drum frames with the 605 bearings and their inserts and attach the drum frame around the drum
using their front and back covers. Make sure that the drum frame spacers (the round bars) match the distance between
the drum frames to minimize friction (depending on the tolerances of your printed parts, you can increase their size, or
grind a bit o to t them between the drum frame parts. Attach the drum with its frame on the base plate and push the
belt through the drum.
Next, you can add the limit switch and the drum motor after assembling them with their mounting parts. Use the slots in
the base plate to align them appropriately: there should be as little backlash as possible between the drum and the spur
gear of the drum motor (but not too much friction either), and the limit switch should be triggered clearly (audible
"clicking") by the protruding pins of the drum when rotating it. Finally, you can assemble the belt pulley axle as shown in
the images, push the belt onto the pulley, and secure the assembly on top of the back of the base plate. Use the slots in
the base plate to adjust the tension of the belt. If the belt tension is too low, the belt pulley will skip without moving the
belt. You will notice some bending of the base plate when increasing the tension of the belt. This issue is resolved once
the base plate is mounted on the main body of the tank.
The CAD les for printing are attached to this step. The belt needs to be printed from TPU. All other parts can be printed
from PETG. Parts that need to be printed twice: acceleration wheel, belt idler, drum frame insert (left), drum frame insert
(right), drum frame left, drum frame right. Parts that need to be printed four times: drum back spacer, motor spacer. If
View in 3D Download
https://www.instructables.com/F03/G4V4/LGC9XKXV/F03G4V4LGC9XKXV.step
View in 3D Download
https://www.instructables.com/FCY/S2MC/LGC9XKXW/FCYS2MCLGC9XKXW.step
View in 3D Download
https://www.instructables.com/FDM/GZ2S/LGC9XLAP/FDMGZ2SLGC9XLAP.step
View in 3D Download
https://www.instructables.com/FGN/VZB0/LGC9XKXX/FGNVZB0LGC9XKXX.step
View in 3D Download
https://www.instructables.com/FAP/FL87/LGC9XKXY/FAPFL87LGC9XKXY.step
View in 3D Download
https://www.instructables.com/FPA/57DW/LGC9XKXZ/FPA57DWLGC9XKXZ.step
View in 3D Download
https://www.instructables.com/FXO/KU84/LGC9XKY0/FXOKU84LGC9XKY0.step
View in 3D Download
https://www.instructables.com/FXJ/V6C5/LGC9XKY1/FXJV6C5LGC9XKY1.step
View in 3D Download
https://www.instructables.com/FJ8/5VHZ/LGC9XKY2/FJ85VHZLGC9XKY2.step
View in 3D Download
https://www.instructables.com/F1Q/FDED/LGC9XKY4/F1QFDEDLGC9XKY4.step
View in 3D Download
https://www.instructables.com/FHF/D24O/LGC9XKY5/FHFD24OLGC9XKY5.step
View in 3D Download
https://www.instructables.com/FJO/NCNP/LGC9XKY6/FJONCNPLGC9XKY6.step
View in 3D Download
https://www.instructables.com/F4S/DK0Q/LGC9XKY7/F4SDK0QLGC9XKY7.step
View in 3D Download
https://www.instructables.com/F8O/OIXF/LGC9XKY8/F8OOIXFLGC9XKY8.step
View in 3D Download
https://www.instructables.com/F2R/7P5H/LGC9Y7VS/F2R7P5HLGC9Y7VS.step
View in 3D Download
https://www.instructables.com/FDK/4BSA/LGC9XKY9/FDK4BSALGC9XKY9.step
View in 3D Download
https://www.instructables.com/F13/OJRR/LGC9XKYA/F13OJRRLGC9XKYA.step
View in 3D Download
https://www.instructables.com/FCE/DJMJ/LGC9XKYB/FCEDJMJLGC9XKYB.step
View in 3D Download
https://www.instructables.com/F61/Y4J1/LGC9XKYC/F61Y4J1LGC9XKYC.step
View in 3D Download
https://www.instructables.com/FLD/4AT1/LGC9XKYD/FLD4AT1LGC9XKYD.step
View in 3D Download
https://www.instructables.com/FRO/M30Q/LGC9XKYE/FROM30QLGC9XKYE.step
View in 3D Download
https://www.instructables.com/F54/95F1/LGC9XW7J/F5495F1LGC9XW7J.step
View in 3D Download
https://www.instructables.com/F1V/9W0U/LGC9XW7I/F1V9W0ULGC9XW7I.step
View in 3D Download
https://www.instructables.com/FDJ/S7RR/LGC9XKYG/FDJS7RRLGC9XKYG.step
View in 3D Download
https://www.instructables.com/FI7/1L0W/LGC9XKYH/FI71L0WLGC9XKYH.step
View in 3D Download
https://www.instructables.com/FDE/ZQWX/LGC9XKYI/FDEZQWXLGC9XKYI.step
View in 3D Download
https://www.instructables.com/FK1/ULLU/LGC9XKYJ/FK1ULLULGC9XKYJ.step
View in 3D Download
https://www.instructables.com/F7C/ABQD/LGC9XKYK/F7CABQDLGC9XKYK.step
View in 3D Download
https://www.instructables.com/FQN/LU4K/LGC9XKYL/FQNLU4KLGC9XKYL.step
View in 3D Download
https://www.instructables.com/FKO/6U3X/LGC9XKYM/FKO6U3XLGC9XKYM.step
View in 3D Download
https://www.instructables.com/FTL/2RUP/LGC9XKYO/FTL2RUPLGC9XKYO.step
View in 3D Download
https://www.instructables.com/F3T/BF78/LGC9XKYP/F3TBF78LGC9XKYP.step
View in 3D Download
https://www.instructables.com/F45/8UCS/LGC9XKYQ/F458UCSLGC9XKYQ.step
View in 3D Download
https://www.instructables.com/FSO/GGQ6/LGC9XKYR/FSOGGQ6LGC9XKYR.step
View in 3D Download
https://www.instructables.com/FAX/SI2F/LGC9XKYS/FAXSI2FLGC9XKYS.step
View in 3D Download
https://www.instructables.com/FG5/R21I/LGC9XKYT/FG5R21ILGC9XKYT.step
View in 3D Download
https://www.instructables.com/FFS/VGLX/LGC9XKYU/FFSVGLXLGC9XKYU.step
View in 3D Download
https://www.instructables.com/FCA/XIHE/LGC9XKYV/FCAXIHELGC9XKYV.step
View in 3D Download
https://www.instructables.com/FIU/48SH/LGC9XKYW/FIU48SHLGC9XKYW.step
View in 3D Download
https://www.instructables.com/F70/4QM0/LGC9XKYX/F704QM0LGC9XKYX.step
View in 3D Download
https://www.instructables.com/F1S/VFY1/LGC9XKYY/F1SVFY1LGC9XKYY.step
View in 3D Download
https://www.instructables.com/F33/2SIQ/LGC9XKYZ/F332SIQLGC9XKYZ.step
View in 3D Download
https://www.instructables.com/FWX/K4B3/LGC9XKZ0/FWXK4B3LGC9XKZ0.step
View in 3D Download
https://www.instructables.com/FUY/3A8E/LGC9XKZ1/FUY3A8ELGC9XKZ1.step
View in 3D Download
https://www.instructables.com/FR2/8BRJ/LGDPCTFX/FR28BRJLGDPCTFX.step
View in 3D Download
https://www.instructables.com/F70/ZFNA/LGDPCTFY/F70ZFNALGDPCTFY.step
The remote control is used to control the tank wirelessly via WiFi. I opted for a custom solution to be able to get feedback
from the tank, and to customize the possible controls and settings. Thus, the remote control is based on an ESP32 that
connects to the tank using ESP-Now, it contains an LCD display, and the input and control options can be adjusted within
a little selection menu. Similarly to the electronics of the tank, I used a CNC-milled single-layer PCB, but it can be built by
a simple breadboard as well.
Six 1.2 V NiMH batteries are used to power the remote control, which results in a su ciently high voltage to power the
buck converters that generate 5 V DC and 3.3 V DC for the di erent components of the remote control. The LCD display
3D Printed DIY Remote Controlled Tank With Operational Gun: Page 76
uses an I2C interface and requires 5 V logic voltage. Hence, a logic level converter is used between the µC and the
display. The switches are connected to ground and a digital pin of the µC and therefore use the internal pull-up resistors
of the ESP32. The rest of the electronic components runs on the same logic level voltage as the ESP32 (3.3 V). A voltage
divider is included that enables a readout of the battery voltage (8.2 V equals fully charged batteries, and 6.8 V was set as
a threshold for the low battery error).
The remote control uses a longer code than both ESP32s of the tank, which is due to all the code snippets required for
the di erent pages of the LCD display. The remote control shows the status of the tank as well as the settings of the
remote control (refer to the attached photographs for more detailed information on the display). Using the rotary
encoder, the menu of the remote control can be entered, which allows the user to adjust, e.g., speed levels for slow and
fast modes, or to switch between two-joystick control or single-joystick control for driving. The di erent settings are
stored in the ash memory of the ESP32, which means that the settings are permanently saved and are restored upon
switching the remote control o and on.
The case of the remote control consists of two main parts, bottom and top. The di erent electronic components are
attached either at the top or at the bottom part. Thus, you need to ensure that the wire connections are su ciently long
to attach everything while the remote control is still open. When closing the case, you do still have access to the ESP32
for programming by removing the cover in the front. Equally, the batteries can be replaced by removing the battery
cover at the bottom.
The CAD les for printing are attached to this step. All parts can be printed from PETG. Also, the pin list for the ESP32 and
its sketch (as a .ino le) are attached. Required extra parts:
6x rechargeable NiMH AA batteries with a battery holder to connect them in series (voltage: 8.2 V (fully
charged) to 6.8 V (my safety threshold for "empty")
1x ESP32 development board (38 pin version)
2x LM2596S DC-DC buck converter (step down converter)
1x bidirectional four channel logic level converter (3.3 V <-> 5 V)
1x LCD display (20x4, I2C connection)
1x rotary encoder
1x potentiometer (10 kOhm, linear, 6 mm shaft; Omeg PC20BU)
2x switch (Marquardt 01821.6101-00), 1x mechanical power switch (Marquardt 01801.2106-01)
Capacitor for voltage stabilization (10 µF) and resistors for voltage divider: 1x 22 kOhm, 1x 47 kOhm
2x M3x4 screw
2x M3x6 screw
10x M3x10 screw
4x M3x20 screw
2x M3x25 screw
8x M3x35 screw
6x M3x40 screw
30x M3 hexnut
4x M3 threaded insert
View in 3D Download
https://www.instructables.com/FG1/6ST8/LGC9YEC5/FG16ST8LGC9YEC5.step
View in 3D Download
https://www.instructables.com/F1X/V1LF/LGC9YEC6/F1XV1LFLGC9YEC6.step
View in 3D Download
https://www.instructables.com/FHU/CBZ2/LGC9YEC7/FHUCBZ2LGC9YEC7.step
View in 3D Download
https://www.instructables.com/FQF/DXPA/LGC9YEC8/FQFDXPALGC9YEC8.step
View in 3D Download
https://www.instructables.com/F9T/BDIP/LGC9YEC9/F9TBDIPLGC9YEC9.step
View in 3D Download
https://www.instructables.com/FH5/NDS7/LGC9YECA/FH5NDS7LGC9YECA.step
View in 3D Download
https://www.instructables.com/FBP/KFJ7/LGC9YECB/FBPKFJ7LGC9YECB.step
Download
https://www.instructables.com/FGY/U4SV/LGC9YEP0/FGYU4SVLGC9YEP0.ino
The videos show the tank in operation. The bidirectional communication between the remote control and the tank
means that both can show whether there is a stable connection or not. The tank blinks its RGB LEDs in red if the remote
control is not switched on or if the signal is lost. This safety feature does not only work during startup, but also during
operation: The tank stops driving when the connection to the remote control is lost. The remote control indicates the
status of the tank (battery voltage, ammunition) and also indicates when the connection is lost.
Further, the videos show the height and tilt adjustments of the tank, and how the automatic tilt compensation works. The
suspension of the tank works quite well, despite the fact that it only consists of springs but not of hydraulic or pneumatic
shock absorbers. To this end, the interpolated drive mode helps a lot: It dampens abrupt speed changes, which avoids
excessive bouncing forth and back upon fast accelerations and braking. Additionally, the fast drive mode reduces the
maximum height of the tank. This function was also implemented to reduce the e ect of fast accelerations and braking.
The accuracy of the weapon is not very good, which is probably due to the bad tolerances of the printed acceleration
wheels that grip the bullets sometimes better and sometimes worse. You could play around with the diameter of the
barrel to see whether that increases the accuracy. However, it could also reduce the bullet speed signi cantly when the
bullet touches the barrel. Since the weapon is meant as a proof of concept, it is totally su cient for me. More
importantly, it is operating reliably (meaning that jamming occurs very rarely) when adjusting the belt and drum motor
speeds and the sensor positions correctly: You have to do this as a manual "calibration" for the system to ensure that the
belt moves the correct distance between two shots and the drum rotates the correct increment.
I am happy with the result of this project, but there are obviously still some things that could be improved. For instance,
the tank is not suited for challenging (muddy, dusty) terrain because of its poor sealing against dust, dirt, and water. Also,
I have the feeling that dirt could become stuck between the sprockets and the tracks, so for real o road usage, the tracks
should be designed more openly so that dirt isn't trapped easily any longer. In general, the friction of the printed
epicyclic gearbox and tracks are relatively high. It's not a problem for the powerful motors, but it reduces the e ciency
(as do the brushed motors in general compared to brushless DC motors). Thus, the runtime could be increased by
adjusting these components (but the two 5 Ah LiPos provide more than 1 h runtime, so I don't feel an urgent need to
work on that).
Finally, something that I would de nitely change if I did this project again is the ADCs: The analog inputs of the ESP32s
are noisy, non-linear, and individually di erent for every single ESP32. That means a lot of time has to be spent on
calibrating and compensating the analog inputs to obtain reasonable data. On the other hand, having WiFi onboard and
several freely con gurable PWM outputs is a big plus of the ESP32 compared with the classical Arduino. A combination of
both would be great! Anyway, for my next project(s) with ESP32s, I will for sure have a look at external ADCs and see if
they can do the job better.
Thanks to everyone who had the patience to read until the end. I hope you enjoyed this instructable! Feel free to contact
me if you have questions or feedback :)
https://www.youtube.com/watch?v=pa0yBt4fcDY
https://www.youtube.com/watch?v=DTw_g45VXYM
https://www.youtube.com/watch?v=QyAzcGESpG0
https://www.youtube.com/watch?v=5_tOqmIr2BQ
https://www.youtube.com/watch?v=5oozk97QqVU
https://www.youtube.com/watch?v=pMTf-1HrGUc
Wow! I'm impressed with this design and intend to make it. I'm already committed since I ordered
most of the parts. The weapons motors were the hardest to find in the US, I had to order them
from a supplier in Germany on Ebay for about 11Euro's each. The supplier you listed wanted 80
Euro's to ship to US. The potentiometers were also hard to find in the US but I can get some
here and modify the mounting holes and gears to fit since you provided the .STEP files. Do you
have any photos you could share of your wired up electronics compartment? So far I have the
main body printed and assembled and everything fit together perfectly. I'm also learning a lot, I
never used the ESP32 but got some and got them working. I also never used the individually
addressable LED with I will probably play with those today while parts are printing. If only my
Prusa MK4 kit would get here so I would have another printer working :).
Thanks a lot for your comment! Wow, that is quite expensive for a motor that I purchased for 1 €.
Please share photographs of your build once it is done! I'm looking forward to seeing another
Crawler out there :)
Below, you can find a photograph of the opened electronics compartment. I did not add such a
picture in the instructable because it is mainly an example for how to not do cable management.
There is a lot of cables, so to help with wiring, I started bottom-up: According to the instructable,
you can start with wiring the main motors, the batteries, the LEDs and sensors in the front and
rear, and the linear actuators. Once that is done, you can continue with adding the boards and
components in the electronics compartment and wire everything "on top" of those. Still, there are
a lot of cables, and to help me with identifying the cable routing, I added little stickers to the wires
that indicate to which component a wire leads. And don't forget to add enough headers to
distribute ground to all the different components (you should plan for > 20 ground signal
distributions).
Please let me know if you have questions on a specific step of the instructable!
Thanks for the photo! I see you have heat sinks on your ESP32's, do they get hot without them? I
got my gear and potentiometer mount updated and built up a linear actuator and installed it,
again, I am impressed with the actuator design and everything went together perfectly! I was
looking at your software and see you have 4th order polynomial curve fits for the potentiometer
readings, that A/D must really be non-linear! I checked out your polynomials and they only go to
about 0 to 60% for a full turn of the potentiometer and the potentiometer seems to go a little over
a half turn in the assembly. Am I correct in assuming that HLFv (and other HXXv variables) should
go from 0% with actuator at bottom and 100% with actuator at top?
Thanks, Dave
Hi Dave! The heat sinks on the ESP32s are optional. They should work without them, too, but
when an ESP32 is using WiFi, it is getting hot over time (and I tend to go for "an extra heat sink
doesn't harm").
The ADCs of the ESP32s are indeed quite bad in terms of linearity. You'll have to see how well
yours work and if you also need a 4th order polynomial correction function since these
calibrations are individual for every single ESP32.
Also, you should note that the tank in the end does not make use of the full travel length of the
actuator (to avoid excessive tension on the tracks). Again, that is something that you'll have to
double-check in the code of your model because everything depends on the calibration of the
actuators. For my prototype, the actuator limits used by the code are (measured as indicated in
the image below): 56 mm (lowest body position); 36 mm (center body position); 16 mm (highest
body position). The actuator moves up to lower the body, and down to raise the body - keep that
in mind when wiring and programming everything :)
Wow, the mechanical design is amazing! This project is serious, not just someone messing
around with a 3D printer.
TRDB, I admire your project. Almost just to enlarge it and have a real tank.
I likes the deepest detailed mechanical design: the suspension, the doubled inclined gears, the
planetary Gears, all the sensors you could add...
Could you explain more how you fire the bullets?
Thank you, I really appreciate that! It took quite some time to design and optimize the mechanics
:)
The firing of the bullets is enabled by the two acceleration wheels. They have a fixed distance to
each other (10 mm +- tolerance of the printed parts) and rotate very fast (up to 10k rpm). The left
one rotates counter-clockwise and the right one rotates clockwise. The conveyor belt pushes a
bullet between the two wheels using its protruding pins. The bullet has a slightly larger diameter
than the gap between the two wheels (diameter of the bullets: 10.75 mm +- printing tolerance),
which means that the bullet is tightly pressed between the two wheels. Due to their fast rotation,
they are not blocked by the bullet but they transfer the kinetic energy of the rotation to it, meaning
they accelerate and eject the bullet from the barrel.
There are two bullets in a row per slot within the drum, and the drum has eight slots. Thus, the
conveyor belt can push two bullets per slot between the acceleration wheels for firing. Then, the
drum rotates to the next slot for the next two bullets. This concept results in a total capacity of 16
bullets. The tank reads sensors for the movements of belt and drum, which enables it to detect
when a shot has been fired, and thereby it can count the number of remaining bullets in the
drum.
Thanks a lot :)
I added a rough estimate for the costs in the supplies section. It's actually hard to specify an
exact number because many parts I purchased for the project came in larger batches, meaning
that I'll have them available for future projects. So it depends a lot on how much one already has
in their workshop at home and how to count that. Long story short: I guess I spent around 800 €
on this project.
You had me at IRLZ44 :) Seriously, this is absolutely amazing! I honestly don't even know what to
say... I thought I was going to do a quick read about a nice looking tracked vehicle, but a hour
later and I'm still learning so much. Congrats on such an achievement!
Thank U for this awesome project. Hope I can build it with my kids!
How adaptable would this be to control via PC rather than the controller?
Thank you! I guess it is possible to use a PC to communicate with the ESP32 in the tank.
However, you would then need a suitable input device to read analog values for proper speed
control. Something that could work is a game console controller like in this tutorial:
https://dronebotworkshop.com/ps3-esp32/
WOW, that is a very serious build, looks awesome,
One of the most comprehensive and well documented Instructable that I have seen! Bravo!