Freematics ONE uses a STM32 chip as co-processor to ATmega328p for access to data from OBD, GPS and communication module. If for some reason you want to update the firmware of STM32, here is a quick guide for how to do it.
Download Freematics ONE firmware update utility. The package also contains STM32 firmware image and USB driver.
Upload updater sketch (updater.ino in updater folder) to ATmega328p with Arduino IDE. The sketch works as a proxy between STM32 and the USB port.
Run Firmware Updater utility, choose the serial port that Freematics ONE is on, and choose a STM32 image file (.HEX) after clicking Load button.
Click Connect button to switch STM32 into bootloader mode. If this fails repeatedly, you may need to update USB driver.
Click Update button to start flashing. Once successfully done, click Run button to switch STM32 to normal mode.
In some cases, the utility might fail to switch STM32 to bootloader mode. This can normally be solved by updating (downgrading) USB driver with the provided version in the package. To update the driver, go to Windows Device Manager, double click the serial port and you will see the driver information.
Click Update Driver and choose “Let me pick…” as following.
Click Have Disk button.
Choose the USB driver directory.
Choose the (only) driver and click Next button.
The driver will be installed. Once done, make sure the driver date becomes the following.
After the driver is updated, unplug USB connector and plug it in again, then start over with the firmware update utility.