GPIB to USB adapter firmware for a Cortex M0 ARM microcontroller