How to think about embedded software that runs in the field
Software that works on the bench faces a different test once it meets power cuts and weak connections in the field.
1 minute read

The field is not the bench
On the development bench the power is stable, the connection is solid and the device is within reach. In the field none of that is guaranteed. Starting the design by accepting those conditions avoids expensive changes later.
Treat failure as an expected state
Power can drop, a sensor can send a wrong value, a connection can break. Embedded software should bring itself to a safe state when that happens and be able to carry on from where it stopped after a restart.
Plan updates from the start
Once a device is in the field, reaching it gets harder. Remote updates, recovery from a failed update and readable logs are not features to add later; they belong in the first day's thinking.


