Context
Current firmware has a simple onboard NeoPixel status sequencer. Upstream OpenMower LowLevel uses onboard LED feedback plus CoverUI LED state for charging, battery, GPS, mode, and emergency conditions.
Current Local Behavior
Onboard NeoPixel flags exist for:
- ROS connected.
- Charging.
- Discharging.
- Battery low.
- IMU failed.
Upstream Reference Behavior
OpenMower LowLevel indicates:
- Emergency latch via red blinking onboard LED.
- ROS running versus waiting states.
- IMU communication/init failures.
- Charging and battery status on CoverUI LEDs.
- Poor GPS, high-level mode, and emergency state on CoverUI LEDs.
Acceptance Criteria
- Add LED status flags for emergency, rain, heartbeat/ROS timeout, and charger present if useful.
- Decide how to show fatal versus non-fatal IMU failure.
- Make LED priority explicit so safety states are not hidden by normal status cycling.
- Avoid ambiguous colors when multiple states are active.
- Document the updated LED state table in README.
- Keep the implementation compatible with future Cover board LED support.
Notes
Emergency/failsafe indication should have priority over nominal states like charging or ROS connected.
Context
Current firmware has a simple onboard NeoPixel status sequencer. Upstream OpenMower LowLevel uses onboard LED feedback plus CoverUI LED state for charging, battery, GPS, mode, and emergency conditions.
Current Local Behavior
Onboard NeoPixel flags exist for:
Upstream Reference Behavior
OpenMower LowLevel indicates:
Acceptance Criteria
Notes
Emergency/failsafe indication should have priority over nominal states like charging or ROS connected.