ZeroBot - Raspberry Pi Zero FPV Robot

by Wingman94, published

ZeroBot - Raspberry Pi Zero FPV Robot by Wingman94 May 29, 2017
11 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Design Tools

Fusion 360

Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

56925Views 4400Downloads Found in Robotics


New improved version: https://www.thingiverse.com/thing:2800717

More info: https://hackaday.io/project/25092-zerobot-raspberry-pi-zero-fpv-robot
Video: https://www.youtube.com/watch?v=16rxNzQvfYY&t=4s
Raspberry SD Image: https://hackaday.io/project/25092-zerobot-raspberry-pi-zero-fpv-robot/log/62102-easy-setup-using-sd-image

ZeroBot is a Raspberry Pi Zero W based robot. It can be controlled using any computer or smartphone via a web browser. The integrated camera module makes for a low latency video stream. In addition the Raspberry Pi acts as a Wifi access point, so no router is required. The parts for the hull as well as the wheels can easily be printed on any regular 3D printer.

Some of the key features are:

  • Compact CAD design with 3D printed components
  • Analog control via a joystick (and multitouch)
  • Simple battery solution using only a standard power bank
  • Low latency streaming (~0.3s)
  • Easy and cheap to build using widely available components

Print the two shells with the inside facing the print bed. You will need to include a lot of support material. Simplify3D works best for this, but Slic3r or Cura with optimized settings should be fine as well. I used support with lower density for the most part and higher density for the last 8 layer up to the part. This saves a lot of filament.
The tires should be printed with Ninjaflex or something equivalent to ensure good grip.
Everything else can be printed in PLA.

More from Robotics

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for business-to-business and business-to-consumer sales all over the world. W...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

can you send me a link of the power bank board?
Best regards

It's a german brand and is probably not being manufactured anymore.
Most regular power banks will work just fine.

Ok. Thank you. Have Ito take the linked file to the sd card or the normal raspian image?
I ordered the parts just now :)
Best regards

The sd card images I provided already have the necessary software installed and configured. If you use pure Raspbian you will have to do all of that manually.

Thank you :) My last question: How can I charge the ZeroBot, the house is not open? Which 18650 battery do you have? How long can drive with the ZeroBot? Thans alot.

If you want to wait 2 more days or so, I will have a major update ready. This will bring a few improvements such as a micro usb charging port. Every small power bank contains a 18650 lithium battery. They all have 3.7V and around 2600mAh. This will power the robot for at least an hour, probably multiple hours depending on how the motors are used.

Comments deleted.

Hey Wingman94, I have another suggestion for your redesign. For connecting the top/bottom of the case, put in the top (or bottom) a hex opening for a nut to fit into which would allow you to use a nut and bolt to clamp the top and bottom together instead of using a screw

I'm not sure it that's what you mean, but the 2017 version is already designed to be assembled using M3 nuts and bolts.
It's a bit tricky to get the nut into the opening (e g using pliers) because it's not visible after the part is printed.

Well look at that! A solution that already exists. I guess I just didn't read and look deep enough ("...mumble...mumble...now how did I miss that??")

My only other suggestion would be to have a way to connect the camera face without having to hope you glue it correctly. If it was wider, you could have a tab on both sides that would fit into two posts on the bottom shell. that way it would fit together neatly

:) To be fair, I completely forgot to mention the m3 bolts in the instructions.
The new version has a small brim that helps to orient the front panel, but it still has to be glued in.
Franciscorp has an even better solution, he modified the files with latches for the panel: https://www.thingiverse.com/thing:2445551
However, thank you for your suggestion, I have my parts printed already but will fix this for the online STLs.

ZeroBot - "Off-Road" Version -- Raspberry Pi Zero FPV Robot

I can't find the exact power bank for sale in the US. Are there any requirements for the power bank other than 2600 mAh?

Bcray76 - I just went to my near by 'Five Below' store (everything is $5 or less) and picked up a couple cell phone chargers

Any 2600mAh power bank should work. They should have a single 18650 battery inside. Your basically using the usb board in the bank to provide the pi the 5v and the battery is connected to the motor board. Multi-meter is definitely a must to make sure your connecting to the right voltage. I'm actually using a 18650 battery with a 18650 lithium battery board with 5v boost converter.

Hmmm, I used the 3.7 straight from the battery for both the Pi and the motors and it seems to be running fine.

A suggestion if you make any mods to the body in the future. Add a hole on the back for a button and one for an LED. (you already have one for a switch) You could use a python program to monitor the button and do a shutdown of the Pi and the LED would indicate when the Pi shutdown and let you know when it would be safe to kill the power.

I guess I should go back and look at the voltage from the USB connectors and maybe make a wiring change....

p.s. the grandkids had a blast playing with it :>)

Glad you like it! And thank you for your suggestions.
Just yesterday I read about someone powering their Pi with 3.7V. Now I have looked it up:
A PMA2306 regulator (https://www.diodes.com/assets/Datasheets/PAM2306.pdf) creates the 3.3V and 1.8V that the Pi needs internally.
The input for this regulator is the 5V USB plug, but it will accept much lower voltages as well. At 3.7V the processor will run just fine but the USB port will not be powered.
This is kind of a hack but should not be a problem as long as you don't use the usb or hdmi ports.
Right now I am working on an improved version of the robot which will have a software shutdown button in the user interface.
And the new parts have a usb charging port and a hole for an LED.

Can't wait to see the updates!

I'm getting ERR_NAME_NOT_RESOLVED when trying to connect or timing out or server not found. Sometimes it connects like once in 10 tries but just shows a static camera with touch interface but nothing happens beyond that. I used both my computer browser and phone. Vnc viewer works fine so I don't understand whats going on.

Are you using the raspberry as a hotspot or is it connected to your wifi? The easiest thing to do would be reinstalling the SD card image to rule out that it's a software problem. Apart from that, it should work right away with just the camera plugged into the Pi.

I'm using it connected to wifi with the easy setup image you provided. I did reinstall the image a couple times used both win32diskimager and etcher. I'll try a different sd card to see if that's the problem.

HI , I am having the same problem . I am able to connect to raspberry trough putty without problem but , neither , my pc or phone are able to access to the server. I am able to access to the raspberry with vnc also. Am thinking about a port error...
I am quite dumb regarding rapsberry and linux but I tried to start the server mannualy but I don't know if it the right "logic".
Anyway this is the error I have

[email protected]:~ $ cd Desktop/touchUI
[email protected]:~/Desktop/touchUI $ sudo node app.js
2018-02-18 13:53:24 initInitialise: Can't lock /var/run/pigpio.pid

Error: pigpio error -1 in gpioInitialise
at initializePigpio (/home/pi/node_modules/pigpio/pigpio.js:11:12)
at new Gpio (/home/pi/node_modules/pigpio/pigpio.js:25:3)
at Object. (/home/pi/Desktop/touchUI/app.js:9:8)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

maybe it is becouse I don't have bonjour installed . I can access the page using the format ipaddress:port , in my case

An Idea for anyone printing this. If you don't have Ninjaflex or something equivalent, you can use a silicon or rubber 'kids' wrist bracelet to wrap over the wheels. It fits tightly over the wheel and gives great traction.

Very cool design! Mine works great! Only flaw is the camera is filming upward and another wheel would be needed to correct that... Also, adding a charging port at the back is mandatory, Ive simply drilled a hole for mine!

Thanks, glad you like it!

When I first boot up my pi, the right motor goes forward full speed until the pi finishes booting and starts running the program. Is there a way to keep this from happening? I'm using a L298N motor driver since I had one on hand. Currently I have a 3s lipo powering the L298N and then the 5v output from the L298N powering the PI

Edit - Figured out that GPIO 4 defaults to high on boot. So switched to using GPIO22 for this wire and in the code as well.

Good to hear that you could solve your problem. I was skeptical that the regulator on your motor driver board can power the zero, but it looks like it only draws around 300 mA which should be fine.

i am trying to rotate this image 180. Has anyone had any luck with this?

Have you tried editing the rc.local file?
You need to remove "-hf" and "-vf" from the mjpg-streamer line

I gave this a try and it worked perfect. Thanks for putting this software and project out there. The neighbor kids have been loving the robot

no i have not tried that. I kept trying to edit the HTML file. I could flip the image but the touch joystick on your phone would then brake. I did not think of try the rc.local. Thanks for the advice. I will give that a try tonight

for makers live in Japan
I found the yellow motor on Amazon.co.jp: https://www.amazon.co.jp/dp/B06WV85TPL?psc=1

how do i charge it? i don't see any connectors

There is no real charging port yet. You have to unscrew and open the case to charge the power bank.

Hi do you have a wiring diagram? I can't see by the picture where to solder. Cheers

Looks like you removed the inner axle stubs from the motors. Did you just cut them off?

Yes, I used a small saw but pliers should work as well.

i like the complete disinterest of the cat in the video :)
cool little bot dude.


I am using Slic3r and have many problems with removing the support.. My attemps all failed...

Is there an STL with a better support construction? Thanks for the great project!

Have you tried changing the support settings in Slic3r? Maybe print something smaller first before trying the robot.
I think slic3r has been getting quite good with supports, adding manual supports to the stl file will probably make it worse.

What Powerbank did you opened exactly to get that circuit board out of it?
I looked for some and i can´t find one with that board.

I bought it a few years ago for 4€, now its sold for 16€ on Amazon. Any other cheap powerbank will probably do just fine.
You could also get rid of the circuit board entirely and just use a step-up converter to get to the 5V.

What's the name of the Android app that you used to control the zerobot? Thanks

You can use any web browser you like. There is no specific app needed.

What is the between the yellow one and pink thing. (Its green) I don't understand

Its the electronics board of the power bank. It supplies 5 V to the Raspberry from the 3.7 V battery.

I absolutely love this model and am working on printing one now. Is that a switch on the back side? I didn't see that in your parts list. Do you know what switch you used?

Glad you like it! Yes, that's the on/off switch. It measures 11.5 x 6 mm, but I don't have a direct link on where to buy it.
In case you haven't found it already, here is a link to the 3D model: http://a360.co/2rV2NQo

I just can't seem to get the motors to turn!

everything appears to load
i see the ui
but the motors won't turn

i've reloaded from scratch. i've tried multiple motor drivers

i just don't get it

To rule out the motor drivers you can use a multimeter to probe the GPIO pins. The voltage should be between 0 and 3.3 V.
If the voltage doesn't change while moving the controls, it must be a software problem.
If you are using Chrome you can try pressing ctrl+shift+i and look if there are any major errors in the console when the html is opened.
I am also thinking about putting an .img image of the sd card online, that would be helpful if something goes wrong with the tutorial.

ok time for me to admit being an idiot

i didnt realize the numbered gpio pins on the pi weren't as easy as counting from pin 1

:) These things happen, glad you got it to work.

Do you think you can share the CAD files for easy remixing?

EDIT: Ignore this; saw the link to F360 on hackaday.

Nice project. Currently working on something very similar. Keep it up.

Can you post your settings for supports in S3D? With my settings the support material get fused with the part and I don't want to waste more filament on a bad print :/.

I added a screenshot of my support settings to the thingiverse page. I hope this helps!

I may be missing something, but the filler/camera mount. Is there a model or did you mention what you made it from someplace? This is really cool, and I am thinking of popping one together and letting some kids program on it to make it move and do stuff.

You are absolutely right, I forgot to export that part. It is online now.

Thanks... In the pictures, it looks like the same material you used for the tires. Sure it's not, but what filament do you use for the tires? Is it NinjaFlex, or is it one of the other TPE/TPU filaments?

Quote from the description:
The tires should be printed with Ninjaflex or something equivalent to ensure good grip.
Everything else can be printed in PLA.

you know the game rainbow six siege??
this looks like the twitch drone

Yeah, I've played the game during a free weekend. Indeed it looks a bit like my robot.
I might have to include shock darts in the next version. ^^

Most excellent model.

I think my kid and I will tackle this build next month. Any chance of getting a wiring diagram?

Thanks so much for so many awesome projects!

Thank you!
I hope that I will have a wiring diagram and a basic tutorial ready by the end of the week.

Wow, really nice and well made! Gonna make one with my son.
Is it possible to connect it to the home wifi or do you have to use it in adhoc mode? Would be really fun to control it over internet. Maybe it would be possible to add a login screen for security then.

Thanks! Connecting it to a wifi router is very simple. The adhoc mode is just an option.
Using it over the internet might be a bit more complicated.

Perfect. Aslong as it's possible to hook it up to home wifi I can VPN to my home network and connect to it. Shouldn't be a problem. Higher latency ofcource. But should be pretty straight forward.

So cool! How well do the printed wheels grip..perhaps a rubber band over them or maybe a groove for an o-ring for extra grip
Disregard..found this entry on your hackaday post: The wheels are designed to have tires made with flexible filament (in my case Ninjaflex) for better grip.

Very cool little robot and the fact it does it's own wifi ap is very neat

Great design and build!

Thank you, I appreciate it!

Will the new Pi Zero W fit where the regular Zero was before?
Also..is there a way a new revision could house the Orange Pi Zero? Much smaller, same IO's but with a quad core (a bit overkill sure)
And how about a V2.0 with space for putting in 2-3 18650's in parallel to increase run time

Ah crud...just realized the Orange Pi zero doesn't have the ribbon cable for the camera...

The robot already uses a Pi Zero W, is there an even newer version?
The orange Pi could probably fit into the robot ,as well as other batteries.
I am thinking about making a second version but I don't have time for this at the moment.
The CAD files are available on Hackaday.io, so you can customize the 3d printed parts yourself.

no, I realized it said to use the RPi0 W sorry
There is an OPi0+2 that I have ordered...I think it has the connector to the camera


Great design...I just glossed over you said use the W version already (pays to drink coffee before posting..hah)