Enough said, here is the system overview.

Mechanics of the tank: 

  • Metal tank chassis
  • Track system based on a bike chain
  • Variable suspension system on the tracks
  • Chain tightener on the track system
  • 3D printed splash-waterproof case for the raspberry pi
  • Pan/Tile system for the camera

Electric/HW of the tank: 

  • 2 x 24v 100w DC motors with a big gear ratio and around 200rpm on the output shaft
  • 40Ah 25V LiFePo4 battery
  • self-made DC motor controller, capable of driving way bigger motors
  • CAN system for the communication inside the tank
  • self-made HAT for the Raspberry Pi(CAN, Servo, ADC, GPIO, small DC motor driver)
  • Hard wired safety system with an emergency stop button
  • Raspberry pi camera
  • Additional Wi-Fi dongle with better range than the original raspberry
  • Software of the tank:
  • CAN system based on the MCP2515
  • Wi-Fi hotspot based on RaspAP
  • Communication over the Wi-Fi using sockets, auto reconnect and error detection
  • Camera with OpenCV integration
  • Video streaming server using flask
  • Motor speed calculation and safety stuff
  • Multiple UDEV rules and cronjobs in the raspi environment

HW of the control station:

  • Waterproof case
  • Self-made 12V LiFePo4 battery with BMS
  • Self-made 5V DCDC converter with high efficiency and low Iq
  • Display integration
  • F710 controller

SW of the control station:

  • F710 reader
  • Communication over the Wi-Fi using sockets, auto reconnect and error detection
  • Multiple UDEV rules and cronjobs in the raspi environment

Tack system:

The track is made of two bike chains connected by a 20 x 15 mm U shaped aluminium profile, which is 50 mm long. The profile is connected to the two bike chains with one M4x16 screw each.

It is important that the screws are not tightened too much.

The suspension system has holes to use the spring at different angles. This makes the strength adjustable. The suspension is connected with a X shaped plate to handle the sidewise forces. The additional cover in front of the suspension is for stability reasons. The M6 screw connecting the chassis with the suspension got bent sometimes.

The wheels are some standard wheels and need to be changed to a metal wheel. They get chewed up quite fast.

The sprocket has the same shape as a usual bike sprocket, but every second tooth is removed due to the screw connecting the track.

Over the sprocket is a cover with a chamfer due to the fact that the chain keept jumping out of the sprocket sometimes.

The track tightener is a simple push spring. The force of the spring is adjustable with the nut on the screw.

The Raspi case is splash waterproof, the air is blown through slots with some small fans.

The pan/tilt system for the camera is fairly simple.

Here is some footage of the test of the tracks outdoors.

I implemented all the findings from the last test and went for a further test. This time was mostly the suspension which was tested.

I got some nice videos, see below.

I had some time to clean the mess I had as software.

Here is my git, hope you find some interesting stuff:


To run the tank, I (auto-) start aa_panzi.py

For the visualisation I use the aa_anzeige.py

I grabbed a lot of infos from different Persons, so here are some quite interesting and useful links to work from others.

Socket programming and a lot of information for python from sentdex on Youtube:


The whole streaming part comes more or less from Miguel Grinberg:


the Servo HW interface is from here:


How to make a Wifi Hotspot (I did not forward anything, just used it as a hotspot-generator):


Of course, I used a lot of duckduckgo.com for all different problems where I don’t know the exact source anymore.


Read more »