2021-08-05 08:17 AM
I am using the newest version of the IDE (1.7.0) and related tools. I try to generate a BLE application (server) from scratch using CubeMx. One service with two characteristics.
When I try this out, I can see the advertisment on a BLE client (nRF Connect running on iPad). When trying to connect, this does not come to an end.
I tried out several with several ST BLE examples and it had the same effect.
Then I updated the BLE core FW to the newest version V1.12.1.. This doesn´t have any positive effect.
It seems to be something wrong with the acutal BLE CubeMx implementation, but as I am new on the BLE its difficult for me where to search for the reason.
2021-08-12 08:01 AM
See below answer from the Online Support... I tried this, and it solved the issue!
Dieter
Dear Mr. Falk,
Thank you for this request.
Indeed, you are right when you said that something is wrong with CubeMX code generation.
Some wrong items are still generated for WB project. The development team is currently working on it.
That’s why for the moment we encourage our customer to start from example.
However, it should be still possible to generate a working server from scratch.
I created a CubeMX project and there are some tricks in order to achieve it.
So, please, can you try to follow these steps:
With (on my side):
- CubeMX v6.3.0 and CubeIDE v1.7.0
- Nucleo-WB55RG
- FUS v1.2.0
- BLE Full stack from CubeWB package v1.12.0
In CubeMX [Pinout & Configuration]
1) Activate System Core/HSEM (HSEM interrupt should be enabled by default)
2) Activate System Core/IPCC and enable IPCC RX/TX interrupts in NVIC settings
3) Activate Timers/RTC Clock Source and Calendar, select Internal WakeUp and enable the interrupt
4) Activate Connectivity/RF RF1
5) Activate Middleware/STM32_WPAN/BLE, make sure Server profile is set
In CubeMX [Clock Configuration]
6) 32MHz for CPU2
7) Clock RTC with LSE
8) Change RF system wakeup to LSE instead of HSE/1024
9) Code generation
In CubeIDE
10) In main.c while(1) replace MX_APPE_Process(); by UTIL_SEQ_Run( UTIL_SEQ_DEFAULT);
11) In stm32wbxx_it.c modify RTC_WKUP_IRQHandler() to call HW_TS_RTC_Wakeup_Handler(); instead of HAL_RTCEx_WakeUpTimerIRQHandler(&hrtc);
I also attached my project.
It seems to work on my side (detected and connected by nRF Connect).
However, it is not really clear for me when you said: “I tried out several with several ST BLE examples and it had the same effect.�?
Do you mean that you tried our BLE examples but it’s not working?
Please, let me know if you are still facing any issue.
Finally, I didn’t try it, but for your information there is a YouTube video on this topic (only CubeMX part):
https://www.youtube.com/watch?v=DaL_dIpoUv8
Best Regards,
Alan PORTE
STMicroelectronics
T.O.M.A.S. - Technically Oriented Microcontroller Application Services