⚡ Xiao nRF54LM20 Fire horse Battery Charger monitor

Hi there,

XIAO nRF54LM20A + nPM1300 Fast Charger Demo

I wrapped up a standalone battery charger demo for the Seeed XIAO nRF54LM20A using the onboard Nordic nPM1300 PMIC and the 1.54" 200×200 e-paper display.

This project is intended as both a PMIC demonstration and a reference for anyone wanting to build battery-powered devices with the XIAO platform.

Features

  • Native nPM1300 charger control
  • Selectable charge currents
    • 200 mA
    • 500 mA
    • 800 mA
  • One-button user interface
  • Battery voltage monitoring
  • Estimated State-of-Charge
  • Charge current monitoring
  • PMIC temperature monitoring
  • USB input detection
  • Session statistics
  • Estimated charge time remaining
  • RGB status indication throughout the charging cycle
  • Low-power e-paper interface

The UI is designed around a single USER button, making it easy to operate without any external controls.

User Flow

  • Fire Horse splash screen
  • Charger setup
  • Select desired charge current
  • Start / Cancel
  • 15-second safety countdown
  • Live charging dashboard
  • Statistics pages
  • Fire Horse “sleep” screen on completion or cancel

The charging dashboard provides live information including:

  • Battery voltage
  • Battery current
  • PMIC temperature
  • Charge time
  • Battery percentage
  • Peak current
  • Peak temperature
  • USB voltage
  • Session statistics

The countdown and live displays use partial e-paper refreshes to minimize flashing while keeping updates responsive.

Hardware

  • Seeed XIAO nRF54LM20A
  • Onboard Nordic nPM1300 PMIC
  • 1.54" SSD1681 (200×200) e-paper display
  • Single LiPo battery (tested with 1000–2000 mAh cells)

Purpose

This isn’t intended to replace a commercial battery charger. It’s a demonstration of how much capability is already available on the XIAO board with very little additional hardware. It also serves as a starting point for portable instruments, IoT devices, asset trackers, environmental sensors, and other battery-powered projects that need intelligent charging and battery management.

I hope it gives others a useful example of integrating the nPM1300 with a clean, low-power e-paper user interface. Feedback and suggestions are always welcome!

Here is the serial output …

=== CHARGE STATUS ===
Set: 200 mA
VBAT: 4227 mV
IBAT: 42 mA
PMIC temp: 33245 mC
Session SOC: 94%
Added: 0.21 mAh
_Update_Full : 1294663
=== CHARGE STATUS ===
Set: 200 mA
VBAT: 4227 mV
IBAT: 42 mA
PMIC temp: 33245 mC
Session SOC: 94%
Added: 0.41 mAh
_Update_Full : 1294663
=== CHARGE STATUS ===
Set: 200 mA
VBAT: 4227 mV
IBAT: 41 mA
PMIC temp: 33245 mC
Session SOC: 94%
Added: 0.60 mAh
_Update_Full : 1294663
=== CHARGE STATUS ===
Set: 200 mA
VBAT: 4227 mV
IBAT: 37 mA
PMIC temp: 34830 mC
Session SOC: 94%
Added: 6.23 mAh
_Update_Full : 1294661
_Update_Full : 1294663
_Update_Full : 1294662
_Update_Full : 1294663
=== CHARGE STATUS ===
Set: 200 mA
VBAT: 4227 mV
IBAT: 37 mA
PMIC temp: 34037 mC
Session SOC: 94%
Added: 6.70 mAh

HTH
GL :slight_smile: PJ :v:

Here is the Code… :+1:
Firehorse_Fast_charge_demo.zip (11.6 KB)

DUT…