Skip to content

Power Distribution Board (PDB)

Drives the rover’s autonomy status LED and the CAN bus activity indicators. Firmware lives in src/pdlb.

The autonomy LED is the externally visible signal of what the rover is doing, which competition rules require during autonomous navigation. The board sets an RGB LED to a commanded color and can blink it.

InterfacePeripheralNotes
Autonomy LEDthree GPIO pins (R, G, B)one pin per channel, so eight colors
CAN TX indicatorGPIOpulses on transmit
CAN RX indicatorGPIOpulses on receive
CANFDCAN1
TimerRatePurpose
htim2200 msLED blink toggle

The LED is set directly from AutonLEDCommand. When blinking is set the blink timer is started and the LED toggles every 200 ms; when it is clear the timer is stopped and its counter reset, so the LED returns to steady immediately rather than finishing a half period.

Because each channel is a single GPIO rather than a PWM output, only fully on or fully off per channel is available, giving eight colors including off rather than an arbitrary RGB value.

MessageBase IDDLCSignals
AutonLEDCommand0x807000008red (1), green (1), blue (1), blinking (1)
PDLBResetCommand0x807100001reset, clear_faults

Nothing. The board is command-only and publishes no state.

None. There is no config/pdlb.yaml, so the board has no configurable registers and nothing to commission. Its CAN ID is fixed in firmware.

Terminal window
./scripts/build.sh --src src/pdlb --preset Debug
./scripts/build.sh --src src/pdlb --preset Debug --flash

src/pdlb is in ci.json, so CI builds it at both presets.