Droid SOC is still 0% 5min after boot OR Thruster Node not Showing Up
This alarm is covered by this guide. | Escalation Team: | P2 Firmware Power On Call |
|---|
Background
Section titled “Background”Use this guide when Droid SOC remains 0% after boot or Droid thruster telemetry is missing.
The most common causes are:
- The Droid is not stowed, is in kiosk, or was left to discharge.
- The Droid brain is not communicating correctly.
- Droid battery status is blocking charge or discharge.
- Droid identity, provisioning, or HW config is missing after a JP6 software update.
The CHILL EEPROM mitigation at the end of this guide is retained as a maintenance-only fallback. Do not treat it as the default root cause; run it only when p2-firmware-power or maintenance engineering confirms it still applies.
The thruster-node check can be completed either from mission logs with the embedded Baraza template or live with SSH and ping6. Use whichever path gives the clearest evidence for the Aircraft state you are troubleshooting.
Troubleshooting Steps
Section titled “Troubleshooting Steps”graph TD
is-droid-stowed{"<small><b>Step 1</b></small><br/>Question: What does FleetWrangler show for Droi..."}
resolve-unknown-stowage-status["<small><b>Step 2</b></small><br/>Action: Resolve the unknown stowage state usi..."]
is-droid-stowed-after-unknown-checks{"<small><b>Step 3</b></small><br/>Question: After the wake, log, or reachability ..."}
recover-not-stowed-droid["<small><b>Step 4</b></small><br/>Action: If the Droid is not stowed, is in kio..."]
is-soc-still-zero-after-stowage-recovery{"<small><b>Step 5</b></small><br/>Question: After the Droid is stowed and has had..."}
choose-thruster-online-check{"<small><b>Step 6</b></small><br/>Question: Choose how to confirm whether the Dro..."}
check-thruster-uptime-crosscheck["<small><b>Step 7</b></small><br/>Telemetry: Confirm that all three thrusters' up..."]
classify-thruster-uptime-logging{"<small><b>Step 8</b></small><br/>Question: What does the droid-thruster-uptime-..."}
check-droid-firmware-nodes-with-ping6["<small><b>Step 9</b></small><br/>Action: Check Droid firmware-node reachabilit..."]
classify-ping6-firmware-node-results{"<small><b>Step 10</b></small><br/>Question: Do all expected Droid firmware nodes ..."}
power-cycle-and-recheck-thruster-uptime["<small><b>Step 11</b></small><br/>Action: Power cycle the Droid Power Cycle D..."]
recheck-thruster-uptime-crosscheck["<small><b>Step 12</b></small><br/>Telemetry: Confirm that all three thrusters' up..."]
classify-thruster-uptime-logging-after-power-cycle{"<small><b>Step 13</b></small><br/>Question: What does the droid-thruster-uptime-..."}
power-cycle-and-recheck-ping6["<small><b>Step 14</b></small><br/>Action: Power cycle the Droid Power Cycle D..."]
recheck-droid-firmware-nodes-with-ping6["<small><b>Step 15</b></small><br/>Action: Repeat the live reachability check: 1..."]
classify-ping6-firmware-node-results-after-power-cycle{"<small><b>Step 16</b></small><br/>Question: Do all expected Droid firmware nodes ..."}
check-droid-identity-or-provisioning["<small><b>Step 17</b></small><br/>Action: If some or all thrusters are still mi..."]
is-issue-resolved-after-provisioning-check{"<small><b>Step 18</b></small><br/>Question: After verifying or recovering Droid p..."}
are-chill-eeprom-maintenance-gates-met{"<small><b>Step 19</b></small><br/>Question: Are the gates met for moving directly..."}
run-chill-eeprom-maintenance-mitigation("<small><b>Step 20</b></small><br/>Reference: Use the **Maintenance - CHILL EEPROM ...")
missing-both-after-provisioning-escalate{{"<small><b>Step 21</b></small><br/>Escalation: Escalate to P2 Firmware Power On Call..."}}
check-droid-battery-status{"<small><b>Step 22</b></small><br/>Question: Can /thruster_main.droid_battery_sta..."}
droid-brain-not-talking-escalate{{"<small><b>Step 23</b></small><br/>Escalation: Use DROID_BRAIN_UNHEALTHY/topics/d..."}}
follow-droid-battery-status-guide["<small><b>Step 24</b></small><br/>Action: Use the guide for the active Droid ba..."]
is-issue-resolved-after-battery-guide{"<small><b>Step 25</b></small><br/>Question: After following the active Droid batt..."}
battery-guide-not-resolved-escalate{{"<small><b>Step 26</b></small><br/>Escalation: Escalate to P2 Firmware Power On Call."}}
common-checks-clear-escalate{{"<small><b>Step 27</b></small><br/>Escalation: If Droid SOC remains 0% after the Dro..."}}
droid-may-return-to-service("<small><b>Step 28</b></small><br/>Reference: The Aircraft and Droid may return to ...")
is-droid-stowed -->|Stowed| choose-thruster-online-check
is-droid-stowed -->|Not stowed| recover-not-stowed-droid
is-droid-stowed -->|Unknown or target asleep| resolve-unknown-stowage-status
resolve-unknown-stowage-status --> is-droid-stowed-after-unknown-checks
is-droid-stowed-after-unknown-checks -->|Yes| choose-thruster-online-check
is-droid-stowed-after-unknown-checks -->|No or still unclear| recover-not-stowed-droid
recover-not-stowed-droid --> is-soc-still-zero-after-stowage-recovery
is-soc-still-zero-after-stowage-recovery -->|Yes| choose-thruster-online-check
is-soc-still-zero-after-stowage-recovery -->|No| droid-may-return-to-service
choose-thruster-online-check -->|Use Baraza log template| check-thruster-uptime-crosscheck
choose-thruster-online-check -->|Use SSH and ping6| check-droid-firmware-nodes-with-ping6
check-thruster-uptime-crosscheck --> classify-thruster-uptime-logging
classify-thruster-uptime-logging -->|All three thrusters are log...| check-droid-battery-status
classify-thruster-uptime-logging -->|All three thrusters are log...| power-cycle-and-recheck-thruster-uptime
classify-thruster-uptime-logging -->|Some or all thrusters are m...| power-cycle-and-recheck-thruster-uptime
check-droid-firmware-nodes-with-ping6 --> classify-ping6-firmware-node-results
classify-ping6-firmware-node-results -->|Yes, all expected nodes res...| check-droid-battery-status
classify-ping6-firmware-node-results -->|No, at least one expected n...| power-cycle-and-recheck-ping6
power-cycle-and-recheck-thruster-uptime --> recheck-thruster-uptime-crosscheck
recheck-thruster-uptime-crosscheck --> classify-thruster-uptime-logging-after-power-cycle
classify-thruster-uptime-logging-after-power-cycle -->|All three thrusters are log...| check-droid-battery-status
classify-thruster-uptime-logging-after-power-cycle -->|All three thrusters are log...| droid-brain-not-talking-escalate
classify-thruster-uptime-logging-after-power-cycle -->|Some or all thrusters are m...| check-droid-identity-or-provisioning
power-cycle-and-recheck-ping6 --> recheck-droid-firmware-nodes-with-ping6
recheck-droid-firmware-nodes-with-ping6 --> classify-ping6-firmware-node-results-after-power-cycle
classify-ping6-firmware-node-results-after-power-cycle -->|Yes, all expected nodes res...| check-droid-battery-status
classify-ping6-firmware-node-results-after-power-cycle -->|No, at least one expected n...| check-droid-identity-or-provisioning
check-droid-identity-or-provisioning --> is-issue-resolved-after-provisioning-check
is-issue-resolved-after-provisioning-check -->|Yes| droid-may-return-to-service
is-issue-resolved-after-provisioning-check -->|No| are-chill-eeprom-maintenance-gates-met
are-chill-eeprom-maintenance-gates-met -->|Yes| run-chill-eeprom-maintenance-mitigation
are-chill-eeprom-maintenance-gates-met -->|No| missing-both-after-provisioning-escalate
check-droid-battery-status -->|Message is unavailable from...| droid-brain-not-talking-escalate
check-droid-battery-status -->|Yes, it shows a blocking co...| follow-droid-battery-status-guide
check-droid-battery-status -->|No, the message is present ...| common-checks-clear-escalate
follow-droid-battery-status-guide --> is-issue-resolved-after-battery-guide
is-issue-resolved-after-battery-guide -->|Yes| droid-may-return-to-service
is-issue-resolved-after-battery-guide -->|No| battery-guide-not-resolved-escalate
style is-droid-stowed fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style resolve-unknown-stowage-status fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-droid-stowed-after-unknown-checks fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style recover-not-stowed-droid fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-soc-still-zero-after-stowage-recovery fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style choose-thruster-online-check fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style classify-thruster-uptime-logging fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style check-droid-firmware-nodes-with-ping6 fill:#dcfce7,stroke:#22c55e,color:#14532d
style classify-ping6-firmware-node-results fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style power-cycle-and-recheck-thruster-uptime fill:#dcfce7,stroke:#22c55e,color:#14532d
style classify-thruster-uptime-logging-after-power-cycle fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style power-cycle-and-recheck-ping6 fill:#dcfce7,stroke:#22c55e,color:#14532d
style recheck-droid-firmware-nodes-with-ping6 fill:#dcfce7,stroke:#22c55e,color:#14532d
style classify-ping6-firmware-node-results-after-power-cycle fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style check-droid-identity-or-provisioning fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-issue-resolved-after-provisioning-check fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style are-chill-eeprom-maintenance-gates-met fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style run-chill-eeprom-maintenance-mitigation fill:#f3e8ff,stroke:#a855f7,color:#581c87
style missing-both-after-provisioning-escalate fill:#fef3c7,stroke:#f59e0b,color:#78350f
style check-droid-battery-status fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style droid-brain-not-talking-escalate fill:#fef3c7,stroke:#f59e0b,color:#78350f
style follow-droid-battery-status-guide fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-issue-resolved-after-battery-guide fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style battery-guide-not-resolved-escalate fill:#fef3c7,stroke:#f59e0b,color:#78350f
style common-checks-clear-escalate fill:#fef3c7,stroke:#f59e0b,color:#78350f
style droid-may-return-to-service fill:#f3e8ff,stroke:#a855f7,color:#581c87 Hover or focus a block to preview it. Select the block to keep the preview open.
Open the detailed Aircraft status page and check
Winch Status. WINCH_STATUS_IS_RAISED means the Droid is stowed.- Wake the Aircraft, then re-check FleetWrangler (Power Cycle Aircraft > Power ON using a Wake-UP command, or Wake Up Aircraft Using Smart Cart).
- Check the last mission or logs with padding:
capabilities.is_droid_stowed/compute_a.zip_executive.executive_status with task_name/compute_a.zip_executive.executive_status, and winch_gnc_command/compute_a.winch.gnc.executive_command.- If needed, do a limited Droid ping or SSH reachability check (SSH Into Droid).
Use the Baraza template when mission logs are available and you need to compare what
compute_a and droid each logged. Use SSH and ping6 when a live reachability check is faster or logs are not yet available.uptime_ms signals are being logged by both compute_a and droid.droid-thruster-uptime-crosscheck plot show?ping6.1. SSH into the Dock (SSH into Dock).
2. Run
ssh_compute_a or ssh_compute_b to SSH into compute A or compute B.3. Run
ping6 ff02::1%enP8p1s0.4. Check for response lines that start with:
-
64 bytes from fe80::60-
64 bytes from fe80::61-
64 bytes from fe80::62-
64 bytes from fe80::63Stop the ping with
CTRL-C after you have enough responses.ping6?droid-thruster-uptime-crosscheck plot.uptime_ms signals are being logged by both compute_a and droid after the Droid power cycle.droid-thruster-uptime-crosscheck plot show after the Droid power cycle?ping6 reachability check.1. SSH into the Dock (SSH into Dock).
2. Run
ssh_compute_a or ssh_compute_b.3. Run
ping6 ff02::1%enP8p1s0.4. Check for
fe80::60, fe80::61, fe80::62, and fe80::63 in the response.ping6 after the Droid power cycle?compute_a and droid, or at least one expected Droid firmware node is still missing from the ping6 response after the Droid power cycle, check whether the Droid lost identity, provisioning, or its HW config during a JP6 software update. Use JP6 Droid Unprovisioned until the Droid asset ID files have been verified, or until the Droid has been re-provisioned if needed. Then return to this guide and continue below.compute_a and droid or are all expected Droid firmware nodes responding to ping6, and is Droid SOC non-zero?Choose Yes only if the Droid is stowed, the Droid has been power-cycled, Droid provisioning or HW config has been verified or recovered, and thrusters or expected firmware nodes are still missing after the re-check.
/thruster_main.droid_battery_status be viewed, and does it show an alarm or off-nominal condition that blocks charging or discharging?- DROID_EXECUTIVE_RESPONSES_WIRELESS_UNAVAILABLE
- DROID_EXECUTIVE_RESPONSES_WIRED_UNAVAILABLE
Do not run both guides unless both conditions are present. Escalate to P2 Embedded Linux On Call if the selected guide does not resolve the issue.
- UNSAFE_TO_CHARGE - /thruster_main.droid_battery_status
- UNSAFE_TO_OPERATE - /thruster_main.droid_battery_status
- MAINTENANCE_REQUIRED - /thruster_main.droid_battery_status
compute_a and droid or all expected Droid firmware nodes respond to ping6, and Droid battery status does not show a charge or discharge blocking condition, escalate to P2 Firmware Power On Call.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.
Maintenance - CHILL EEPROM Mitigation
Section titled “Maintenance - CHILL EEPROM Mitigation”graph TD
maint-power-on-droid["<small><b>Step 1</b></small><br/>Action: Using a smart cart, power ON the Droi..."]
maint-ping-devices{"<small><b>Step 2</b></small><br/>Question: ping_devices. Does the main thruste..."}
maint-ping-no-power-cycle["<small><b>Step 3</b></small><br/>Action: 1. Power cycle the Droid Power Cycl..."]
maint-write-eeprom["<small><b>Step 4</b></small><br/>Action: Apply the following command in termin..."]
maint-read-back-eeprom["<small><b>Step 5</b></small><br/>Action: Read back the command: bash rpc-cl..."]
maint-eeprom-values-check{"<small><b>Step 6</b></small><br/>Question: Look at the four 4 values at the bo..."}
maint-eeprom-no-retry["<small><b>Step 7</b></small><br/>Action: Write the EEPROM again. Apply the fol..."]
maint-retry-read-back-eeprom["<small><b>Step 8</b></small><br/>Action: Read back the command: bash rpc-cl..."]
maint-eeprom-values-recheck{"<small><b>Step 9</b></small><br/>Question: Do the EEPROM values match the expect..."}
maint-power-cycle-3x{"<small><b>Step 10</b></small><br/>Question: Powercycle the Droid three 3 times ..."}
maint-droid-return-to-service["<small><b>Step 11</b></small><br/>Action: The Droid can return to service."]
maint-final-escalate{{"<small><b>Step 12</b></small><br/>Escalation: Escalate to Powertrain On Call."}}
maint-power-on-droid --> maint-ping-devices
maint-ping-devices -->|Yes| maint-write-eeprom
maint-ping-devices -->|No| maint-ping-no-power-cycle
maint-ping-no-power-cycle --> maint-write-eeprom
maint-write-eeprom --> maint-read-back-eeprom
maint-read-back-eeprom --> maint-eeprom-values-check
maint-eeprom-values-check -->|Yes| maint-power-cycle-3x
maint-eeprom-values-check -->|No| maint-eeprom-no-retry
maint-eeprom-no-retry --> maint-retry-read-back-eeprom
maint-retry-read-back-eeprom --> maint-eeprom-values-recheck
maint-eeprom-values-recheck -->|Yes| maint-power-cycle-3x
maint-eeprom-values-recheck -->|No| maint-final-escalate
maint-power-cycle-3x -->|Yes| maint-droid-return-to-service
maint-power-cycle-3x -->|No| maint-final-escalate
style maint-power-on-droid fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-ping-devices fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style maint-ping-no-power-cycle fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-write-eeprom fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-read-back-eeprom fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-eeprom-values-check fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style maint-eeprom-no-retry fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-retry-read-back-eeprom fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-eeprom-values-recheck fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style maint-power-cycle-3x fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style maint-droid-return-to-service fill:#dcfce7,stroke:#22c55e,color:#14532d
style maint-final-escalate fill:#fef3c7,stroke:#f59e0b,color:#78350f Hover or focus a block to preview it. Select the block to keep the preview open.
ping_devices. Does the main thruster node come up?ping_devices again.2. Repeat the power cycle until the main thruster node comes up and then continue troubleshooting.
rpc-cli -i fe80::62%enp3s0 droid_charger ProgramDroidChargerEepromLimits 12.5 35.0 6.0 1.0rpc-cli -i fe80::62%enp3s0 droid_charger GetDroidChargerLimitsIf the command gives an error or does not respond, wait a few seconds and submit it again.
- buck_voltage_eeprom = 12.5
- boost_voltage_eeprom = 34.999485
- buck_current_eeprom = 6.0
- boost_current_eeprom = 1.0.
rpc-cli -i fe80::62%enp3s0 droid_charger ProgramDroidChargerEepromLimits 12.5 35.0 6.0 1.0rpc-cli -i fe80::62%enp3s0 droid_charger GetDroidChargerLimitsIf the command gives an error or does not respond, wait a few seconds and submit it again.
ping_devices. Does the main thruster node come up each time?Did this guide help you get unblocked?
Open suggestions
There are no open suggestions.
Open pull requests
There are no open pull requests.