avr-open-hal A robust non-blocking open source Hardware Abstraction Layer (HAL) for AVR microcontrollers