2026-05-15 1:03 PM
Environment:
MCU: STM32WB09KE, Cortex-M0+
Board: NUCLEO-WB09KE
IDE: STM32CubeIDE 2.1.0
STM32CubeIDE Build: 27993_20260219_1630 (UTC)
STM32CubeMX Version: 6.17.0
OS: Windows 11 Home
Firmware package: STM32Cube_FW_WB0_V1.4.0
Example project used: BLE_DirectionFinding_Central_Locator
Setup:
I am using the STM32WB09 Direction Finding example project on the NUCLEO-WB09KE board.
The project is based on ST’s provided STM32CubeWB0 package and the NUCLEO-WB09KE board files available here: https://www.st.com/en/evaluation-tools/nucleo-wb09ke.html#cad-resources
The goal is to use two GPIO pins as antenna-switching control signals for AoA direction finding:
RADIO_ANTENNA_ID_0 -> PB0
RADIO_ANTENNA_ID_1 -> PB1
PB0 works correctly. When configured as RADIO_ANTENNA_ID_0, I can observe the expected switching signal on a Saleae logic analyzer. Screenshot provided here: https://imgur.com/a/uk8L8tq Not much here, but zooming in into each pulse shows rapid switching- you can trust me.
PB1 does not work correctly. The pin appears to be held high, and I don't understand why!
Problem:
PB1 is high by default on the NUCLEO-WB09KE board.
When I try to configure PB1 as RADIO_ANTENNA_ID_1, it does not produce the expected antenna-switching waveform. It remains high instead of switching.
By comparison, PB0 works correctly as RADIO_ANTENNA_ID_0.
What I have checked:
I inspected the NUCLEO-WB09KE board files from ST’s CAD resources in Altium Designer.
From what I can see, PB1 does not appear to be connected to any active external circuit on the board, apart from being routed to a header. I do not see any solder bridge configuration that should force PB1 high.
I also checked the .ioc file. PB1 is not configured there unless I explicitly assign it for antenna switching, even then no change occurs.
Despite that, PB1 still reads high and does not switch when used as RADIO_ANTENNA_ID_1.
The relevant code has been implemented:
st = aci_hal_set_antenna_switch_parameters(
0x01 | 0x02,
0,
0,
0
);My understanding is that this should enable both antenna ID control signals, where bit 0 corresponds to RADIO_ANTENNA_ID_0 and bit 1 corresponds to RADIO_ANTENNA_ID_1.
Do feel welcome to request files or more information. I'll attach a few code files I think might help any attempts of troubleshooting.