Skip to content

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".

Battery Set Assembly QC

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.