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
Hello!I am trying to use the lptim1 to wake up my STM32wl55 from stop2 mode so I first check out the LPTIM_Timeout example. Unfortunately, it doesn't seem to work properly. The device does enter sleep mode, but it never wakes up.I did some digging and found this similar post: https://community.st.com/s/question/0D53W00000q2p1WSAQ/does-st-confirm-the-lptimer-issue-with-stop-modeI've tried adding __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE() ; to the example and I also checked that it uses LSI and not LSE, but the device still doesn't exit stop2 mode. Has anyone had a similar problem with the LPTIM_Timeout example? Thanks!
I i am trying to follow the AN5604 (STM32WB Series BLE interoperability report) but im unnable of enabling the debug UART. Nothing shows up the Nucleo's stlink's COM port, but the programm is running, im able to conenct to the BLE device from my phone. (on the PC side im using putty and realterm, and COM8 its the only COM port available)CubeMX file attachedSteps i followed:USART1 Mode Anynchronous with pins PB7 and PB6, hardware flow control set to CTS onlyCFG_HW_USART1_ENABLED set to Enabled.CFG_HW_USART1_ENABLED CFG_HW_USART1_ENABLED Parameter Description: Enable or Disable traces USART1 (USART1 Mode must be set to Asynchronous with Hardware Flow Control set to CTS only) Please ensure that in ProjectManager Advanced Settings panel MX_USART1_UART_Init Not Generate Function call is ticked and that Vibility is untickedGeneric parameters: CFG_DEBUG_BLE_TRACE Enabled CFG_DEBUG_APP_TRACE Enabled CFG_DEBUG_TRACE_LIGHT Enabled CFG_DEBUG_TRACE_FULL Enabled DBG_TRACE_USE_CIRCULAR_QUEUE E
Hi! I want to set up transmission between two boards P-Nucleo_wb55. When I firmware blink using cubeIDE example (\STM32Cube\Repository\STM32Cube_FW_WB_V1.12.1\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_CableReplacement)But after opening serial terminals on system, COM ports appears but they don’t give feedback.Kindly help me out. Thanks
Our application has two touch sensors surrounded by a shield and an additional independent sensor surrounded by a separate shield. The first pair of sensors are connected to TSC groups 1 and 3. The other sensor uses groups 4 and 6. Groups 1 and 4 connect to the active shields. Unfortunately, CubeMX 6.3.0-RC5 does not allow more than one active shield to be selected. Is this due to a HW constraint (we're using the STM32WB5MMG) or a CubeMX error? If this configuration is supported by the TSC, what source code changes are required to work around CubeMX?
I found some info in AN5457 appl.note, but it is not clear, in case of one RF out, what should be done with another. Beforehand thanks for answer
I can't read more then 8 bytes long attribute value from BLE characteristics with P-NUCLEO-WB55.USBDongle from STM32WB55. It might be a bug?Details:I have 4 characteristics in my service. I can read the first 3 characteristics with ACI_GATT_READ_USING_CHAR_UUID command (see AN5270 reference manual) in STM32CubeMonitorRF. For the 4th I got timeout and after that I can't read anything anymore. The difference is that first 3 characteristics attr values are 1,2 and 3 bytes long, while 4th is 8 bytes long. Looks like it freezes the dongle because if I implement these commands in Python (using instead of STM32CubeMonitorRF) it behaves the same way, however, with a third party Android BLE sniffer app I can read even the 4th characteristics attr value without any problem.Is it possible that there is a setting which needed to be set in the dongle? (E.g. maximum bytes per attribute value or similar...). Or any useful advice?Thanks,David
I am using an STM32WLE5 in a design, in the user manual section 3.3.8 it specifically says:Programming in a previously programmed double-word is only allowed when programming an all 0 value. It is not allowed to program any other value in a previously programmed double-word. Any attempt sets PROGERR flag in FLASH_SR, except when programming an already programmed double-word with an all 0 value.In practice this is not working, I noticed the MCU differentiates between "virgin" all FF double word which is the erase state and a programmed all FF double word. I believe this is related to ECC but I would like to get more information about this if possible.Below is a small code snippet that illustrates the test I am running: uint8_t *addr = (uint8_t *) 0x08000800; uint8_t zeroes[8] = {0}; uint8_t effs[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,}; hal_flash_page_erase(addr); //Page erase to all FFs as expected flash_write_dw(addr, effs); //Manually programming 1st dw as ef
Hello, How to set RF SW CTRL pins? How to make them appear in platform settings of SUBGHZ_PHY configuration?
Dear STM32WL community,I have completed a port of the ST LoRaWAN_End_Node application for use on the STM32WLE5XX as implemented on the RAK Wireless RAK3172 and SEEED Studios LoRa-E5 modules. It is based on the LoRaWAN_End_Node example in the latest (v1.1.0) version of the STM32Cube MCU Package (Sept 2021) from https://www.st.com/en/embedded-software/stm32cubewl.html. The port is available at https://github.com/PrometheanDesign/LoRaWAN_End_Node.I hope some may find it useful!
Hello,I am having problems with stm32wle5xx interrupt servicing. When an interrupt occurs, the M4 seems to jump to an arbitrary location and not the location in the vector table. I observe this only on the stm32wle5xx (on a RAK31772 module), and not on the stm32wl55xx (on a nucleo-wl55jc development board).Specifically, I wrote a very simple STM32CubeIDE project which loops waiting for an EXTI15_10_IRQ interrupt when PA15 is pulled low. The loop waits 10 seconds after reset before enabling EXTI15_10_IRQ. If I do not pull PA15 low, the loop runs forever. If I pull PA15 low, before EXTI15_10_IRQ is enabled, the loop runs until the interrupt is enabled at 10 seconds, then jumps to a nonsense location. If I pull PA15 low after the interrupt is enabled, then the processor jumps immediately to the nonsense location.I have verified that the interrupt vector table is correct (specifically, address 0x080000E4, the address of the EXTI15_10 vector) has the correct address for the handler.Note tha
I am trying to power B-L072Z-LRWAN1 board using CN11 USB connector but not able to power it. Though I am able to see Red Led (LD7) glowing, Lorawan stack is not getting executed. I think MCU is not powered. Does anyone know how to power with CN11 connector?
Hi,I want to be able to advertise continuously (without timeout). Is it possible? I use CubeMX, is there any setting to allow this? or once the files are generated, what line can I comment out to achieve this behaviour? I have tried commenting out the line below from app_ble.c (around line 493) but no luck. Thanks. HW_TS_Create(CFG_TIM_PROC_ID_ISR, &(BleApplicationContext.Advertising_mgr_timer_Id), hw_ts_SingleShot, Adv_Cancel_Req);
Hello im trying to establish communication between two P-Nucleo_wb55 boards.Once i flash the firmware with cubeIDE example (\STM32Cube\Repository\STM32Cube_FW_WB_V1.12.1\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_CableReplacement)#define GATT_CLIENT 0//1//chaning this for client/server rolesI open serial terminals on my PC (putty or realterm), COM ports are visible but they are unresponsive....I have no idea of where to start debugging
As the title says. I can see no support for this but a perpiheral advertising with ADV_IND should support this by default.Does anyone know?Regards,AC
Hello,I am trying to get the NUCLEO-WL55JC radio backwards compatible with our previous radios protocol used in the SI4432 and the EFR32xx from silicon labs. Most of it is already working but I can not add a transmit header in the message. This transmit header are two extra control bytes placed between the sync-word and the length byte. The transmit header is included in the CRC and data whitening, so I can not combine the transmit header with the sync word.Is there any possibility to add these two bytes in the wireless message, I do not care if I have to manually check the transmit header and/or packet length. The main goal is to make this radio backwards compatible. Some radio information:- GFSK modulation- 868 MHz base frequency- 2 bytes sync-word- 2 bytes transmit head
Hello,I am using the SubGHz_Phy_Per example to scan on different channels for GFSK messages. The application must scan each channel for 200μs for an active preamble, and if no preamble is detected the radio must skip to the next channel.I use the "SUBGRF_SetRx(13);" functon to set a 200 μs timeout. Unfortunately, the IRQ_RX_TX_TIMEOUT interrupt only occurs after 1,43 mili-seconds. If I set the timout to 50("SUBGRF_SetRx(50);"), the interrupt occurs after about 2 mili-seconds. It looks like there is always a delay of about 1,23 mili-secondes and the timeout is added to this delay.Is there any way to get the 200μs timeout between multiple channels in my application?
Hi, I want to send sensor data over advertising or beacon data, Send to multiple nodes without needing to connect. Can i do it?
The sample code from the library worked out of the box. I tried to generate similar code via CubeMX.I tried to set the parameter "radio_bord_if -> Select radio Driver"myself, because without this, the CubeMX issues a warning.However, when building the project, I get incomprehensible errors regardless of the value of this parameter. I didn't find the radio_fw.c anywhere other than the AN5687 description, so I deleted it from the project.After that I got an error: " Error[Pe136]: struct "LmHandlerCallbacks_s" (declared Hat line 135 of "...Repository/STM32Cube_FW_WL_V1.0.0/Middlewares/Third_Party/LoRaWAN/LmHandler\LmHandler.h"h) has no field "GetUniqueId" ...\Project_WL\LoRaWAN_End_Node\LoRaWAN\App\lora_app.c 134 " that I don't understand either.
I just installed FUS 1.2 and BLE Stack Full firmware, I believe successfully based on the logs. I noticed that those sections of memory are not readable by CubeProgrammer. Are they encrypted once they're installed? Just kind of curious.ST-LINK/SWD connection, Nucleo-WB55RG
I am busy creating a project using the Nucleo-wl55jc board, and am trying to modify the message transmitted to the gateway. How can I do this? I am new to LoRa and LoRaWAN, so am struggling to understand specifically the MX_LoRaWAN_Process() function and how the message is compiled. My end goal is to build a custom board using the stm32wl55cc chip and send messages to a LoRa Gateway that will use a Raspberry Pi and LoRa module. Any any assistance is very much appreciated, as I am struggling a lot currently! Thanks in advance, kind internet strangers!
Hi,I wanted to update from version 1.0.0 to 1.1.0 and after flashing the LoRaWAN_End_Node_DualCore demo on my Nucleo WL55JC, I cannot take control over the device anymore.I can connect with a debugger on CPU1 and access registers, but memory is only read as zeroes. CPU1 is in constant Hardfault, and I cannot modify the Flash in any way.It seems that CPU2 security is activated and I cannot find a way to disable it, same for any security options. I'm using CubeProgrammer 2.8RDP = 0xFFESE = 1FSD = 0DDS = 1HDPAD = 0If there is a way to recover this board I would be very grateful.Thank youBC
I'm working with the Nucleo board with the STM32WB55 with the BLE Stack: stm32wb5x_BLE_Stack_full_fw.bin (V1.12.1) on the Copro. When I'm running the Beacon Example code I can receive the Beacons on the mobile App.But since I've configured the code once as EddystoneTLM it always sends the Eddystone Beacons (UID/URL) with the TLM payload and I can't remove it.I've tried to delete it manually in the initialisation (aci_gap_delete_ad_type(AD_TYPE_SERVICE_DATA) before I initialise it with an other Beacon type, but it doesn't make any differences. Even reprograming the Copro hasn't made any differences.Is that a known bug from the BLE stack, that it doesn't properly clear the TLM flag? Does someone know a workaround?
Hey Guys,I am having a difficult time opening and compiling the BLE-HID example from the FW 1.12.1 pack.The STM32CubeIDE throws the error: make: *** No rule to make target '/Utilities/lpm/tiny_lpm/stm32_lpm.c', needed by 'Utilities/stm32_lpm.o'. Stop.Does anyone have a CubeMX project that uses the BLE-HID example so that I can use that as the base example? Or help me solve the Stm32CubeIDE error... Greatly appreciated!Almog(using macOS Big Sur, Apple M1 Silicon)
If we want to calculate the Impedance on our own On Nucleo JC2 Board (We do have access to Spectrum Analyzer, VNA, etc) what type of hardware setup would be required to measure the impedance? Do we need to measure impedance on RFO_LP GND Pins?On firmware side can we use the Subghz PER code or any other software?Regards
Hello In function "SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )" of generated file "app_ble.c":In "switch/case HCI_DISCONNECTION_COMPLETE_EVT_CODE:", the variable "BleApplicationContext.BleApplicationContext_legacy.connectionHandle" is cleared ( "=0") before used to call "Custom_APP_Notification(&handleNotification);".You should initialize handleNotification.ConnectionHandle = disconnection_complete_event->Connection_Handle;instead of handleNotification.ConnectionHandle = BleApplicationContext.BleApplicationContext_legacy.connectionHandle;If not, the customer application will never know which connection has finished and cannot associate disconnection events to connection events...Best regardsPaul
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.