Context
The OpenMower LowLevel firmware reports rain using both the mainboard mux input and the CoverUI rain event. This firmware currently defines the mux pins but does not read rain state.
Upstream Reference Behavior
OpenMower LowLevel:
- Scans the mux address lines on core1.
- Uses mux address 5 as the mainboard rain input.
- Also accepts rain state from CoverUI
Get_Rain packets.
- Exposes rain as a status bit.
- Uses rain state for UI LEDs and sound events.
Acceptance Criteria
- Initialize
PIN_MUX_OUT, PIN_MUX_IN, and mux address pins.
- Periodically scan the rain mux channel.
- Publish rain state to ROS 2.
- Debounce or filter the rain signal enough to avoid chatter.
- Keep the implementation compatible with future Cover board rain events.
- Add an onboard LED status flag for rain or document why it is intentionally omitted.
Notes
Relevant pins are already present in src/pins.h: PIN_MUX_IN, PIN_MUX_OUT, PIN_MUX_ADDRESS_0..2.
Context
The OpenMower LowLevel firmware reports rain using both the mainboard mux input and the CoverUI rain event. This firmware currently defines the mux pins but does not read rain state.
Upstream Reference Behavior
OpenMower LowLevel:
Get_Rainpackets.Acceptance Criteria
PIN_MUX_OUT,PIN_MUX_IN, and mux address pins.Notes
Relevant pins are already present in
src/pins.h:PIN_MUX_IN,PIN_MUX_OUT,PIN_MUX_ADDRESS_0..2.