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,I am working with the STM32WB55MMG and have configured the system clock to run at 32 MHz. Could you please confirm which Voltage Scale setting is required for this configuration?As per the reference manual,Voltage Scale 1 supports up to 64 MHz.Voltage Scale 2 supports up to 16 MHz.Since 32 MHz exceeds the limit of Scale 2, does STM officially recommend using Voltage Scale 1 at 32 MHz?Additionally, if there are any recommended low-power optimizations for running at 32 MHz, please advise.Thank you.Best regards,[Sai Ganesh CS]
hello every oneI'm working on a STM32WB35 custom board with full ble stackwhat could cause C0 rf controler to stops advertising when going in stop2 mode?to get focused on my bug I've build a simple app that use tiny LPM as ble_heartbeat exampleexcept that I dont have any advertising frequency change I have no custom apptest purpose is to init ble stack start advertising and then go to stop 2 mode and advertise like this for everI'm allowing stop2 mode as soon as we finished APP_BLE_Init() function BleApplicationContext.BleApplicationContext_legacy.advtServUUID[0] = NULL; BleApplicationContext.BleApplicationContext_legacy.advtServUUIDlen = 0; /** * Start to Advertise to be connected by a Client */ Adv_Request(APP_BLE_FAST_ADV); /* USER CODE BEGIN APP_BLE_Init_2 */ UTIL_LPM_SetStopMode(1 << CFG_LPM_APP_BLE, UTIL_LPM_ENABLE); //DUMMYTSK_Init(); /* USER CODE END APP_BLE_Init_2 */ return; } Enter and Exit LowPower functions are sames as BLE_heartbeat exem
Hello STM32 Community,I’m currently working with an STM32WB05KZV6TR microcontroller and am facing issues after adding the STM32_BLE to my project. I initially configured a BLE peripheral using STM32CubeMX and STM32CubeIDE, and after code is generated, it does not compile. it looks like it can't find the .s filehere are some of the errors: C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v6-m/nofp/crtn.o: missing .note.GNU-stack section implies executable stack C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/b
Hi, I am using the STM32WB5MMG MCU, and I would like to know the current consumption of CPU1 and CPU2 while Bluetooth is in General Discovery mode (scanning) and Advertising. Additionally, are there any methods to reduce the current consumption of CPU2? For example, would reducing the TX power level during advertising or scanning help decrease power consumption? Thanks,Sainath D
Hi, I am trying to implement a LoRa endnote skeleton on my STM32WL55CCU. I have tried a lot of different ways of generating the project but I always run into errors. I think its due to the way the code generates because the structure doesn't resemble at all the LoRa endnote Example from the nucleo wl55jc1. I also ran into a lot of problems generating the LoRa endnote Example, it can only be done through the IDE if you use MX it doesn't work. So my question is there somewhere a STM32WL55CCU LoRa endnote skeleton I can download and start modifying or what am I doing wrong ? Thank you in advanced for your reply :) Seppe Budenaers
Hi everyone,I’m a beginner with STM32 boards and I’m trying to understand and work with the BLE 5.4 PAwR feature. I have a NUCLEO-WB09KE board, and I’m using Windows 11 along with the STM32Cube_FW_WB0_V1.1.0 package. I have installed all the required tools: STM32CubeIDE, STM32CubeMX, and STM32CubeProgrammer.I’m trying to replicate the example from this workshop video:Workshop Video – BLE PAwR ExampleI’ve also reviewed the README.md files in the following repositories:1. STM32WB0-BLE-PAwR-ESL2. STM32WB0x-Demo-WorkshopHowever, in the examples located at:…/Projects/Applications/BLE_PAwR_Broadcaster…/Projects/Applications/BLE_PAwR_ObserverI couldn’t find any folder for STM32CubeIDE (or a corresponding .ioc file). Only folders for IAR (EWARM) and Keil (MDK-ARM) are present, but I want to work with STM32CubeIDE.Could someone please advise:Is it possible to convert an EWARM / MDK-ARM project to STM32CubeIDE and generate a .ioc file?What is the recommended step-by-step procedure to create a ne
I am working on a new project which is based on STM32WB55REVx MCU. I have designed the schematic as shown based on the VDD 1.8V. I would like to understand whether the power lines and RF design is properly done, or it needs some changes. I would appreciate for all helpful inputs. Thanks.
Hi,In RAK3172 which have STM32WLE5CCU6, during the flashing of DEVEUI,JOINEUI ,APPKEY and NWKKEY in which memory location of NVM this values are being stored. Is there any documentation for same? Also can we flash these keys directly to NVM using STM32CUbeProgrammer?
Our product is based on an STM32WB5MM. On the STM32WB, we have privacy enabled and use the filter/acceptance list.When the filter/acceptance list is not enabled, we want the device to be able to connect to a Garmin device. Unfortunately, the device does not appear in the scan results. We’ve confirmed that when privacy is disabled, the device appears in the results without issues. This Garmin incompatibility with BLE devices using resolvable private address (RPA) is known (https://forums.garmin.com/developer/connect-iq/i/bug-reports/not-all-ble-devices-found-by-scanning?CommentId=0740ab84-c44f-49a2-a165-5aff687d5435).My question is: is it possible to keep privacy enabled while advertising with a static random address instead of an RPA?If this is not possible, what workaround could we use to allow both RPA-compatible and non-RPA-compatible devices to connect?Thanks in advance.
/* Private function prototypes -----------------------------------------------*/void SystemClock_Config(void);void PeriphCommonClock_Config(void);static void MX_GPIO_Init(void);static void MX_ADC1_Init(void);static void MX_USART1_UART_Init(void);/* USER CODE BEGIN PFP */#define VREFINT_CAL_ADDR ((uint16_t*)0x1FFF75AA)#define TS_CAL1_ADDR ((uint16_t*)0x1FFF75A8) // TS_CAL1 @ 30C#define TS_CAL2_ADDR ((uint16_t*)0x1FFF75CA) // TS_CAL2 @ 130C#define VDDA_CALIB 3.0f // Reference VDDA voltage in volts /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*//* USER CODE BEGIN 0 */int _write(int file, char *ptr, int len) {HAL_UART_Transmit(&huart1, (uint8_t*)ptr, len, HAL_MAX_DELAY);return len;} uint32_t Read_ADC_Channel(uint32_t channel) {ADC_ChannelConfTypeDef sConfig = {0};sConfig.Channel = channel;sConfig.Rank = ADC_REGULAR_RANK_1;sConfig.SamplingTime = ADC_SAMPLETIME_640CYCLES_5; // Long sampling time for accur
I have a HC-06 module being run via USART from a STM32F411RE NUCLEO board.When I run STBLEToolbox (or LightBlue) the module doesn't appear in the scan list (all filters are off)Yet when I open my Bluetooth settings on my phone the module shows up & I can pair with it. The module still doesnt show in the app even when paired though but I can use a serial Bluetooth app to connect to it. What am I missing here?
Hi everyone,I'm at the start to build up my transceiver based on the STM32WL33 with the Nucleo-board NUCLEO-WL33CC1 and the Mainboard MB1801. I want to use the IOC in the Cube IDE.If you are trying to send the raw HF Data to a GPIO Pin: Change __HAL_MRSUBG_SET_RX_MODE(RX_NORMAL); to __HAL_MRSUBG_SET_RX_MODE(RX_DIRECT_GPIO); add /*Configure GPIO pin : PB1 */ GPIO_InitStruct.Pin = GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF4_SUBG; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); and measure at PB1 (it took me some time to get this solution, maybe it helps someone out there)Further information https://www.st.com/resource/en/reference_manual/rm0511-stm32wl33xx-armbased-wireless-mcus-with-subghz-radio-solution-stmicroelectronics.pdfhttps://www.st.com/resource/en/user_manual/um3438-description-of-stm32wl3-hal-and-lowlayer-
I can send commands to my end-node (NUCLEO L073RZ + I-NUCLEO-LRWAN1), and I downloaded the AT_MASTER project. I am able to change the APPKEY and other parameters, but when I reset the module to try and see it on LORIOT, the appkey and other parameters go back to what the same numbers, with 0's on APP EUI and etc. These parameteres aren't being saved on Flash I guess. I tried change them through TeraTerm with AT commands and also this code on main.c: uint8_t AppEUI[8] = { 0xE3, 0xE6, 0xEF, 0x9A, 0xA9, 0xDF, 0x9E, 0xD8 }; LoRa_SetAppID(AppEUI); // Definição da chave de 16 bytes (128 bits) uint8_t AppKey[16] = { 0xE2, 0x4F, 0x43, 0xFF, 0xFE, 0x44, 0xC3, 0x93, 0xE3, 0xE6, 0xEF, 0x9A, 0xA9, 0xDF, 0x9E, 0xD8 }; // Chamando a função com o tipo correto (por exemplo, AT_APPKEY) LoRa_SetKey(AT_APPKEY, AppKey); Lora_UpdateConfigTable(); How can I solve this? Thank you!
Hi,We are developing a LoRa application using the STM32WLE5JC chip. The product is to be implemented for multiple deployment regions (EU, US, AU and AS). We have a problem with the US configuration. When a device sends a join request, the first attempt always fails, but then the second attempt succeeds. The strange thing is that we can see the gateway accepted the joinb request, but the device still says join failed.See screenshot below:The highlighted area happens to conincide with when the gateway accepted the join request, but the device still claims the request failed.Note: HYBRID_MODE was originally turned off, and requests always failed. When turned off, then we experience the above.Any thoughts as to potential sources of this issue?Thanks.
Hello,I added a new characteristic to the P2P_Server application that is a, CHAR_PROP_WRITE and GATT_NOTIFY_WRITE_REQ_AND_WAIT_FOR_APPL_RESP = Yes, all other notifications are set to No. The UUID = 50 50. I added the processing of the incoming char and verified that this characteristic shows up in BLE Toolbox and works correctly.I then edited the P2P_Client uuid.h file and set, P2P_WRITE_CHAR_UUID (0x5050). The characteristic gets discovered in the Update_Service() method and handled in the case APP_BLE_DISCOVER_WRITE_DESC. The handling of the case is the generated code, no changes made.At this point my application quits working. I discovered the reason by placing a breakpoint inside the case APP_BLE_DISCOVER_WRITE_DESC. It's basically in an infinite loop processing this "event" constantly and no other processing happens.Is there a reason why adding a write char characteristic would cause this infinite loop situation during the di
Hello, I am making BLE data logging application where STM32WB35 series working as peripheral and sending to laptop the sensor data every second. STM32WB35 is receiving data from sensor on UART and sending same data to laptop every second on BLE. The data length can be anywhere between 50 to 150 Bytes.I am lost on implementing the READ characteristic for this application. ST tutorial video on BLE Notification implements Task using Sequencer. What you think about this logic. 1) Create Task1 { Send Notification to Client(Laptop) } 2) Run Receive UART data by DMA . 3) Inside HAL_UART_RxCpltCallback , implement UTIL_SEQ_SetTask4) Run Task1 --> Send Notification to Client 5) Client send Data Read Request with Notification 5) Rx Event in Custom_stm.c --> Send Data on BLE and enable DMA again to receive data on UART from sensor.6) Go to Step 3.
I am new to developing RF applications but am tasked with developing a signal profile for a LoRa sensor node. I want to use the lsnr and rssi values calculated by the gateway to map signal strength over a set of environmental parameters. I need to explain how the rssi and lsnr values are calculated, but I am unable to find this in the source code. I searched the semtec radio source code, but it seems like it is pulling the rssi value from a register. Can you refer me to where the libraries calculate the RSSI value by measuring received power or voltage? I am also trying to find the source for the lsnr value.I have the NUCLEO-F746ZG (+ RisingHF LRWAN_GS_LF1 LoRa riser) configured as a gateway and a NUCLEO-WL55JC2 setup as a node. The gateway and sensor are communicating as shown in the images below. The lsnr and rssi values I am trying to explain are the values reported by the gateway in these images.Thank you for any help you can provide.
when i try to download the code i got this message : Error in initializing ST-LINK device.Reason: No device found on target. when i try to build i get this message NOTE: This behaviour is deprecated and will be removed in a future version of the linker.
Hellow all,I am running a custom BLE application on STM32WB55 and I want to run in low power STOP2 mode,At the same time, Bluetooth needs to remain in broadcasting state. I am not sure what the average power consumption is in this case. I monitored that after CPU1 enters STOP2 mode, the average power consumption is about 6mA. Is this normal? Is there a theoretical minimum average power consumption value that can be achieved when CPU1 enters STOP2 mode and Bluetooth is still broadcasting for reference? Thank you very much!
Colleagues. I modified the BLE_HR_p2p_Sensor example of the STM32Cube_FW_WB_V1.20.1 library for B-WB1M-WPAN1. I need to transfer a small amount of data from sensors (24 bytes) to Android for subsequent processing. This needs to be done fairly quickly with a frequency of 500 Hz. I have external sensors, the values of which I receive via USART 1. In the custom_app.c file there is a definition //#define ACC_GYRO_MAG_UPDATE_PERIOD (uint32_t)(0.05*1000*1000/CFG_TS_TICK_VAL) /*50ms (20Hz)*/ #define ACC_GYRO_MAG_UPDATE_PERIOD (uint32_t)(0.002*1000*1000/CFG_TS_TICK_VAL) /*2ms (500Hz)*/I have time to form a data string for transmission to android. However, some data is lost. In paragraph 4.8 of AN5289 (How to build wireless applications with STM32WB MCUs) it is said how to view the transmitter operation with an oscilloscope. { GPIOA, LL_GPIO_PIN_9, 1, 0}, /* DTB13 - Tx/Rx Start */ After running the application, I saw that the transmitter also turns on with a period of 50ms. After carefully re
I am using the STM32WB P-Nucleo board for my development and I want to implement a process to read data from 5 End devices and send it a mobile app. And as per the example given I am able to read and write data and get the update as well on ST BLE Tool app. But in the example data size is very small like getting status of LED and Button press. But in my case I have to send data in very fast nearly 1000 Bytes in per seconds. but in BLE_router example when I implemented this logic , then I faced some missing data. I have verified it via maintaining the Frame Id kind-off logic. But in case of using BLE_client example code - everything is working fine with the above data rate and no loss in frames as well. May I know what could be the possible issue and how I can resolve this .
HiI debugged the Sigfox AT_Slave example in stmcubeWLv1.3.0 package.All tutorials show how to get the board sigfox credentials through CubeProgrammer software, which once connected with a STM32WL device, shows an extra button called "sigfox credentials" (in figure).However, this does not work for me with the last 2.18 version of CubeProgrammer (tested on 2 different PCs). I had to unistall the software ad get the previous 2.17 version in order to display the extra button.
Hello Team, I am Priya from Illuminen Technologies working as an Embedded Software developer. We are working with STM32WB55CGU7 BLE controller for our application. We need to use this module as client and server with two individual modules. And also we need to pair the client and server modules and find the distance. We are trying server application and its run and shown the name in ST BLE TOOLBOX app and its connected with this app successfully. But we are trying as client application there is no reaction in module. I will share my configuration, help me to resolve the issue. Here above is our sample BLE client application sample configuration. Above our sample configuration for your reference. And is there any need to change in configuration in CUBEMX or in these files of app_ble.c and p2p_app_clint.c files. How to handle these files can you give me a guidence for to resolve the issue. Thanks in advance.
Hi everyoneI having issues trying to use "CONTEXT_MANAGEMENT_ENABLED " option in LoraWAN examples . I couldn't find "nvmm.h" library. Where can I find it ?.Is this feature fully functional ? Do you have any examples or is it just activate the "define" . Finally is the 2021 version of LoraWAN cube package the last one ? https://www.st.com/en/embedded-software/i-cube-lrwan.html . Thanks in advance
I am using a STM32WB55RCV6 for a BLE project. I did initial development on the NUCLEO-WB55RG development board and it works ok. Ignoring all other functions, the basic feature I am trying to see work is BLE advertising. After moving that code to a custom designed board, and booting the coprocessor software (that handles BLE wireless functions) the coprocessor seems to get to the WIRELESS_FW_RUNNING state ok, but then hangs when I try to run hci_reset(). I can see the command is sent in, but nothing comes back and the application processor hangs while waiting.I have checked key clocks on the Custom board as configured by MX and they seem functionally equivalent to the Nucleo board, namely a SYSCLK of 32 MHz on both, and a RF Timeout clock of 31.25 KHz (compared to the Nucleo board which has a RF timeout clock of 32.768 KHz). My assumption is the minor difference in frequency of the RF timeout clock does not matter.Note I am using the coprocessor binaries for the full BLE stack. (No
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.