cancel
Showing results for 
Search instead for 
Did you mean: 

NUCLEO-WB09KE: PB1 held high and not switching when used as RADIO_ANTENNA_ID_1

MuradV
Associate II

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!

  • It is not configured in the .ioc file.
  • Even when RADIO_ANTENNA_ID_1 is removed and not configured, pin holds high.
  • There are no solder bridges that connect PB1 to anything on the MB1801D
  • And no external signal is intentionally connected to it.

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.

 

  • Is PB1 used internally by the NUCLEO-WB09KE board or firmware in a way that would explain why it is held high?
  • Is there an additional configuration step required besides aci_hal_set_antenna_switch_parameters() to make RADIO_ANTENNA_ID_1 switch on PB1?

Do feel welcome to request files or more information. I'll attach a few code files I think might help any attempts of troubleshooting. 

 

0 REPLIES 0