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
Details:TX Power on Board: 14dBm (LP)Omnidirectional TX antenna (on board): 2dBiDirectional RX antenna (LPDA): 4dBiDistance: 0.5m free space with minimal interference in labFrequency: 868MHzFSPL (868MHz @ 0.5m) = -25dBExpected P_ in RX: -5dBmMeasured P_ in RX: -74dBmIf anyone has encountered something similar or knows how to boost the TX power (without using RFO_HP), please let me know, as I'm not sure that the board is actually transmitting 14dBm.
Hello ST team,We're having an odd SPI bug with our custom board.We made a board based on the STM32WB55, everything seems to work fine except for this issue.We're trying to use the spi in mode 0 (CPOL=0 CPHA=0) , but we can't make it work.We have these settings: and our code looks like thiswhile (1) { uint8_t payload_instruction[1] = {0x9F}; mcg_SX1509B_set_output(INT_SPI_CS_FLASH, 0); HAL_SPI_Transmit(&hspi2, payload_instruction, sizeof(payload_instruction), HAL_MAX_DELAY); mcg_SX1509B_set_output(INT_SPI_CS_FLASH, 1); HAL_Delay(700); }And no matter if we set CPHA = 1 edge or CPHA = 2 edge the SPI signal is the same We tried the same test on a Nucleo Wb55Rg and we had the expected result but not on our custom board.Is there anything software or hardware we miss to acheive spi mode 0 ? Thanks you,Yohann
Hello community,I am designing the STM32WL module for the EU868 (south Africa) region based on the LoRAWAN application. As per the datasheet of stm32WL, the max power used in transmitting is 14 dBm @ 868MHz, so with the reference from the Lora-alliance (PAGE 27) document given below, we are selecting Low power mode for RF.Because for high power the maximum power for the transmitter is +22dBm and the minimum is +14dBm, which is not convenient as per the Lora alliance.Please suggest a suggestion for this or correct me if I am wrong.https://www.st.com/resource/en/datasheet/stm32wle5cc.pdf https://resources.lora-alliance.org/technical-specifications/rp2-1-0-3-lorawan-regional-parameters
Hi,I am using LoRa-E5 mini board from seeed studio (https://www.seeedstudio.com/LoRa-E5-mini-STM32WLE5JC-p-4869.html)To program it using STM32CubeIDE, do we need to connect it to pc using ST-Link or we can simply program it via Type C cable?
I am trying to get the simple ranging example code for the 53L5A1 to work on the WB55RG board but I keep getting a timeout error.The text output the example code outputs is "L53L5A1_RANGING_SENSOR_Init failed. Check you're using ONLY the center device soldered on the shield, NO satellite shall be connected".After looking into the exact error I have found out it is caused by the I2C_WaitOnFlagUntilTimeout function in stm32wbxx_hal_i2c.c.static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t Tickstart){ while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
Need the I2C Detailed driver code which contains I2C Read/Write functionalities with DMA.Could anyone provide the code base it useful to us.Regards,Srinivas.V
Hi allSTM32WB55RG nucleo board zephyr (3.0)When BLE stack is enabled, it becomes halt.Can't I use LSI clock to make the BLE stack run ?We made a sample board, but We didn't attach an LSE.So. use LSI clock. If We use LSE in nucleo , it will behave normally, and if We use LSI, it will be halted.I want to disable stop mode, but I don't know how in zephyrDo you have any idea ? Thanks
HIMy STM32WB55 is configured as central and peripheral role.For debugging, Is it possible to establish an internal connection between them?Running two tasks to handle each app.Cheers!
HiI`m using PNUCLEOWB55 Board for testing USART1 interrupt communications.I have started a project from scratch using CubeID 1.10.1 and choosed PA9 and PA10 as TX/RX respectively with following configuration 115200Baud, WordLen 8bits(including parity), Stop bits None , Parity None.TeraTerm on the PC is also configured same way.I have enabled NVIC interrupts and using receive callbacks like below/* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { HAL_UART_Receive_IT(&huart1, &data[0], 10); } /* USER CODE END 4 */Callback is executed after 10 characters have been send from TeraTerm. Problem is , data array holds entirely different data from what I have sent. I have also tested USART_Communication_Rx_IT example project but still similar issue. I have also tested PB6 and PB7 but nothing changed. There is nothing wroing with the generation of interrupt or execution of callback. On the PC side I`m using a USB to serial converter cable. This is ho
Hi all,I would like to build a board with wireless module STM32WB5MMG.I'm using kicad and it is really difficult to insert a track for pin 84 (GND) in the central pads due to cad limitations with this BGA footprint. I would like to use only the external pads. Someone has idea if there are any problems to skip this gnd pin ?Thanks to all,Enrico.
I am pretty new to embedded programming and I am trying to set up BLE to get the sensor data from the temp sensor on the STEVAL-PROTEUS board. I set up the BLE in the .ioc file correctly and can connect to the device and service via the ST BLE Toolbox.However, I can't seem to find any entry point into the BLE code where I could add my own user code. I read the sensor data in the main function but I don't know how to use the sensor data from main to replace the generic value that is currently transmitted via BLE.If anyone could point me to the right file/function to add my code or if anyone knows a tutorial that goes beyond the setup of the .ioc file i would be very grateful!
Hi. I am working on STM32WB55 and I need to implement a digital signature verification function. I know this MCU has PKA for this purpose, but I also found that ST produce STSafe-a100 module, that in my understanding does about the same, at least for my use(ECDSA). So the question is, what is the difference between those module and do I need this STSafe-a100 in my device? Appreciate any tip. Thanks.
..
Hello,I made my custom board with a STM32WLE5CC micro and I am trying to program it using the SW interface. I have a ST-LINK/V2 where I connect the SWDIO, SWCLK, TRACE_SWO, NRST, VCC and GND pins from my board.When I try to program it using STM32CubeIDE, an error jumps when the programing is at 92% (almost completed) . This is the error: When I try to connect to the device using STM32CubeProgrammer two things happen. First thing is what we can see in the following picture: When I try to connect in Normal mode an error jumps saying: "Cannot connect to access port. If you are trying to connect to a device with TrustZone enabled please try to connect with HotPlug mode" (which is weird because I never programmed this chip before, never touched the TrustZone)So, then I try to connect in HotPlug mode and works: However I still cannot debug my program trough STMCubeIDE because the first error persists. Besides, I guess that I should be able to connect using the normal mod
Hi guys,I'm quite new on the STM32 environment, I bought a couple of STM32WB55RG nucleo board, I programmed the M0 with the Thread_MTD firmware and the M4 with the example for Thread SED CoAP multicast.All software package on the SMT32CueIDE are up to date.I removed the J2 jumper and inserted a uA meter with logging capabilities. And I see that the device will never go under 600uA.I was expecting something about 1 magnitude lower (so 10-100uA), what am I missing?Best
I would like to keep updating a char value with every connection event.Im using a stm32wb15.every time I get a ACI_HAL_END_OF_RADIO_ACTIVITY_VSEVT_CODE with last state 0x02 which correspond to - 0x02: Connection event slave.As I understand this means a connection event has ended and I can now update the char value again with aci_gatt_update_char_value(...)But it seems that ACI_HAL_END_OF_RADIO_ACTIVITY_VSEVT_CODE with last state 0x02 happens more frequently than the connection interval and I get an error from aci_gatt_update_char_value.Is the last state 0x02 not corresponding to the connection event?And do you have any suggestions on how to update the char value and send indication every connection event?Best regards Wallentin
Hi everyone,i'm trying to use the LPTIM1 in the STM32WB55 on STOP2 mode.I have a STM32WB5MM-DK and I want to generate a PWM on the pc1 output.I configured on the ioc file:LPTIM1- counts internal clock event- checked waveform generation-parameter: prescaler div1 update immediate trigger software output polarity highCLOCK CONFIGURATIONLPTIM1 clock mux on LSE (I tried the LSI with same result)CODE DBG_PRINTF( "*________START PWM______\n\r" ); if (HAL_LPTIM_PWM_Start(&hlptim1, PeriodValue, PulseValue) != HAL_OK) { Error_Handler(); } DBG_PRINTF( "*________START DELAY______\n\r" ); HAL_Delay(20000); /* ### Enter in Stop mode ########################################### */ DBG_PRINTF( "*________START LP______\n\r" ); HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI); DBG_PRINTF( "*________EXIT LP______\n\r" );So, start the pwm at the right frequencythen wait for 20sbut when the system enter in stop mode, I no longer have the
Hi.I have STM32WB5MM-DK board and I'm trying to download an image file provided by ST for the BLE stack application. I had FUS and BLE stack installed, downloaded new BLE stack image (version 1.13 full) to address 0x809D000 (SFSA was 0xCB, 0xCB - NewFileSize(0x2D) - 1 = 0x9D).I started FW upgrade procedure and it all went well, but after resetting the board, I didn't received CPU2 startup event.I tried to check FUS info using STM32CubeProgrammer, but every command is receiving an error and reading FUS info shows FUS and STACK versions 0.0.0.0. Reading SFSA is shown 0x9D and even FW delete is failing.Any idea for what happened or how can I fix it?Thanks.
Hi!I want to develop the AT Server for STM32WB55. I am using the custom template where all the BLE setting is already performed and now I want to write code for AT commands. What I do is to receive the command from the COM port and then execute it. E.g. ATDEVICE will give me name with which the WB55 is advertised. I can see all the funtions etc in app_ble.c file.The problem is when I want to do something in response to the AT command e.g I want to stop advertising and call to function aci_gap_set_non_discoverable so it get stuck in the hci_cmd_resp_wait function and get stuck in the UTIL_SEQ_WaitEvt. I dont know if these two are relevant to each other. So every time I want to do something like advertise, stop advertise, change mode etc it is not running and get stuck there.I have also tried the AT server example but is not working.Any help will be appreciable.Thanks in advance.
Hi all, I'm currently working with wb55 for developing a real-time imu data streaming service via bluetooth connections. I've looked through the documentation on https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_HeartRatehttps://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_HeartRate which is an example of creating a heart rate monitor. Also, I've downloaded the code example from github and burn onto my own wb55 for trials. The questions right now I have is that, instead of going through the formal steps like creating that many files (in the figure), is there a simpler way of doing bluetooth development on wb55, for example directly use some HAL functions for establishing the advertise/scan/discoverable mode of the device, set the MAC address, and send data through saving data on some local data buffer first. what i want to achieve is to stream real-time imu readings gathered via the M4 core and send to whatever devices connect to it. (like probably with transmission rate as 70Hz
I'm playing with the above mentioned example using the WB55 nucleo board.When using a Samsung S10 on android with BLE Toolbox from STMicro we can reach 100-160kbyte/s throughput.When using a HP notebook with builtin or TPLink/ASUS bluetooth dongle the datarate is much less 30-60kbyte/sUsing a BLE Sniffer from nordic we captured the BLE traffic and see that the difference is that sometimes the PC/usb dongle hops to a channel the master sends the empty pdu but no answer from the slave (STM32WB55) happens, thus at least one connection interval of data transfer is missed.I believe here at least an "empty pdu" should be answered by the lower level of the STM32 BLE Stack. What could be the reason for such a difference? In both case the phone/dongle were in close proximity (5-10cm), in both case the negotiated interval was 48.75ms. The above was observed with 1M PHY configuration. I was not able to reproduce it with the 2M PHY.sidenote: on the above screenshot the hop sequence is 23->36-&g
I am trying to build an low power application on the STM32WB5M with the discovery kit. There is no PWR example for the DK board or the wb5m, so i am using the PWR_STOP2_RTC example for the wb55nucleo - wb55/wb5m are identical.With measurement on JP5 of the DK i am getting ~330μA for stop2 mode(should be more like 5 μA).When i try the Current measurement with an external power supply (7.2.4 UM2825) and 3,3V the application does not work at all, but there is no more discription for that kind of measurement.What am i doing wrong?
I have to programm half a dozen boards with a STM32WB55RG with BLE LLD firmware, therefor FUS has to be updated in advance. After that the application code must be programmed into the chips. I want to automate this with a batch file, so I don't have to enter startadresses and chose files three times per chip. Computer runs MS Windows 10Interface is a ST-Link/V2
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.