Hands-on microcontroller programming