The color table
Unitree publishes no numeric error-code list for the G1 — the body LED is the first-line diagnostic, per official-distributor documentation:
| LED color | State | What to do |
|---|---|---|
| Solid blue | Normal operation | Nothing — this is healthy |
| Orange | Damping mode | Expected after L2+B (the soft e-stop); L2+UP to lock stand, L2+X to get up |
| Green | Seated | Normal seated state |
| Yellow | Debug mode | See the warning below |
| Purple | Zero-torque mode | Normal ~1 minute after boot; joints are limp by design |
| Dark blue | Standby | Normal idle |
| Red | Error state | Read the alarm data (below) before calling support |
Where the real diagnostics live
When the LED goes red, the actual fault detail is in the app: Device → Data shows the alarm records. Capture that alarm data (screenshot it) before rebooting — it’s the first thing any support channel will ask for, and rebooting can clear the record.
The debug-mode trap (firmware 1.3.0+)
Documented in Unitree’s own SDK repository: entering debug mode disables the AI Sport service — high-level commands (walking, gestures) go dead and AI Sport shows greyed-out in the app, while audio/LED functions keep working. It looks like a serious failure; it isn’t. The only documented recovery is a reboot. If your G1 “stopped responding to movement commands” after a development session, this is almost certainly why.
Boot sequence, for reference
Short-press then hold the battery button ~2 seconds; the robot takes about a minute to reach zero-torque (purple). L2+B enters damping (the robot slowly collapses — that’s the designed soft stop, not a fault); L2+UP locks the stand; L2+X gets up.