Arm Checkout Procedure¶
The arm assignment procedure is a series of steps that are performed at the end of the highdra assembly process.
Equipment Needed¶
To perform the arm checkout procedure, you will need the following equipment:
- The arms to assign to their slot, obviously.
- Arm check: safely fixate the rotors (2x clips, from each direction one)
- The checked-out body with all components (ESC need to be enumerated)
- Two CAN interfaces for CAN1 + CAN3 (e.g. USBtingo devices or similar).
- A 48V power supply connected to the copter.
- A computer with the highdra CLI installed.
Procedure¶
The arm assignment command will guide you through the process interactively, so no need to memorize every step
described here.
An optional positional parameter arms is available to set the assigned set of arms (e.g. '1,3,7-9,!11'), or 'all' (default).
# example call (using all positions):
$> highdra arm assignment 1,3,5,7,9,11
Setup¶
- Configure the power supply for 48 V and 2 A. Alternative, use highdra batteries. Make sure the arms have their propellors double fixed!
- Do not attach the arms yet!
- Power on the highdra.
Automated Assignment¶
Start the procedure by running highdra arm assignment.
First, you will have to answer two questions: which CAN interface is connected to which bus?
PS C:\Users\lasse> highdra arm checkout
? Which CAN interface is connected to the Esc? usbtingo:1731ADCE
? Which CAN interface is connected to the MMB? (CAN FD)
» usbtingo:1731625A
From there on, the procedure will run automatically.
- User instruction: "Insert Arm 1 into its slot"
- The Node ID of the new MMB Node is set to 1 (and the MMB is rebooted)
- The 3 motor parameter registers are then copied from the MMB to the ESC
- Repeat 1.-3. for all other arms
- Reboot all ESCs
- User check: Are arms at position 1 + 11 using white light?
- The MMB are now emitting a circular running light (all but one is dimmed for 1s each)
- User check: Is a circular pattern is shown by the MMB lights?
Sample Output
```{ .powershell .no-copy } PS C:\Users\lasse> highdra arm assignment
? CAN1 interface usbtingo:17318E90 ? CAN3 interface usbtingo:1731E9EE ▸ Discovered ESC with Node ID 1 ▸ Discovered ESC with Node ID 9 ▸ Discovered ESC with Node ID 3 ▸ Discovered ESC with Node ID 5 ▸ Discovered ESC with Node ID 11 ▸ Discovered ESC with Node ID 7
▸ Running ARM: MMB-ESC Assignment. ? Insert Arm 1 into its slot! Continue? Yes ▸ Discovering MMB on CAN3... ▸ Discovered MMB with Node ID 1 ▸ Copying motor parameters from MMB to ESC...
▸ Running Assign Motor Parameters to ESC. ▸ Writing motor.flux_linkage = 0.0019606100395321846 to the ESC. ▸ Writing motor.inductance_dq = [2.1478765120264143e-05, 2.1478765120264143e-05] to the ESC. ▸ Writing motor.resistance = 0.05377881973981857 to the ESC. ✓ Assign Motor Parameters to ESC succeeded in 0:00:00.247550. ✓ Arm 1 assignment successful (ESC reboot pending)! ? Insert Arm 3 into its slot! Continue? Yes ▸ Discovering MMB on CAN3... ▸ Discovered MMB with Node ID 3 ▸ Copying motor parameters from MMB to ESC...
▸ Running Assign Motor Parameters to ESC. ▸ Writing motor.flux_linkage = 0.0019553450401872396 to the ESC. ▸ Writing motor.inductance_dq = [2.166457306884695e-05, 2.166457306884695e-05] to the ESC. ▸ Writing motor.resistance = 0.052405767142772675 to the ESC. ✓ Assign Motor Parameters to ESC succeeded in 0:00:00.308694. ✓ Arm 3 assignment successful (ESC reboot pending)! ? Insert Arm 5 into its slot! Continue? Yes ▸ Discovering MMB on CAN3... ▸ Discovered MMB with Node ID 5 ▸ Copying motor parameters from MMB to ESC...
▸ Running Assign Motor Parameters to ESC. ▸ Writing motor.flux_linkage = 0.0 to the ESC. ▸ Writing motor.inductance_dq = [0.0, 0.0] to the ESC. ▸ Writing motor.resistance = 0.0 to the ESC. ✓ Assign Motor Parameters to ESC succeeded in 0:00:00.219328. ✓ Arm 5 assignment successful (ESC reboot pending)! ? Insert Arm 7 into its slot! Continue? Yes ▸ Discovering MMB on CAN3... ▸ Discovered MMB with Node ID 11 ▸ Setting MMB Node ID to 7 and restart MMB... ▸ Copying motor parameters from MMB to ESC...
▸ Running Assign Motor Parameters to ESC. ▸ Writing motor.flux_linkage = 0.001947146374732256 to the ESC. ▸ Writing motor.inductance_dq = [2.1040035790065303e-05, 2.1040035790065303e-05] to the ESC. ▸ Writing motor.resistance = 0.05382638797163963 to the ESC. ✓ Assign Motor Parameters to ESC succeeded in 0:00:00.317832. ✓ Arm 7 assignment successful (ESC reboot pending)! ? Insert Arm 9 into its slot! Continue? Yes ▸ Discovering MMB on CAN3... ▸ Discovered MMB with Node ID 9 ▸ Copying motor parameters from MMB to ESC...
▸ Running Assign Motor Parameters to ESC. ▸ Writing motor.flux_linkage = 0.0019248243188485503 to the ESC. ▸ Writing motor.inductance_dq = [2.211579521826934e-05, 2.211579521826934e-05] to the ESC. ▸ Writing motor.resistance = 0.054272376000881195 to the ESC. ✓ Assign Motor Parameters to ESC succeeded in 0:00:00.276732. ✓ Arm 9 assignment successful (ESC reboot pending)! ? Insert Arm 11 into its slot! Continue? Yes [15:48:03] ERROR [7] Node Monitor: com.starcopter.aeric.mmb 68ed58a8: node ID collision with ID 7 [15:48:04] ERROR [7] Node Monitor: com.starcopter.aeric.mmb 886b6895: node ID collision with ID 7 WARNING [7] Node Monitor: com.starcopter.aeric.mmb 886b6895: Other node with ID 7, uptime 38 came first, stepping back. ▸ Discovering MMB on CAN3... ▸ Discovered MMB with Node ID 125 ▸ Setting MMB Node ID to 11 and restart MMB... ▸ Copying motor parameters from MMB to ESC...
▸ Running Assign Motor Parameters to ESC. ▸ Writing motor.flux_linkage = 0.0019177431240677834 to the ESC. ▸ Writing motor.inductance_dq = [2.1887943148612976e-05, 2.1887943148612976e-05] to the ESC. ▸ Writing motor.resistance = 0.05358713120222092 to the ESC. ✓ Assign Motor Parameters to ESC succeeded in 0:00:00.346936. ✓ Arm 11 assignment successful (ESC reboot pending)! ▸ Restarting ESC 1 to apply new motor parameters... ▸ Restarting ESC 3 to apply new motor parameters... ▸ Restarting ESC 5 to apply new motor parameters... ▸ Restarting ESC 7 to apply new motor parameters... ▸ Restarting ESC 9 to apply new motor parameters... ▸ Restarting ESC 11 to apply new motor parameters... [15:48:28] WARNING Node (identical UID: 0a0027000a5031563738352000000000) restarted with new Node ID: 7 WARNING Node (identical UID: 0a0027000a5031563738352000000000) restarted with new Node ID: 7 WARNING Node (identical UID: 0a0027000a5031563738352000000000) restarted with new Node ID: 7 WARNING Node (identical UID: 0a0027000a5031563738352000000000) restarted with new Node ID: 7 ✓ ARM: MMB-ESC Assignment succeeded in 0:02:23.293964.
▸ Running ARM: Check Assigned Arms Positions. ▸ Checking assigned arms positions... ? Are the arms of position 1 and 11 (Front) flashing with white light? ⚪ Yes ▸ Running circular pattern loop of MMB lights.. Yes ✓ ... SUCCESS! ```