WATCH ON-DEMAND | STM32 Summit 2026
Ask questions and find answers on connectivity ICs, focusing on protocols and I2C challenges on STM32 Nucleo boards and BlueNRG products.
Most recent activity
I'm using the L9663-chip to read data from a sensor using the mode P10P-500/3L. The sensor is transmitting data in timeslot 2, and I can read the 10 bit data fine using the register in the L9663 and also as manchester coded data on DOUT1 if I configure DOUT1 to contain PSI5 data. However, if I configure DOUT1 to be used as an interrupt signal it just stays low.I don't really understand from the datasheet exactly how the interrupt generation should work. The datasheet says "The interrupt pin is set to high when all the buffers configured by SPI are full. The interrupt pin is set to low when all the buffers are empty." but the meaning of this is not clear to me.What should cause it to be cleared, should I try to read all three timeslots for it to be cleared? Should I configure the unused timelots (1 and 3) in some special way to signal that there will be no data in those slots?If anyone has any hints of what to check I would be very grateful!
Hi, this is regarding the bluenrg345 device We have developed a custom board for reading and sharing data via bluenrg deviceFor flashing we use RF flasher utility tool and uart bootloader via usb to uart icWe have flashed a couple of times using this method, but few of the boards (5/10) do not gets flashedstating error as " Exit flashBoard: Exception ID1: auto baudrate functionality failed " on RF flasher tool- we have tried couple of debugging and replaced few discrete components- replaced bluenrg device as well - can we know what is leading to this issue?- What is issue and how can we solve it ?Although flashing using STLINK and RF flasher tool for the exact same board does works
The ST60A3H1 looks very interesting. While I understand an NDA is required for access to the complete details on this solution, would it be possible to say if it works underwater as communication between ROV modules?Scenario:IC A | 1mm air or mineral oil | 5mm plastic | ~5-10mm (sea) water | 5mm plastic | 1mm air or mineral oil | IC BWould this work at all? Even when only working at lower speed (for example USB FS / 12Mbit) this would be interesting.
Good morning everyone, I am new to the field and would like some advice on using your sensors. I am trying to create a script in javascript (I am using noble.js) in order to connect a number N of steval bcn002v1b sensors with bluetooth connection and acquire the data that the sensor provides. I'm having problems retrieving the accelerometer data as I can't get them and i think I have to trigger accelerometer events to then acquire the data. I would therefore like to ask if you have any suggestions on how to do this as even sending buffers to the sensor it does not react in any way. Thank you very much in advance
Hi!I have a problem with reading data from MPU-6500 gyroscope/accelerometer (Arduino-module GY-6500/GY-9250). I am using the I2C protocol. When reading the WHO_AM_I_REG register ( with address = 0x75 ) I always get the number 0x70, although all publications say it should be 0x68. According to the document "MPU-6000 and MPU-6050 Register Map and Descriptions", Rev. 4.2: "The default value of the register is 0x68".To read the register I use the function: HAL_I2C_Mem_Read(&hi2c1, (uint16_t)(0x68<<1), (uint16_t)0x75, i2C_MEMADD_SIZE_8BIT, (uint8_t *)res, 1, 1000). The variable "res" always returns with the number 0x70 instead of 0x68. There were attempts on STM32F091, STM32L152, STM32F722 controllers (on Nucleo boards). The pull-up resistors are 4.7k ohms. Exchange rate 100k and 400k - the result is the same. Checking the exchange observation of signals SCL, SDA by a logic analyzer shows that on the bus I2C write / read occur without errors.What am I doing wrong? Maybe Arduino-mo
Hi everyone!I'm trying to integrate my own touch controller with TouchGFX on a custom board. My touch driver gives me XY coordinates of an event (press or release). Basically with this information I can do whaterver I want. So, for example, I can change color of a box when that box is pressed simulating a button.But if I want to use the button widget with an interaction, TouchGFX generates a buttonCallbackHandler that execute code. How can I tell TouchGFX that, if my touch driver tell me that a XY coordinate relative to the button is pressed, it should call the buttonCallbackHandler?Hopefully I wrote it clear. If it's not feel free to ask.Thank you.Niko
Hi All,I am currently using your RTC: M41T81M6F and I am evaluating to add, as additional homologation, your RTC: M41T81SM6F.I have seen that the “new” one has additional features such as oscillator Fail detection and Battery Low detection, however our Gol would be NOT to change the application FW (leaving out the additional features of the M41T81SM6F)Regarding this I have some questions:Looking to “Oscillator fail detection” paragraph of the “new” one looks like that, upon an “oscillator fail” (OF) a specific sequence it is needed to restart the Oscillator (of course the “old” one i do not have such a need). Now:Does it mean that the “old” one can recover (somehow) by itself and the “new” one cannot?Are there different failure mode between the “old” and “new” oscillator circuits?Are there any migration guide to help in understanding what we have to look in our FW to avoid regressions?Thanks in advance.Regards,Anshul
hidoes anybody nows how the auto fequency offset works?is there a register? it works only with the steval board ?how does the board calculate the correction?Thank'smarco
Hi everyone,I am currently designing my own PCB board using the bluenrg-332ac chip. I want to use the ufl/SMA port to connect my antenna without connecting the PCB antenna. So I wonder how to remove the PCB antenna from the PCB layout with only UFL port? as the PCB guideline didn't show me how to configure the matching network for the UFL port.Also, the current ufl port on the eval board is only for testing the chip's functionality and has a very low RSSI, which makes the signal too weak to be used. Thank you.Reference files: AN5526 STEVAL-IDB012V1
Hello,The STUSB1600A has a standby power mode that is described in the datasheet as being disabled by default, and can only being enabled through NVM reprogramming.However, when using the STUSB GUI (v. 3.2.3) connected to a STUSB1600A and NUCLEO-F072RB boards, there is no option / control shown for standby power mode in the NVM configuration dialog.How exactly is this mode enabled?Thanks,James
I use BLENRG-MS and stm32l07 mcu. Mcu call the APIs to control the BLENRG-MS module. MCU initialize the ble module and start observer process by calling API,and the process will be terminated in three seconds. The problem is that program may trap in infinite loop many times. The hci_tl driver is from STM32CubeExpansion_BLE1_4.2.0 packet. so whats the problem? I found "while()" statement at hci_tl_lowlevel_isr() in STM32CubeExpansion_BLE1_4.2.0 sdk. thanks./** * @brief HCI Transport Layer Low Level Interrupt Service Routine * * @param None * @retval None */ void hci_tl_lowlevel_isr(void) { /* Call hci_notify_asynch_evt() */ #ifdef HCI_TL while(IsDataAvailable()) { hci_notify_asynch_evt(NULL); } #endif /* HCI_TL */ /* USER CODE BEGIN hci_tl_lowlevel_isr */ /* USER CODE END hci_tl_lowlevel_isr */ } static int32_t IsDataAvailable(void) { return (HAL_GPIO_ReadPin(HCI_TL_SPI_EXTI_PORT, HCI_TL_SPI_EXTI_PIN) == GPIO_PIN_SET); }
I'm using Bluenrg-M2SA with and facing issue with ble connection. Bluenrg-M2SA is connecting as a client with smart watch but it gets disconnected at every 30 seconds. Error: hci_disconnection_complete_event, Reason: 13I'm using BlueNRG-1_2 DK 3.2.3. Any idea to increase the connection time from application? Also, Bluenrg-M2SA connects as a client to smart watch to read the hear rate value. It also successfully executes the heart rate service by using following code, UUID_Con_Char.UUID_16 = 0x0D18;ret=aci_gatt_disc_primary_service_by_uuid(connection_handle,UUID_TYPE_16,&UUID_Con_Serv);// it's failing with UUID_TYPE_128 but working with UUID_TYPE_16 API returns success and received aci_gatt_proc_complete_event(). Than after Enabled the all notification by using aci_gatt_set_event_mask(0x7FFFF) After that starting the procedure to read a characteristic value by following code
Hi everyone,I recently got the STEVAL-IDB008V1M dev board, I am using a M1 Macbook Air. I tried to get Wise-Studio working but the application installs but does not open for me (yes I do have GNU make, and JRE installed).So I decided to then install STM32CubeIDE and STM32CubeMX (WITH the X-Cube-BLE2, but I cannot seem to find any of the example code that comes with it). The aim was to hopefully use that to compile and flash my STEVAL-IDB008V1M. (This is a double sanity check that i have JRE installed and working properly I believe).The question I have is, outside Wise-Studio (if it wants to work), is there a way to program and flash the STEVAL-IDB008V1M on a MacOS? Or is the answer use windows instead?Thanks a bunch :)
I am interested in activating your sensors, STEVAL-IDP003V1, using a different IO-Link master instead of the ST master board. I have two questions: I am interested in activating your sensors, STEVAL-IDP003V1, using a different IO-Link master (Balluff BNI005H) instead of the ST master board. 1) Is it possible to do this without the ST master SMEMS (sensors)TEVAL-IDP004V2 board for initial commissioning? 2) The Balluff Webmaster does not recognize the device as an IO-Link device, preventing me from inserting the IODD file. 3) The Balluff master occasionally indicates a possible short circuit. The pin assignment on the connector and the short circuit measurement have been checked.
I change the HIDdescMap to uint8_t reportDesc[] = { 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x06, // Usage (Keyboard) 0xA1, 0x01, // Collection (Application) 0x05, 0x07, // Usage Page (Key Codes) 0x19, 0xe0, // Usage Minimum (224) 0x29, 0xe7, // Usage Maximum (231) 0x15, 0x00, // &n
Hi,I have a STEVAL-IOD002V1 iolink board and Nucleo-F429ZI dev board and I'm running into a few problems. If anyone is familiar with IOD002V1 I'd appreciate their help.1. The available documentation references support for NUCLEO-L073RZ and NUCLEO-G071RB. Is there support for my F429ZI or will I have to purchase one of the other 2 Nucleo boards?https://www.st.com/en/evaluation-tools/steval-iod002v1.html#overview 2. I've downloaded the required software expansion pack for STM32Cube (X-CUBE-IOD02) and but when I try to install the pack locally using the downloaded zip, the package manager claims the package isn't recognized or supported. I've also noticed X-CUBE-IOD02 isn't listed with other X-CUBE packs under the "STMicroelectronics" tab of the package manager. I'm running STM32Cube in Ubuntu if that's important.https://www.st.com/en/embedded-software/x-cube-iod02.html Thank you
Hi,I have a device that is integrated with BlueNRG-LP chip for BLE communication. The client side is an app implemented in python on windows 10. After connection is established, data starts to be transmitted from the BlueNRG-LP to the computer, however, the app on the computer always receive duplicated first data packet. All other data packets after the first data packet can be received normally. On the BlueNRG-LP side, aci_gatt_srv_notify uses indication. the program on the BlueNRG-LP side will retransmit a data packet: 1) if aci_gatt_srv_notify returns non-zero that means aci_gatt_srv_notify was not successful or 2). if the BlueNRG-LP did not receive the acknowledgement from the computer app that suppose to indicate the data packet was not received by the computer successfully.Monitoring via data packet capture tool, I can see the app on the computer did receive the first data packet twice, and each time it sent back acknowledgement. On the BlueNRG-LP side, it wa
I am working on a custom board with a BlueNRG-345 microcontroller, with the BlueNRG-LP Development kit 1.2.0 and using WiSE Studio as the development environment. I have taken the BLE Beacon project for the STEVAL-IDB011V1 and converted it to run on the BlueNRG-345 as described in section 6.2 of the Development Kit User Manual. The custom board is based on the reference design but it does not have an LSE so I have replaced the CONFIG_HW_LS_XTAL defined symbol with CONFIG_HS_LS_RO. I have commented out the call to HAL_PWR_MNGR_Request() so that I can run it under the debugger.The project runs happily on an STEVAL-IDB011V1 but when I run it on the custom board it goes into a tight reset loop. The reason it is resetting is that the user code function hci_hardware_error_event() is being called with Hardware_Code = 0x01 and hence it calls NVIC_SystemReset(). If I change the code so that it only resets when Hardware_Code == 0x03, then the beacon functionality does work, at least for a while.
Hello everybody. Currently I'm researching different power metering solutions. STPMC1 is a possible contender for my application, but I wasn't able to find some specific information in the datasheet.These are some things I'm unable to find:1) How often can the STPMC1 be read? More specifically how often is the data calculated and available to be read out? 2) Is the STPMC1 only compatible with the STPMxx series AFE's? I'm considering some similar ADC's which could have a higher performance.Many power metering ICs have a certain accumulation time which corresponds to dynamic range and error, but these devices don't provide that information.Let me know what I've missed :)
Hi,I am currently designing a PCB with bluenrg332AC and need the layout / Gerber file to make progress. But I couldn't find any on the Internet, so can anyone provide me with the file or give me some hint of finding the file? Thank you!
I am trying to set-up power management for a USB charging point using an STUSB4710 (i.e. dropping the allowable current for certain PDO when less power is available). My main issue at this point is that the I2C commands required to get this set up are unclear.The documentation for the I2C communication is deficient in any details on the I2C configuration (all the registers are given with no details on what is in them) and the "stusb47_registers - public.pdf" available on this forum lacks a lot of detail for certain registers as well. From a github source (https://github.com/usb-c/STUSB4700_PowerSharing) I found some code that indicates how the 32 bit PDO registers need to be written, at least for the STUSB4700:0-9: Max_Operating current10-19: Voltage20-21: PeakCurrent22-24: Reserved25: DataRoleSwap26: Communication27: ExternalyPowered28: SuspendSuported29: DualRolePower30-31 FixedSupplyaccording to the same firmware the max operating current is the actual value*100, whi
Hello, I'm developing a project on a NUCLEO WL55JC1 board. I require Bluetooth communication between my board and some sensors, so I'm implementing the BLUENRG-M0A module and the X-CUBE-BLE1 pack. Similarly, I'm using the SampleApp example as a base. Initially, I ran the example using two NUCLEO WL55JC1 boards and two BLUENRG-M0A modules, only the modules, not the X-NUCLEO-IDB05A1 expansion board. When running it, several important points arise.When executing ret = aci_gap_init_IDB05A1(GAP_CENTRAL_ROLE_IDB05A1, 0, 0x07, &service_handle, &dev_name_char_handle, &appearance_char_handle);, the status is 0x47, corresponding to "Error. Does not have sufficient memory to add the required gatt characteristics". My firmware and hardware versions are 1840 and 31 respectively.Sometimes, after establishing the connection from the "client" with Aci_Gap_Create and the corresponding event is generated, when trying to discover the characteristics of the service using ret = aci_gatt_disc_ch
Can you tell me is the SIM7022 is also compatible with the ST4SIM-200M. Best regards Peter Jonkers
Hello,I'm using bluenrg-lp with BLE stack initialized for Rx only, I set to GAP_OBSERVER_ROLE and the observation procedure is stopped, I'm trying to enter in sleep mode POWER_SAVE_LEVEL_STOP_WITH_TIMER based on example code : WakeupSourceConfig_TypeDef wakeupIO = {0, 0, 0, 0}; PowerSaveLevels stopLevel; HAL_VTIMER_Tick(); BLE_STACK_Tick(); NVMDB_Tick(); HAL_PWR_MNGR_Request(POWER_SAVE_LEVEL_STOP_WITH_TIMER, wakeupIO, &stopLevel); printf("Exit from sleep mode %d.\r\n", stopLevel); I added print in HAL_PWR_MNGR_Request() function : final_level : 2, app_powerSave_level : 3, level : 2 final_level : 2, vtimer_powerSave_level : 2 final_level : 2, pka_level : 3 Exit from sleep mode 0. It shows that the three parts agree for level 2 sleep mode but the final in 0 (RUN mode).It goes in this condition (in HAL_PWR_MNGR_Request()) : /* If for some reason the power save is skipped (i.e. wakeup source already active.....) */ if (RAM_VR.WakeupFromSleepFlag == 0) { final_
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.