Skip to content

Releases: microfarad-de/li-charger

Undervoltage Detection Bugfix

24 Apr 17:58
Choose a tag to compare

Fixed potential bug that could prevent sudden undervoltage detection due to a short circuit and removed makeshift NiCd battery support.

Command Line Build

13 Feb 16:15
Choose a tag to compare

Support command line build via Makefile. Among others, the following make targets are supported:

  • make all: Build the Arduino firmware
  • make upload: Upload to the Arduino board
  • make clean: Remove all build artifacts
  • make release: Create a .zip file with the firmware source code

The following environment variables need to be defined on your
host system (the actual values depend on your system configuration):
export ARDUINO_DIR=/opt/arduino
export ARDMK_DIR=/opt/arduino-mk
export MONITOR_PORT=/dev/ttyUSB0


12 Mar 17:04
Choose a tag to compare

Moved parts of the source code to separate Git submodules.

Further Compile Error Fix

05 Oct 15:58
Choose a tag to compare

Fixed a further capitalization error that prevented the code from compiling on a case-sensitive file system.

Compile Error Fix

26 Sep 12:15
Choose a tag to compare

Fixed a compile-error on case-sensitive file systems, caused by wrong file name capitalization within include statements.

Improved Validation and PWM Update

26 Jun 20:21
Choose a tag to compare
  • If parameter validation fails, the parameter is not written to EEPROM and an error message is displayed
  • Synchronize PWM updating with ADC read cycles, this ensures that a fresh ADC reading is available prior to updating the PWM frequency
  • The system state is now printed within the output of the . (dot) command

Increased PWM Frequency and Easier Calibration

24 Jun 23:01
Choose a tag to compare
  • Increased PWM frequency to 31.250KHz
  • Improved calibration procedure: the exact reference voltage value is now passed as an argument, so there is no more need to use a precision power supply
  • Harmonized CLI command names to match the ones of pi-ups
  • Check the number of arguments passed to the CLI commands that require numerical input
  • Set the failsafe value of R_shunt to 100mΩ

Fixed a Minor Bug and Improved Code Comments

28 Jan 13:10
Choose a tag to compare
  • Removed duplicate initialization of tickTs = ts
  • Updated inconsistent parameter and function descriptions

Increased Test Coverage

20 Jan 23:33
Choose a tag to compare

Test Coverage

  • Depleted Li-Ion battery with BMS cutooff
  • Almost full Li-Ion battery
  • Full charge cycle
  • Trickle charge cycle
  • End-of-charge detection
  • Sanity-check charge time and remaining capacity estimation
  • Makeshift NiCd charging support

New features

  • System trace: trace real-time charging parameters to EEPROM


  • Fine-tune charge time and remaining capacity estimation
  • Increase the speed of reaction to sudden current or voltage increase
  • Remove end-of-charge detection based on current increase
  • Improve voltage-based end-of-charge detection

Optimization and Test Coverage

18 Jan 09:37
Choose a tag to compare
  • Reuse strings in different places to save memory
  • I_safe is now a factor of I_chrg
  • Test very low voltage use cases
  • Test I_safe
  • Test Trickle Charging