Skip to content

Commit 07a4c12

Browse files
committed
STM32WB55 Support and Reliable Cross-Family DFU Implementation
## Description Major update to STM32 support introducing STM32WB55 support and a complete overhaul of software DFU entry across supported STM32 families. ## Added - STM32WB55 support (tested on WeAct STM32WB55CGU6) - Support via P-NUCLEO-WB55 and NUCLEO WB55 USB Dongle board definitions - Nucleo-64 board definition support (F1/F4/G4 variants should work) - `dfu_boot_stm32wb.c` for reliable WB55 DFU entry - Additional hardware validation: WeAct STM32G474 and STM32F405 ## Changed - DFU implementation rewritten for reliability: - F1/F4/G4 use direct ROM bootloader jump - WB55 uses magic value in `BKP0R` + `NVIC_SystemReset()` with early Reset_Handler interception - `boards.txt` now requires extra lines to enable 1200bps touch - Updated `boards_txt_additions.txt` with new format and Nucleo_64 entry - Added suggested change to readme to reflect status of this port ## Known Limitations - Generic WB55 board definitions lack proper USB clock configuration and are not supported. Use P-NUCLEO-WB55 or NUCLEO WB55 USB Dongle board definitions. - STM32F1 DFU entry requires further validation on boards with factory bootloader. This release significantly improves stability and expands supported hardware.
1 parent d4ca7dc commit 07a4c12

5 files changed

Lines changed: 340 additions & 70 deletions

File tree

README.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,18 @@ Note: For ESP32 port, version before v3.0 requires all descriptors must be speci
4747

4848
### Cores without built-in support
4949

50-
Following is cores without built-in support
50+
The following are cores without built-in support
5151

52-
- **mbed_rp2040**
5352
- **[stm32duino/Arduino_Core_STM32](https://github.com/stm32duino/Arduino_Core_STM32)**
54-
- Still WIP, only supports F1, F4 & G4 so far. Requires lines added to stm32duino boards.txt which can be found in /ports/stm32/boards_additions.txt. No longer needs manual initialization/CDC flushing. DFU entry working. Serial now works as normal.
55-
53+
- Still WIP. Fully functional but with limited number of MCUs supported so far (F1xx, F4xx, some G4xx & WB55). Requires lines added to stm32duino boards.txt which can be found in /ports/stm32/boards_txt_additions.txt.
5654

55+
- **mbed_rp2040**
56+
- It is still possible to use TinyUSB but with some limits such as:
57+
- `TinyUSB_Device_Init()` need to be manually called in setup()
58+
- `TinyUSB_Device_Task()` and/or `TinyUSB_Device_FlushCDC()` may (or not) need to be manually called in loop()
59+
- Use `SerialTinyUSB` name instead of Serial for serial monitor
5760

58-
It is still possible to use TinyUSB but with some limits such as:
59-
60-
- `TinyUSB_Device_Init()` need to be manually called in setup()
61-
- `TinyUSB_Device_Task()` and/or `TinyUSB_Device_FlushCDC()` may (or not) need to be manually called in loop()
62-
- Use `SerialTinyUSB` name instead of Serial for serial monitor
63-
- And there could be more other issues, using on these cores should be considered as experimental
61+
There could be more other issues on cores without built in support, using on these cores should be considered experimental.
6462

6563
## Class Driver API
6664

0 commit comments

Comments
 (0)