JBD / Xiaoxiang Smart Bluetooth BMS
Extensive information surrounding the popular JBD / Xiaoxiang smart bluetooth battery management system (BMS). Software, Guides and More.
Android 10/11 Support Now Out!
Version 3.1.1026 is now out, targeting android 10 and above.
On android 9 and below, you may need to uninstall old app first before installing new version.Download here! Google Drive Mirror
The Xiaoxiang Bluetooth Battery Management System (BMS) is a powerful and affordable chinese bms available on Aliexpress and Ebay.
- Available in 3s up to 25s configuration
- Configurable balance turn on voltage (balancing works with 80/90% charger modes)
- 1-3 temp probes for low temperature/high temperature cut off.
- Software switch allows load/charge disconnect
- Multiple chemistry support (Lithium-ion, LiFePO4)
- Onboard UART allows configuring parameters on the fly and monitoring with the use of a UART to Bluetooth Module or UART to USB module.
Note: default bms password / key is 123456.
- Latest (includes support for Android 10+) 3.1.1026 (jiabaida.com)
Installing app may require uninstalling old version then installing new version. Otherwise installation may fail.
- (Xiaoxiang / Official): Apple Store
- (Xiaoxiang BMS / Unofficial): Apple Store and Github Source (smagicld/xiaoxiangBMS)
- (JBDTools / Official): Official Download Here (LithiumBatteryPCB.com)
Hookup guide (relabled, 13s example):
Below is a visual guide to connecting both battery management system (BMS) and battery to load and charger. Wiring example for a 13S bms and battery is shown.
Below is a visual guide to wiring 13s balance wires. Shows order of balance wires coming out of the balance connector. Your application may have more or less balance wires.
I recommend labelling the balance wires with stickers showing their number order and doing the same on the battery. It will reduce errors when you go to install the wires.
After connecting the BMS to the battery, check the battery state in the app.
Above: After pairing the app with the battery, press "voltage range" on the main screen (boxed in red in the above screenshot).
Above: All cell groups show healthy voltage status.
- If any group is too high, you likely have the balance wire order mixed up. Check your balance wiring.
- If any group reads 0V, you likely have loose or unconnected balance wires. If balance wires are correct on the battery side, try reseating the balance connector on the BMS.
- If the first group reads 0V, battery main negative wire likely not connected to the BMS. Battery main negative wire is required to properly read voltages on all groups.
- If issues continue to persist, it's likely one or more of the balance channels are defective and the BMS needs to be replaced.
This Bluetooth BMS has the ability to be switched on using a physical switch. Switch functionality can be enabled by connecting a latching switch (toggle switch) to K1. K1 does not have a JST connector by default, either solder one or solder wires to the pads. Switch functionality must be enabled in Windows JBDTools or in Android Xiaoxiang App V3 or newer (Older versions are missing the toggle).
Above: 13S Xiaoxiang BMS with heatsinks removed. A switch can be connected to k1 on the BMS PCB, boxed in red.
Bluetooth Module is an LH-BT05 bluetooth to serial module. It is connected to the UART on the BMS main microcontroller (Atmel 328p).
Using third party bluetooth to serial module:
UART port on Xiaoxiang BMS does not put out 3.3V or 5V on VCC! It is ~10V! Connecting VDD to a serial to USB adapter may fry the adapter and/or damage your computer's USB port. Leave VDD unconnected.
Read BMS over Bluetooth using an ESP32:
Interface BMS with Arduino (Wired):
Code for working with BMS protocol:
Reverse Engineering BMS protocol:
https://www.dropbox.com/s/03vfqklw97hziqr/%E9%80%9A%E7%94%A8%E5%8D%8F%E8%AE%AE%20V2%20%28%E6%94%AF%E6%8C%8130%E4%B8%B2%29%28Engrish%29.xlsx?dl=0 (Protocol Description In Excel Spreadsheet)
Open Source Third Party BMS Firmware: