Skip to content

USB STM32WB55CGU6 Arduino IDE #2965

@Aigars535

Description

@Aigars535

Title:
Poor support for STM32WB55CGU6 (WeAct Core Board) — USB CDC and BLE barely working in Arduino_Core_STM32 2.12.0
Body:
Hello,
After spending a significant amount of time trying to make the WeActStudio STM32WB55 Core Board (STM32WB55CGU6) work with Arduino_Core_STM32 2.12.0, I have to report a very disappointing experience.
Main Issues:

USB CDC is almost non-functional
When selecting CDC (generic 'Serial'), the board is detected in Windows as "Unknown USB device".
The problem persists even with an empty sketch, after Full Chip Erase, long delays in setup(), manual DP pull-up on PA12, and trying different board definitions (Generic STM32WB55CGUx, P-NUCLEO-WB55, etc.).
Interestingly, USB CDC works correctly when using STM32CubeIDE + HAL on the same hardware.

BLE support is problematic
After flashing the official stm32wb5x_BLE_HCILayer_extended_fw.bin at 0x080DC000, BLE.begin() from the STM32duinoBLE library almost always fails.
Multiple compilation issues with HCISharedMemTransportClass, conflicting declarations, and missing Low Layer headers.
No reliable way to initialize BLE together with USB.

Generic board definition is insufficient
Very weak clock configuration for USB (48 MHz) on WB55CGUx.
Low Layer functions (such as HSEM) require manual includes and are not properly abstracted.
Overall support for the dual-core nature and Wireless Stack of the STM32WB55 series feels very immature.

What worked:

Flashing via ST-Link (SWD) using STM32CubeProgrammer works reliably.
Basic GPIO (LED on PE4) works fine.
The board has HSE 32 MHz and LSE crystals.

Conclusion:
While I understand that supporting the STM32WB55 (dual-core + Wireless Stack) in Arduino is challenging, the current state of USB CDC and BLE support makes the Arduino_Core_STM32 practically unusable for this MCU in real projects.
Many users who want to use STM32WB55 with BLE eventually switch to nRF52840 or move entirely to STM32CubeIDE / Zephyr.
Suggestion:
It would be very helpful to significantly improve:

Proper USB clock configuration for Generic STM32WB55CGUx variants.
Reliable examples of USB CDC + BLE coexistence (including correct HSEM semaphore 5 handling).
Better integration and stability of the STM32duinoBLE library with recent HCI stacks (v1.24+).

I am happy to provide more details, logs, test sketches, or even remote access to the board if it helps.
Thank you for your work on the core.
Best regards,
Igor
Dnipro, Ukraine

Image Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions