Creating a professional Firmware update scheme for STM32
I'm working with a commercial-grade food-service product that uses the STM32L073 in conjunction with an android tablet connected over UART or Bluetooth. For our next-gen product, we're investigating methods to economically implement firmware updates on a fleet of a few thousand units. The one major factor is that we have limited resources (one part-time firmware developer with no filesystem or bootloader experience, along with a part-time electrical engineer), so maximizing implementation speed is key. We have the following options we are exploring for firmware updates:
1. Currently the only method implemented to perform firmware updates is using a ST-Link Programmer. Our issues with this setup is that:
- requires the user open up the product
- requires the user plug the ST link onto the pcb (electrically risky)
- Requires a laptop
- ST-Link can be lost
- anyone can flash unofficial firmware
2. Switch to an STM32WB:
- Seems to require either a laptop or phone with the propriety ST app
- anyone can flash unofficial firmware
- Requires porting firmware/pcb to STM32WB
3. Switch to Golioth IoT Platform (replace the ST board)
- Requires porting code to new platform
- Requires fleet management
- Expensive
4. Flash Drive:
- Requires bootloader / file system implementation for which I've struggled to find examples. Presumably requires a significant amount of development time.
- anyone can flash unofficial firmware
5. SD card:
- Requires bootloader / file system implementation for which I've struggled to find examples.
- SD card readers are less common than usb ports.
- anyone can flash unofficial firmware
Which of these 4 options would you recommend committing to for this next generation product, and what resources can I refer to help understand the implementation? Thanks!
