cheap lipo charger
Clone or download
stawel Merge pull request #259 from ireun/patch-1
Added Imax B6 Mini to unsupported devices list
Latest commit 18eb4c4 Jul 5, 2018

Welcome to cheali-charger!

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!


  • 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


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



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"


  • 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"
  1. informations about settings
  2. 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)
  • 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!
  • 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

If you have any problems with calibration, go to "options"->"reset default" and try again.

Calibration - Expert (IMAX B6) - optional

Building from Source


  1. 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)
  1. I get "calib. error": see this.

Atmega32 CPU:

  1. 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:
  1. 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

Useful materials

Mailing list

If you have any questions or suggestions please write to us at:
or visit:
The mailing list is open for all.

Have fun!