IO Abstraction Layer for microcontrollers