Embedded Bytes #73: The Hardware Abstraction Layer Design Process