Skip to content

LED matrix signals

The ATOM’s 5×5 LED matrix shows the state of the firmware. The pictures use bright colours so they are easy to see. On the robot the LEDs are dim: all firmware in this repository uses a brightness of 20/255 to keep the ATOM cool.

atom_controller fills the whole matrix with one colour. When a plan plays, the bottom row is a progress bar.

BOOTING
HOLDING
READY
PLAYING
MOVING (4.2+)
JOGGING, TRACKING
ERROR
OTA
NO WIFI (4.3+)
Colour State Meaning What to do
Blue BOOTING The firmware starts. Wait. It changes in less than 3 s.
Green HOLDING All servos hold the pose. No plan is loaded. Upload a plan.
Yellow READY All servos hold the pose. A valid plan is loaded. Send PLAY.
Cyan, white bottom row PLAYING A plan plays. Each white pixel in the bottom row is one fifth of the run. Keep clear of the arm.
Cyan, white bottom row MOVING (4.2+) A MOVE_TO runs. The bottom row shows its progress. Keep clear of the arm.
Pale blue JOGGING (4.2+), TRACKING (4.4+) A client jogs the joints, or moves them in Live mode. The arm stops by itself 200 ms after the client stops sending. Keep clear of the arm.
Red ERROR A servo did not reply, or a joint went too far from the plan. The arm holds where it is. Find the cause. Then press the button to hold and clear the error.
Magenta OTA A firmware update is in progress. Do not disconnect the power.
Blinks white (4.3+) any No WiFi network is saved. The matrix shows white and the state colour in turn, once a second. Set up WiFi on the Setup page.

atom_probe uses one row for each signal. These examples show normal operation, an idle bus, and a problem.

Bus traffic, all OK
Answered a request to ID 7
WiFi OK, bus idle
WiFi connecting, bad checksums, no IMU
Button pressed
Row Colour Meaning
1 (top) blue / green / red WiFi: connecting / connected / no credentials
2 white, flickers Bytes arrived on the bus in the last 200 ms
3 green / red Valid Feetech packets in the last second / only bad checksums
4 yellow flash The probe answered a request to ID 7
5 (bottom) green / red IMU found / not found
all blue The button is pressed

Elephant’s stock firmware v7.2, from the FAQ in assets/ and from observation:

After power-up
Joints locked
Free mode
Colour Meaning
Blue After power-up, before the button is pressed.
Green Normal: the joints are locked. Shows after a button press at power-up.
Yellow Free mode: torque off while the button is held (FAQ).
  • One colour per state. Keep the meanings above when you add a state.
  • Use a full-matrix colour for the state and a row or a pixel pattern for extra information.
  • Add the new signal to this page in the same commit as the firmware change.