Supported BMS

JBD / Xiaoxiang

The most common protocol in LiFePO4 house batteries with Bluetooth. Many brands sell the same electronics under their own name — to find out whether yours is one of them, look in the Bluetooth list for a name starting with "xiaoxiang".

Type
Active — the app polls it
Verification
Verified against the simulator, not against real hardware
Sold as
JBD · Jiabaida · Xiaoxiang · Liontron · Eco-Worthy · Epoch
Bluetooth service
fff0 · Notify ff01 · Write ff02 · alternatively fff1 / fff2

What the app reads from it

  • Pack voltage, current, remaining and rated capacity, state of charge
  • Cycles, temperature sensors, firmware and build date
  • Every cell voltage individually
  • MOSFET state for charging and discharging
  • Protection flags from the BMS in plain words
  • Which cells the balancer is currently working on

An active protocol: the app alternates between two requests — the basic state and the cell voltages.

The implementation runs in the vehicle but so far is only verified against the simulator. If a number does not look plausible to you, get in touch — a capture helps more than any description.

My battery does not show up

Is another app still connected?
A BMS usually allows only one Bluetooth connection at a time. Close the manufacturer app completely, not just its window.
Have the permissions been granted?
From Android 12 the scan needs "Nearby devices". On Android 11 and earlier the system demands the location permission instead — that is a quirk of Android; MultiVolt evaluates no location.
Is the battery in range and awake?
Some modules power down the radio when no current has flowed for a while. Switching on a load for a moment wakes them up.
Was a model pinned during pairing?
If a specific protocol is set in a battery’s settings, the app tries only that one. Set it back to "automatic" and it will work through all three again.