DISTRO HOVER CONFIGURATION CHECKER
This alarm is covered by this guide. Background
Section titled “Background”The distro hover configuration checker is a startup diagnostic run by distro_a to verify that the four hover motors are installed, provisioned, and wired to the expected hover load switch positions.
This diagnostic is intended to catch configuration errors that could allow the aircraft to power the wrong hover motor, power multiple hovers unexpectedly, or command a hover with the wrong spin direction.
At a high level, the checker:
- Powers the hover load switches on in sequence.
- Waits for each hover node to boot and publish an identity advertisement.
- Associates each hover identity advertisement to the load switch that powered it on using boot timing.
- Checks whether all four expected hover nodes were seen, whether each hover maps one-to-one to a single expected corner, whether the reported spin direction matches the expected corner, and whether the hardware appears physically swapped versus only provisioned incorrectly.
If the check is still running, the aircraft is not ready for flight. If the check fails, the resulting distro_a.power_status alarms are launch-blocking / preflight-fail conditions.
What the checker can alarm on
Section titled “What the checker can alarm on”Aggregate alarms
Section titled “Aggregate alarms”- CONFIGURATION_CHECK_FAILED
- HARDWARE_CONFIGURATION_INCORRECT
- REPROVISION_REQUIRED
- REQUIRED_NODES_MISSING
- REQUIRED_NODES_DUPLICATED
- NODES_APPEAR_SWAPPED
Corner-specific alarms
Section titled “Corner-specific alarms”- HOVER_PORT_FWD_MISSING
- HOVER_PORT_FWD_DUPLICATED
- HOVER_PORT_FWD_SPIN_INCORRECT
- HOVER_PORT_AFT_MISSING
- HOVER_PORT_AFT_DUPLICATED
- HOVER_PORT_AFT_SPIN_INCORRECT
- HOVER_STBD_FWD_MISSING
- HOVER_STBD_FWD_DUPLICATED
- HOVER_STBD_FWD_SPIN_INCORRECT
- HOVER_STBD_AFT_MISSING
- HOVER_STBD_AFT_DUPLICATED
- HOVER_STBD_AFT_SPIN_INCORRECT
How to interpret the aggregate alarms
Section titled “How to interpret the aggregate alarms”This means the diagnostic did not complete in a normal way. Examples include abnormal power-up timing, more than one hover appearing to turn on at once, or the checker running too long without reaching a diagnosable end state.
This is primarily a sequencing / timing failure, not a clean corner-identification failure.
Follow the CONFIGURATION_CHECK_FAILED troubleshooting page if this alarm is active.
This means the checker found one or more corners where the hover spin direction does not match the expected corner. This is commonly accompanied by one or more *_SPIN_INCORRECT alarms and suggests an actual hardware mismatch or incorrect motor installed at that position.
Follow the HARDWARE_CONFIGURATION_INCORRECT troubleshooting page if this alarm is active.
This means the hardware appears physically correct, but the software identity / provisioning does not match the expected assignment. This suggests a reprovisioning / deployment / node identity issue rather than a physical installation issue.
Follow the REPROVISION_REQUIRED troubleshooting page if this alarm is active.
This means one or more expected hover nodes were not seen or could not be matched to the expected sequence. This is commonly accompanied by one or more *_MISSING alarms.
Follow the REQUIRED_NODES_MISSING troubleshooting page if this alarm is active.
This means more than one hover identity appeared associated with a single hover load switch position. This is commonly accompanied by one or more *_DUPLICATED alarms.
Follow the REQUIRED_NODES_DUPLICATED troubleshooting page if this alarm is active.
This means the checker found a one-to-one mapping and spin direction looked correct, but the hover nodes appear to be installed in the wrong physical corners. This suggests a physical swap.
Follow the NODES_APPEAR_SWAPPED troubleshooting page if this alarm is active.
Where to look in telemetry
Section titled “Where to look in telemetry”Use distro_board_telemetry.hover_configuration_checker from distro_a board telemetry.
The most useful fields are:
statefingerprint_count- per-corner tracker state
- per-corner
id_message_count - per-corner
loadswitch_match_count - per-corner
associated_loadswitch_node_id - per-corner
spin_direction - per-corner
spin_direction_match
Related pages
Section titled “Related pages”graph TD
configuration-check-failed("<small><b>Step 1</b></small><br/>Reference: CONFIGURATION_CHECK_FAILED/topics/...")
hardware-configuration-incorrect("<small><b>Step 2</b></small><br/>Reference: HARDWARE_CONFIGURATION_INCORRECT/t...")
reprovision-required("<small><b>Step 3</b></small><br/>Reference: REPROVISION_REQUIRED/topics/aircra...")
required-nodes-missing("<small><b>Step 4</b></small><br/>Reference: REQUIRED_NODES_MISSING/topics/airc...")
required-nodes-duplicated("<small><b>Step 5</b></small><br/>Reference: REQUIRED_NODES_DUPLICATED/topics/a...")
nodes-appear-swapped("<small><b>Step 6</b></small><br/>Reference: NODES_APPEAR_SWAPPED/topics/aircra...")
hover-port-fwd-missing("<small><b>Step 7</b></small><br/>Reference: HOVER_PORT_FWD_MISSING/topics/airc...")
hover-port-fwd-duplicated("<small><b>Step 8</b></small><br/>Reference: HOVER_PORT_FWD_DUPLICATED/topics/a...")
hover-port-fwd-spin-incorrect("<small><b>Step 9</b></small><br/>Reference: HOVER_PORT_FWD_SPIN_INCORRECT/topi...")
hover-port-aft-missing("<small><b>Step 10</b></small><br/>Reference: HOVER_PORT_AFT_MISSING/topics/airc...")
hover-port-aft-duplicated("<small><b>Step 11</b></small><br/>Reference: HOVER_PORT_AFT_DUPLICATED/topics/a...")
hover-port-aft-spin-incorrect("<small><b>Step 12</b></small><br/>Reference: HOVER_PORT_AFT_SPIN_INCORRECT/topi...")
hover-stbd-fwd-missing("<small><b>Step 13</b></small><br/>Reference: HOVER_STBD_FWD_MISSING/topics/airc...")
hover-stbd-fwd-duplicated("<small><b>Step 14</b></small><br/>Reference: HOVER_STBD_FWD_DUPLICATED/topics/a...")
hover-stbd-fwd-spin-incorrect("<small><b>Step 15</b></small><br/>Reference: HOVER_STBD_FWD_SPIN_INCORRECT/topi...")
hover-stbd-aft-missing("<small><b>Step 16</b></small><br/>Reference: HOVER_STBD_AFT_MISSING/topics/airc...")
hover-stbd-aft-duplicated("<small><b>Step 17</b></small><br/>Reference: HOVER_STBD_AFT_DUPLICATED/topics/a...")
hover-stbd-aft-spin-incorrect("<small><b>Step 18</b></small><br/>Reference: HOVER_STBD_AFT_SPIN_INCORRECT/topi...")
configuration-check-failed --> hardware-configuration-incorrect
hardware-configuration-incorrect --> reprovision-required
reprovision-required --> required-nodes-missing
required-nodes-missing --> required-nodes-duplicated
required-nodes-duplicated --> nodes-appear-swapped
nodes-appear-swapped --> hover-port-fwd-missing
hover-port-fwd-missing --> hover-port-fwd-duplicated
hover-port-fwd-duplicated --> hover-port-fwd-spin-incorrect
hover-port-fwd-spin-incorrect --> hover-port-aft-missing
hover-port-aft-missing --> hover-port-aft-duplicated
hover-port-aft-duplicated --> hover-port-aft-spin-incorrect
hover-port-aft-spin-incorrect --> hover-stbd-fwd-missing
hover-stbd-fwd-missing --> hover-stbd-fwd-duplicated
hover-stbd-fwd-duplicated --> hover-stbd-fwd-spin-incorrect
hover-stbd-fwd-spin-incorrect --> hover-stbd-aft-missing
hover-stbd-aft-missing --> hover-stbd-aft-duplicated
hover-stbd-aft-duplicated --> hover-stbd-aft-spin-incorrect
style configuration-check-failed fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hardware-configuration-incorrect fill:#f3e8ff,stroke:#a855f7,color:#581c87
style reprovision-required fill:#f3e8ff,stroke:#a855f7,color:#581c87
style required-nodes-missing fill:#f3e8ff,stroke:#a855f7,color:#581c87
style required-nodes-duplicated fill:#f3e8ff,stroke:#a855f7,color:#581c87
style nodes-appear-swapped fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-port-fwd-missing fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-port-fwd-duplicated fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-port-fwd-spin-incorrect fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-port-aft-missing fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-port-aft-duplicated fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-port-aft-spin-incorrect fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-stbd-fwd-missing fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-stbd-fwd-duplicated fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-stbd-fwd-spin-incorrect fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-stbd-aft-missing fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-stbd-aft-duplicated fill:#f3e8ff,stroke:#a855f7,color:#581c87
style hover-stbd-aft-spin-incorrect fill:#f3e8ff,stroke:#a855f7,color:#581c87 Hover or focus a block to preview it. Select the block to keep the preview open.
Resolution note
This plaintext block is ready to paste into the Resolution Note field on the ZERP issue you're working. The permalink below gives engineering review access to the full step-by-step timeline including any back-navigation; share it if the case needs a deeper look.
Permalink:
Session is too large to fit in a URL. Use Download session JSON to share the timeline out-of-band.
Did this guide help you get unblocked?
Open suggestions
There are no open suggestions.
Open pull requests
There are no open pull requests.