The "standard" build is listed first and is the default firmware that the pyboards are shipped with. Use this firmware if you are uncertain. The "double FP" builds use double-precision floating point instead of the standard single precision. The "threading" builds contain the _thread module and allow multithreading. The "network" builds have network drivers for WIZ820io included. All these different firmware are completely interchangeable and you can freely change from one to the other without losing the filesystem on your pyboard.
Nucleo and Discovery boards typically include a built-in ST-Link programmer.
A .bin
or .hex
file can be flashed using st-flash.
# Optional erase to clear existing filesystem.
st-flash erase
# Flash .bin
st-flash write firmware.bin 0x08000000
# or, flash .hex
st-flash --format ihex write firmware.hex
A .hex
file can be flashed using STM32 Cube Programmer.
STM32_Programmer.sh -c port=SWD -d firmware.hex -hardRst
Boards with USB support can also be programmed via the ST DFU bootloader, using e.g. dfu-util or pydfu.py.
To enter the bootloader the BOOT0
pin can be connected to VCC
during reset, or you can use machine.bootloader()
from the MicroPython REPL.
dfu-util --alt 0 -D firmware.dfu