Jordan BurgessSoftware design · Connected systems · Embedded hardwareView in archive

Two Valid Commands, One Wrong Mode

How back-to-back RV-C charger and inverter commands exposed a race in the driver that combined two enable states into one operating mode.

Case brief

Observed
Back-to-back charger-enable and inverter-enable commands could intermittently leave an inverter/charger in Inverter only rather than On.
Diagnosis
Physical reproduction confirmed that the two command handlers raced while composing separate charger and inverter enable states into one device mode.
Unresolved
Whether the revised driver prevents the failure across the expected timing, startup, and control sequences; final validation remains pending.

During integration testing, I found that a single On action in a supervisory interface could intermittently leave an inverter/charger in Inverter only. The interface presented one control to the user, but issued separate charger-enable and inverter-enable commands back-to-back. The receiving driver then had to combine those two requests into one device mode.

I documented the expected and observed state transitions, narrowed the failure to the interaction between the commands, and worked with the manufacturer’s engineering team to test the race-condition hypothesis. They reproduced the behavior on physical hardware, confirmed the race, and developed an automated sequence test. A revised driver is now on the test bench, where final validation remains pending.

Neither RV-C command was invalid. The failure came from how the driver composed them. When separate asynchronous controls change one underlying operating mode, the receiving implementation has to define which state each handler reads, how nearly simultaneous updates are ordered, and when the combined mode is written to the device.

  • State composition
  • Race conditions
  • Asynchronous control
  • CAN and RV-C
Format
Engineering investigation
Threads
Engineering · Fieldwork · Writing

Confirmed cause · remediation under validation