Enabling on-device learning on STM32 microcontrollers