Collaboration in IoT.
WHAT CAUSES FRICTION
Different timescales: hardware changes take weeks, software minutes
Different tolerance for change Assumptions about who handles a problem Interfaces defined too late
WHAT TO AGREE EARLY
The interface between hardware and firmware Pin assignments and peripheral use Power budget allocation Test points and debug access
WHY TEST POINTS SPECIFICALLY
Adding them after boards are made is impossible.
WHAT SOFTWARE SHOULD REQUEST BEFORE DESIGN IS FIXED
Debug interfaces Status indicators A way to recover a device that will not boot Sufficient memory margin
WHY MARGIN MATTERS
Firmware grows, and boards cannot.
WHAT HARDWARE SHOULD PROVIDE SOFTWARE
Schematics and documentation Early prototypes, however rough Known limitations
WHAT TO ESTABLISH
Who decides when a fault is hardware or firmware.
WHY
It is the commonest dispute, and it delays resolution.
WHAT RESOLVES IT
Measurement, rather than argument.
WHAT TO BUILD JOINTLY
Diagnostic tooling both teams trust.
WHAT TO AVOID
Firmware compensating for hardware defects without recording that it is.