Skip to content

Releases: invertium/bms-dash

BMS Dash 1.2.2

Choose a tag to compare

@invertium invertium released this 23 Jul 14:46

Scan screen improvements

Both from tester feedback (thanks!):

More packs recognized without "show all devices"

The likely-BMS filter previously only matched a handful of names. It now
also recognizes:

  • LLT Power brandings,
  • bare module model codes some firmwares advertise as their name
    (SP04S034, AP21S002, ...),
  • and — regardless of name — any device advertising the JBD Bluetooth
    service (0xFF00), which is the most reliable tell.

If your pack still only shows up under "show all devices", please mention
its advertised name in an issue so the filter can learn it.

A device list you can actually tap

The list was sorted by live signal strength, which changes with every
received advertisement, so rows kept swapping places — and briefly-quiet
devices vanished and reappeared. Rows now keep a stable order (likely BMS
first, then by name) for the duration of a scan while the dBm readout keeps
updating in place.

Install

Download bms-dash-1.2.2.apk below. You may need to allow installing from
unknown sources.

BMS Dash 1.2.1

Choose a tag to compare

@invertium invertium released this 23 Jul 14:24

Fix: the password prompt for protected packs never appeared

1.2.0 shipped support for password-protected Bluetooth modules, but with a
circular flaw: the unlock handshake only ran when a password was already
saved, and the password prompt was only triggered by a handshake failure.
So on first contact with a locked pack nothing probed it, nothing prompted,
and the pack looked dead — "Waiting for battery data...", then a disconnect
back to the connect screen. Thanks to the tester who reported exactly that.

The app now sends the harmless app-key probe on every connect, the same
frame the vendor app always sends. If the pack answers "password required",
you get the password dialog; packs that don't speak the auth protocol at
all (the normal, unprotected kind) simply don't answer and connect as
before, after a short 2-second probe.

Still to verify on real hardware

If your pack now prompts, accepts the password, but shows no readings,
please open an issue — that symptom points at one specific known-missing
step (the vendor's root handshake), which was left out on purpose because
it is factory-level access.

Safety

Unchanged: the unlock frames talk to the Bluetooth module, not the BMS
controller. They write no register, no EEPROM and no factory mode, so the
app still only ever writes register 0xE1 (volatile MOSFET on/off).

Install

Download bms-dash-1.2.1.apk below. You may need to allow installing from
unknown sources.

BMS Dash 1.2.0

Choose a tag to compare

@invertium invertium released this 22 Jul 09:10

Password-protected BMS support

Packs whose Bluetooth module asks for a password now connect directly — no
more opening the Xiaoxiang app first to unlock communication.

Enter the 6-character password when prompted. It is remembered per pack (in
the Android keystore, not in plain settings) so reconnects are automatic, and
a rejected password re-prompts instead of failing silently.

Important

This is untested on real locked hardware. The protocol was derived from
packet captures rather than from a pack I own. If yours unlocks but then
shows no data, please open an issue — that symptom points at one specific
known-missing step (the vendor's root handshake), which was left out on
purpose because it is factory-level access.

Unprotected packs are unaffected: the unlock path stays completely closed
unless a password is set for that device.

Safety

The unlock frames talk to the Bluetooth module, not the BMS controller. They
write no register, no EEPROM and no factory mode, so the app still only ever
writes register 0xE1 (volatile MOSFET on/off). Commands that would overwrite
the stored password or escalate to the vendor root key are deliberately not
implemented.

Install

Download bms-dash-1.2.0.apk below. You may need to allow installing from
unknown sources.

BMS Dash 1.0.0

Choose a tag to compare

@invertium invertium released this 12 Jul 11:15

First release of BMS Dash — a dark, glanceable Android dashboard for JBD / Xiaoxiang smart BMS over Bluetooth LE.

Highlights

  • Dashboard: radial SOC gauge, voltage/current/capacity/temperature tiles, decoded protection warnings, device info, and a hardened single toggle for charge + discharge MOSFETs (confirm-and-retry against telemetry, confirmation prompt before cutting power).
  • Cells: per-cell bars with relative zoom, min/max/delta/average, live balancing indicators.
  • Monitor: gradient time-series graphs for voltage, current, power, SOC and temperature (1 m / 5 m / 15 m / All, touch tooltips, ~1 h history).
  • Connectivity: BMS-first device filtering, auto-reconnect on launch, stale-telemetry watchdog.
  • Demo mode: built-in simulated 10S pack — explore every screen without hardware.

Safety

The app only ever writes the volatile MOSFET on/off register (0xE1). It never enters factory mode or touches EEPROM/protection settings.

Install

Download the APK below and install it (enable "install from unknown sources" if prompted). Requires Android 5+ with Bluetooth LE; tested against a JBD SP17S005P17S80A.