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,Is it possible to import files from I-CUBE-LRWAN package to a new project generated with MX? From the info I've found so far I know there is no way to import it automatically with Cube MX and I have to transfer them manually but I'm not sure which ones and how to link them later.I'm using b-l072z-lrwan1 board and would like to have the functionality of the "end-node" example from I-CUBE-LRWAN package.How should I go about this?
I have added a partition (MY_MEMORY) to my flash to store a static library (littlefs) so that I don't have to include it in the firmware that is updated over the air however the output binary file for the project is very large. I have reviewed this post which describes a similar problem however the given solution has not worked in my case. /* ****************************************************************************** ** ** File : LinkerScript.ld ** ** Author : STM32CubeIDE ** ** Abstract : Linker script for STM32WB55xG Device ** 1024Kbytes FLASH ** 256Kbytes RAM ** ** Set heap size, stack size and stack location according ** to application requirements. ** ** Set memory bank area and size if external memory is used. ** ** Target : STMicroelectronics STM32 ** ** Distribution: The file is distributed as is without any warranty ** of any kind. ** ***************************************************************************** ** @attention ** ** Copyright (c) 2023 ST
I'm having an oddly difficult time seeing how to do something quite simple. In older CubeMX projects, the `Adv_Request` function looked like this: static void Adv_Request(APP_BLE_ConnStatus_t NewStatus) { tBleStatus ret = BLE_STATUS_INVALID_PARAMS; uint16_t Min_Inter, Max_Inter; if (NewStatus == APP_BLE_FAST_ADV) { Min_Inter = AdvIntervalMin; Max_Inter = AdvIntervalMax; } else { Min_Inter = CFG_LP_CONN_ADV_INTERVAL_MIN; Max_Inter = CFG_LP_CONN_ADV_INTERVAL_MAX; } /** * Stop the timer, it will be restarted for a new shot * It does not hurt if the timer was not running */ HW_TS_Stop(BleApplicationContext.Advertising_mgr_timer_Id); if ((NewStatus == APP_BLE_LP_ADV) && ((BleApplicationContext.Device_Connection_Status == APP_BLE_FAST_ADV) || (BleApplicationContext.Device_Connection_Status == APP_BLE_LP_ADV))) { /* Connection in ADVERTISE mode have to stop the current advertising */ ret = aci_gap_set_non_discoverable(); if (ret != BLE_STATUS_SUCCESS)
I have three STM32WB55 applications:A) is a debugging application that's only ever flashed directly and standalone using the STM32CubeProgrammer CLI.B) is a bootloader with integrated FUOTA functionality.C) is my "actual" application. It can be compiled in two configurations: as standalone (which I will refer to as "Ca", as in "C alone"), or to be started by B (referred to as "Cb", as in "C w/ bootloader")C has a sophisticated debug interface, where I can send commands as bytes via UART and get a reply back via UART. One of those commands is "Echo your current RTC time every 500 milliseconds for 5 seconds" (timing the 500ms is done by FreeRTOS/osDelay).But the debug command exposes a weird behavior:Flash and run A, then flash and run B+Cb, and the debug command works as intended. It prints the 10 values in 500ms intervals, and the RTC time progresses by 500ms for every timestamp received.But then I tell C to launch B in FUOTA mode. I let the update time out, which means nothing is
Hello - I have a custom pcb using the stm32wb55 and I have spending time optimizing the power consumption. My primary intentions with this PCB is to sample data around 1 Hz and send this data to html server app using BLE. I'm using the BLE_Sensor example as the basis of my current firmware. Seems like BLE_Sensor also includes some motion_server firmware that may be adding to the power consumption but I'm not sure. Everything I have tried so far (I'll include links to what I have tried) brings my current consumption down to 74 mA. From what I am reading and observed in guides, that is WAY TOO HIGH!!! I am trying to use a 3.7 V 110 mAh coin cell to operate the system for as long as possible, but right now it would be for a little over an hour. I have tried setting the system clock to MHz, enable HAL_PWR_Ex_EnableLowPowerRunMode(), setting all unused pins as analog, but there is clearly something that is holding me back. from achieving minimal
SensorTile.box Pro: I am having difficulty figuring out which api to use within a function I have created to send accellerometer sensor data to a Stm32WB client . Function example :void sendAccelerometerData(int x, int y, int z) {uint8_t data[6]; data[0] = ; data[1] = ; data[2] = ; data[3] = ; data[4] = ;data[5] = ; ?? BLE_UpdateValue(ACCELEROMETER_CHAR_UUID, data, sizeof(data));}I would also like to understand where to implement this function and its parameters.
Hello everyone,I'm working on a project which includes the following hardware setup.> Raspberry Pi 4 Model B> STM32WB55RGV6 Nucleo board> WizNet W5500 Ethernet Module I'm using SPI protocol to communicate between STM32WB board and WizNet W5500 module and Ethernet protocol between WizNet W5500 module and Rpi.I'm planning to implement a Firmware update Over The Air (OTA) for STM32WB using the Ethernet and WizNet W5500 as an intermediary between Rpi and STM32WB.I have already gone through the ST's documentation "Over-the-air application and wireless firmware update for STM32WB series microcontrollers" where they have provided detailed explanation about Firmware update with "ST BLE Sensor" and "STM32CubeMonitor-RF". But both of these methods include the BLE protocol and my project is already implemented with Ethernet and WizNet and I want to continue with that.I need some suggestions whether the Firmware update Over The Air (OTA) for STM32WB using the Ethernet and WizNet W5500 as
Hi All,I am working with the STM32WL55 MCU in a project-based between Generic Node and MB1389 (Nucleo board). my code is using Lorawan_End_Node.Everything seems to be working well but the radio part is not transmitting (checking it with AIRSPY an a SDR device). We can see the LoRaWAN messages debug logs and it tries to connect to the network but no radio at all.Things we have seen:VDD1V5 is around 2V.PB0_VDD_TCXO is around 0.7V.I did all the steps from this tutorial: https://www.youtube.com/watch?v=Gjuu4OOPh1w&t=1477sthe hardware design is https://github.com/Sosteco/generic-node-se/blob/develop/Hardware/sch/sch-stm32wl.pdf Our design main difference is that we are using 32MHz HSE TCXO with 3.3 VDD, we modified TCXO_CTRL_VOLTAGE from TCXO_CTRL_1_7V to TCXO_CTRL_3_0V in radio_conf.hI checked the voltages in PB0_VDD_TCXO is 0.756 V (always), it must be arround 3.0 V... and VFBSMPS is 1.945v and it must be maximum 1.62 (datasheet).Firmware shows as it is transmiting properly
Hi all,I have three STM32WL55 boards and I am following the STM32WL_WS Workshop tutorial. I can programmed one of the boards using SubGHz_Phy_Base_Station.bin and build the sensor SubGHz_Phy_PingPong project for the other two boards using the following \Projects\NUCLEO-WL55JC\Applications\SubGHz_Phy\P2P_Sensor.Both Sensor board works fine and I can edit both the c code header files in the project and program them. However if I edit the SubGHz_Phy_PingPong.ioc file then the project stops to build.Has any one else experience this issue. Many thanks in advance.RegardsOla
I have just downloaded the reference board from the STM32WB55: STM32WB55RG - Ultra-low-power dual core Arm Cortex-M4 MCU 64 MHz, Cortex-M0+ 32 MHz with 1 Mbyte of Flash memory, Bluetooth LE 5.4, 802.15.4, Zigbee, Thread, Matter, USB, LCD, AES-256 - STMicroelectronics under the board manufacturing specifications. In the schematic, there is only a mention of USB ports for the chip at pins PA11 and PA12. I am actually planning on using ST-link to program the chip and needed help on seeing which pins I can add this to and what components are needed for this. I am new to STM microcontrollers and would really appreciate the help.
I’m using a STM32WB5MMGHx module on a battery powered device. When the module loses power due to low battery or the battery being removed it does not advertise after regaining adequate power. Only after restarting or reflashing the wireless stack does the module begin to advertise again.Here are my cube configurations for BLE: How can i solve this?
Hello, how can I call a full reset of the CPU2/BLE stack (as if the device were powered up)?I'm resetting CPU1, which then restarts the CPU2/BLE stack from some other code. But this causes some corruption with BLE notifications.
Hi everyone, I try to debug CM0+ core (using GDB server) application LoRaWAN in SBSFU dual core project. If I only run the debugger on CM4, the program will start and run normally. But when I try to debug CM0+, it will not run and my program failed.I have stopped CM4+ by breakpoint in time CM4 wait for CM0+ running, and not download the executable when debug CM0+. Anyone have experience with this?
STM32WL lorawan middleware use a RTC subsecond underflow interrupt update tick instead systick,but the subsecond underflow interrupt never entered.It seems interrupt not enabled, so I manually enable RTC subsecond underflow interrupt but the handler still never accessed. /* RTC init function */ void MX_RTC_Init(void) { /* USER CODE BEGIN RTC_Init 0 */ /* USER CODE END RTC_Init 0 */ RTC_TimeTypeDef sTime = {0}; RTC_DateTypeDef sDate = {0}; RTC_AlarmTypeDef sAlarm = {0}; /* USER CODE BEGIN RTC_Init 1 */ /* USER CODE END RTC_Init 1 */ /** Initialize RTC Only */ hrtc.Instance = RTC; hrtc.Init.HourFormat = RTC_HOURFORMAT_24; hrtc.Init.AsynchPrediv = RTC_PREDIV_A; hrtc.Init.SynchPrediv = RTC_PREDIV_S; hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE; hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; hrtc.Init.OutPutPullUp = RTC_OUTPUT_PULLUP_NONE; hrtc.I
Hello,What I have done:- Following instructions from AN5185 document.- Using STM32CubeProgrammer v2.14.0- NUCLEO-WB15CC powered on- With STM32CubeProgrammer :- ST-Link configurationST-Link upgrade (v3.12.3)Update to firmware V2J42M27- ST-Link Connect- Firmware Upgrade Services withC:\ST\STM32Cube_FW_WB_V1.18.0\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB1x\stm32wb1x_BLE_Stack_full_fw.binStart address: 0x08021000Start Stack after upgrade-> Firmware upgrade -> "Application is running, Please Hold on..."=> Firmware Upgrade Success- Erasing and Programming withC:\ST\STM32Cube_FW_WB_V1.18.0\Projects\NUCLEO-WB15CC\Applications\BLE\BLE_p2pServer_ota\Binary\BLE_p2pServer_ota_reference.binStart address: 0x08007000Verify programmingRun after programming-> Start programming -> Filedownload complete-> Download verified successfuly-> Start operation achieved successfully At this point, only the main led of the board is blinked, not the small led during one minutethe P2
Good morning,I am creating an application that would require the use of several stm32wl55.The idea is to have one microcontroller configured as a LoraWan EndNode communicating with TTN and a set of Slaves communicating via subghz (which will be slaves).I was able to implement both solutions separately but I would like to know if anyone has ever tried to combine the two functions so that a microcontroller communicates with a ttn gateway and simultaneously is a master of a ping pong network.Or if there is a similar methodology.thanks to those who can help me
In the STM32WB Workshop video I can understand how to send data and control the LED but how to read data is not explained. I want to read data from STM32WB BLE. Can you someone help me in regards to this?
Hi,I'm looking for the max size of SRAM allocated for the GATT database for the STM32WB series.I've found the informations for WB55 and WB15 but I can't find the information for WB10/30/35/50/. Does anyone know these values or how it can be calculated ?I'm asking this question because I'm working with WB10 and I'm close to the max size permitted (2.7kB). I would like to know if the SRAM allocated for the GATT database is bigger for WB30.Thanks for your help.
Hey guys. I'm trying to collect the sigfox credentials through the website https://my.st.com/sfxp and once the download is done,the file is corrupted and I can't extract it.How can I solve this problem?
Greetings!I'm designing a board using STM32WLE5CCU6 MCU and decided to use a 32-MHz Clipped Sine Wave TCXO instead of a crystal for the HSE32 clock.I have a question regarding the additional circuitry between the TCXO and MCU, is an AC coupling capacitor required? Or perhaps a load capacitor (from OSC_IN pin to GND).The datasheet mentions to add some kind of a capacitor but I'm not sure if it's an AC cap or a load cap - "For TCXO output voltage of 0.8 Vpk-pk, 10 pF can be used."Also what is the input impedance of the OSC_IN pin?My TCXO is specified for a input of 10KΩ in parallel with 10 pF, am I supposed to add those externally?I hope you can help me with these questions.BRDomagoj
The LoRaWAN middleware End-node (lora-app.c) includes a "Join Switch" mechanism set up around the StopJoinTimer, the OnStopJointTimeEvent function, and the StopJoin() task function.The StopJoin function appears to be used to toggle between ABP and OTAA Activation modes. I'm not sure why you might want to do that but Ok - it may have to do with other uses cases such as the AT command firmware.As it stands within the End Node generated code, it appears to be dormant code as nothing ever seems to start the StopJoinTimer.But, if it were started by the application, it looks like it may go into a bit of a loop. The StopJoin() function restarts the StopJoinTimer at the end of the function, which means it will called back after JOIN_TIME (2000ms) to swap activation mode again. As a Join usually requires about 5 seconds before the Rx window opens, I am thinking this might actually end up stopping any OTAA Join before it has a chance to succeed.Possibly I have completely misunderstoo
Hello, community,As of LORA calculator maximum speed that can be achieved is 5kbps using B-L072Z LRWAN1 board. But I'm not able to achieve that speed. I'm attaching a screenshot.I have increased the no. of frames per minute by changing APP_TX_DUTYCYCLE and frames transmission speed by changing RECEIVE_DELAY1 and RECEIVE_DELAY2 but still I'm able to get a speed of 1.3kbps.To increase the speed I have set default SF=7 by the default setting of #define LORAWAN_DEFAULT_DATA_RATE DR_5with this setting, it gets a speed of 3.2kbps but after 100 frames this DR_5 drops to DR_4( that is SF=8) then after every 30 frames this DR drops, that is SF increases and the speed again drops to 1.3kbps.At SF(spreading factor) 7 it's sending 100 frames of 253byte register in 20 seconds and I want to set#define LORAWAN_DEFAULT_DATA_RATE DR_5after every 100 frames but im not able to set it, after every try, DR drops from 5 to 0.IS THIS SF DROPPING AFTER PARTICULAR FRAMES ARE SET INTO HARDWARE ONLY?L
..
I have programmed the STM32 MCU as per the document (https://github.com/Seeed-Studio/LoRaWan-E5-Node/tree/qian) However, I'm not getting any response in TTN network. kindly help me resolve it.
Hello,I am developing a Bluetooth application which can communicate with Android phone emulating Serial Connection. On previous device we used our own Bluetooth Classic module with SPP (Serial Port Profile) using RFCOMM (Serial Port Emulation) and we need to maintain backward compatibility with existing Android Mobile Application.Our Hardware team chose STM32WBA52CG MCU. If I understand it correctly, this MCU is capable of BLE (Bluetooth Low Energy) ONLY, which does NOT support RFCOMM and SPP.Is there any suitable BLE solution for Serial Communication emulation while using one STM board and phone/PC? Do I have to develop and implement my own Custom Profile? And if so, are there any good tutorials how to proceed?I am aware of BLE_SerialCom_Central and BLE_SerialCom_Peripheral examples (for NUCLEO-STM32WBA52CG), but these examples are serial communication between TWO STM32WBA boards, not one board and Phone/PC.I will be grateful for all tips and suggestions. Thank you 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.