Mini FPV Speed Tank

A small, fully 3D printed tank, designed with a focus on compactness and performance

Similar projects worth following
This is a remote controlled FPV tank that I designed for fun (and had plenty of fun designing). The body and treads are 3D printed and held together by basic screws. It is fully functional and SOOO much fun to drive around the house or front yard.


This is a project that I designed like a year ago, and only got to building more recently. Too many RC tanks I see online either use tiny N20 gearmotors, or sh***y plastic continuous servo motors. SLOW! LAME! The aim of this design is to make an RC tank that is small, but also has POWAH. To do this, I squished 25mm diameter brushed gearmotors into the smallest, most sturdy body I could. I also designed some 3D printable tank treads.

3D design

This tank was designed in Autodesk Fusion 360, with a focus on maximum compactness and structural integrity, whilst hopefully looking somewhat sleek. I probably spent too long on this, but I did enjoyed optimising each part of the design!


I wanted to design some miniature treads that would be strong and flexible. The process of designing these took the longest due to the iteration and refinement that was required to get these right.

This is one of my early test prints (deliberately broken to test strength):

The design of these early treads was simpler, and I was initially trying to use brass rods. Unfortunately using rods instead of screws doesn't work in such small treads, as they are prone to slipping out, plus they can bend under load.

I also tried using flexible TPU material to print the whole tread in a single piece, but I dismissed this quickly because the TPU treads were pretty stiff, and just not as cool as a tread made of discrete segments!

Below is the final tread design. The treads are linked together with course-threaded M1.7 screws, and have grooves that match the teeth on the wheels. I maximised the material around the hinges for the sake of strength, and when printed out of PETG they have are plenty durable. I also gave them cool angular sides which gives the tank a +20% speed boost.


Below is a cross section showing how the space for each component is arranged. As you can see, the motors take up most of the area and extend into the wheels! Additionally, the motor shaft and idler screw tips would stick out of the sides if not for the part that covers and holds them in place. Two grub screws hold each motor in place

Design done!


These are the motors I bought on Aliexpress:

These are 25mm diameter 2083rpm brushed gearmotors. Brushed DC motors are hardly the apex of power systems, but a brushless system would be WAY more expensive, so I'm using these for now. Plus, they have more than enough power for the size of the tank.


FPV related

I decided to use standard RC/FPV devices for the remote control and video transmission.

I was initially planning on using nRF24L01 transceivers, and making a custom-modelled 3D-printed hand-wired Arduino-powered controller, as I have seen some on the internet do. However, even after buying most of the the parts necessary for this, I considered the complexity that this would add, and decided against it. Instead I opted to purchase a proper FPV controller, which communicates over the amazing ELRS protocol. This allows me to use one of the tiny 1x1cm, SMD antenna receiver modules.

I also picked up a tiny FPV camera from Foxeer, and a tiny FPV analog video transmitter. I could have used an ESP-32 camera and stream the video over a web server or something, but again, this is much simpler.

Here is a family photo of the three aforementioned electronics next to an Aussie $2 coin:

Awww, so cute!

The rest of the electronics

Here is where I transition from the RC/FPV ecosystem into just normal electronics. In my setup, I have a motor driver that is designed to be controlled by a microcontroller (and not by an RC system servo signal), so I put my smallest board to the task:

Again, so cute! This Pimoroni Tiny 2040 has an RP2040 aboard. It does the job great, but I won't actually be using much of its' potential. I chose this one which I already had, but any microcontroller that fits, and runs Arduino code, should work! (I think)

The Tiny 2040...

Read more »

Tank v51.stl

Whole model stl file

Standard Tesselated Geometry - 22.64 MB - 01/16/2023 at 11:49


Tank v51.step

Whole model step file

step - 4.36 MB - 01/16/2023 at 11:49


Tank v51

Individual parts stl files

x-zip-compressed - 2.00 MB - 01/16/2023 at 11:49



Main Arduino code

ino - 1.11 kB - 01/02/2023 at 14:51



Supporting code

plain - 6.42 kB - 01/02/2023 at 14:51


View all 10 files

  • 1 × Small microcontroller board I used the Pimoroni Tiny 2040
  • 1 × ELRS nano reciever
  • 1 × Tiny FPV camera I used the Foxeer Pico Razer
  • 1 × Tiny FPV VTX And one you can find that is small enough
  • 2 × 25mm diameter gearmotors I got some from Aliexpress:

View all 11 components

  • 3D model update: motor retaining screws now have nuts!

    Tobias01/16/2023 at 11:57 0 comments

    I have made a tiny improvement which previously, due to laziness, I had not done yet. Originally, the grub screws that held the motors in place simply threaded into a plastic hole. This was a problem as they could not be screwed in tight without slipping, and then the motor would not be clamped down properly. I added space for some simple M3 nuts, which should mean the screws will screw in much better now.

    I have not tested this yet, but it should be a-okay. The 3D models are now updated with this change!

View project log

  • 1
    Print the parts

    These are all the parts, excluding the 52 tread pieces (of which it is recommend are printed sequentially, in batches). All parts are designed to be printed without supports. I uploaded the whole thing as an STL if you want to make one yourself!

    I have shown all the main parts in a single print here, but usually I would print most of them individually, to reduce stringing and other messiness between parts. The wheels and main body piece, especially.

  • 2
    Assemble the main body

    Put the motors in and fix into place with ~4mm M3 screws and nuts, grub screws are neat but not required*

    It is deliberately designed for the motors to  stick out of the side with the output shaft, and sit flush on the other side. The motors are an extremely tight fit, I apologise if yours do not fit. Pls let me know if you have any issues with this.

    *Uhmm... so I have to confess something. The grub screws, no matter how cute they are, aren't actually adequate for holding the motor in place, especially since they are threaded into plastic and they slip super easily. Sooo... a little secret between you and me, I may or may not have super-glued the motors in-place. Hush, don't tell anyone! Now fixed!
  • 3
    Solder up electronics

    I have included a diagram showing to show how to connect the ELRS reciever. The rest of the electronics (power supply, motor drivers and FPV video system) can be done however you want, with any generic components, as long as they fit. Read the 'details' section if you want to know how I did it.

    Thank you to the CRSF Joystick project on Github, which helped me interface the CRSF reciever with a microcontroller (and from which I stole this diagram)

    **I have been informed that the level converter is not necessary with an ELRS reciever, so just don't bother with it XD**

View all 8 instructions

Enjoy this project?



r.e.wolff wrote 10/14/2023 at 16:15 point

About RPM: I bought 1200 and 400, just to be sure that the motor can turn the track. If that works well I'll swap out the motor for the faster ones. 
Have you mentioned somewhere that the screws for the tracks need to be M1.7 (I found that somewhere)  x 12 (I wasn't able to find that anywhere). (I bought 10, 12, 14 and 16 and 12 seems to be what it was made for. 
I don't really have electronics yet. I might make a Pico W "shield" that has two motor drivers. 

  Are you sure? yes | no

Tobias wrote 10/15/2023 at 11:17 point

Hey r.e.wolff!

Does that mean you're making the thing?? I don't know of anybody whos actually done that yet hahaha. I love how you just jumped into talking about RPM. And yeah, 1200 is probably more sensible, tho 400 would be kinda sad.

The M1.7 screws I used are 10mm, which I mentioned in track assembly part of the instructions. But that length only because that's what I had left over from another project. I think the 10mm was actually a restriction when designing the tracks, and longer would be better. Have you successfully printed the tracks and other parts??

I'd love to help you with electronics or anything just so we can get another one of these made! Feel free to dm me

  Are you sure? yes | no

r.e.wolff wrote 10/15/2023 at 14:38 point

I now have all sizes to try. Your tracks are built for 12mm: That's ideal, 10 and 14 work but end up with 2mm of unused hole/screw respectively. Not the end of the world, but if you have to buy them, get 12mm. 

My first goal is to get something moving. With the higher-RPM variants of the motor I'm afraid the motor simply wouldn't have the torque to turn the tracks. To prevent that from discouraging from continuing with the I started out with the 400RPM ones, Then we have the excitement of the thing actually moving to keep us going for installing the faster ones. 

Yes, I have printed the tracks. The had too little tolerance and we couldn't get them to fit. I printed another batch, but now with some more tolerance builtin. These fit perfectly. I spaced them close on the printbed and they come off as a track, then they snap when you take out the extra spacing in the pitch direction. I think the bottom of the track is "too flat" (=slippery) to work well, but we'll see. 

I think I also added some tolerance to the main body. Otherwise I wasn't able to get the motors in. 
It is fun that it is so tidy and small, but that all gets negated when you add the battery and electronics outside. I think I'll end up enlarging it to give me enough space for battery and most electronics inside. If, say I make the wheels 3x bigger, space them further apart, this would add a lot of space in the inside. Also the 400RPM motors might come in handy.... :-) 
I haven't figured out how to PM here....  Update: now I have. 

  Are you sure? yes | no

Bryan Mayland wrote 01/17/2023 at 14:02 point

This is awesome, that lil guy looks like it has some power! I'm the ExpressLRS developer who wrote the CRSFSerial library, and this is the sort of thing I love to see done with it.

The EP2 receiver is 3.3V logic though, so it doesn't need the level shifter, which might make this even easier to wire up for everyone. I have already chastised the CRSFJoystick developer for including it in their schematic and I think the newer specs don't call for it. The receiver can also be powered directly from 3.3V if it needs to be, and works down to at least 2.7V input, but does need quite a bit of current (>250mA in wifi mode).

I want to see everyone driving FPV tanks, go!

  Are you sure? yes | no

Tobias wrote 10/15/2023 at 11:27 point

Hi Bryan 😭

Getting a comment from the guy that made the CRSFSerial library (which I was super grateful for when I found it), was just so dreamy that I forgot to reply. When I saw your comment I was just like 'woahhh 😳'... and now it's been some™ time HAHAHA

Anyway thanks for checking out my tank thing! Also I'll add a note about the level shifter just in case anyone follows it

  Are you sure? yes | no

Bryan Mayland wrote 10/18/2023 at 14:03 point

It's a cool tank thing! Stuff like this is exactly why I wanted to provide simple implementations for interfacing with ExpressLRS on the receiver side (or even on the TX side but better options will be coming for that too). People like you doing awesome projects and sharing them gets everyone more excited about building stuff and I want to keep being impressed with seeing what new ideas folks can come up with.

  Are you sure? yes | no

Samuk wrote 01/15/2023 at 22:38 point

Nice, been working on a similar BLDC thing:

Been shaving some Driver Yaks, but hope to progress it in the next couple of months. If you fancied helping out that would be great!

  Are you sure? yes | no

Tobias wrote 01/16/2023 at 04:57 point

Hey, I have those Pololu tracks too! And I am planning to use them for the next version of my tank, which is also going to have brushless motors! Hmu in the messages and we can help each other out haha

  Are you sure? yes | no

Tavis wrote 01/15/2023 at 07:46 point

The stl is not printable. It's all one body.  And what is the rpm of the motors ?

  Are you sure? yes | no

Tobias wrote 01/15/2023 at 09:46 point

Oh... haha I use Prusaslicer which lets you split it into individual objects with the click of a button. If you use Cura then I'll upload a zip with individual STLs + a .step file then. I didn't actually expect anyone to want to make it!

The motors I got are 2083 rpm, but they are probably too fast. 1000 rpm+ might be a little more sensible. Tell me if you want wiring diagrams or any other help. And if you do end up making something from this design, you absolutely have to send me a pic 😊

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates