Based at Pawel's firmware - Branch:master at 16.01.2016 With some fixes from later versions (till Dec,2016)
Compatible with EEPROM v1.99/v2.00 10.3.12
for testing
IMPROVEMENTS
- On-the-fly adjustable current
- Small menu for battery charge/discharge limits and adaptive discharge (press Ent at Vinput screen)
- Freeze and show voltage and current at the end of charging/discharging
- Manual/Automatic scrolling for Cycle History screens
- Adjustable voltage (before process)
- On-the-fly adjustable capacity limit (limits screen)
- On-the-fly adjustable time limit
- On-the-fly adjustable discharge power limit
- Batteries can be charged from 0 voltage
- Long press Stop key for stop - prevents accidental stop with loosing data
- 1/4 of current for deeply discharged batteries
- self-recovering current for CV-mode for old PB
- 160% capacity cutoff for NiXX and 120% for other types (defaults)
- current pulses for more precise resistance calculation (uncomment //#define CURRENT_PULS in GlobalConfig.h)
- smooter soft start routines for atmega "50W charger"s architecture
- different routine for energy calculation
Now it is possible to change main parameters while charging discharging and cycling. New voltage/current will be actual till the battery type change. It does not stores to EEPROM. New capacity or power limit will be used only once. For example: capacity limit can be used for skipping of first discharge in cycling mode
this fork discussion - https://groups.google.com/forum/#!topic/cheali-charger/EuhUAoyecso
last changes
20.05.2018 ...
This project is an alternative firmware for a variety of lipo chargers,
see hardware.
Don't use it if You don't need to
(not everything is implemented yet).
Any feedback is very welcome!
http://groups.google.com/group/cheali-charger
- Li-ion, LiPo, LiPo-4.30V, LiPo-4.35V, LiFe:
- charging
- fast charging
- charging + balancing
- discharging
- balancing
- storage
- storage + balancing
- NiCd and NiMH:
- charging, method: -dV/dT
- discharging
- cycling
- NiZn:
- charging
- fast charging
- charging + balancing
- discharging
- balancing
- Pb: - not well tested!
- charging
- discharging
- Internal resistance display
- single cell resistance
- whole battery resistance
- battery leads resistance
- Internal and external temperature monitoring
- Overcharge and overdischarge monitoring
- Input voltage monitoring
- Memory for 30 batteries
- LogView support
- CALIBATION!
Please CALIBRATE charger before use!
Use an external temperature probe
(if You like your house ;) )
ALWAYS connect the power supply first, then the battery!
ALWAYS disconnect the battery before disconnecting the power supply!
WARNING: You can get two chargers with the same name but different CPUs even if you buy from the same seller.
Only chargers with a atmega32 or M0517LBN CPU are supported.
Atmega32 CPU:
- G.T. POWER A6-10 200W
- IMAX B6 Charger/Discharger 1-6 Cells
- AC/DC Dual Power B6AC 80W RC Balance Charger/Discharger
- Turnigy A-6-10 200W Balance charger & discharger
- Turnigy Accucel-6 50W 5A Balancer/Charger w/ Accessories
- Turnigy Accucel-8 150W 7A Balancer/Charger
- Turnigy MEGA 400Wx2 Battery Charger/Discharger (800W)
- ... many more
Nuvoton NuMicro M0517LBN CPU:
- IMAX B6 Charger/Discharger 1-6 Cells
Unsupported
- Turnigy Accucel-6 80W Balancer/Charger - Based on an older, uncommon CPU. See #106
- any charger listed above with an unknown CPU (CPU not labeled)
After flashing your charger the first thing you should do is
reset the charger to default settings (go to: "options"->"reset default" and press the "start" button)
and then calibrate it, now your charger is ready to use.
programming you charger:
- select a free battery slot (indicated as 1., 2.,...)
- go to "edit battery"
- change battery type "Bat:"
- set battery voltage (number of cells) "V:"
- set battery capacity "Ch:"
- set charge current "Ic:"
- set discharge current "Id:"
- set time limit "Tlim:" (can be unlimited)
- press "create name"
charing/discharging...:
- select battery
- select program: "charge", "discharge"...
- you should see a "info" screen,
(if you hear beeps, check your battery connections) - hold "start" button for 2s to start the program
- charger is working now, press "inc", "dec" to see more screens
- to exit the program press "stop"
- informations about settings
- charging NiMH and NiCd batteries
Connect a NOT fully charged LiPo battery to the main leads
and the balance port, if you don't own a battery with a
balance connector, just connect a regular one (~4V)
to the main leads and the balance port first two pins
(pin "0" <--> Bat-, pin "1" <--> Bat+).
go to: "options"->"calibrate":
- voltage calibration: go to "voltage"
- use a voltmeter to measure voltage on all cells and the power supply voltage (Vin)
and set voltage on Vin, Vb1, Vb2, .., Vb6- only Vb1 is mandatory, battery main leads and balance port must be connected
- you need to change at least one value (this will copy V1-6 voltage to Vbat)
- use a voltmeter to measure voltage on all cells and the power supply voltage (Vin)
- charge current calibration:
- connect your amperemeter in series with the battery, use the 10A(20A) input
- disconnect balance port
- go to "I charge"
- go to: "50mA" (100mA on some versions)
press "start" button (current flow should be visible on amperemeter)
press "Inc", "Dec" buttons until the amperemeter shows 50mA (100mA on some versions)
press "start" button to save the setting - go to: "1000mA"
press "start" button
press "Inc", "Dec" buttons until the amperemeter shows 1000mA
press "start" button to save the setting
WARNING: the battery will be charged with high current!
- go to: "50mA" (100mA on some versions)
- discharge current calibration: go to "I discharge"
Repeat the same steps as before
WARNING: the battery will be discharged with high current! - when needed: external (or internal) temperature probe calibration: go to "temp extern" ("temp intern") You have to set two calibration points
Done.
If you have any problems with calibration, go to "options"->"reset default" and try again.
- After flashing I see "options" and some strange characters in the second line (for example: squares), what should I do?
- reset the charger to default settings (go to: "options"->"reset default" and press the "start" button)
- I get "calib. error": see this.
Atmega32 CPU:
- After flashing charger doesn't work (display shows squares):
- download the *.hex again, use the "RAW" button in github
- check the sha1 sum of the file, compare it with *.sha1:
- linux: $sha1sum cheali-charger*.hex
- windows: install Microsoft File Checksum Integrity Verifier
- in cmd.exe: fciv.exe -sha1 -add cheali-charger-*.hex
- Sha1 sum is correct and the charger still doesn't work (display shows squares):
- reset atmega32 fuses using avrdude:
- windows: avrdude.exe -patmega32 -cusbasp -Uhfuse:w:0xc5:m -Ulfuse:w:0x3f:m
- linux: avrdude -patmega32 -cusbasp -Uhfuse:w:0xc5:m -Ulfuse:w:0x3f:m
- njozsef fork
- sasam M0517 flash tools
- Cheali Charger V0.33m - User Guide: English, Hungarian
- balancer modification, Hungarian: pdf, website
- Gyuiri's schematics: turnigy 2X400, turnigy 2x200, turnigy 8150
- Imax B6 Schematic, rcgroups
- Panasonic ni-mh-handbook-2014, Duracell Ni-MH_Rechargeable_Batteries_2007
- batteryuniversity.com
- Atmel AVR463: Charging Nickel-Metal Hydride Batteries with ATAVRBC100
- Atmel AVR121: Enhancing ADC resolution by oversampling
- Programming of different charge methods with the BaSyTec Battery Test System
- Pulse Charging NiMh Batteries Candle Power Forums
- 9 stages Charge algorithm
If you have any questions or suggestions please write to us at: cheali-chargerATgooglegroups.com
or visit: http://groups.google.com/group/cheali-charger
The mailing list is open for all.
Have fun!