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
The readme.txt file for BLE_HeartRate_ota contains the following:@note This application is not supported by CubeMx but has been copied from the project BLE_HeartRate generated by CubeMx with some modifications in order to be able to download it with the BLE_Ota application. The steps to be done to move from the BLE_HeartRate application to the BLE_HeartRate_ota application are : - Copy the full folder BLE_HeartRate - Replace the linker file stm32wb55xx_flash_cm4.icf by stm32wb55xx_flash_cm4_ota.icf ( this adds the placement of the two sections TAG_OTA_START and TAG_OTA_END ). - Remove the update of SCB->VTOR in the file system_stm32wbxx.c ( The VTOR is already set by the BLE_Ota application and shall not be changed to a different value) - set BLE_CFG_OTA_REBOOT_CHAR to 1 in ble_conf.hHowever, comparing the two source directories I see many more differences and find it difficult to identify and merge all of the required modifications. BLE_HeartRate_ota does not appear t
While debugging an application on the M0+ core of a STM32WL55JC device, the debugger showed what appears the incorrect execution of an ARM machine instruction.The codesnippet at the beginning of the execution is shown in Image #1:(the original C code compiled is a trivial "switch" section, but this is irrelevant)Everything proceeds as expected until the instruction shown in Image #2. The execution of the "ldr r3, [pc, #396] " instruction @0803845c, however, seems to yield an incorrect result (as shown in image #3):expected -> r3 = 0x80385ec (as also reported in the comment placed by the compiler)obtained -> r3 = 0x803a868From the memory dump (image #4), the opcode of the instruction appears to be correct according to ARMv6-M Architecture Reference Manual (DDI0419D_ARMv6-M_arm.pdf), section A6.7.27, p. A6-127:0x803845c -> 63 4B (= 4B63) 01001 LDR <Rt>, [PC, #<imm>]011 <Rt> = R301100011 = 99; <imm> = 99*4 = 396(The followi
Good day,On a brand new SMT32WB5MMG MCU, I have found that the One-Time Programmable area is not empty. See the image. The OTP area starts at 0x1FFF7000. There is also some data right before the OTP area - what is that doing there as well?For context, I'm using the STM32WB5MMG in a custom application (i.e. not a NUCLEO board). I have seen the same issue (and the exact same data) on two different boards.I did not encounter this issue when using an STM32WB55RGV6 previously.Has anyone else encountered this?
I am using STM32WB55, and try to implement power saving functionality.I am using FreeRTOS and have a task that checks for the sleep conditions, and if they are met, it shall put the device in the lowest power mode possible. Wake-up is then triggered by an interrupt on PA0 (falling edge). After wake-up, the code will do a NVIC_SystemReset, so there's not a lot to worry about regarding SRAM data retention, restarting RTOS etc.I have been able to utilize the STOP2 mode like so:vTaskSuspendAll(); uint32_t dbgMcuCr = DBGMCU->CR; DBGMCU->CR = 0; PWR_EnterStopMode(); DBGMCU->CR = dbgMcuCr; NVIC_SystemReset();If I place breakpoints on lines 4 and 6 and run the code in debug mode, it hits the breakpoint on line 4 just before the MCU enters STOP2 mode. During STOP2, STM32CubeIDE keeps printing "Target is not responding, retrying..." which is understandable. When I trigger the IRQ on PA0 fast enough before it stops retrying, the debugger just reconnects and the breakpoint on line 6 is hi
Im' following this tutorial of STM32WB55: https://www.youtube.com/watch?v=CKYWy7LKL68&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=19&ab_channel=STMicroelectronicsAll is fine until I try to generate code. It gets stuck at the moment of "Copying libraries files...". What I have tried is not to generate code Under Root. But the problem after doing this is that I can't compile the project. And returns to me 9 errors, all of them sayng that one of the files has "Invalid arguments".Is this a problem of CubeMX? I have tried it with the same versions that the tutorial use:-Cubeide 1.7-CubeMx 6.3-STM32Cube_FW_WB_V1.12.0And I also tried it with all the latest versions-Cubeide 1.9-CubeMx 6.5-STM32Cube_FW_WB_V1.13.2And I always have the same results.
Hi, from the micropython repository there is a note on a problem regarding address resolution, it is reported at this link.Are there any details about it? is this a known and solved problem? or still open?Thanks and regards
The quartz used for HSE on the nulceo-wl55jc and on the reference design for stm32wl is NX2016SA 32MHz EXS00A-CS06465, which has a 10pF load capacitance (the BOM for reference design even mentions 8pF, but the quartz reference is actually 10pF).The minimal value for SUBGHZ_HSEINTRIMR is 11.3pF, so higher than the load capacitance of recommended quartz.Does it works thanks to the fact that parasitic capacitance is lower with internal bank capacitance? Still, in such a case, it seems that trimming is only possible in one direction?Is 10pF really the recommended value or is it better to go for a quartz with a 12, 16 or 20pF load capacitance?Thank you
Hi everyone,I modified the project https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node so that my MCU - STM32wle5c8 can communicate with lora but I get the error ("IRQ_CRC_ERROR") as shown below and the MCU can't communicate with lora. Can someone give me a solution to this problem?Or is there any way i can check if my MCU can communicate with lora?Thank you so much my friends
I have function to receive Dev EUI, APP Key, and NWK Key data from UART. Then, I want to put and replace of Dev EUI, APP Key, and NWK Key in se-identity.h with my own data which I have saved in flash memory. But, an error occurs when only include my own file header in se-identity.h after compiling, It also happens to when only include main.h. How can I include my own header file in se-identity.h without error ? Or maybe there is another way to change Dev EUI, APP Key, and NWK Key without hardcode in se-identity or FUOTA ?Any assistance would be greatly appreciatedError occurred:
Hi everyone,I'm trying to convert our IoT Sigfox sensor from EFM32 to STM32 architecture.As a beguinner on STM32, I'm using an LSM100A eval board based on STM32WLE5CC.Can anybody explain me how to create a simple Sigfox project ? I just want to send a simple Sigfox message.I try to start from the PushButton skeleton available on project configuration but there is alway something missing in the generated source code. First build give errors like these :../Core/Src/timer_if.c:337:51: error: 'RTC_N_PREDIV_S' undeclared (first use in this function); did you mean 'RTC_PRER_PREDIV_S'?../Core/Src/timer_if.c:415:30: error: 'RTC_PREDIV_S' undeclared (first use in this function); did you mean 'RCC_PLLDIV_3'?Any help would be greatly appreciated !Thanks,Johann
..
Hello~Hello. I am developing a BLE device using STM32WB55RG.The test board I am using is as follows.P-NUCLEO-WB55MB1335D-01After receiving the board for the first time, I wrote Middleware BLE of STM32_WPAN at STM32CUBE IDE, and communication with my mobile phone's ST BLE ToolBox was very good.However, after upgrading the stack using STM32 CubeProgrammer, P-NUCLEO-WB55RG cannot be found in ST BLE ToolBox.The picture below is the stack information at the time it was initially received, and the following picture is the stack information I updated.<default stack - work ble ><updated stack - do not work ble>Can I get some help?Or can I get the same version of the Stack as when I first got it?Thank you very much.
Hi.I need to design a custom board for LoRa 923MHz network.The AN5457 provides the example for 923MHz network. (A.1.6)I can get output Impedance from this example(AN5457).But I can't find LNA (Differential) Input Impedance for UFBGA73 package @923MHz.Could you please give me input Impedance data of this package and this frequency?
I am developing using STM32CubeMX and IAR Embedded Workbench for ARM (EWARM).I was using version 8.50.9 of EWARM.I have upgraded to the latest EWARM v9.20.2.Then the firmware that was working with EWARM v8.50.9 stopped working.I also tried EWARM v9.20.1 and v9.10.2 but it didn't work.Is it necessary to use EWARM v8.xx.x for the source code output by STM32CubeMX?
Hi together,I am trying to enter standby mode on my stm32wb15 during ble application using the following code:void UTIL_SEQ_PreIdle( void ) { if(Custom_App_Context.current_state == APP_SLEEP_STATE){ HAL_SuspendTick(); if( (LL_PWR_IsActiveFlag_C1SB() == 0) || (LL_PWR_IsActiveFlag_C2SB() == 0)) { /* Set the lowest low-power mode for CPU2: shutdown mode */ LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN); } /* Disable all used wakeup sources*/ HAL_RTCEx_DeactivateWakeUpTimer(&hrtc); /* Clear all related wakeup flags */ __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); /* Enter the Standby mode */ HAL_PWR_EnterSTANDBYMode(); /* Program should never reach this point */ Error_Handler(); } }The problem is like mentioned above that the mcu immediately jumps to main() after HAL_PWR_EnterSTANDBYMode()
Hello! I'm following the example here but with RF enabled to put my STM32WB into low power run mode (https://github.com/STMicroelectronics/STM32CubeWB/blob/master/Projects/NUCLEO-WB15CC/Examples/PWR/PWR_LPRUN/Src/main.c)I'm running into an issue where whenever I call: SystemClock_Decrease(), I'm instantly losing RF connection.Here is my system clock configuration:RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; /** Configure LSE Drive Capability */ HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE |RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.LSEState = RCC_LSE_ON; RCC_OscInitStruct.HSIState = RCC_HS
@oneshot.triplekill@qq.com @Salvo @Sebastien DENOUAL
Hello,I configure SUBGHZ peripheral to communicate with a RF433MHz module.The RF433MHz module send preamble and synchronisation word in little-endian fashion (bit 0 first, bit 7 last) For example, a Sync Word pattern of 0x2D 0xD4 is transmit as 0xB4 0x2B and the preamble of 0b10101010 is received 0b01010101How can I configure the SUBGHZ peripheral to receive preamble and synchronization word correctly?Thank you,Sincerely.
Hello.I purchased development board Nucleo-WL55JC2 based on STM32WL55JCI7 and am developing software for wireless data transfer.The documentation (RM0461) says:4.7.1 Startup modeAt POR or after a sub-GHz radio reset, the Startup mode is entered. BUSY is set. Wheninternal supply and clocks become available, the sub-GHz radio enters Sleep mode.4.7.2 Sleep modeIn Sleep mode ... BUSY is set...Following a POR sub-GHz radio reset, the Deep-Sleep mode is entered from Startup mode....Exit Sleep mode can be done:• on a firmware request via the sub-GHz radio SPI NSS signal (keeping sub-GHz radioSPI NSS low for at least 20 μs)• on a request from the sub-GHz radio RTC timer generating an end-of-count event(corresponding to duty cycled operation)Examining the behavior of the MCU, I found that to clear RFBUSYMS,RFBUSYS bits ( PWR_SR2 register) it is enough to clear RFRST bit (RCC_CSR register). Thus, the documentation contains an inaccuracy. I'm right?Also I found that after the RadioSPI exchange, w
Hello,I am trying to store as much data as I can into STM32WB55RGV6 flash.So far I've figured out that main memory span addresses 0x08000000 - 0x080FFFFF.I also know that CPU2 reserve some space at the end of the main memory and I am able to read the address at which it starts - this gives me last safe address to use.However I cannot seem to figure out how to find the addresses occupied by main program code which is somewhere at the beginning of the main memory.I've written test code that program flash from CPU2 secure sector, all the way down to 0x08000000 which runs fine until hardware fault is thrown upon write attempt below 0x08000000 or when some parts of main program code is overwritten.During this experiment HAL_FLASH_Program never return any errors.My goal is to read what is the first (looking from bottom up) safe address to write to in flash so I can safely store as much data as possible.
In STM32CubeIDE -> Middleware -> STM32_WPAN-> BLE Application and services, there are 2 parameters "Custom P2P server" and "Custom template". How are they different and under what conditions should be used?
HelloI am able to succesfully run the "RF Tests" using a nucleo board (STM32WB55) and a dongle, both connected on the same computer via virtual com port.Now I'd like to change some parameters for the test, e.g. the TX interval on the nucleo board. I thought I can do this via the ACI commands HCI_LE_SET_ADVERTISING_PARAMETERS.However, if I change the minimum and maximum advertising interval, nothing changes. I run the test for about 5s and I get about 8000 packets on the receiver which corresponds to the 0.625 ms interval. If I change the intervals, I still get 8000 packets.What do I am missing here?
Reference: https://www.st.com/resource/en/application_note/an4760-quadspi-interface-on-stm32-microcontrollers-and-microprocessors--stmicroelectronics.pdfIs there a particular reason (technical or HAL-driver related) that is behind this non-inclusion of STM32WB5MMG in the list of supported QuadSPI STM32 MCUs?@Imen DAHMEN (Employee) @Amel NASRI (Employee) @STOne-32 (Employee)
Hello, I am working on an application and the power consumption is a bit high as of now. I would like to know the different low power modes and how to wake up from those modes. Could you please help me with the documentation and sample codes?
We've switched to new DC-DC(LM3281) for main power supply and found that BLE TX stopped working correctly and not passing packet test anymore.After deeper investigation we found that our DC-DC in ECO mode has ripple/pulsation of 60mV/50uS, which causing this issue.Switching DC-DC into PWM mode solves the issue, but power consumption raise makes this option undesirable.Issue can be reproduced on Nucleo board with Transparent VCP test firmware and CubeMonitor-RF in packet test mode. Questions:How clean power supply should be and where this information can be found?Is there any way to expose radio phases that requires clean power supply to GPIO?Is it bug in core2 firmware or expected behavior?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.