ZeroBot - Raspberry Pi Zero FPV Robot

Back to project overview

Raspberry Pi Zero 3D Printed Video Streaming Robot


tyler_durden54 wrote 03/02/2019 at 11:57 point

On the SD card image, what is the default vnc and putty login/password?

  Are you sure? yes | no

jmpv1247 wrote 01/05/2019 at 19:47 point

Joystick is working fine with laptop but not working on my two mobile phones.

  Are you sure? yes | no

Max.K wrote 01/07/2019 at 11:13 point

There is a quick solution for this on the Github page:

I will try to update the files as soon as possible.

EDIT: OK, all files and the SD card image are fixed

  Are you sure? yes | no

ChoLuu wrote 11/21/2018 at 20:12 point

I have the Zerobot built and tested. If I want to add another device with I2C protocol like distance measuring, can I just copy&paste&modify the ADS1115 I2C JavaScript files?

  Are you sure? yes | no

ChoLuu wrote 01/09/2019 at 01:21 point

I have solved my above question by adding a couple functions in javascript file, export these functions as a module, and called them in app.js file.  

My next question; I have updated nodejs (v11) and got an error said I2C built with older nodejs version (v4.8.2). So my question is did you use 'node-gyp' to build addon? If not, which one did you use? Thank you!

  Are you sure? yes | no

Max.K wrote 01/09/2019 at 10:25 point

Sorry for taking so long to respond, I didn't see your previous comment. Actually I didn't build any modules, they were installed with "npm install ..." without any modifications. The ads1x15 library has not been updated in two years, so there might be some compatibility issues with later node versions. Instead of modifying or creating a library I would have just used the i2c library functions and called them in the main app.js file. 

  Are you sure? yes | no

ChoLuu wrote 01/09/2019 at 15:52 point

Got ya. And when you said "they were installed with "npm install ..."", mean I should update I2C library after updating nodejs? Anyhow, I will try let see if it works. Thanks again, Max!  

  Are you sure? yes | no

Andre van der Vlies wrote 10/19/2018 at 08:39 point

What is the ADS1115 for? Can't the LEDs be powered from GPIO22 directly?

  Are you sure? yes | no

Max.K wrote 10/19/2018 at 13:50 point

It's for measuring the battery voltage (Analog -> Digital)

  Are you sure? yes | no

Andre van der Vlies wrote 10/19/2018 at 13:57 point

Ah! Thanx. This is done via the LED circuit? 'Hardware' isn't my strong point...

  Are you sure? yes | no

Max.K wrote 10/20/2018 at 11:01 point

No problem. The LEDs, ADS1115 and the motor controller are connected directly to the battery, 

They are connected in parallel, so each of them gets the same 3.7V from the battery.

The circuit diagram is optimized for readability. The cables in the robot can be wired differently to reduce their length. So for example you can use a wire from the LEDs to the battery and a second one from the motor controller to the battery. As long as the electrical connection remains the same that's ok.

  Are you sure? yes | no

Hans wrote 09/23/2018 at 13:19 point

This link does not work: Desktop/touchUI

Now what ??

  Are you sure? yes | no

zanshinv wrote 09/15/2018 at 16:15 point

Thanks for this awesome project!

I'm a beginner so it may be a simple problem that I am having trouble with but here goes... 

From GPIO22 I think that I have set up the resistors and LED's and transistor (at the top of the diagram) correctly, but I dont understand what happens after the LED's, it appears as though I am supposed to connect the positive side of the LED's to the side of the switch ...before... the boost converter lowers the voltage? 

I tried this and the CPU of the Raspberry Pi got crazy hot, and does this now every time its connected to power, I'm guessing I broke it due to incorrect wiring?

  Are you sure? yes | no

Fabio wrote 08/21/2018 at 23:23 point

Hi, I'm putting together one and I wonder would it be possible to replace the TP4056 USB charger and the MT3608 boost converter by the PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost - 1000C from adafruit? Would save some space in the box, would not it?

  Are you sure? yes | no

Max.K wrote 08/22/2018 at 09:20 point

Sure, that should work.

  Are you sure? yes | no

Berkay Sarıdoğan wrote 07/11/2018 at 12:51 point

I have finished the last step (wifi) but im having a problem using app can you guys please help me . . . 

I have setup the wifi access point and connected to the raspi but when i open the html code i cant see the camera and also cant control the motors

  Are you sure? yes | no

Max.K wrote 07/20/2018 at 06:50 point

Sorry for the late response. Have you tried installing the official SD card image to see if that works? Do you see anything on the browser screen when you connect to the Zerobot? 

  Are you sure? yes | no

mar wrote 06/26/2018 at 10:50 point

Hi my  friend , could you explain how to modify the camera resolution , in my home with wifi its very good but from anywhere with my phone on 4G i have many latency , i know to change the resolution maybe can not resolve this problem but i would like to try to check the difference :) thanks ;)

  Are you sure? yes | no

Max.K wrote 06/30/2018 at 08:28 point

Depending on the version you have installed (old Zerobot or Zerobot Pro) the line of code you are looking for is either in rc.local (in /etc/) or in the file (in the folder TouchUI). The line will look like this:

LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i " -vf -hf -fps 15 -q 50 -x 640 -y 480" -o " -p 9000 -w /opt/mjpg-streamer/www" > /dev/null 2>&1&

You can change the -x and -y parameters (640 / 480) to your resolution. Then reboot.

  Are you sure? yes | no

straggler1 wrote 06/16/2018 at 09:42 point

Forgive my dumb question but just to clarify the circuit, the A0 pin on the ADS1115 is hooked to both the positive and the ground from the battery? The positive ends of the LEDs are going through 100k resistor to the A0 of the ADS1115 and from that same pin going out to the second 100k resistor and to the ground of the battery? Thank you for taking the time to keep up with the active community on here and answer questions. 

  Are you sure? yes | no

Max.K wrote 06/16/2018 at 15:06 point

Yes, that is correct. The two resistors form a voltage divider:

This is used to reduce the voltage on A0 (identical resistors -> factor 2 reduction).

The battery will not be shorted, only I=U/R=5V/200KOhm=25µA will flow through the resistors.

  Are you sure? yes | no

straggler1 wrote 06/19/2018 at 00:41 point

Thank you for the explanation. An unrelated question: The  BC337 transistor gets very hot when the lights are on.  So much so that it hurts to touch. Is that normal ? 

Edit: I applied a 47 Ohm resistor to the positive end of the LEDs and now the transistor does not get hot at all. Smaller values of the resistors on the positive leads do get hot as well but the 47 ohm appears to be ok. I wonder if the LEDs I have from the flashlights are drawing too much current. 

  Are you sure? yes | no

Max.K wrote 06/19/2018 at 14:50 point

That's probably not right. Have you checked the wiring? Check the resistor values, too. Especially the 1.5 kOhm resistor.

  Are you sure? yes | no

straggler1 wrote 06/19/2018 at 16:17 point

For the 1.5 K resistor I am instead using one 1K and 470 ohm resistors in series. I can try to increase that? When I attempt to instead use two regular sized LEDs, nothing gets hot. When I switch back to my flashlight LEDs, even one of them instead of both,  the transistor gets scorching hot. There is something about those specific ones I suppose. The 47 Ohm resistor on the positive lead helps but I am still puzzled as to what to try next.  I have the positive lead go to the 5V on the Pi and GND to the GND pin on the Pi as well. Would that make a difference? 3V on the Pi has the same results.

  Are you sure? yes | no

Max.K wrote 06/19/2018 at 20:13 point

You might have to use higher value resistors for the LEDs (try 100 or 200 instead of 50 ohm).

That will make the LEDs less bright and reduce the current.

For more power you probably would have to use a mosfet instead of the transistor.

  Are you sure? yes | no


[this comment has been deleted]

Max.K wrote 04/29/2018 at 12:50 point

That's very strange. At least the temperature display should always work. Have you used the provided SD card image?

  Are you sure? yes | no

Max.K wrote 04/30/2018 at 08:39 point

You might not have i2c enabled in the Raspi-Config:

Maybe because of this the node script crashes.

  Are you sure? yes | no

Josh wrote 04/26/2018 at 16:42 point

Is there enough clearance for headers on the boards?  

I was thinking of getting a Pi Zero WH and soldering headers onto the other boards.  I haven't soldered in >10 years, and working on this with my kids, so I figure that will make it easier to fix wiring mistakes.

Thanks for sharing the cool design!

  Are you sure? yes | no

Max.K wrote 04/27/2018 at 22:22 point

Sorry but the way the Pi is mounted, there is not enough clearance for the headers that are soldered to the Pi Zero WH. Attaching headers to the other boards might be difficult as well because there is little room inside the chassis. But don't despair, soldering these parts should be fairly easy. You can use any old soldering iron. Maybe try it out on some scrap circuit boards before soldering the Raspberry Pi.

  Are you sure? yes | no

stuart_riggs wrote 04/25/2018 at 02:45 point

This came up with an erro:

pi@raspberrypi:~ $ sudo apt-get install apache2 node.js npm

Reading package lists... Done

Building dependency tree       

Reading state information... Done

Package apache2 is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

E: Package 'apache2' has no installation candidate

E: Unable to locate package node.js

E: Couldn't find any package by glob 'node.js'

E: Couldn't find any package by regex 'node.js'

E: Unable to locate package npm

pi@raspberrypi:~ $ 

  Are you sure? yes | no

Max.K wrote 04/25/2018 at 07:13 point

Are you connected to the internet?

Try running: sudo apt-get update

  Are you sure? yes | no

stuart_riggs wrote 04/25/2018 at 09:54 point

apt-get update works fine in the earlier step.  Is there another syntax to get the apache2?

  Are you sure? yes | no

Max.K wrote 04/25/2018 at 10:20 point

Maybe Stackoverflow will help you with that problem as It's not just related to this robot. I'm no Linux expert. I can only google you error messages. 

  Are you sure? yes | no

stuart_riggs wrote 04/24/2018 at 15:31 point

The following command does not work:

pi@raspberrypi:~ $ git clone Desktop/touchUI

-bash: git: command not found

Any ideas?

  Are you sure? yes | no

Max.K wrote 04/24/2018 at 16:03 point

Are you using a Lite version of Raspbian?

In that case you have to manually install git using: 

sudo apt-get install git

But I would recommend using the regular Raspbian.

  Are you sure? yes | no

stuart_riggs wrote 04/24/2018 at 16:25 point

Yes, I have Lite. i had a feeling it was due to Raspbian-lite. 

Thank you

  Are you sure? yes | no

buchnoun wrote 04/23/2018 at 22:28 point

it was my mistake : I had connected the motor driver after the MT3608 ! it was draining the power for the pi (i guess)  everything working great now, I'm still waiting for the ADC module but so far so good. Thanks for this amazing robot :-)

  Are you sure? yes | no

buchnoun wrote 04/22/2018 at 23:21 point

I'm struggling with power :( when mini USB is connected directly to the pi everything's working great! but when I'm using battery it seems there's not enough power to get the pi working : the led blink I can connect once then nothing! I've double check to have 5V at MT3608, yet I didn't wire the ADS and the leds. Could it be that my MT3608 is faulty? I've used breadboard wires do I need to use bigger ones? any help appreciated :-) thanks

  Are you sure? yes | no

Max.K wrote 04/23/2018 at 08:01 point

Breadboard wires should be fine, although thicker wires might be better. A faulty MT3608 could be the reason. Those things are super low-quality, maybe you have a spare one that you can use. Are you sure there are no short-circuits, is there anything getting hot? 

  Are you sure? yes | no

buchnoun wrote 04/23/2018 at 09:45 point

nothing getting hot, I'll try with another MT3608. What is weird is it's working very well when the pi is connected through USB... but what's the point to get a Zerobot with a cable? :) I've noticed on your first pic that there's 2 MT3608 but only one in the wiring diagram and the second picture... Am I missing something?

  Are you sure? yes | no

Max.K wrote 04/23/2018 at 14:42 point

I made a mistake with the pictures. Originally I wanted to use a second MT3608 just for the motors, but couldn't fit it into the chassis. It's optional.

  Are you sure? yes | no

buchnoun wrote 04/21/2018 at 13:52 point

Hi, great project, where can I find a diagram to wire the pi? I'm lost as to know where GPIO x is on the actual board... I know it's a dumb question but why the heck are all those pins not numbered in a logic way ?? :)

  Are you sure? yes | no

Max.K wrote 04/21/2018 at 15:37 point

There's a wiring diagram in the instructions on this site. For the Raspberry Pi pinout, you will have to google that. The GPIO pins are probably organized to reduce the length of the tracks and the amount of vias on the PCB.

  Are you sure? yes | no

buchnoun wrote 04/21/2018 at 23:44 point

thanks for your answer what does mean : "5V USB port" on the wiring diagram? 5V can't be connected on pin 2 or 4?

  Are you sure? yes | no

Max.K wrote 04/22/2018 at 09:46 point

On the opposite side of the USB port that's used to power the raspberry pi zero, there are two pads: 5V and GND. You could connect to the GPIO directly, but then you won't have the protection diode.

  Are you sure? yes | no

Bruno Ricardo Santos wrote 04/20/2018 at 22:00 point

I have everything almost running, but a problem... 

In the touchID, up and down turns to right or left and left and right is forward and reverse... I thing I have the wires that go to the motors wrong.... 

  Are you sure? yes | no

Bruno Ricardo Santos wrote 04/20/2018 at 22:15 point

Problem solved ! Just switched the wires in one motor and now it's ok ! Thank you for such an amazing project ! Since I've found this on Thingiverse will post pictures there ! Thank you !  I had fun doing this and learned a lot about electronics !

  Are you sure? yes | no

Bruno Ricardo Santos wrote 04/18/2018 at 23:37 point

Hi Max.K. Love the project and almost finishing it ! 

I'm in the process of wiring it all up, but I'm having a doubt - electronics is not my strong suite - where to connect all the ground wires ? To the Raspberry PI Pins ? To the batteries ?  Thank you ! 

  Are you sure? yes | no

Max.K wrote 04/19/2018 at 08:27 point

The grounds of all components are interconnected. To reduce the amount of cables I soldered the GND-pins for the step-up converter , motor controller and charger directly to the battery. Then the LEDs and voltage sensor are soldered to the Pi terminals with thinner wires. But it's all the same electrical connection.

  Are you sure? yes | no

Bruno Ricardo Santos wrote 04/19/2018 at 09:58 point

Thank you ! Will terminate today and try it ! :)

  Are you sure? yes | no

laflaf3d wrote 04/16/2018 at 14:31 point

Hi Max.K.

unfortunately for the lifetime of our 18650 Li-ion Battery, it's doesn't like to be charged under C/2. So, to spare this lifetime we should charge these battery at 2.6A ! 

I guess for 2 parallel battery we need this kind of stuff :

Crazy, isn't it ?

Best regads

  Are you sure? yes | no

Max.K wrote 04/16/2018 at 15:32 point

Are you suggesting the charging rate is too low? That would be the first time I heard that. 

  Are you sure? yes | no

laflaf3d wrote 04/17/2018 at 06:55 point

Yes it's strange regarding all Li-Ion's device charging time / capacity. 

In Lipo's world we know that low current's charging make crystalization and decrease lifetime. I read many thing and wrote you too quickly. 


For Li-Ion (not Li-Po), charge rate is about 0,5C to 1C. Best at 0,8C ( After read all the night ( ;-) ) I guess our TP4056 is good for the job.

  Are you sure? yes | no