LibreSolar/charge-controller-firmware

Implement firmware upgrade via USB / UART interface

martinjaeger opened this issue · 1 comments

The STM32 microcontrollers feature an integrated bootloader that allows to update the firmware via USB or UART. The bootloader can be enabled using the BOOT0 pin or by jumping to the bootloader section in the memory. Unfortunately, the software solution does not work properly for the STM32L072 processors, as they have a dual memory layout.

So far, suggestions described here did not work: https://stackoverflow.com/questions/42020893/stm32l073rz-rev-z-iap-jump-to-bootloader-system-memory

For recent PWM and MPPT charge controllers, this is solved with a small resistor + capacitor circuit at BOOT0 pin to be able to pull it high before initiating a reset.

Firmware implementation was done in d7ed3cd.