Showing results for 
Search instead for 
Did you mean: 

How to run the SubGHz_Phy_PingPong example on a custom board.

Associate II

Hello everybody.

I wanted to know how to modify the SubGHz_Phy_PingPong example to run on a custom board that uses the STM32WLE5CCU: UFQFPN48 package?

Due to the differences between the BGA and QFN versions, I changed the position of some pins:

FE_CTR1 in PA4;

FE_CTR2 in PA5;

FE_CTR3 in PA6;

LED1 in PA7;

LED2 in PA8;

LED3 in PA9;

PROB1 in PA11;

PROB2 in PA12;

BUT1 in PA13;

BUT2 in PA14;

BUT3 in PA15.

Thank you very much.

ST Employee

Hello @Takahashi​ ,

The easier way to convert your BGA project into QFN project is to open your .ioc with CubeMx.

Then go in the Pinout tab (in the middle on the window), and then in the List Pinout Compatible MCU.


Once you are on this window, select your package on the left, type search and you can find the compatible MCU.

If it's not fully compatible, hover the mouse over the desired MCU to display an explanatory tooltip.

You can refer to UM1718 on the Tutorial 5 that explain the full process

I hope my answer help you

You can Select as Best this comment if this answer your question to help the other customers.

Best Regards

Associate II

Hi Louis, thanks for the reply.

I think I made it through:

1 - I edited the .ioc file in CubeMX as you mentioned;

0693W00000QKmEZQA1.png2 - As my target uses the single core version, I had to remove the symbol "STM32WL55xx" and add "SMT32WLE5xxx", remembering that I made this change to the Debug and Release configuration;

0693W00000QKmEjQAL.png3 - I edited the stm32wlxx_nucleo.h file from the Nucleo board's BSP, changed the LED pins: LED1 to PB3, LED2 to PB4 and LED3 to PB5. Buttons SW1 and SW2 remained, as there was no need to change, SW3 I changed from PC6 to PB6, so that the external interrupt number was kept. The TCXO control pin was kept, because in the QFN version it is also on the PB0 pin. I noticed that in the Clock configuration in this example, the source is from the MSI internal RC oscillator and has nothing to do with the TCXO;

0693W00000QKmFDQA1.png4 - I edited the stm32wlxx_nucleo_radio.h file from the Nucleo board's BSP, changed the control pins of the RF switches: RF_SW_CTRL1 on pin PA4, SW_CTRL2 on pin PA5 and SW_CTRL3 on pin PA6.

0693W00000QKmFIQA1.png5 - In CubeMX I also repositioned PROB2 to the PB2 pin, I noticed that a warning occurred when I generated the code. I think it must be due to the lack of definition for Debug Lines 3 and 4.

0693W00000QKmFXQA1.pngI was able to build the project without errors, I haven't tested it yet, as the target board hasn't arrived yet, but I think it should work.

Thank you again.

Hi Louis, sorry to bother you again.

I noticed that I didn't change the project startup file. I created an empty project of the specific version of STM32WLE5 that I will be using. I compared the startup_stm32wl55jcix.s file that originally came in the SubGHz_Phy_PingPong project with the startup_stm32wle5ccux.s file from the empty project I created and noticed that they are different.

Should I delete the startup_stm32wl55jcix.s file from the SubGHz_Phy_PingPong project and replace it with the startup_stm32wle5ccux.s file?

Or will I have problems due to the different filenames? In this case, should I just replace the contents of the startup_stm32wl55jcix.s file with the other one, preserving the original name?

Best Regards