XR Health Check

Posted: May 21, 2020

This is a quick overview of the XR battery health and RLODs; I’ll have a much more in-depth look in early June 2020, with charge/discharge graphs and a look at why older firmwares or more discharged batteries are more likely to RLOD.

With a CAN Bus adapter and an XR battery, you can fairly quickly check to see how imbalanced the cells are. RLODs can occurs at a 500mV spread between highest and lowest cell; a spread that’s 400mV at rest may become more than 500mV as the state of charge decreases and the pack is under load.

Connecting to the Pack

Ideally, you have the necessary Higo connector, which makes this a lot safer and easier. If not, you can get away with jumper (“DuPont style”) leads.

Top right is Ground, Bottom Left (green) is CAN Low, Bottom Middle is Enable (blue), and Bottom Right (yellow) is CAN High.
XR battery connected to a CANable Pro.


You’ll need python-can installed and a compatible CAN interface to run this. Additionally, you’ll need to ground the Detection pin on the battery connector to get any data (see images above). You can also parse this data with an Arduino or any microcontroller with a CAN transciever, if you are so inclined.

Start up can_viewer.py, and then turn on the battery. The power LED will start green, and then go to yellow, with the middle 3 battery LEDs illuminated – this is normal, and indicates that the battery hasn’t gotten any messages from the ESC. You can safely ignore this.

can_viewer.py -c /dev/tty.usbmodem14101 -i slcan -b 250000  -d "10334450:<HHHxx" -f 10334450:FFFFFFFF

Read the docs for the exact -c and -i flags you need. I’m using a CANable Pro on Mac OS X, with the slcan firmware.


“Parsed Values” are lowest cell voltage, highest cell voltage, and total pack voltage, in mV.

RLOD Pack (v2.1.2)

Count   Time           dt          ID          DLC  Data                     Parsed values
16      3.989869       0.219391    0x10334450  8    68 0C D1 0D 38 B0 00 00  3176 3537 45112

Good Pack (v2.5.1)

Count   Time           dt          ID          DLC  Data                     Parsed values
15      5.009895       1.160952    0x10334450  8    A4 0E BA 0E 29 BF 00 00  3748 3770 48937

What to do

If the difference between your highest and lowest cell is greater than 100mV or so, you should put your battery on the charger and leave it plugged in (with someone around!) for about a week to let the cells balance. If it is hundreds of mV off, maybe a month. The battery needs to charge some amount before it will balance, every time you plug it in.

Yes, that is a long time.

Yes, I wish it was faster.

Is the Boosted App causing RLODs?


(Longer answer with the full article.)