16 Cell 18650 Charger/Discharger Board Module

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
3 Days from China to New Zealand, WTH! :ninja:
More info to follow.
 

Attachments

  • 20210128_143336.jpg
    20210128_143336.jpg
    107.9 KB · Views: 19

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Resolved a few PCB mistakes. 10x so far.
Nothing some drilling and jumper wire didn't fix :)

I2C MUX and ADC tested ok.
Shift registers ok.

20210207_161646.jpg

Next to populate and test further.
I am sure there will be some more minor fixes required before completion.

I will change the resistors on the green LEDs.
They are about double the brightness of the red and yellow. A little bit distracting.

Add a few more LEDs to indicate power and data activity.
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Revised code enough to verify sensors.
Voltage and temperature looks good.
Voltage does not seem to be jumping around like before, +-3mV. Maybe that will change once I get some live cells in there.
Current measurement is mostly good.
Slots 1-8 match up with what the meter says. 2.2mV across sense resistor at 50mA.
Slots 9-16 read 2.8-3.6mV. They do all measure the same with multimeter.
Can not see anything obvious issues with the track layout. But then again I am no EE :(
 

Oleksii

New member
Joined
Mar 18, 2020
Messages
15
Advise - implement possibility to "per slot" software adjustment of readings, where user can set +-%.
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Advise - implement possibility to "per slot" software adjustment of readings, where user can set +-%.
As long as the offset is liner across the range this would work.
Would still be nice to get to the bottom of the issue.
We could just be hitting the noise floor of the Analog MUX?
 
Last edited:

Bubba

Active member
Joined
May 9, 2018
Messages
300
Revised code enough to verify sensors.
Voltage and temperature looks good.
Voltage does not seem to be jumping around like before, +-3mV. Maybe that will change once I get some live cells in there.
Current measurement is mostly good.
Slots 1-8 match up with what the meter says. 2.2mV across sense resistor at 50mA.
Slots 9-16 read 2.8-3.6mV. They do all measure the same with multimeter.
Can not see anything obvious issues with the track layout. But then again I am no EE :(
Are the distances of the leads all the same? Do you have a 4-Wire IR tester? Check the connections between the chips to be sure that that's not contributing. Using a MUX could certainly introduce the variance. I haven't used them much. You could short each mux pin and apply the same voltage to determine how each input responds and check it's linearity.
 

sigdigits

New member
Joined
Feb 20, 2021
Messages
1
Found myself with the need to discharge/capacity test a lot of cells. Definitely interested in this, and wondering about costs/availability.
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Are the distances of the leads all the same? Do you have a 4-Wire IR tester? Check the connections between the chips to be sure that that's not contributing. Using a MUX could certainly introduce the variance. I haven't used them much. You could short each mux pin and apply the same voltage to determine how each input responds and check it's linearity.
Distances are not all equal.
Voltages across the sense resistors are the same. So it is a loss across the pcb traces.
Which I was hoping was not going to happen as it should be a no load path back to the adc. EE fail :(
Maybe I need to add a resistor to make sure it is a no load path?
I do have a 4wire tester but do not want to scrape the solder mask to enable testing at this stage.

I checked mux input and output and it seems to not affect the signal.
I will do further testing across the range and see if this offset is linear.
If it is we can adjust for it in software.

I would like to migrate to using a ESP8266 for the controller.

Testing is ongoing, getting close to going live.
First run will be a charge only so the cells can rest.
Give us time to tune the discharge programming

I think I have caught 90% of the hardware bugs.

20210221_144647.jpg

Found myself with the need to discharge/capacity test a lot of cells. Definitely interested in this, and wondering about costs/availability.

Cost.
Depends on your choice of cell holders and power supply.
Let's assume if you are going this route you want as many slots as you can.
JLCPCB has a minimum 5 board order, giving you 80 slots.
Note not all of the ordered PCB need to be populated so you can save a few dollars by having only 4 boards with components on them.
But the major cost is setup and shipping so not really worth it to not populate all boards.

Costing below for least labour intensive smd holder option.
us$
18 Controller. Arduino Mega as code is not currently not optimised.
189 5x populated boards (153 order + 36 shipping)
40 80 x single smd holders
40 80 x tp5100
30 160 x 5w resistors. Use two to keep them below 50% of their rating. Less accidental burn risk.
----
317

Allow for a 400w (12v 34A) power supply. 5w * 80.
A few hours to put everything together.
.Solder on cell holders
.wire board data interlinks.
.wire board power interlinks

For comparison a MCC currently goes for us$180 + shipping.



Availability
The hardware is open source. Current posted revision has some bugs.
Can order your own set from JLCPCB.
My software will be open source too. Although someone else might write a better closed source software for it.
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Some juicy data to look at.

Starting charge voltage 3.6v
Reported voltage from sense resistor x100 to get on same area.
Charge terminated at 2.32 mV, 58mA.
Sense voltage during CC phase jumps between 38-55mV.
Will have to put a scope on to see why that is. Seems to settle down during the CV phase.
Not sure what the two steps in the Amps plot is before termination.

CHarge_run_s8.PNGCHarge_run_s8-excell.PNG
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Plot for float.
This TP5100 board terminated charge at 4.150v

1613979814067.png

Next steps
-Calibrate offsets for voltage and current measurements.
-Update code to use Current as trigger to switch from end of charge to float. And cycle termination.

Using the led output of the TP5100 modules was no good. Too much noise?
I could add a RC filter. Would have to be for each channel.
Will need to check it with a scope. Will leave for now as the current sense should be just as good.
Also one less thing to solder during assembly.
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Hardware validation is almost complete.
Just need to test discharge components.
The inductors on the TP5100 modules do get hot. 65-70 degrees C.
Probably still within component spec but hot enough to give you a little burn.
 

Attachments

  • 20210227_082232-therm.jpg
    20210227_082232-therm.jpg
    86.7 KB · Views: 27

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
I am now testing multiple boards together and debugging that part.
The software arduino shiftout function is a little sow.
Trying to use the hardware spi pins.
And optimise the code to keep each update cycle below 1 second.

The ADS1115 has a max read speed of 860 samples/second.
At 80 cells thats 240 reads, 279ms. Volts, Amps, Temperature for each cell.
Have to keep the communication/reporting/switching/processing overhead below 700ms to be safe.
Current sitting at 1500ms total for two boards so i have a little way to go :(
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
After some optimization I am down to 200ms per board. So 2 boards is 400ms.
When all 5 are going it will be close.
There is some room for improvement that might shave a few more ms to allow us to keep 1 second refresh rate.
Otherwise 2s refresh is still plenty accurate. :)

20210316_222241.jpg
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Hardware validation complete.
Now to assemble the rest of these boards and put into service. :)

Highlighted on the screenshot is the voltage of cells 60s after charge termination.

Too much noise on the current sense lines at these low voltages.

The board will be revised. An updated one posted.
-Fix bugs
-Current sense amplifier will be added. INA180
-Schottky diodes on each cell to protect mux/adc from reverse polarity
-Add mounting holes
-Status LEDs moved to left/right edge of the board. Can't see them easily when cells loaded where they are.
 

Attachments

  • ina180.pdf
    2.9 MB · Views: 23
  • 20210320_134531.jpg
    20210320_134531.jpg
    148.6 KB · Views: 39
  • 20210320_run.PNG
    20210320_run.PNG
    160.1 KB · Views: 36

floydR

Active member
Joined
Aug 23, 2017
Messages
992
That title is wrong: it's not a charger. It's only a BMS. Which is fine, but you still need a charger. Can I hook up the load and charger to the p+ and p- ports?
Showbox jiofi.local.html tplinklogin
This is not a BMS,This is for testing 18650cells. charging them to 4.2v and discharging them for capacity check.
Charger/tester , A power supply hooks to the + and -.
later floyd
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
System in service.
The other two boards have a fault to be resolved.
Cycle time is about 8hrs per lot.

Updating the pcb now. 🤓
 

Attachments

  • 20210330_175618.jpg
    20210330_175618.jpg
    2.3 MB · Views: 18
  • 20210330_175639.jpg
    20210330_175639.jpg
    2.3 MB · Views: 21

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Fixed last two boards and put into service.
Still have 5 slots out of service.

Rewired float voltage source so it detects voltage at the midpoint of the boards to compensate for voltage drop.

Using an old server psu for the 12v.

Ignore amp readings as they are not exact.
They are +-150mA.

20210405_172438.jpg20210405.PNG
 

nz_lifer

Member
Joined
Aug 26, 2020
Messages
79
Hopefully it is just a once off warmup charge after being in storage for a while.
Will see on the discharge run.
The current jump you see is when the slot goes into float mode and the current is multiplied 10x for easier tracking, rather than sitting in the bottom of graph.
Ambient temperature for this run was 20-21 degrees.

Heaters.PNG
 
Top