Battery Checkout Procedure¶
The battery checkout procedure should take place after finishing the assembly of a battery set.
Important
This step is designed to operate on an entire set, not a single pack.
In the flowchart below, this step is labeled "Final Checkout".
Equipment¶
To perform this checkout, you will need the following:
- The complete battery set to test.
- The 6s Charging Hub (hardware revision A.2 or B.2).
- A CAN interface (USBtingo or similar), along with a wire to connect to the charging hub.
- A multimeter for voltage measurements.
- A computer with the highdra CLI installed.
The batteries may have either still the self-test firmware or the production firmware installed, the checkout procedure will work in both cases.
6s Charging Hub
The steps described here only work reliably when the packs are located in the 6s Charging Hub. When running inside a 12s Charging Hub or the copter, the voltage calibration will be unreliable.
Setup¶
Before starting, insert all six battery packs into the charging hub and connect the CAN interface.
Powering on¶
Press the button on a single pack for one second: it should turn on, and the other packs should follow after a second.
The right-most LED on each pack (closest to the button) should be either green ๐ข or blue-ish purple ๐ต๐ฃ. Should it be amber/orange ๐ก๐ , the pack has not powered on properly.
Procedure¶
Now comes the automated checkout procedure:
run highdra battery checkout, and follow the instructions on the screen.
Tip
The checkout procedure will also update the firmware on the battery packs if necessary.
Make sure to download the latest firmware images every now and then.
If you want to install a prerelease version, invoke the checkout command with the --pre flag.
First, select the CAN interface to use. Normally you should only have a single one, but if you have multiple connected, select the one you connected to the charging hub.
PS C:\Users\lasse> highdra battery checkout
? CAN3 interface CAN FD
socketcan:can0
socketcan:can1
ยป usbtingo:1731625A
Tip
If you have to run the checkout procedure multiple times and already know which CAN interface to use, you can also specify it as a command line argument:
PS C:\Users\lasse> highdra battery checkout --can=usbtingo:1731625A
โธ Running Software Update.
[...]
From there on, the procedure will run more or less automatically.
Sample Output
PS C:\Users\lasse> highdra battery checkout --pre
? CAN3 interface usbtingo:17318E90
? Select a firmware image: com.starcopter.highdra.bms 0.11.0b1
โธ Running Software Update.
[15:15:28] ERROR [55] [2025-10-17 15:15:21|4657.246] <err> can_mcan: Message lost on FIFO0
[15:15:49] ERROR [50] [2025-10-17 15:15:54|4689.030] <err> CYPHAL_DFU: Failed to receive response for chunk 626, attempt 1 of 10
ERROR [54] [2025-10-17 15:15:32|4667.798] <err> can_mcan: Message lost on FIFO1
[15:15:52] ERROR [52] [2025-10-17 15:15:44|4682.440] <err> CYPHAL_DFU: Failed to receive response for chunk 703, attempt 1 of 10
Node 55 updated in 44.8s. โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 196.8 kB 0:00:47
Node 52 updated in 44.9s. โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 196.8 kB 0:00:47
Node 51 updated in 44.0s. โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 196.8 kB 0:00:46
Node 54 updated in 44.5s. โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 196.8 kB 0:00:46
Node 50 updated in 44.4s. โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 196.8 kB 0:00:46
Node 53 updated in 44.5s. โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 196.8 kB 0:00:46
โ Software Update succeeded in 0:00:47.113530.
โธ Running BMS External Voltage Calibration.
? Enter the externally measured voltage (V): 24.45
โธ Starting calibration on 6 devices with 24.450 V
โธ Pack 55 calibrated: VBAT gain -0.011 %, VPACK gain -0.023 %
โธ Pack 52 calibrated: VBAT gain -0.026 %, VPACK gain -0.020 %
โธ Pack 51 calibrated: VBAT gain -0.018 %, VPACK gain -0.023 %
โธ Pack 54 calibrated: VBAT gain +0.005 %, VPACK gain -0.027 %
โธ Pack 50 calibrated: VBAT gain -0.011 %, VPACK gain -0.021 %
โธ Pack 53 calibrated: VBAT gain -0.015 %, VPACK gain -0.027 %
โ BMS External Voltage Calibration succeeded in 0:00:12.648794.
โธ Running Configuration Update.
โ Configuration Update succeeded in 0:00:00.000893.
โธ Running BMS Set ID Configuration.
? Enter the set ID (2-3 hex digits): af2
โธ Setting set ID to af2
โธ Pack 55 is af2.1 (UID: 20323152553250160031004100000000)
โธ Pack 52 is af2.2 (UID: 20323152553250160058004600000000)
โธ Pack 51 is af2.3 (UID: 20323152553250160058005300000000)
โธ Pack 54 is af2.4 (UID: 2032315255325016005a004400000000)
โธ Pack 50 is af2.5 (UID: 2032315255325016005a004500000000)
โธ Pack 53 is af2.6 (UID: 2032315255325016005b005900000000)
โ BMS Set ID Configuration succeeded in 0:00:01.801308.
โธ Running RTC Configuration.
โธ Clock for device 55 set to 2025-10-17 15:16:27.002675
โธ Clock for device 52 set to 2025-10-17 15:16:27.002675
โธ Clock for device 51 set to 2025-10-17 15:16:27.002675
โธ Clock for device 54 set to 2025-10-17 15:16:27.002675
โธ Clock for device 50 set to 2025-10-17 15:16:27.002675
โธ Clock for device 53 set to 2025-10-17 15:16:27.002675
โ RTC Configuration succeeded in 0:00:00.132131.
Software Update¶
You will be asked to select the firmware version to update to:
PS C:\Users\lasse> highdra battery checkout --pre
? CAN3 interface usbtingo:17318E90
? Select a firmware image: (Use arrow keys)
ยป com.starcopter.highdra.bms 0.11.0b1
com.starcopter.highdra.bms 0.11.0a5
com.starcopter.highdra.bms 0.11.0a4
com.starcopter.highdra.bms 0.11.0a3
com.starcopter.highdra.bms 0.11.0a2
com.starcopter.highdra.bms 0.11.0a1
com.starcopter.highdra.bms 0.10.1
com.starcopter.highdra.bms 0.10.0
Tip
If you already know the firmware version you want to install, you can specify it as a command line argument:
PS C:\Users\lasse> highdra battery checkout --version 0.11.0b1
โธ Running Software Update.
โธ Auto-selected firmware image com.starcopter.highdra.bms 0.11.0b1.
[...]
The same flag can also be used to filter the available images and only display matching ones (e.g. --version ">=0.11.0a3").
All battery packs will be updated to the chosen firmware version. Packs already running the appropriate firmware will be skipped.
After updating the firmware, the current date and time will be written to the flash_date register.
External Voltage Calibration¶
You will be asked to measure and enter the voltage of the battery set.
This value is used to calibrate the VPACK and VBAT voltage measurements of each pack.
Configuration Update¶
Certain internal parameters (cell balancing threshold, Cyphal port numbers, etc.) will be configured to default values.
Set ID Configuration¶
The Set ID is a 2-3 hex digit number that is used to identify the battery set. It is used to identify the battery set in the Cyphal network.
You will be asked to enter the Set ID, so that it can be saved in the battery packs.
RTC Configuration¶
The RTC time of the battery packs will be set to the current time.
