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 STM32WL Expert,We have developed a custom PCB based on the "STM32WL_QFN48_4Layers_Ref_Board" reference design with STM32WL55CCU6 MCU. It is based on high power and high-frequency configuration. LoRa transmission is handled through the FE_CTRL_2 pin for data transmission and receiving.We are using 32MHz crystal at OSC_IN and OSC_OUT pins. As per reference manual (RM0453) point 5.4.2, the load capacitors are provided by the integratedcapacitor banks that can be trimmed. The trimming is provided by SUBGHZ_HSEINTRIMR and SUBGHZ_HSEOUTRIMR registers.SUBGRF_WriteRegister( REG_XTA_TRIM, XTAL_DEFAULT_CAP_VALUE); SUBGRF_WriteRegister( REG_XTB_TRIM, XTAL_DEFAULT_CAP_VALUE);We have developed the same application on the NUCLEO-WL55JC1 development board and it is working well. The same LoRa communication is not working with custom PCB. Will you please help us to debug the issue?Best Regards,Neel
Hello,I flashed this firmware on board:after programming it shows this:nothing is running.===================================================I found some disscussion about PCROP, my settings look like this:very appreciate any help.Best regardsDanny
I have stm32wb55 , i have created a service using stm32cubeIDE, in that i have like 3 characteristics 1:: myChar, 2: mynotify and 3: mywrite,, ( mynotify has nothing to do with this problem). mychar is used to read the value only and mywrite is set to read and write the value, so in my st tools app if i try to update the value of mychar using this command, it does update the value ( Custom_STM_App_Update_Char(CUSTOM_STM_MYCHAR, (uint8_t *)UpdateCharData); BUT If i try to write the value for MYWRITE in the app, it does write the value and read exactly the same, but i dont know where the value is stored in the program, i have tried to get value from a instance like (CUSTOM_STM_MYWRITE) it does have some value but its not what i have written in the app. i have tried this command as well ( Custom_STM_App_Update_Char(CUSTOM_STM_MYWRITE,CUSTOM_STM_MYCHAR);to get the MYCHAR value in MYWRITE but as th
hi all,i am using stm32wb55 for my project ,i was setup one stm32wb55 as client and another stm32wb55 as a server both boards are connected via ble using data throughput example can anyone please help me how to code to send some data (ex:hi ) from client to server thanks in advance
I want to change the DMA memory according to the PWM signal and change the GPIO pin to turn on/off automatically based DMA memory information. Are there any good examples of this?
Hi everyone,I am trying to use an STM32WB55 to detect iBeacons and have found that if an iBeacon does not have it's GeneralDiscoverable flag set then it is not detected by the system. I believe that the iBeacon is being filtered by the coprocessor on the STM32WB before it gets to the application code.Has anyone else encountered this or can confirm that iBeacons that do not have the GeneralDiscoverable flag set are being filtered out by the coprocessor before getting to the application code on the Cortex-M4.
Hi,Has someone made a FUOTA session succesful in EU868 using the Nucleo-WL55JC using FW_WL_V1.3.0? When I run the FUOTA example, single core, the device goes to the HardFault_Handler interrupt. This happens right after the device switches from class A to class C at the start of the FUOTA campaign. At the reception of the first frame, the device halts. The last thing I see in the serial terminal is: ###### ========== MCPS-Confirm ============= ###### U/L FRAME:0070 | PORT:2 | DR:5 | PWR:7 | MSG TYPE:UNCONFIRMED 1700119218s532:RX_C on freq 869525000 Hz at DR 3 Switch to Class C done 1700119219s243:MAC rxDone 1700119219s248:BufferRX Port: 201 I have tried with DR_0 and DR_3 as downlink datarates. For DR_0 I use a maximum packet size of 48B and 112B for the DR_3.
I have 2 STM32WB nucleo boards I'm using for testing data throughput speed. I'm running the BLE_DataThroughput example application in STM32CubeIDE v1.4.1 with STM32WB firmware v1.8.0.One board is programmed as the client (central) and the other as the server (peripheral). Out of the box the example works. I can connect to both of them with PuTTY and see they connect to each other quickly. I press button 1 on the server and it starts transferring data to the client and I see the data rate in the client's terminal window. Pressing button 2 changing the PHY from 1 Mbps to 2 Mbps and vice versa.The problem I'm having is the data rates appear unreliable for 1 Mbps and very slow for 2 Mbps. For 1 Mbps I'm getting this in the terminal. The data rate is all over the place and sometimes it goes up to 96,000 bytes/s. According to the calculations here (https://www.novelbits.io/bluetooth-5-speed-maximum-throughput/), I estimate a max data rate of 97,600 bytes/s for 1 Mbps PHY on BLE 5. So that se
Hi!I have a custom board built around an STM32WLE5CCU7.My problem is that it consumes way to much power (100 times expected).110uA in Shutdown and Standby190uA in STOP2 WFI.CubeMX power tool estimates these two modes to at most 0.640uA and 1.3uA respectively.I have created a completely blank project (see attached files) which does nothing but enter various sleep-modes. It is using this project I measure the figures mentioned.It is of course possible that I have leakage currents on my custom board, but I have de-soldered everything I can think of that can consume power on the board (and all stm32 pins as default i.e. analog input).It doesn't explain the 80uA difference between shutdown and STOP2The board has a SMPS for generating 3v3 but I measure the current on the 3v3 after the SMPS so I dont think it should matter...The current-diference between stop2 and shutdown is very puzzling to me, and indicates that I have (atleast one) software issues.I'm at a complete loss here and very grat
HI,Please share us the FCC / CE ILAC Accredited test report.EN300 220 standard report for the STM32WLE5CCU6 module for our product certification purpose.Thanks,Chanchal Kumar
Hi,I want to learn ZigBee and for this, I want to see what´s going on in the On/Off Router example and build up an environment to test my own implementations by using ZigBee2MQTT and a CC2531 dongle. I flashed the example onto my STM32WB55 Nucleo and the board can connect with the STM32WB55 Nucleo USB stick, but not with my ZigBee2MQTT setup.I´ve activated pairing as a coordinator in the web UI and started the application on my Nucleo board. I got this output but no successful connection:[M4 APPLICATION] APP_ZIGBEE_Init[M4 APPLICATION] **********************************************************[M4 APPLICATION] WIRELESS COPROCESSOR FW:[M4 APPLICATION] VERSION ID = 1.17.0[M4 APPLICATION] FW Type : FFD Zigbee stack[M4 APPLICATION] Application flashed: OnOff_Client_Router[M4 APPLICATION] Channel used: 13[M4 APPLICATION] Link Key: ZigBeeAlliance09[M4 APPLICATION] Link Key value: 5a 69 67 42 65 65 41 6c 6c 69 61 6e 63 65 30 39[M4 APPLICATION] Clusters allocated are:[M4 APPLICATION] onOff Clie
I realized that I would need continuously switching the GPIO pin for external MUX.So, I want to know how to program continuously switching a GPIO pin (with a specific frequency and start timing for synchronizing with other GPIO pins)However, If I on/off the GPIO pin with a delay, the timing doesn't match well. So, is there any way to generate a frequency in a GPIO pin without any extra order such as DMA (it means that the GPIO pin just generates some signal without extra on/off control from the processor).Is it possible? then what code should I use?
Hi,I am using an STM32WB55RCV6 with the full BLE stack.During operation, I am updating some characteristics. Some at the push of a button, some scheduled with a timer.Sometimes, unregularly, and only when the device is connected (to a smartphone), the following happens:When I use the following function from custom_stm.c quite oftenCustom_STM_App_Update_Char(...)(this functionthen calls aci_gatt_update_char_value(...)),the Characteristic is NOT updated and I get the return value "12".The function usually works, but only once in a while, when I am updating a lot of values, I get this error code. It also only happens when the microcontroller is connected to another device (here: a smartphone). When this error occures, usually the next few times when I call Custom_STM_App_Update_Char(...), these functions also fail (same return code), but after a while, it works again and updates the characteristics properly.The smartphone, that is connected, has "indicate" enable for the respective charac
Hi, i'm currently working on a Project where i need to send some data via LoRa.I've been struggeling to get a transmission going, so i decided to check the basics.To test the radio, i went ahead and rebuilt the SUBGHZ_Tx_Mode example from the STMCubeWL on my board, implementing the exact code that the example uses. The MX setup is identical . When i tested, i found that the code fails the first time that data is received with this function call.if (HAL_SUBGHZ_ExecGetCmd(&hsubghz, RADIO_GET_STATUS, &RadioResult, 1) != HAL_OK) { Error_Handler(); }HAL_StatusTypeDef HAL_SUBGHZ_ExecGetCmd(SUBGHZ_HandleTypeDef *hsubghz, SUBGHZ_RadioGetCmd_t Command, uint8_t *pBuffer, uint16_t Size) { HAL_StatusTypeDef status; uint8_t *pData = pBuffer; if (hsubghz->State == HAL_SUBGHZ_STATE_READY) { /* Process Locked */ __HAL_LOCK(hsubghz); ret = SUBGHZ_CheckDeviceReady(hsubghz); /* NSS = 0 */ LL_PWR_SelectSUBGHZSPI_NSS(); ret = SUBGHZSPI_Transmit(hsubgh
I aim to construct an RF module utilizing the STM32WLE MCU.To achieve this goal, I am currently scrutinizing the reference design schematics found at en.MB1389-WL55JC-highband-E02_Schematic I would greatly appreciate your assistance in comprehending the following aspects:In the provided schematics, the STM32WL55JCI7 pins PC3 (LPTIM1_ETR, SPI2_MOSI/I2S2_SD, LPTIM2_ETR, CM4_EVENTOUT), PC4 (CM4_EVENTOUT), and PC5 (CM4_EVENTOUT) deliver FE_CTRL3, FE-CTRL1, and FE_CTRL2 signals to Analog and RF switches, respectively. However, the STM32WL55CC UFQFPN48 I intend to use lacks PC3, PC4, and PC5 pins. Should I employ alternative pins, and is it necessary to modify the corresponding STM stack?Could you kindly elucidate the primary functions of the analog switches? One is linked to VDDPA, and the other is linked to VR_PA.Thank you
Does current Lorawan library implementation fully support Class B? In changelog for lorawan libraries inside CubeWL in latest version 4.6.0 we found new functionalities being added. Are there any functionalities still missing in Class B?
Recently, I studied STM32WL series and want to design board by myself, so I reference MB1789-HP files to design. I have some questions about sch and pcb files, I know MCU pin 21 (RFI_N) is connect to C30 capacitor, but in PCB file, MCU pin 20 and pin 21 connect components doesn't match to sch. Whitch one is correct ? Below is MB1789-HP Link : https://www.st.com/resource/en/board_manufacturing_specification/mb1789_hp_bdp.zip Any feedback is appreciated.
Hello I am getting: error on opcode 0x08 what is it?Opcodes not listed in document. See here:Table 433. ACI_GATT_ERROR_RESP_EVENT parametersParameter Size Description Possible valuesConnection_Handle 2Specifies the ATT bearer towhom the command applies• 0x0000 ... 0x0EFF: unenhanced ATT bearer (the parameteris the connection handle)• 0xEA00 ... 0xEA3F: enhanced ATT bearer (the parameterLSB is the connection-oriented channel index)Req_Opcode 1The request that generatedthe error response -
Hi,I´m designing a ZigBee-based soil moisture sensor with three different sensors on it:- A cap field for the soil measurement- A temperature sensor for the ambient temperature- A light sensor for the ambient lightBut I´m unsure about a good approach to the ZigBee integration for this sensor and I also don´t understand the idea behind "Clusters" and "Endpoints" so far. Is a "Cluster" something like a "Service" and the "Endpoint" like a "Characteristic" in BLE? If not, what is a good explanation for it?For the configuration, I have two ideas in my mind1) Use a different endpoint for each of these sensors. The device ID is set to "Simple Sensor" and "Light Sensor" with profile ID "HA" and don´t use any Cluster2) Use one endpoint with device ID "Simple Sensor" and profile ID "HA" and use the "Water Content Measurement", "Illuminance Measurement" and "Temperature Measurement" clusterWhich one is the best way (or does an even better solution exist)?
By some reason I am not able to figure out I randomly get a hard-fault that causes to not initialize the BLE stack, I occasionally get to this hard-fault just by having the board that is using the STM32WB55 by doing powering up and powering down (cutting the power) directly on the board and eventually when I repeat this for a few 3 to 6 cycles it gets to this condition. If add code to supervise this failure and trigger a software reboot it successfully initializes and starts working (no hard fault seen)I am trying to understand what is the cause, I have suspect that something in the initialization or startup code needs to happen (or wait) to avoid this hardfaultI know that is a hardfault since I am reading the @SRAM2A_BASE and getting the followingkeyword : 0x1170fd0f pc : 0x7628 link_reg : 0x7265 sp : 0x20037c28 However that stack pointer address seems to be related to the SRAM that is used for CPU2 and not sure what is telling me, Any i
Good morning. I am testing sample programs from the ST repositories for the LORA system.These are: LocalNetwork_Concentrator, LocalNetwork_Sensor. I am wondering how to reduce the refreshment period for reading data from the sensor, which is about 15 seconds.Regards.
Hi, I'm using an STM32WB15CC MCU. I want it to turn on (get out of reset) only when the VDD voltage gets up to, say, 2.8V, but not turn off via Brown-Out Reset (BOR) until the voltage drops to the minimum working voltage of ~1.7V. What's the easiest way to do that? My first thought: the BOR voltage is generally set in the option bytes which are non-volatile. However, is it possible to "temporarily" change the BOR setpoint, i.e. without changing the non-volatile option bytes? If this is possible, then I can do what I want: I'll set the option bytes to a 2.8V BOR threshold but have my first line of code change it *temporarily* to 1.7V. This way it is held in reset until the voltage gets to 2.8V but doesn't turn off until it drops below 1.7V - but when it does turn off, it will only turn on again at 2.8V because I did not touch the non-volatile BOR setting. is the above method possible? if yes, then how do I change the BOR temporarily? if not, then can you suggest another appr
Can't make it work any restrictions on the values? attribute handler or UUID?
Hi,I know that the question may seem silly (if devices are non-discoverable they should not be reported in a BLE scan result) but it looks like it is more complicated than that.I am using STM32WB55 MCU.I need to scan for BLE beacons that are around my device. I already integrated many BLE beacons in my firmware.Now I want to support another BLE beacon but this one does not set any of the LE Limited Discoverable Mode (bit 0) or LE General Discoverable Mode (bit 1) flag in its AD flags.Currently when I call the Scan_Request function (app_ble.c) it does not report this device advertising frames (as expected I guess).Is there a way to force such non-discoverable devices to be reported in scan results?The BLE beacon provider (that is also my customer at the end, so complex relationship) mentioned that other BLE devices are able to scan it (and indeed some BLE applications on my smartphone does show it).And looking on internet it is not that clear that having those 2 bits unset should result
Hello everyone!I am trying to read sensor data from an FSR402 using a STM32WB55CG in DMA with a temperature sensor as well.For now I am mostly focusing on the FSR to also make the conversion from voltage to newtons.After implementing the code for the conversion the programmed stopped working saying this:Program received signal SIGTRAP, Trace/breakpoint trap. HardFault_Handler () at ../Core/Src/stm32wbxx_it.c:84 84 {I really don't know how to deal with all of this. I have already read something about the GDB server which I have never used as this would be my first time doing this type of project. However I notice that for the GDB I would need some connector that I do not have.I will also attach a photo of my code where I am doing the conversion for the sensor./* USER CODE BEGIN 0 */ uint32_t ADC_BUFF[2], val[2], temperature, fsrResistance, fsrConductance, fsrForce; float vsense = 3.3/4096; float resistor = 10000; float voltageIN = 3300; void HAL_ADC_ConvCpltCallback(ADC_HandleTyp
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.