ArduinoCore-stm32wb is targeted at ultra low power scenarios, sensor hubs, with BLE connectivity.
The Arduino Core for STM32WB does use Secure Boot / Secure Firmware Update. To do so, a special bootloader is installed the first time a sketch is uploaded. To change the bootloader to a newer version, or to switch security settings between None
and Signature & Encryption
the STM32WB board has to be reset by toggle the RESET button while holding down the BOOT button, and then uploading a sketch with the new boot code or settings.
PLEASE ALWAYS WHEN UGRADING, TOGGLE THE RESET BUTTON WHILE HOLDING DOWN THE BOOT BUTTON BEFORE UPLOADING THE FIRST SKETCH.
- Download and install the Arduino IDE (at least version v1.8.13)
- Start the Arduino IDE
- Go into Preferences
- Add
https://grumpyoldpizza.github.io/ArduinoCore-stm32wb/package_stm32wb_boards_index.json
as an "Additional Board Manager URL" - Open the Boards Manager from the Tools -> Board menu and install "Tlera Corp STM32WB Boards"
- Select your STM32WB board from the Tools -> Board menu
- Go to
~/.arduino15/packages/TleraCorp/hardware/stm32wb/<VERSION>/drivers/linux/
sudo cp *.rules /etc/udev/rules.d
- reboot
- Plugin STM32WB board and toggle the RESET button while holding down the BOOT button
- Go to
%AppData%
and navigate from toAppData\Local\Arduino15\packages\TleraCorp\hardware\stm32wb\<VERSION>\drivers\windows
- Right-click on
STM32Bootloader.bat
and selectRun as administrator
- Plugin NUCLEO board
- Download and install ST-Link USB Drivers
- Follow steps from Board Manager section above
cd <SKETCHBOOK>
, where<SKETCHBOOK>
is your Arduino Sketch folder:
- OS X:
~/Documents/Arduino
- Linux:
~/Arduino
- Windows:
Documents\Arduino
- Create a folder named
hardware
, if it does not exist, and change directories to it - Clone this repo:
git clone https://github.com/grumpyoldpizza/ArduinoCore-stm32wb.git TleraCorp/stm32wb
- Restart the Arduino IDE
STM32WB uses a signed/encrypted firmware image for the BLE stack. Please flash the FWUpdate
sketch under the STM32WB
examples before using BLE. The update will take up few seconds/minutes. During that time the LED will stay on, while the serial monitor will say disconnected. When done the LED will blink if the update was succesful, or simply be turned off if an error was encountered. The serial monitor should pop up again and report back the newly updated firmware versions. The FWInfo
sketch can be used to verify what version is installed. At this time it should report back 1.14.2 for the BLE stack.
STM32WB can use a signed/encrypted firmware image for the Arduino application/sketche. With the Export compiled Binary
entry in the Sketch
menu 5 files are exported. The *.dfu file is used for secure firmware update via USB/DFU, while the *.ota file is use BLE/OTA. This can be used/tested with either the "ST BLE Toolbox" application for Android/iOS (the file might have to be renamed to fit ST's naming conventions), or with the supplied stm32wb-ota.py
python3 script (requires python3
and bleak
). USB/DFU uses signature/encryption, while BLE/OTA uses signature/encryption/compression.
Sometimes a faulty sketch can render the normal USB DUF based integration into the Arduindo IDE not working. In this case plugin the STM32WB board and toggle the RESET button while holding down the BOOT button and program a known to be working sketch to go back to a working USB DFU setup.
This core is based on the Arduino SAMD Core