Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and discuss STM32 wireless solutions and their implementation for running Bluetooth LE, Zigbee, LoRaWAN applications.
Most recent activity
Hi We are using the STM32 in a project and want to use a bluetooth module . I see there are many certified modules out there , but if I use any in a project (even though I dont modify the module at all ), I have to pay for a bluetooth certification. It doesnt make sense using it in a smaller project if a license has to be paid , if I dont put the logo on the brand, do I still have to pay for it? Im sure many people have come across the same issue Many thanksScott
Hi,I am currently attempting to debug the secondary core (cortex-M0+) on the STM32WB15CC board, but I have encountered challenges in doing so. According to the documentation, the boot process is initiated by setting C2BOOT through the primary core (cortex-M4) to 1. However, I discovered that the debug interface is locked in CPU2, indicated by the DDS bit being set to 1.It appears that unlocking the debug interface in CPU2 is not straightforward, as the documentation states:"Debug access to the CPU2 is disabled, as indicated by the DDS field in the Secure Flash memory start address register (FLASH_SFR). The debugger has no access to the CPU2 and the secure peripherals and memory areas."Can you please share any hint or assistance.Grateful for the attention!Gaya
Hi All, I want to create an open thread border router with raspberry pi 3 and stm32wb55rg :1- first I followed the steps illustrated on this site Connectivity:STM32WB OpenThread Border Router Application - stm32mcu (stmicroelectronics.cn) but i can't found the image OTBR_CLI_RPi_1.0.img 2- so i decide to follow the steps illustrated by open thread OpenThread Border Router Build and Configuration 3- but when i arrived to the verify services step :the command sudo service otbr-agent status give me this error You can find the RCP log below:Any suggestion will be appreciatedThank you
We have a product using the SPBTLE-RF module and are looking to migrate the design to use the STMWB1M. Has anyone done this?
What operations need to be performed on CPU2 after CPU1 wakes up from Stop mode on STM32WB55 for BLE to work?I have successfully implemented waking up CPU1 from low power mode, but how can CPU2's BLE functionality be restored? Here is the code:HAL_DBGMCU_EnableDBGStopMode();LL_RCC_SetClkAfterWakeFromStop(LL_RCC_STOP_WAKEUPCLOCK_MSI);HAL_PWREx_HoldCore(PWR_CORE_CPU2); /* Disable C2 */LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN);HAL_SuspendTick();HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);HAL_PWREx_ReleaseCore(PWR_CORE_CPU2); /* Boot CPU2 after reset or wakeup from stop or standby modes */HAL_ResumeTick();I found that the clock needs to be configured and I am working on resolving it.....I am able to scan for the device, but I cannot connect to it.
Hello, I like to design zigbee -based heath monitoring system, using stm32f407GT6 discovery board, and I plan to add Security in zigbee to protect data against attacks. In my system, I will use three sensors(temperature, Heart Rate (ECG), Blood pressure) . The stm32 board collect the data. After preprocessing, it sends formations to Tablet pc via wireless communication zigbee. My questions are can I implement zigbee protocol in my board stm32f407GT6 should I use two xbee “router and coordinnator” with xbee explore modules? In This case, can I add the Security (in zigbee) .Thank you a lot
I have developed a motion sensing application to recognize human activities using machine learning on an STM32 microcontroller on my ST IOT discovery kit (B-L475E-IOT01A) it is successfully infering different motions and displaying the results on the monitor. I have used the following guide:https://wiki.stmicroelectronics.cn/stm32mcu/wiki/AI:How_to_perform_motion_sensing_on_STM32L4_IoTnodeNow I want to connect my board to the internet and upload these results on cloud rather than on a serial monitor as I am building a wireless device. Kindly give me some links to how I should proceed further.
I have one of P-Nucleo-WB55 and recently bought one more P-Nucleo-WB55 board.We are using this board to program the STM32WB55VG6YTR microcontroller in our custom board and we have succeeded more than 20 times in programming that microcontroller using ST-LINK in P-Nucleo-WB55. However, recently we couldn't access either our microcontroller in the custom board or the dummy microcontroller in P-Nucleo-WB55 anymore. In addition, we never succeed in using the new P-Nucleo-WB55 board. After several trials, we found that the wire length of SWCLK was the reason.Right now, we only can access the dummy microcontroller in P-Nucleo-WB55 using a jumper pin to connect SWCLK. If we use a normal wire (resistance < 1 ohm), we cannot access even the dummy microcontroller.This problem is big because we have to program the microcontroller in our custom circuit board. Does anybody have a similar problem and find a solution?
Hello. Any help/guide how to start communication between STM32WB and windows pc via BLE?I want to make wireless temperature probe and i don´t know where to start.
Hello,When using device as temperature measurement server and device joins to the network where coordinator is also trust center, joining to the network works fine, but binding not. I wander, why device don't send Active Enpoint Response message when it gets the active endpoint request from the coordinator. There is no response function in zsdk but ZbZdoActiveEpReq is. I suppose, this is because the stack should send response automatically. I have understood that when using find and bind identifyQuery is different matter. This belongs to my ealier post . Joining to the network works fine and device confirms key with success, but the problem seems to be binding now.Specification says:"The Active_EP_req command is generated from a local device wishing to acquire the list of endpoints on a remote device with simple descriptorsUpon receipt of this command, the recipient device shall process the command and generate an Active_EP_rsp command in response, according to the descriptio
Hi,I recently started exploring what STM32WL MCUs offer but I don't really understand a few things yet:1. I read somewhere that these STMs are based on SX126x LoRa radio. Is that the case?2. If so, does enabling "SUBGHZ_PHY" in middlewares in CubeIDE allow me to control this built-in radio with some simple HAL functions as if i was controlling a seperate LoRa module connected via SPI/something else?3. Based on questions 1 and 2, can I communicate between 2 STM32WLs with LoRa as if I was using simple separate modules?4. Can these STMs communicate with normal SX126x based modules? If so, with what chips exactly?5. What are the differences between STM32WL55 and STM32WLE5?I'm sorry if these questions have been answered before but either I didn't find them or I just wanted confirmation.Adam
Dear community, In the attachments, I am sending You two screenshots, one from the LoRa WAN Network server and the other one from the STM32CubeIDE. We are using two of Your dev boards, one as the LoRa WAN gateway (Nucleo F746ZG) and the other one as the end device (STM32 WL55JC1/MB1389E).We are trying to establish LoRaWAN communication where our end device will be of class C. The running network server is from the following link: https://gotthardp.github.io/lorawan-server. For the end point we used the example project provided by the STM32 (LoRa End Point) as the base project.Even though we have generated code with STM32CubeMX, where we have configured the device to be of class C, the end device is still working as it is of class A!!!! In the debug mode, we are monitoring the device's class ('STM32_Cube_Ide_Screenshot') and it has the value 2, which corresponds to the class C device, but in the network server ('Network_Server_screenshot') view, You can see that it is still functioning
Hi,I have seen that the new STM32WL33 have support for 4-FSK, high receive sensitivity and wake-up receiver LPAWUR, which is beneficial for both high-data-rate and long-range applications. However, LoRa support is reserved for STM32WL55 and STM32WLE5, which don't support 4-FSK.Will there be a controller that combines both LoRa and also 4-FSK support, and perhaps also higher sensitivity and LPAWUR?Thank you very much!
I doubt if the ST-link has some setting problems?Model:P-NUCLEO-WB55 PNWB55$CU301:09:41 : Warning: FUS_STATE_IMG_NOT_FOUND, Flash already empty !01:09:42 : Firmware delete Success01:09:42 : Download Stack/FUS image at address 0x80EC000 ...01:09:42 : Memory Programming ...01:09:42 : Opening and parsing file: stm32wb5x_FUS_fw.bin01:09:42 : File : stm32wb5x_FUS_fw.bin01:09:42 : Size : 23.92 KB01:09:42 : Address : 0x080EC00001:09:42 : Erasing memory corresponding to segment 0:01:09:42 : Erasing internal memory sectors [236 241]01:09:42 : Download in Progress:01:09:43 : File download complete01:09:43 : Time elapsed during download operation: 00:00:00.62701:09:43 : Firmware Upgrade process started ...01:09:43 : Application is running, Please Hold on...01:09:55 : Reconnecting...01:09:55 : Reconnected !01:09:55 : Error: FUS_STATE_IMG_NOT_AUTHENTIC: Firmware/FUS upgrade requested, image found, but its signature is not valid (wrong signature, wrong signatu
Hey folks,I'm having issues with the RTC's calendar function while using BLE. I would like to timestamp recorded data using the calendar function of the RTC and then transmit that data over Bluetooth. However, when I enable the Bluetooth middleware in Cube, it forces the ASYNC and SYNC prescalers of the RTC to predetermined values of 0xF and 0x7FFF, respectively. See image.Is it possible to use the calendar function while using BLE? If so, how?Thus far I found the following in app_conf.h (which is not very encouraging...) :#define CFG_RTCCLK_DIVIDER_CONF 0 #if (CFG_RTCCLK_DIVIDER_CONF == 0) /** * Custom configuration * It does not support 1Hz calendar * It divides the RTC CLK by 16 */ #define CFG_RTCCLK_DIV (16) #define CFG_RTC_WUCKSEL_DIVIDER (0) #define CFG_RTC_ASYNCH_PRESCALER (CFG_RTCCLK_DIV - 1) #define CFG_RTC_SYNCH_PRESCALER (0x7FFF)Is there a way to make the two work alongside each other?
assert_failed() is being called inside BleStack_Init() with USE_FULL_ASSERT defined. By default, Stm32CubeMx does not define USE_FULL_ASSERT so assert_failed() would have never been called. Either way, BleStack_Init() returns zero causing APP_BLE_Init() to initialize gapp and gatt. No problems.Question: Is the call to assert_failed() by design? Should I ignore assert_failed() during a call to BleStack_Init().I am using Nucleo-WBA52CG, STM32Cube_FW_WBA_V1.2.0, arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi and Ubuntu 22.
Hello!I'm using the STM32WL55CCU6 in a design and have a question:TCXO: I'm using a TCXO connected according to the datasheet. If I select TCXO in CubeIDE I have to use PB01 as TCXO-VDD. My plan was to use PB01 as GPIO. Is that possible? How? -> If i change the Pin to GPIO, it deselects the TCXO in the clock config.(TCXO is connected to the on-board-power-supply) best regardsRobert
Hi ST Team, I have found this post here, which explains how to power the Nucleo WB55RG board with an external power source. https://community.st.com/t5/power-management/powering-nucleo-wb55-externally/m-p/632719#M10752Now I have a followup question: Is it actually possible to only power the CPU without the LED and onboard ST Link, to measure the current consumption? If I power the board via 5V EXT, LED5 is always ON, which makes my current measurement invalid. Regards,Andi
Hello,I have been following the tutorial STM32CubeMX Application Conception for making a custom BLE server with my P-Nucleo-WB55. I am using version 6.9.2 of STM32CubeMX. Everything works until section 7, where server notifications and write management with GPIO are configured.The tutorial uses BUTTON_SW1_PIN and LED_BLUE macros, which do not seem to exist. The tutorial also uses BSP_LED_ON() and BSP_LED_OFF(), which I cannot find declarations for. What should I do?Perhaps this is a silly issue with a quick fix, but I am concerned that STM32CubeMX is changing the structure and organization of their code generator. If this is the case, would you suggest rolling back to the 6.4.0 version (which the tutorial has success using) of the STM32CubeMX and sticking with that same version for development? Any help will be appreciated. Thank you.
Hi, am using the STM32WB55 Nucleo board. My problem is, currently Iseem not to have a CPU2 wireless stack loaded and I fail to load filestm32wb5x_BLE_Stack_full_fw.bin loaded into the Flash. I am using theSTM32CubeProgrammer V2.12.0. When selecting on the Firmware UpgradeService Button and clicking on "Read FUS infos", I get:FUS State: FUS_IDLEFUS Status: FUS_NO_ERRORFUS Version: v0.0.0.0FUS Operator: v3.1.0When I click on "Start Wireless Stack", this happens: 13:20:53 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified. 13:20:53 : Warning: Option Byte: nboot0, value: 0x1, was not modified. 13:20:53 : Warning: Option Byte: nboot1, value: 0x1, was not modified. 13:20:53 : Warning: Option Bytes are unchanged, Data won't be downloaded 13:20:53 : Time elapsed during option Bytes configuration: 00:00:00.000 13:20:53 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1 13:20:53 : Memory Programming ... 13:20:53 : Opening and parsing file: 0
Hi,I'm working on STM32WB10CC with 320KB of flash memory.I'm using the full ble stack 1.14.1 (stm32wb1x_BLE_Stack_full_fw.bin) which has a size of 148KB.In the release note it's written you have to put it at this address 0x08021000.If I'm doing the math 0x08021000 + 148KB = 0x8046000.The last address of the flash memory is 0x0804FFFF. 0x0804FFFF - 0x8046000 = 0x9FFF = 40KBI have 40KB of free memory but I'm not able to write in this part of the memory. Does anyone have an explanation about the 40k extra memory and why I can't write to it ?Is it possible to write the ble stack to another address ? There is also an error in the Reference Manual (RM0478) p.54. The address should be 0x0804FFFF not 0x8004FFFF.Thanks for your help
Hi, I'm currently involved in implementing the transmission of variable-length data within Zigbee clusters. While I've successfully managed operations related to the String data type, I'm encountering challenges with the struct data type. I would appreciate it if you could review the provided code snippets and offer suggestions or corrections to address this issue. // ZCL_DATATYPE_STRING_CHARACTER - This snippet worked fine uint8_t myData[17] = " 123456789876543"; static struct ZbZclAttrT ZbZclAttrElecMeasAppendList[] = { {ZCL_OWN_ATTRIBUTE, ZCL_DATATYPE_STRING_CHARACTER, ZCL_ATTR_FLAG_WRITABLE, 32, NULL, {0, 0xffff}, {0, 0}}, }; ZbZclAttrStringWriteShort(zigbee_app_info.elec_meas_server, ZCL_OWN_ATTRIBUTE, myData); Encountered 0x86 error when I tried to do the same on Struct data type. Below, #1 and #2 none of them were worked for me. typedef struct { uint8_t A; uint16_t B; uint16_t C; uint16_t D; uint8_t E; uint32_t F; } ZCL_MY_Attributes
Hello,Currently, I am working with custom clusters, and I have a requirement related to transmitting and receiving the maximum number of attributes.To illustrate, consider a cluster with three attributes:Data Set - SET_0 ------------------- Valid_data_set (True/False), Attribute_A (<Attr_A_Data>) and Attribute_B (<Attr_B_Data>)which I interpret as SET_0 Now, let's introduce three more data sets, SET_1 and SET_2.In this setup, I have Zigbee Endpoints acting as servers, and the coordinator acts as the client, requesting these sets.Question: I need to dynamically send data over these data sets. Specifically, I want to send data only if the Valid_data_set attribute of SET_0 is true. Similarly, I need to check and send in a single packet.For example, if I have four sets with Valid_data_set attribute set to True out of a total of six sets, I want to send only those four sets of data to the coordinator upon a Zigbee request.Suggestions and any other references are greatly ap
I saw in the stm32 datasheet that the chip has a means of communicating/controlling RS485 devices. However, there’s not enough information to figure out how to connect a differential pair of wires in hardware to the nucleo directly from a rs485 device to establish communication.Other alternatives I’ve seen are using UART with an external module to convert UART signals from nucleo to RS485 channel. Is this the only option?
Hello!My code is based on the LoRaWAN Endnode example and I adjusted it to send data when pushing the BUT1. I have three board all with the same code and depending on which device sent the data I want to toggle LEDs connected with the boards. This works fine so far and I can see and process the data in the STM32CubeMonitor.For this I used the TX_ON_TIMER mode which just works fine, but the latency between pushing the button and the LEDs lighting up is pretty high.To reduce the response time I switched to TX_ON_EVENT mode, but on the boards the data (for turning on the LEDs) isn't received until I send data to the gateway. I also tried switching from LoRa class A to B and C but it doen't really change the behaviour. Shouldn't the data be received continuously when using LoRa class C? It seems somehow as if the devices are still in LoRa class A mode.I'm still pretty new to working with STM32 and LoRa so it's all very confusing for me right now.Is there a fix for this?Thanks in advance!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.