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 Every one i am using the STM32WB35CC SoC for custom BOARD, I am facing an issue that when i tries to write EEPROM I get correct response checked using Logic Analyzer but when i tried to read eeprom I GET HIGH impedance with every address. The Eeprom i am using is CAT25320 .... waiting for solution
aci_hal_tone_start(..)fails for channels 3 and 4aci_hal_rx_start(..) fails for channel 3hci_le_transmitter_test(..) works on all channelshci_le_enhanced_transmitter_test(..)fails for channel 3,4,5,6hci_le_enhanced_receiver_test(..)fails for 3,4All fail with INVALID_HCI_CMD_PARAMS (0x12)all methods fail regardless of the other supplied parameters.What is causing this?Info:FUS: v1.1.0Wireless Stack: v1.6.0STM32WB55CE
I have been using the APP_LOG() macro from stm32_adv_trace.c to output messages while developing with the STM32WL55. This uses DMA transfers with the UART.I thought it would be useful to use the SWD debug port for console output, instead of the UART. I have got it working, but my code is involved a few hacks and I wondered if ST or others have a proper version they could share?If not, here is some of what I learnt.Console output (and other useful features) are available on the SWO pin (which is PB3 on my processor). If properly enabled in STM32Cube then characters can be displayed on a "SWV ITM Data Console".You will find quite a few online tutorials for directing printf() output to SWO instead of UART TxD. At the lowest level this involves changing this:int __io_putchar(int ch) { HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF); return ch; }to this:int __io_putchar(int ch) { HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF); return ch;
Hello, I am new to the STM32 world.my little board STM32 (LoRa) form ChinaST-LINK SN : 53FF6D066687505145250967ST-LINK FW : V2J38S7Board : --Voltage : 3.26VSWD freq : 4000 KHzConnect mode: NormalReset mode : Software resetDevice ID : 0x699Revision ID : Rev ZDevice name : STM32WLxxFlash size : 128 KBytesDevice type : MCUDevice CPU : Cortex-M4BL Version : 0xc2Read Out Protection: RDP : 0xAA (Level 0, no protection) BOR Level: BOR_LEV : 0x0 (BOR Level 0 reset level threshold is around 1.7 V) User Configuration: nBOOT0 : 0x1 (nBOOT0=1) nBOOT1 : 0x1 () nSWBOOT0 : 0x1 (BOOT0 taken from PH3/BOOT0 pin) SRAM_RST : 0x1 (SRAM1 and SRAM2 are not erased when a sy
Is it possible to confirm the parameters and peripherals are used properly in order to work with BLE (SPBTLE) I used the MKSBOx1V1 Schematic and MX Cube and Firmware version is 1.17.0 is that is ok?
I am trying to make a simple BLE scan and advertising program which is supposed to advertise a set of changing data and scan for other devices. The advertising is completely non-connective and works as a dumb beacon, and so is the scanning. The application is based on the HRS FreeRTOS example for the nucleo wb55, modified to remove the HRS-specific parts and with simple advertising and scanning added. After app_ble is done with all the initializing it goes on to create the advertising data and run aci_gap_set_discoverable with the correct settings (non-connectable, min advertising interval of 70 ms, maximum of 130, public address, no white-list) and add the advertising data using aci_gap_update_adv_data.Then it runs aci_gap_start_observation_proc(0xA0, 0x60, 0x00, 0x00, 0x00, 0x00);, which should mean scan interval of 100 ms, scan window of 60 ms and no filters.None of these commands return an error but seem to run just fine.The scan packets are received through SVCCTL_App_Notification
Hello, I need to add characteristics without using the mechanism of the ioc configuration file. After only 3 (!) characteristics, the function aci_gatt_add_char( ) returns BLE_STATUS_OUT_OF_MEMORY.The available documentation is not usable to find a solution. Why isn't there any chapter in pdf like AN5270 or UM2550 which simply explains how to do (The better way would be to increase your ioc tools to get done the job).A customer told me that your "BLE software stack, c'est de la merde"... "It is too complicate (you should compare it to silabs or nordic) and with many errors."RFCBest regardsPaul
It seems to enroll well to APP but when I try to send a message the aci_gap_init return the status value 0x46, BLE_STATUS_NOT_ALLOWED/* USER CODE BEGIN FD_WRAP_FUNCTIONS */tBleStatus P2PS_STM_App_Update_Buffer(uint16_t UUID, uint8_t *pPayload, uint8_t length){uint8_t role = GAP_PERIPHERAL_ROLE;uint16_t gap_service_handle, gap_dev_name_char_handle, gap_appearance_char_handle;tBleStatus result = BLE_STATUS_INVALID_PARAMS;result = aci_gap_init(role, 0, APPBLE_GAP_DEVICE_NAME_LENGTH, &gap_service_handle, &gap_dev_name_char_handle, &gap_appearance_char_handle); switch(UUID) { case P2P_NOTIFY_CHAR_UUID: result = aci_gatt_update_char_value(gap_service_handle, gap_dev_name_char_handle, 0, length, pPayload); break; default: break; } return result;}Thanks,
Hi, We have encountered the following situation: Once the equipment is Joined to the network, if by chance there is a power cut that affects the Gateway and it restarts, we have realized that we stop receiving data from the device. Our Device can be configured with or without Confirmation ACK.In the case that it is configured without confirmation ACK. We can't know whether there is a power cut and we stop receiving data. What is the correct way to detect and treat this situation?In the case that it is configured with confirmation ACK. We can check if after an uplink we receive the ACK or not, to be able to treat it. We checked in the OnTxData Callback if the MSG_Type was LORAMAC_HANDLER_CONFIRMED_MSG and in that case if AckReceived was 0 we know that the Gateway is not responding with the ACK to the Uplink, and in that case we Reset the device to Force a Join Request. Is it the correct way to detect and treat this situation?Best Regards
I've found a significant difference in the function MX_TIMx_init() function generated from STM32 development tool for two different platforms. The first (it work) is generated for NUCLEO-F413ZH the second (it doesn't work) is generated for NUCLEO-WL55JC1 (LoRaWAN End Node). On the second one, the clock seems not initialized.First code:void MX_TIM16_Init(void) { /* USER CODE BEGIN TIM16_Init 0 */ /* USER CODE END TIM16_Init 0 */ /* USER CODE BEGIN TIM16_Init 1 */ /* USER CODE END TIM16_Init 1 */ htim16.Instance = TIM16; htim16.Init.Prescaler = 48-1; htim16.Init.CounterMode = TIM_COUNTERMODE_UP; htim16.Init.Period = 65535; htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim16.Init.RepetitionCounter = 0; htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim16) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN TIM16_Init 2 */ /* USER CODE END TIM16_Init 2 */ }Second code:static void M
I can read characteristic value in P-NUCLEO-WB55 based application with ACI_GATT_READ_USING_CHAR_UUID command. However, I do not find any command for subscribe for notification (AN5270 docs neither STM32CubeMonitor-RF ACI commands). How can I subscribe for a notification? Note: Our characteristics has read and notify property, I can subscribe to notification with BLE sniffer app on Android. I would like to do the same with STM32CubeMonitor-RF or via COM port).Thanks,David
Hii guys,we are using the STM32WB50 controller in our project. Stream 23000 bytes continuously in a second(46bytes after every 2-millisecond interval) using Bluetooth low energy system provided by the STM32WB microcontroller.To successfully transmit data from transmitter to receiver, we refer to the BLEDataThroughput project provided with the STM32WB cube library. MTU size: 251 BytesGatt characteristic size: 255 Bytes using property notifyConnection Interval min & max: 7.5 msPHY: 1M( STM32WB50 limit)Is there any manner or sequence to update BLE connection parameters MTU size and connection interval?Because after all the above updates, we are getting data losses at the receiver end.We transmit data from the server using function aci_gatt_update_char_value()we reach upto aci_gatt_update_char_value() function using utility functions UTIL_SEQ_SetTask() , UTIL_SEQ_Run() SendData() and ***_STM_UpdateChar()asvoid SendData( void ) status = DTS_STM_UpdateChar(DATA_TRANSFER_TX_CHAR_UUID, (u
I play with two STM32WB55 eval boards and BLE_CableReplacement project.It seems that whatever I try, I'm not able to change ATT MTU value to get more data troughput. It is set to 156 in the original project but it seems to stay at the default value 23. I've checked everything in source code and it looks correct.I use STM32Cube_FW_WB_V1.12.1 and I've upgraded the firmware accordingly (stm32wb5x_BLE_Stack_full_fw.bin).What can I try now ?I also play with BlueNRG-LP and I can read the same limitation to 20 bytes when calling aci_gatt_clt_write_without_resp(), in project BLE_SerialPort_Master_Slave, (Send_Data_Over_BLE() in serial_port.c).
I am able transmit 240 bytes of data from STM32WB BLE p2p server. This data want to receive on STM32WB BLE p2p router code.I am getting ACI_GATT_NOTIFICATION_VSEVT_CODE case executed but I see pr->Attribute_Value_Length is 20. I am transmitting 240 bytes but I receive 20. If I transmit data less than 20 then at receive side correct information and correct data length is received.Please guide me how can a receive all 240 bytes correctly and repeatedly. Thank you in advance!
Your updates are always valuable to me, but I've always suspected that update firmware won't bother a device already running.The same happened in the STM32WB new update (FW version 1.12.1), in this update BLE and GPIO interrupts are not working simultaneously because all interrupts are clear in MX_APPE_Init() function which is call after the initialization of all peripherals(included GPIO interrupts).
HelloI am experiencing two problems.My development environment is STM32L072CZ-LRWAN1.You are now using a combination of END_NODE and AT_SLAVE examples.I'll sort out my problems.The first is that 'SET' values are not operated through features such as AT+DEVEUI, AT+APPEUI, etc.#define STATIC_DEVICE_EUI 0Modified to above define to change settings.butAT+DEUI=11:22:33:44:55:66:77:88AT_ERRORAs shown above, only errors continue to occur and do not change.AT+DEUI=?AT+DEUI?The above 2 functions operate normally.I will attach the serial output as a picture The second is that once the MCU is reset, it stops working. I'm currently using LPUART1.Please advise how to solve this problem.
Hi everybody,I think I have the same problem as CTare (https://community.st.com/s/question/0D53W00000fo0kcSAA/unable-to-install-wireless-stack-on-stm32wb55?t=1628516513992) I coudn't reply to that post because it's already archived. My setup: Nucleo WB55RG board. I tried to fully understand the FUS, Stack programming including all the options. After 6hours I end up with a board that I can communicate with using STM32Programmer (v2.8, 2.7 and 2.5, each of them in DFU or STlink mode) but I'm not able to reprogram FUS and RF-Stack (in my case BLE). I attached my batch file that is derived from Quintin and the response the board gives (because of the limitations in this forum as one pdf file :worried_face:). What makes me very suspicious is the FUS firmware version that is replied to be v0.0.0.00 (that's the same I can see in STM32Programmer. So it seems to me that there is no FUS at all - although the programming command don't show errors.Similar to CTare I'm not sure if I hit the 'antiro
I have a custom board with STM32WB50CGU5 controller. I want to develop an application on this board having BLE, and IRDA.I am able to run the example (p2p Server and p2p Client) given for the STM32WB55 Nucleo board on my custom board without any error and its working fine. Now I want to use the example code for my custom board which has different controller and UART is IRDA.Is it possible to use it?How this can be achieved?
I have the P-NUCLEO-LRWAN3 package with the LoRa expansion board using the RisingHF chip.According to the RisingHF documentation, the built-in processor in the RisingHF module is a STM32L07x chip and can be programmed through the bootloader. I have already upgraded the RisingHF firmware once using their binary, so I know the bootloader works. However, I have built a basic "Hello world!" binary (using STM32L071, L072, and L073 project configurations in the STMCubeMX) and attempted to install that on the RisingHF chip using the same bootloader procedure, but the uploaded code does not execute and the bootloader screen is displayed. Any ideas of which chip specific chip is inside the RisingHF module eg. STM32L071C8? I can supply my expansion board's serial number if that would help?Any advice would be greatly appreciated.
..
Greetings,From what I've read of the Cube code and guidance in AN5289, we enter STM32WB low power states by putting the M4 into the low power state we want. If we need the M0 to continue to advertise, for example, we would configure it to do so and then put the M4 into low power.I have two questions, related, to this use case.1) Is this a correct understanding how how we are supposed to put the STM32WB into a low power state, e.g. stop2? Can we put the M4 into stop2 while waiting for a BLE connect event. When the event generates an interrupt, the M4 awakens and can handle to event. Does the M0 always go into low-power states? What triggers it?Or, do we need to also send an explicit message to the M0 telling it we plan to go into low power? I haven't found any code doing this, but there is an SHCI opcode SHCI_OCF_C2_RADIO_ALLOW_LOW_POWER which is 0x6d. There doesn't seem to be an example that uses this code.2) What will the M0 do when we are configured to use HSE for RF wakeup instead o
Hello,I have mesh node with proxy feature. After provision, I can see that node advertising Mesh Proxy Service (UUID 0x1828), How can I update Mesh Proxy Data Out (UUID 0x2ade)? I spent a lot of time searching for some callback or function, where I can do it, but no results...I am using STM32CubeWB v1.10.0 and Nucleo WB55. Example BLE_MeshLightningPRFNode.Thanks for any useful tips and advice!Vit
I bought an stm32lb072 development board and wanted to learn the sigfox module on this board. I plan to send signals using modulation commands and receive messages on the SDR dongle of sigfox. Now I only get the ID of sigfox module in the development kit and activate it successfully on the official website, but the at command input to send data does not return OK, and LED4 representing sending data on the development board is always on. How can I communicate between the development board and dongle?
The API (SIGFOX_API_send_frame) found in the examples of PushButton and AT_SLAVE of STM32WL SINGLE CORE (https://www.st.com/en/embedded-software/stm32cubewl.html), versions 1.1.0 and 1.0.0, is without prototype and the sigfox does not work (does not send). This is normal?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.