For context this is not my first ebike battery build.

I am in the process of building two additional battery packs for my new ebike.

I will be using 18650 cells with the appropriate 16s BMS for each new pack.

I will build two additional packs so that on long journeys I can connect them all in parallel using XT90 connectors.

See my simple schematic below:


simulate this circuit – Schematic created using CircuitLab

The schematic outlines my current problem.

In the "Sunny Day" scenario all three batteries are at the same voltage prior to connection. This means that there will be no issues connecting them in parallel.

In the "Rainy Day" scenario one of the batteries is not at the same voltage as the other two. If this were to happen, when connecting the batteries together the two packs at the higher voltage will try start charging the lower voltage pack, each pack will be able to provide a high current which may damage either the lower voltage pack BMS or the cabling or the cells. I will be using cables with an appropriate gauge for the intended charger, but not for charging via two batteries.

I am aware that this could all be partially mitigated by a couple of methods, such as:

  • Always having all three connected and charging all three at the same time
  • Having a voltage gauge on each battery

I don't want to use any of these methods as I want some flexibility (sometimes I might want to run with just one additional pack) but I also want a safety element build in.

Points to note before anyone suggests a way forward with this:

  1. The ebike can draw up to 6000 W, at 6 kW and 67.2 V that's ~90 A. If the batteries are nearly flat 51.2 V thats ~ 117 A. Therefore any suggestions need to be able to cope with up to 117 A!

A possible solution I have come up with (see schematic below) is to use a high current relay powered by a lower current relay (and power source) controlled by an Arduino Nano. How this would work, is that the Nano would be connected to the Vout of each battery pack and if the connected battery pack was outside of a tolerance (+/- 2V) then the high power relay wouldn't be triggered and the battery would remain isolated.

I keep thinking, there has got to be a simpler way, however I can't think of it.


simulate this circuit

I hope you now understand my problem, any help/suggestions will be very much appreciated.


  • \$\begingroup\$ an arduino cannot drive a relay by itself, you will need to add a mosfet for example ;) you cannot either measure your battery levels like that; you have to use 2 ADC analogic digital converters befor entries of the arduino ... & of course you will need also a 5 volts for the arduino power itself (and maybe the ADC) \$\endgroup\$
    – user201301
    Jun 30, 2020 at 19:12
  • 1
    \$\begingroup\$ Thank-you for your feedback @francois P. To be clear to all, I am not looking for a critique of my Arduino design. I do not think that it is a suitable solution. I am asking a question on this forum as I do not have an alternative and wish to see if someone in the wider community has a much more simpler and elegant solution than using an Arduino at all. \$\endgroup\$
    – Chris
    Jun 30, 2020 at 22:05
  • \$\begingroup\$ Relays are bad, especially at 117A. Better to just charge each battery separately to the same voltage before connecting them together. I suggest always using the 3 batteries in parallel if possible. If you don't want to do that then rotate usage so they (hopefully) age at the same rate. \$\endgroup\$ Jul 4, 2020 at 5:13

2 Answers 2


An easy solution to this problem would be to add a Schoky Diode in series with all 3 battery packs with a reverse voltage rating of at least 70V. You would want to select a Diode with the lowest Forward Voltage since that will determine the amount of power lost. Power Loss = Vf * I. With a larger power loss being one disadvantage, I believe that heat will also be an issue. Depending on how much power is being eaten by the diode, you diode may get too hot for comfort/operation.

A more difficult, but more effective solution would be to use relays as a switch that connects and disconnects the external battery packs. You could probably use back to back MOSFETs as well, but it all depends on how small of a circuit you need/want. Here I have a mock circuit of what you would want to build. The components PN don't need to be identical. Use whatever works best for you.

EDIT: The cathode of D2 should be connected to 12V. enter image description here

The main battery pack has a voltage divider so that the reference voltage on the Arduino is lower than 5V. For the external battery packs, they use the same voltage divider when comparing the external battery voltage to the main battery voltage. If the external battery packs are lower than the main battery pack, then you could write a program that disables the relay until the voltage on the main battery pack matches the voltage on the external battery pack. A flyback diode is needed on the relays to prevent a voltage spike on the inductors when turning off the relay.

A buck converter is used to step down the main battery voltage, and use it to energize the relay. You may need to design the Buck Converter yourself since I do not know of any COTS Buck Converters that can take an input voltage of 70V.


Probably the best way here is to make things stupid simple:

For each battery take one piece of high power full wave single phase diode bridge rectifier matching your battery Voltage (charge cutoff) and double target Amps of load.


AC 1: battery -

AC 2: battery +

DC +: load/motor/controller +

DC -: load/motor/controller -

This should prevent balancing of charge. Power will be drawn from battery having higher voltage until batteries equalize. After power would be drawn from all batteries.

If you want to charge all batteries with single charge source at the same time:

For each battery you want to charge in parallel take one full wave single phase diode bridge rectifier (match Volts and double charger Amps).


AC 1: charger -

AC 2: charger +

DC -: battery -

DC +: battery +

Charger will first charge battery having lower voltage until batteries equalize. Will charge all in parallel after.

Good luck.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.