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 working with STM32WB05KN in beacon mode (non-connectable advertising, legacy advertising).I am configuring advertising manually using:aci_gap_set_advertising_configuration()aci_gap_set_advertising_data_nwk()aci_gap_set_advertising_enable()My advertising data contains only:Flags (0x01)Manufacturer specific data (iBeacon format) aci_gap_init(PRIVACY_DISABLED, HCI_ADDR_PUBLIC); : : uint8_t adv_data[] = { /* Advertising data: Flags AD Type */ 0x02, 0x01, 0x06, /* Advertising data: manufacturer specific data */ 26, /* len */ AD_TYPE_MANUFACTURER_SPECIFIC_DATA, /* manufacturer type */ 0x30, 0x00, /* Company identifier code (Default is 0x0030 - STMicroelectronics: To be customized for specific identifier) */ 0x02, /* ID */ 0x15, /* Length of the remaining payload */ 0xE2, 0x0A, 0x39, 0xF4, 0x73, 0xF5, 0x4B, 0xC4, /* Location UUID */ 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x61, 0x00, 0x00, /* Major number */ 0x00, 0x00, /* Minor number */ 0xC8 /* 2's compleme
I am using a STM32WB05KZ of a custom PDB, and I can not read a correct value of Vbattery.I have programed the ACD (+DMA) usgin CubeMX. I use DMA to read the analog inputs:ADC_Conv_Cplt = 0; HAL_ADC_Start_DMA(&hadc1, value, 3); uint32_t start = HAL_GetTick(); while(ADC_Conv_Cplt==0){ //timeout if ((HAL_GetTick() - start) > 3000){//wait 3 seconds break; } }; HAL_ADC_Stop_DMA(&hadc1);According de manual, the formula for ADC converted data after calibration is the following: Code = Integer(4096/3.6 * VIN) [clamped at 4095]. The result of conversion from Vbat is 0x271, applying the formula I get 0,549V when the Vbat is 3V.I also use 2 analog inputs in PB2 and PB5 and nome of them read correctly. In other proyects with stm32l105 and stm32wl55 the DMA works. I sure I am doing something wrong...Can anybody help me?Edited to apply proper source code formatting - please see How to insert source code for future reference.
Hi, will ST extend I-CUBE-LRWAN support to include the new MuRata LBAA0QB1SJ-TEMP-EVK? Or offer a ST board based on LBAA0QB1SJ-295? Any suggestion on how to reconfigure the current I-CUBE-LRWAN version to work on the new EVK? We were previously using B-L072Z-LRWAN1.
Hello, I've been trying to setup bi-directional communication with USB-HID on a custom board with STM32WB55CEU. I can send data to the PC from the STM just fine. My usb stack runs, enumerates and reports correctly. However, when trying to send Data from the PC back to the STM, I always receive garbage packages. Here's my device descriptor for the Outreport: 0x09, 0x03, // USAGE (Vendor Usage 3) 0x75, 0x08, // REPORT_SIZE (8) 0x95, 0x04, // REPORT_COUNT (4) 0x91, 0x02, // OUTPUT (Data,Var,Abs)So 4 Bytes. I also tried this with and without adding a Report ID, which did not change the results whatsoever.I have also tried running the code with defining USB_CUSTOMHID_REPORT_BUFFER_EVENT_ENABLED; both in main.h and in usbd_customhid.c and usbd_customhid.h to no changes.I also tried changing CUSTOM_HID_EPOUT_SIZE to 0x04 and 0x05, same with USBD_CUSTOMHID_OUTREPORT_BUF_SIZE. Including all of the combinations with and without report ID and with and without enabling the buffer define.
I am trying to develop a small scale lorawan app on a nucleo-wl55jc using the application example in stm32cube_fw_wl_v1.5.0 and have spent several hours trying to trace my error/bug in the software. All join attempts fail because the deveui as it appears in the se-identity.h file is ignored and the mcu derived value applied. Tracing this value to the lora_app.c file shows the se-identity.h file is correctly read and the macro expansion appears to give the correct value in the set user credentials section (lines 617-620) but the join is attempted using what I believe to be the mcu derived value. The same credentials work as expected when used under stm32cude_fw_wl_1.4.0 At the outset, I must confess it's 25 years since I did any serious programming so I may of missed something obvious but I would be grateful for any pointers as to why it's failing!
Hi all, I am currently working with the STM32WLE5JC for a LoRa/LoRaWAN-based IoT node and would like to clarify some points regarding LoRa FHSS and LR-FHSS support. From several discussions in the STMicroelectronics Community, I noted the following statements from ST employees and contributors: “There is no way to activate the frequency hopping as the LoRa stack does not offer this feature on the STM32WL.” “After further investigation, it appears that the Semtech SX1262 does not support LoRa FHSS, (but supports for LR FHSS). This is a hardware limitation rather than a driver limitation.” “There is no reference to LoRa FHSS in the driver code or documentation.” It is also understood that: Semtech SX1262 RF IP (which the STM32WLE5 is based on) does not support LoRa FHSS from a hardware perspective Based on this, my understanding is that: :backhand_index_pointing_right: STM32WLE5JC does not support LoRa FHSS However, I would like clarification on the following: 1. LoRa FHSS Support C
Greetings Everybody, Since few months i have been trying my hands on RAK3172. I have successfully implemented ADC, UART/USART and I2C on RAK but without SUBGHZ and everything is working fine. I have also made my custom code for RAK3172 SUBGHZ and it is also working fine. I have established communication with two RAK3172 modules and they are communicating with each other as on successful data transfer between the two i am toggling LED connected to one of the GPIOs. Now problem comes when i am enabling UART/USART and SUBGHZ code. On startup i am sending 64 bytes of data out on UART/USART connected to USB to TTL converter. On every power ON i am trying to find 64 bytes of data on terminal but without any successs. Is there anything that i am doing wrong ?
Hello,I am currently developing a LoRaWAN Class A device using the NUCLEO-WL55JC1 development board and the "LoRaWAN_End_Node_LBM" example from STM32CubeWL (version 1.5.0).I am facing an issue with context restoration after a reset. I am using the provided StoreContext() and RestoreContext() functions exactly as implemented in the example. However, after each reboot, the device always restarts the join procedure instead of resuming the previous session. As a result, the DevNonce is incremented on every reset.This behavior is problematic because repeated resets will continuously increment the nonce value. According to the LoRaWAN specification, this value is limited (16-bit), and once the limit is reached, the device will no longer be able to join the network.My understanding is that, when the context is correctly restored, the device should resume its previous session without triggering a new join procedure.Could you please clarify:* What is the correct sequence to restore the LoRaWAN
Hello, I use STM32WB05KZ. Could you give me an example about how to store configuration data to NVM by aci_hal_write_config_data() function? - When I tried to store to 0x00 (I used static randow MAC address), it returns 0 but the data is lost when the chip is rebooted; - When I save to any other address (such as, 0x40), it always returns to 0x12. Thanks a lot.
I want to add a EXTI0 line to act as a wakeup. I took the BLE_Heartrate example as a base. Out tyhe box, it compiles & runs ok. When I use CubeMX 6.16 to edit the BLE_Heartrate ioc to add PE0 as the EXTI0, next time I compile, I get an error that I'm missing stm32wbaxx_ll_utils.c. If I "cure" this by copying the file from elsewhere, I get other file-not-found errors on stm32wbaxx_ResetHandler_GCC.s and app_bsp.c. What gives? Surely the example provided by ST should be able to handle a minor change in the ioc file? The BLE_Heartrate and other BLE_ examples are inpenetrable and difficult to understand at the best of times. ST is not helping anybody by not explaining how the BLE_Heartrate example may be modified to get e.g. true low power stop2, how to set an RTC alarm to wake up from this.
I am using two Nucleo-STM32WL33 board, one as a transmitter and one as a receiver. The transmitter sends two messages in ASK modulation and the receiver records the messages in IQ sampling mode.Below is a visualization of the IQ samples time series.The logical 1s are quite clear and all have a similar amplitude, however for some reason there seems to be a sinus-like subsignal whenver the transmitter sends a logical 0. I would have expected an amplitude close to zero, like seen during the time frame between the two messages or after the end of the second message. There is a distinct 1/4 period phase shift between I and Q component, so its clear to me this has something to do with the IQ modulation itself. But what is causing this sinus subsignal? Is it caused by the receiver or transmitter? How can I remove it?
Hello, I am currently working on a ble project on the stm32wb09ke nucleo board that uses the stm32 sequencer. My application is working as intended but I want to make it low power for optimal battery life. If i understand correctly the sequencer itself handles when to enter the Idle state if there is no current running task. From the HeartRate example I've copied the logic for the "UTIL_SEQ_Idle" function. The problem I'm having is that the "UTIL_SEQ_Idle" function is not included in "UTIL_SEQ_Run" as it is in the HeartRate example and is therefore never called. Why is this part not included/generated? Should I just copy whats in the example? My UTIL_SEQ_Run: if ((local_evtset & EvtWaited)== 0U) { UTIL_SEQ_PreIdle( ); UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE( ); local_taskset = TaskSet; local_evtset = EvtSet; local_taskmask = TaskMask; UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE( ); UTIL_SEQ_PostIdle( ); } HeartRate example: if ((local_evtset & EvtWaited)== 0U) { UTIL_SEQ_PreId
Hi all,I am currently working on the design of a custom LoRa/LoRaWAN-based IoT node using the STM32WLE5JCI6TR (bare MCU, not a module), and I am looking for a complete and reliable hardware reference design to follow.So far, I have identified the following:NUCLEO-WL55JC reference design files (schematics and PCB) from ST, which appear to be the closest official reference (even though it is based on WL55 dual-core variant)Wio-E5 Dev Board from Seeed Studio, which is based on a module and does not expose the RF design detailsWhile these are helpful, I am specifically looking for:A reference design based directly on STM32WLE5JC (or very close variant)Complete design files including:Full schematicsPCB layout filesRF matching network implementationAntenna routingPCB stack-up / layer informationSince RF design (matching, impedance control, grounding, etc.) is quite sensitive, having a proven reference is critical.Additionally, I would like to know::backhand_index_pointing_right: Are there an
Hi all. Let me tell you the problem I'm facing and I googled for finding some help but without luck. The problem I have in hands is as next. I was using Nucleo WB55 to use the STM32F103CBT6 to program a microcontroller I have in a custom PCB for an end product I'm designing. Until yesterday everything was working OK. Since yesterday the STM32CubeIDE is telling me that is not possible to connect with the programmer. I checked what's the message shown by this last program and it says:Target no device found Error in initializing ST-LINK device.Reason: No device found on target. After seeing this, I downloaded the ST-Link Utility to connect to the board and the program says:Now, having this message I proceeded to use the STM32CubeProgrammer to see what it can tell me and it shows:14:45:15 : UR connection mode is defined with the HWrst reset mode14:45:15 : ST-LINK SN : 066EFF31333541504314132814:45:15 : ST-LINK FW : V2J43M2814:45:15 : Board : P-NUCLEO-WB5514:45:15 : Volt
I am experiencing difficulty getting the NUCLEO-WL55JC1 to properly enter Shutdown mode. In some cases, the device appears to enter Shutdown mode but exits immediately. In other cases, it remains in Shutdown mode, but the current consumption is approximately 1 mA. The procedure I am using to enter Shutdown mode is straightforward, yet the behavior does not seem correct. Could you please advise on possible causes or recommended debugging steps for this issue?
Hello everyone!I’ve been struggling to create a working application on the P-NUCLEO-WB55. My goal is to implement a Zigbee On/Off Client Sleepy End Device (SED) with NVM support, using buttons for control.I was able to successfully reproduce the On/Off Client SED with NVM and low power consumption (around 3 µA), measured using the ST-Link Power Monitor. However, in that example project, a timer is used to trigger the On/Off commands.I created a new application that uses buttons instead of the timer, but now the device never enters sleep mode and behaves quite strangely. Based on the current consumption spikes, I can see that the device is transmitting data. In Wireshark, I can see that packets are being sent, but Home Assistant does not react to the commands at all.I have attached my app_zigbee.c file. Could someone please help me understand what I am doing wrong?Perhaps someone could share a working example of a Zigbee On/Off Client SED with NVM support and button control. Such an exa
I have established BLE advertisement and connection is established successfully between ST BLE toolbox and the stm32wb55 based board. I am unable to read the chateristic value from the st ble tool box. My code is in custom_app.c file I2C_HandleTypeDef hi2c1; int sizecharwrite; uint8_t my_value =5; float adc_voltage_ble = ADS1115_readSingleEnded_AIN0(&hi2c1); uint8_t pPayload; sizecharwrite=snprintf( ble_voltage,sizeof(ble_voltage),"%0.2f", adc_voltage_ble ); if (sizecharwrite < 0 || sizecharwrite >= sizeof(ble_voltage)) { // Error or truncation return; } memcpy(pPayload,&ble_voltage, sizeof(ble_voltage)); In the cutom_stm.c file aci_gatt_update_char_value(CustomChemdetectHdle, CustomCharwriteHdle, 0, /* charValOffset */ SizeCharwrite, /* charValueLen */ (uint8_t ) pPayload); Edited to apply source code formatting - please see How to insert source code for future reference.
Hi! Starting a design with an STM32WL31K8V6. This is the 32 pin VFQFPN32 variant.As far as I can see, there is no HW Reference PCB that covers the 32 pin package. Looking at the datasheethttps://www.st.com/resource/en/datasheet/stm32wl31kb.pdfon p.32, there is Figure 10. "STM32WL31xx application circuit with SMPS, VFQFPN32 package" which shows the typical circuitry around the chip (i.e. the matching network).However, looking into the details of AN5457, latter shows a different matching topology than the datasheet. It´s similar, but still...https://www.st.com/resource/en/application_note/an5457-rf-matching-network-design-guide-for-stm32wl-series-stmicroelectronics.pdfSince the AN5457 shows details on how to so the matching I tend to use the topology shown there but what is the reason that there are different references?Thanks
I am working with the NUCLEO-WBA55CG board on a Zigbee_OnOff project, and I am facing an issue with the LED behavior.EnvironmentBoard: NUCLEO-WBA55CGMCU: STM32WBA55CGSTM32CubeMX version: 6.17.0Firmware package: STM32CubeWBAApplication type: Zigbee On/Off example / based projectThe project is able to run, and Zigbee side behavior appears to be partially working, but the LED is not blinking/toggling as expected.The problem is:button press has no visible impact on the LED, orZigbee On/Off action does not toggle/blink the LED as expectedIn my case, the issue looks more related to the GPIO / board mapping / callback path than to Zigbee network joining itself.
Hi : I’ve been working on planning an STM32WBA25 series product recently. Regarding the antenna design, I’ve been referencing ST’s development board “NUCLEO-WBA25CE1.” From the MCU pin, the signal goes through an IPD, then a matching network, and finally to the antenna.Currently, the IPD is a major challenge for me. Is it possible to replace the IPD with discrete components?
Hi,UID is set at factory for all products? Wholesale ICs comes already programmed? I need to repair some machines and IC needs to have same UID as replaced. Thanks
Hi all,I recently designed and built a custom PCB for data acquisition and transmission through bluetooth using an STM32U575 as the main MCU and a BlueNRG-M2SA module for bluetooth data transmission configured as a Network Coprocessor. They are connected via SPI following the pinout on the BlueNRG-M2 datasheet and also looking at the X-NUCLEO-BNRG2A1 schematics. The BlueNRG-M2SA is connected to an external connector via SWD for flashing using an STLink-V3Minie. Resistor R13 is not usually soldered and is just used to enable the bootloader during image flashing. Schematic for the BlueNRG-M2 on the custom PCB provided below:The problem is that I have not been able to achieve communication between the STM32U575 and the BlueNRG-2 module as whenever the main MCU waits for the IRQ signal from the BlueNRG-M2, it doesn't receive any and therefore returns BLE_STATUS_TIMEOUT and gets stuck after aci_hal_set_tx_power_level() during Device_init(). I have tried uploading different DTM ima
Hello ST Community,I am facing a critical issue with my STEVAL-PROTEUS1 board. The device is in a state where neither the wireless stack nor the application code can be updated or debugged.1. Corrupted Device Information (SWD_READ_FUS.PNG)When reading FUS info via ST-LINK (SWD), the device returns corrupted version numbers:FUS Version: v68.39.fffffe0.7STACK Version: vfffffff0.0.68.78 2. FUS & Wireless Stack Operation Failures (SWD-START-FUS.PNG / SWD-START-WIRELESS.PNG)Attempting to start the FUS or Wireless Stack results in:Error: FUS_STATE_ERR_UNKNOWN: Unknown errorLog: Start FUS Operation Failure! and Start Wireless Stack Operation Failure!3. Flash Write & Verification Mismatch (SWD-UPLOAD-CODE.PNG)I am unable to flash a standard application elf file. Even though the device is connected via SWD:Error: Data mismatch found at address 0x08001000 (byte = 0x12 instead of 0x00)4. USB DFU Mode Inconsistencies (USB-READ-FUS / USB-START-WIRELESS)Switching to USB (PID: 0xDF11) s
Hello,I am trying to setup the BLE stack on my custom board without LSE using a STM32WB55CEU6. I have multiple boards on hand, on the first one, appe_Tl_init(); worked fine and I got to the BLE stack initialization code. However BLE never worked due to using a 16Mhz crystal. Before I had the chance to change out the crystal, the MCU bricked due to unrelated flash mistake.Now on the second board, I switched out the crystal to a proper 32Mhz one, unfortunately, despite flashing the wireless stack the same way, the wireless stack seems to instantly hard fault. Everything else, including USB (which relies on tight clock) work on the new 32Mhz crystal, I even soldered back the 16Mhz crystal temporarily, and it did not fix the hard fault. I flashed the most recent FUS and wireless stack, v2.2.0.0 and v1.24.0.3 respectively. I tried with ble_light, ble_full and ble_full_extended, all hard fault CPU2.So, within MX_APPE_Init(), during the call TL_Enable(), CPU2 hard faults. The contents of SRAM
I have question on STM32WBA65RI uC we are using it for our products TEK923/926. It seem to me that BLE stack doesn’t allow to use Free Running Binary mode and Calendar Mode.There is option of MIX Mode in CubeMX but doesn’t seem working. Causing not to allow Alarm/Timer to configure and giving below error: sAlarm->AlarmSubSecondMask Details:1056964608 Default:1056964608 Decimal:1056964608 Hex:0x3f000000ICSR Details:519 Default:519 &n
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.