2025-11-24 9:51 PM
I'm using an STM32H735 microcontroller as the main application processor, connected to an STM32WB05N (Nucleo-WB05KZ) Bluetooth module via UART.
Connection:
STM32H735 USART1 ↔ STM32WB05N USART1
Baud rate: 115200, 8N1, no flow control
Physical connection: Direct UART TX/RX between the two MCUs
Software Architecture:
STM32WB05N Configuration:
STM32H735 Configuration:
Communication Protocol:
The H735 controls the WB05N by sending standard Bluetooth HCI commands and proprietary ACI (Application Controller Interface) commands over UART:
[H735 Application] --ACI/HCI Commands--> [WB05N TransparentMode]
<--HCI Events-------
Example command sequence:
H735 sends aci_gap_set_security_requirements → WB05N configures security
H735 sends aci_gap_set_advertising_enable → WB05N starts advertising
Central device connects → WB05N sends connection event to H735
H735 sends aci_gatt_clt_write → WB05N performs GATT write operation
Current Issue:
I'm experiencing a connection drop with reason 0x3E (MAC Connection Failed) immediately after a Windows device establishes a BLE connection. The connection sequence is:
:white_heavy_check_mark: WB05N advertises successfully
:white_heavy_check_mark: Windows connects (Connection Handle 0x0801 established)
:cross_mark: Connection drops ~300ms later with reason 0x3E
All ACI commands return status 0x00 (success), and the security configuration is set to:
Bonding: Enabled
MITM: Not Required
Secure Connections: Optional
IO Capability: Display Only
Question:
Is there something specific the H735 needs to do immediately after connection to keep the link active when using TransparentMode firmware? The WB05N handles the full BLE stack, but I suspect the firmware expects some application-level activity from the external host.
Thanks in advance.