Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
South Africa
Asked — Edited
Resolved Resolved by Rich!

Ezb V4 Incl Batteries

Hi peeps,

I'm new to the Ez-Robot community. I recently put in an order for the JD Revolution bot, excited about its arrival, even though it's in stage 2:)

I've been reading up about LiPo batteries and I am now sufficiently perplexed by the numerous complications surrounding all things LiPo...

From what I know, the JD kit includes a 1300mAh 7.4VDC LiPo battery (charger incl), but to better my understanding of what this means (pardon my ignorance if I ask stupid questions, but I am still new to a few of these things) this would mean that:

7.4 volt battery = 2 cells x 3.7 volts (2S)

Essentially, the battery pack is a 2-series LiPo battery pack. Subsequently at 100% charge, this battery pack would output roughly 8.4V?

From what I've read, LiPo batteries don't like being discharged past 80% of their capacity for numerous reasons, so I have the following question:

I'm assuming the EZ-B v4 does not cater for LiPo batteries going below 80% of their capacity as the the use of battery is not known upfront and for a number of other reasons. (also assuming this can be done easily as an extension by the end-user).

What's the best way to measure the voltage coming from the battery with regards to the EZ-B? For instance, the voltage reading detected by the EZ-B is 7.6, call an algorithm to move to the charging station or move to a safe zone and shutdown so as to limit the damage to the batteries?

I just need a basic idea of what needs to be done, I'll try and figure out the details as that's the fun part of the project:)

Just to give some context as to my experience level - I've been programming in C/C++/C#/Java for about 10 - 12 year now, but my experience with electronics is minimal. I know the bare minimum.

Thanks in advance!

Kind regards,


Upgrade to ARC Pro

Synthiam ARC Pro is a cool new tool that will help unleash your creativity with programming robots in just seconds!

It's true lithium batteries don't like to be over discharged and saying that they shouldn't be drained past 80% is over simplifying things just a little...... They do have a limited range, though... Peaking at a voltage of around 4.3V per cell and having a cuttoff voltage of not less than 3 volts per cell when they are fully discharged... You have to remember it takes a lot to drain them form 4.3v to just over 3v, however... They do a lot of work between that voltage range... Like all rechargeable batteries (including nImh and NiCad) they start off at a higher voltage than their normal (3.7V/cell) voltage (hence the 8.4v instead of 7.4v) then decrease from there... In my opinion, they are far superior for our applications than any other battery chemistry...
South Africa
Thanks for the response.

In essence though, what I am looking for then is a low battery indicator I suppose... What can I read up about to get an idea around implementation?

I want to implement a low battery indicator that gives the robot (taking into consideration the average battery current consumption rate) sufficient time to reach the charging station/safe zone.

So I think I would possibly need: A way to measure the remaining battery charge (possibly get this from EZ-B directly without additional components?)
United Kingdom
I have written a script and tutorial for a LiPo monitor circuit which will most likely be able to be added to JD and the other revolution robots should it be required. It only requires a voltage divider to drop the voltage below 5v for the total battery, this then feeds in to an ADC port which can be monitored by the EZ-B and a script can be set to alert or even shut down when the voltage level is getting low.

A second ADC port can monitor the first cell of the battery with no additional circuit since it's fully charged voltage is 4.2v.

The same script, or a different one if preferred can be used to calculate cell 2's voltage.

Have a look at my LiPo Monitor tutorial for more.
South Africa
Thanks Rich!

This gives me a good start and an idea of what I can do.

I just had a read on what Zener diodes are and how they work. Your circuit makes more sense now.

Have a few questions though if you don't mind answering (with reference to the second diagram in your tutorial):

1) R1 in your diagram I take it is used to drop the Vin to the required output voltage?

2) R2/R3 I'm not too sure what they are for though?

3) Would an additional fuse in the circuit be overkill to protect against over-current given that the resistance chosen is sufficient to account for the power dissipation? (My apologies if this doesn't make sense, did a crash course in Zener diodes today)

Also, you mentioned in the tutorial you were considering looking at a shut-off circuit for low voltage situations, did you ever get around to finishing such a circuit?

I'd be interested in having a look at how you went about designing that as well.
United Kingdom
It's a simple voltage divider. R1 and R2 are equal therefore the voltage where they meet is half. R3 is used to go to the signal, it's recommended to have a resistor on the signal for any circuit, it also reduces the current drawn (ohms law, V divided by R = I so 5/10000 = 0.0005A)

The diode is there to protect against over voltage (however on my physical circuits I made I don't use the diode since I didn't have one).

Google for Voltage Dividers and you'll find the same schematic/circuits all over the internet with great write ups and explanations.
There are also PCBs (Power Control Boards) that can be connected to Lithium cells that monitor and control charging as well as discharging voltage and current. Some will even balance cells.
South Africa
Thanks once again Rich, makes much more sense now.

Thanks Robot-Doc, just enjoy learning how most of these components work even though I will end up using bits and bobs to build components instead of doing it myself.

Cool stuff:)
The EZ-B v4 has a battery monitor. The EZ-B v4 will shut down the servos and I/O ports when the battery voltage is low - it will also flash a red LED that says Low Battery.

The EZ-B v4 also has a temperature sensor built into the CPU - so the cpu core can be monitored for thermal shutdown
User setable wouldn't be wise since a dead battery is a dead battery... it's not an arbitrary value... You allow a lipo to drop below 3v per cell and you may need to buy a new battery...Maybe you mean the ability to monitor the voltage value? Then maybe you can adjust your robot's behaviour before the EZB4 shuts things down?
It is user settable so that it can work with different battery voltages
You should see what one goes thru with lipos when used with RC Model airplanes, yikes, but is my favoroite hobby.
South Africa
Thanks DJ! I take it an event is "hook-able" within ARC / EZ-SDK where you will be able to handle the low-battery event?

I would like to handle the low-battery events as mentioned to either move to a charging station or shutdown completely.
Mjv4721, with the SDK it is an event - however, the ARC it isn't... I can make an EZ-Script launch when it occurs if you'd like?
South Africa
I am most likely going to fiddle with the SDK:D So I'll hook up to the event from within the SDK. Is the low battery event already available in the documentation? I know you mentioned that the low battery event is new to the EZ-B v4 or did I maybe misread that part? (So not sure if the documentation has been updated accordingly)

On a side note, will the ez-openbot project be maintained to for the EZ-B v4 specification?

Thanks for the cool product, looks amazing thus far. Can't wait to get my hands on my preorder.
@dj sures said " I can make an EZ-Script launch when it occurs if you'd like?" -- Yes please! In fact, events at different levels would be better so on moderately low we can attempt a return to charging station, and at very low we can initiate a graceful shutdown or other tasks (or just make the voltage a script variable might be more flexible).

So many uses. return to charging station, graceful shut-down of embedded computer, send an alert (email/twitter, etc...).

@DJ, I'm with Alan on this one. Although I'm probably capable of using the SDK (c# and I are no strangers) I've not needed it so, having anything extra you want to throw in to the ARC "home game" would be cool. Better to have it and not need it than need it and not have it.

TBH I've really been exploring more of the physical engineering. I'm kind of weak there I feel. I've built a few bots but none of them have lasted long enough to really explore all that the EZ has to offer.

I like using the keyboard control for movement and have made a few scripts for a pan and tilt keyboard control. One with standard servos and recently, for my Roli, one that uses modified servos. I had them and didn't want them to go unused. Since I want to pan and tilt at a slower pace anyway using them doesn't seem to be an issue. And I had the ping sensor working on Fifah. But that's been about it.

There are two others I had design issues and put on the burner. Roli is replacing one of them so, having Roli to build off of is very exciting for me and any goodies you want to throw into the software are just more toys to play with. Very excited to hear about the new EZ Bit gyro and others showing up in the store soon. I can't afford to buy anything right now but, I like window shopping.

Sorry to rant but I'm getting excited now. :D