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 on a lorawan-based project. I use STM32WB55. I know there are 2 cores in this MCU and ble is running on the second core. My code and other peripherals run smoothly when BLE thread is not running, But when the BLE thread is running, other peripherals don't work. What could be the possible issue here? Can BLE and other peripherals run at the same time of wb55cg?
I am using the Nucelo board and communicating with an IKS02A1 trough I2C2 using PINs PA11 and PA12 with the following configuration: I have initializaed the I2C folowing the guidelines in "stm32wlxx_hal_i2c.c", and when I use "HAL_I2C_IsDeviceReady()" function I always get BUSY_ERROR. The initialization is done through: DMA and interrups are both initialized even though I am not still usign them. I tried not initializing them them and the results are the same. If I do not check "HAL_I2C_IsDeviceReady()" function and I directly use "HAL_I2C_Mem_Read()" or "HAL_I2C_Mem_Write()", I get ERROR_PERIPH_FAILURE.I can not fix this and I am going crazy please help!
Hello guys, how are you?I'm investigating some .bss overflows i'm facing and i ended up on some weird question. Linker file for STM32WB generated by CubeMX is as follows:RAM1 (xrw) : ORIGIN = 0x20000008, LENGTH = 0x2FFF8RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 10KThe sum of this two portions is around ~206K. The STM32WB datasheet says that this MCU has 256K of S-RAM, so.. where are the other 50K of RAM?:face_with_tears_of_joy:
Hi, do the STM32WB support Bluetooth 5.2 LE isochronous channels?Thanks!
Hello guys,I've been researching over the internet and in this forum about creating a composite device on STM32WB5M. I need to create a device that has a HID and a mass storage over the same USB. I saw some old posts saying it was not possible but at the same time i saw another posts saying it is possible in some ST microcontrollers. I really would prefer to do that using ST Library, or modifying ST Library if needed. Could anyone give me any hint, examples or a user manual of how i could begin this development?
I'm designing a power line for the STM32WB55 microcontroller.I'm checking the power system on the Nucleo-68 board but I found that the microcontroller cannot send a Bluetooth signal if I connect Vsmps only when booting the microcontroller.I also found that it successfully work after removing VDD_MCU and VRF after finishing booting.Is it correct? It would mean I have to supply power to VDD also.I also found that connecting VRF makes Bluetooth signal better.
..
My I2C doesn;t seem to work whenever i turn off debug pins in IOC. I used a diff to see the changes but it seems fine to my untrained eyes:$ git diff diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 988f1e8..b3cb386 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -75,7 +75,7 @@ extern "C" { * @brief Enable/Disable MCU Debugger pins (dbg serial wires) * @note by HW serial wires are ON by default, need to put them OFF to save power */ -#define DEBUGGER_ENABLED 1 +#define DEBUGGER_ENABLED 0^M /** * @brief Disable Low Power mode diff --git a/Seeed-LoRa-E5.ioc b/Seeed-LoRa-E5.ioc index c1059bc..ffbda64 100644 --- a/Seeed-LoRa-E5.ioc +++ b/Seeed-LoRa-E5.ioc @@ -199,64 +199,61 @@ Mcu.CPN=STM32WLE5JCI6 Mcu.Family=STM32WL Mcu.IP0=ADC Mcu.IP1=ADV_TRACE -Mcu.IP10=RTC -Mcu.IP11=SEQUENCER -Mcu.IP12=SUBGHZ -Mcu.IP13=SYS -Mcu.IP14=TIMER -Mcu.IP15=TINY_LPM -Mcu.IP16=USART1 -Mcu.IP17=USART2 -Mcu.IP2=DEBUG -Mcu.IP3=DMA -Mcu.IP4=I2C2 -Mcu.IP5=LORAWAN -Mcu.IP6=LPUA
Hello,I am trying to use the LPTIM1 as a timeout counter of 5s. Each timeout the device would read a measured value from a sensor and send it by uplink.I want to trigger the LPTIM1 by software, but I do not know how to do this. This is probably a newbie question: how do I generate the software trigger? I though I would need to write in a register or something, but I can not find the solution.Thanks in advance!
It's a shame the "ST BLE Toolbox" Android app source code is not public. I know the "ST BLE Sensor" Android app's source code is public.Does this code somewhere show how to do notification processing like the Toolbox's "Bandwidth" service profile?I have implemented the ST "Data Throughput Service" BLE service/characteristics in my STM32WB55 user application to evaluate BLE throughput for my user app + my custom board. The Toolbox shows a throughput of 80-90 kBps.Now I implemented my BLE service for communication with my app, virtually the identical way as I implemented the ST-DTS.But despite the implementation, hardware, smartphone and connection parameters being identical in both scenarios - where DTS<->Toolbox reaches 90 kBps, MyService<->MyApp only reaches 30 kBps when doing the Maths.So I figured the handling of notifications in my app must be done wrong somehow, crippling the throughput rate. Hence I'd love to see how the ST BLE Toolbox does notification handling so in
We periodically start a conversion for multiple channels by timer, with DMA.void HAL_ADC_Setup_Completed(void) { ADC_ChannelConfTypeDef sConfig = {0}; adc_channel_number = ADC_CHANNEL_NUMBER; /* DMA controller clock enable */ __HAL_RCC_DMAMUX1_CLK_ENABLE(); __HAL_RCC_DMA1_CLK_ENABLE(); /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) */ hadc.Instance = ADC; //hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; hadc.Init.Resolution = ADC_RESOLUTION_12B; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.ScanConvMode = ADC_SCAN_ENABLE; hadc.Init.EOCSelection = ADC_EOC_SEQ_CONV; hadc.Init.LowPowerAutoWait = DISABLE; hadc.Init.LowPowerAutoPowerOff = ENABLE; hadc.Init.ContinuousConvMode = DISABLE; hadc.Init.NbrOfConversion = adc_channel_number; hadc.Init.DiscontinuousConvMode = DISABLE; hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc.I
Hello ThereI am using stm32L496RG with Sx1262 and I am using SX1262 stack of I-CUBE-LRWAN.When I try to send multiple data frem to my single node. After the first downlink operation, the second downlink is not received and the code generates the "rx TimeOut" Error.If I will do not perform any operation it works fine.Is there any way to sync this? Please guide me to solve this problem.
Dear Sir,I'm new to STM32WB55 and using STM32CubeMonitor-RF.We see the value of RAW RSSI from the Value parameter of Command Complete of ACI_HAL_READ_RAW_RSSI in STM32CubeMonitor-RF and it results in the RSSI dBm.Such as:(RAW RSSI) --> (RSSI dBm)0x000006 --> -107.00 dBm0x000007 --> -107.00 dBm0x00000A --> -106 dBm0x00000B --> -105.00 dBm0x000012 --> -103.00 dBm0x000014 --> -102.00 dBm0x000017 --> -100.00 dBm0x00001C --> -98.00 dBm0x00001D --> -98.00 dBm0x000021 --> -97.00 dBm0x000024 --> -97.00 dBm0x000029 --> -96.00 dBm...0x0001A9 --> -75.00 dBmMay we ask you about the formula for converting RAW RSSI value in dBm? Thank you.Sincerely yours, David
Hi there,I am using an STM32WLE and putting it into Standby mode for extended periods of time. I am trying to retain SRAM2 while in Standby mode, and it is working while the DBGMCU_CR_DBG_STANDBY bit is set. However, when I clear the bit SRAM2 is no longer retained.I have set the PWR_CR3_RRS bit, the option byte SRAM_RST is set by default, and I have set my linker to not initialise the portion of SRAM2 that I wish to retain.Does anyone have any ideas as to why debug mode could have such an impact on RAM retention?Thanks,Rebecca
Hello everybody.I wanted to know how to modify the SubGHz_Phy_PingPong example to run on a custom board that uses the STM32WLE5CCU: UFQFPN48 package?Due to the differences between the BGA and QFN versions, I changed the position of some pins:FE_CTR1 in PA4;FE_CTR2 in PA5;FE_CTR3 in PA6;LED1 in PA7;LED2 in PA8;LED3 in PA9;PROB1 in PA11;PROB2 in PA12;BUT1 in PA13;BUT2 in PA14;BUT3 in PA15.Thank you very much.
I want to test the power supply without Vsmps. So, I have to connect the VDD to the Vlxsmps, Vfbsmps in the Nucleo-68 board.Fortunately, the Nucleo-68 board already has a current path called SB31 but there is an extra description "FW configuration needed" looks like below. Here is my question.What's the FW configuration and How to change it in this board?
I found that the STM32WB55 microcontroller have SMPS but I cannot understand how much external component is required.Here is basic SMPS circut and could you tell me how much circuit is in the microcontrollers SMPS?
BQ_GE_GPIO_Port->MODER = GPIO_MODE_ANALOG;//setting to analog to save powerThis seems to not work at all. I have a physical pulldown on the pin but the pin stays HIGH. Why is that?i init the pin via this code here:__HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = { 0 }; /*Configure GPIO pin */ GPIO_InitStruct.Pin = BQ_GE_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(BQ_GE_GPIO_Port, &GPIO_InitStruct); my understanding is that i can jsut switch between the modes to save power when going into sleep. And that when its in Analog mode that it will not use any pullup internally. i have apulldown externally on the pin with 400k ohm.
I have some question on the power profiler for STM32WN on STM32Cube MX.I found that we can add BLE configuration on the left side of the tools, and it automatically calculate the average data of the BLE part.However the maximum advertisement interval in mS is only 4000mS, but the BLE is capable to advertise up to 10S, can it be increased to 10S to get the average data?Also when i try to add a step on the sequence on the main window, the BLE average current can be added into any step.I add 2 steps, step 1 is RUN for 4mS and step 2 is STOP2 for 996mS.When i add it to the RUN mode, it will add the average BLE current into the run interval only and which is only 4mS compared to 1S combined of the 2 steps.I have added the BLE peripheral into the STOP2 mode, but it seems the current is added only to the RUN mode, which make the final average current consumption pretty small.Is it hust how it works? because I notice that both core work independently with each other.I think that the BLE curren
// 25AA040A instructions const uint8_t EEPROM_READ = 0x03; // 03h Normal Read Data const uint8_t EEPROM_WRITE = 0x02; // 02h Page Program const uint8_t EEPROM_WRDI = 0x04; // 04h Write Disable const uint8_t EEPROM_WREN = 0x06; // 06h Write Enable const uint8_t EEPROM_RDSR = 0x05; // 05h Read Status Register const uint8_t EEPROM_WRSR = 0x01; // 01h Write Status Register const uint8_t EEPROM_RDSR2 = 0x35; // Read Status Register 2 const uint8_t EEPROM_RDSR3 = 0x15; // Read Status Register 3 const uint8_t RESETENABELE = 0x66; const uint8_t RESETDIVICE = 0x99; const uint8_t CHIPERASE = 0x60; const uint8_t ID = 0x9F; const uint8_t ERASE = 0x44; const uint8_t BLOCKERASE = 0x20; // Variablen char spi_buf[20]; uint8_t addr[3]; uint8_t wip; // CS pin should default high HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); // Enable write enable latch (allow write operations) HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); memStat = HAL_SPI_Transmit(&hspi1, (uint8
Greetings,Recently I tried to implement a ZigBee custom cluster by taking inspiration from the custom long string cluster.Basically, the client is requesting data by using ZbZclClusterCommandReq and the server is answering thanks to the ZbZclClusterCommandRsp.I noticed that when the server is the coordinator nothing goes wrong, but if it is a router, the registered client callback returns a status ZCL_STATUS_TIMEOUT.In order to analyze the problem, I replaced the ZbZclClusterCommandRsp function with ZbZclClusterCommandRspWithCb in order to get the status after the message was enqueued. The status I received in the callback was ZB_APS_STATUS_INVALID_PARAMETER.What can be the cause of this error? Is there a way to get more details about this error?Thanks in advance,E. C.
Hi everyone,I have been stuck at a problem. I have been trying to configure HAL_Delay function to work in STM32 BLE_Server example in the STM32WB SDK. However, for some reason, the code gets stuck inside the HAL_Delay() Function. I have searched over the internet and tried the solution to increase Systick interrupt priority. Still there's no solution to my problem. Please help me out.
Hi, newbie here, while browsing the Examples for the NUCLEO-WL55JC1, it came to my attention that some have a dualcore version. The SubGHz_Phy_PinPong for Example.Does one core get disableled in the non dualcore Version? And how can i change the setting? Greets, Daniel
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.