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
HelloTo which component should I turn to make a project based on the recovery of RS232 data and to integrate a tcp server there to recover this datathanks
I am planning to use a STUSB4710 and use the reference schematic from it's datasheet (Figure 7). There is a connection between the STUSB4710 with the ST1S14's feedback pin. Is this how they communicate with each other to get for example 20V or 15V onto the VBUS line?
I write the BLE_Beacon example to BlueNRG-1 and run it, then '・'(dot?) was output every 1sec.from UART. I couldn't find where this output is written in the source code, so if anyone knows, please let me know.
Hello everyone I'm trying to use aci_gatt_clt_read_multiple_char_value() function but it are returning error 0x82 (BLE_STATUS_INVALID_PARAMS).aci_gatt_clt_read() function works as expected but I want to read multiple values for optimization purposes. Code:void refreshDeviceParameters() { PRINTF("%s\r\n",__func__); Handle_Entry_t handle_entry[DEVICE_MAX_PARAMS]; PRINTF("Handle entry: "); for(int i = 0; i < DEVICE_MAX_PARAMS; i++) { handle_entry[i].Handle = i; PRINTF("[0x%02X] = 0x%02X ", i, handle_entry[i].Handle); } PRINTF("\r\n"); tBleStatus ret = aci_gatt_clt_read_multiple_char_value(connection_handle, (uint8_t) DEVICE_MAX_PARAMS, handle_entry); if (ret != BLE_STATUS_SUCCESS) { PRINTF("Error reading multiple char values 0x%02X\r\n", ret); } }Output:refreshDeviceParameters Handle entry: [0x00] = 0x00 [0x01] = 0x01 [0x02] = 0x02 [0x03] = 0x03 [0x04] = 0x04 [0x05] = 0x05 [0x06] = 0x06 [0x07] = 0x07 [0x08] = 0x08 [0x09] = 0x09 [0x0A]
In my channel hopping application the radio is configured to start RX following any frequency change. However the frequency change may be followed by a TX instead so I may need to abort the RX soon after issuing CMD_RX from READY. Table 50 gives the response time for READY -> LOCK_RX -> RX as 111 us.AFAIK, depending on whether the radio is in LOCK_RX or RX, CMD_READY or CMD_SABORT is required to transition the radio back to READY in preparation for CMD_TX. There is a potential race condition here between querying the current state which could return LOCK and issuing CMD_READY instead of CMD_SABORT. This leads to the radio not accepting the CMD_READY from the RX state and CMD_TX later also failing.Is there a reliable way to abort the RX without looping to get the current state?What states can be reported in MC_STATE0 during the state transition from READY to RX?
@I'm new to BlueNRG. I have choosen BLE_SerialPort_Master_Slave project for my project. I need to connected with my Master(Mobile app) and receive data from the app. I would like to create a new service which is similar to the existng Add_SerialPort_Service(). Here I have created a new service function named Add_Travel_Service(). The code inside the travel_service is same as serialport_service function. Here I just want to see, how to create a new service. I compile and flash the hex file, I never see a new service added.I have increased the macros in SerialPort_config.h, however no use./* Default number of link */ #define MIN_NUM_LINK 10 /* Default number of GAP and GATT services */ #define DEFAULT_NUM_GATT_SERVICES 10 /* Default number of GAP and GATT attributes */ #define DEFAULT_NUM_GATT_ATTRIBUTES 9 /* Number of services requests from the serial port demo */ #define NUM_APP_GATT_SERVICES 10 /* Number of attributes requests from the serial port demo */ #define NUM_APP
Hi, I'm using the OTAA sx1276mb1las End Node software provided by I-CUBE LRWAN but I'm having some trouble after sending some Frames to my Gateway, the issue seems to be that MacCtx.MacState gets stuck with LORAMAC_TX_RUNNING, which I need to be in LORAMAC_IDLE in order to keep sending frames. As I said this appears to happen after a "random" number of frames sent, sometimes I can send up to 35 frames then it gets stuck with that value again. I've also noticed in the debug console that it happens after getting Mcps Confirm STATUS: ERROR.These are the logs of the last sent frame and the SEND REQUESTS getting stuck due to permanent LORAMAC_TX_RUNNING.SEND REQUESTTX on freq 904100000 Hz at DR 0TX power 20 1420s429: PHY txDoneRX on freq 923900000 Hz at DR 101421s450: PHY rxTimeOutRX on freq 923300000 Hz at DR 81422s491: PHY rxTimeOut1422s491: APP> McpsConfirm STATUS: OK1422s491: #= U/L FRAME 71 =# Class A, Port 2, data size 11, pwr 5, Channel Mask FF00 0000 0000 0000 0002 SEND
I am using I-CUBE-LRWAN SDK LoRaWAN_End_Node application. In LmHandler.c file inside LmHandlerSend() function LoRaMacQueryTxPossible() fails with LORAMAC_STATUS_LENGTH_ERROR. I have tried with higher data rates and also tried disabling the adaptive data rate. Request some help and insights on the same. Note: Gateway and end-node are near to each other.
Hello! I'm trying to develop a simple radio with S2LP, my objective is just to send and receive simple packets.However I've detected that the default channel spacing is set to ~100KHz, at least in my unit.I want to change that to 25KHz, according to the datasheet I should edit the "CHSPACE" (0x0C) register, after doing it, I found out the spacing is not consistent, the default value of "0x3F" isn't 100Khz but slightly less and I can't get to a point where it jumps exactly 25Khz.There isn't any information about how to jump an exact amount of Hz or what does "0x3F" mean.It is noted that I should refer to the following equation: Yet I don't understand how this is related to the channel spacing, since it is describing how the chip decides which antenna to use based on the RSSI measured on each one of its antennas. The only field I find familiar with the topic would be "CHFLT_E", which after editing doesn't make any change.Thank you in advance!
In Bus -off condition , the ECU(node) disconnects from the CAN bus.So how it monitors the transfer and receiving of the message signal in CAN bus until Bus -off recovery stage is received.
How do I get the expected payload length from the PHR?The PHR isn't expected to be available after the SYNC_WORD detected interrupt so either the FIFO_RXAF threshold interrupt or RX_DATA_READY interrupt should indicate data in the RX FIFO and the length should have been saved from the PHR.Is the PHR length during RX saved to the RX_PCKT_LEN registers (0xa4 & 0xa5) or the PCKTLEN registers (0x31 & 0x32)?Is RX_DATA_READY interrupt actually generated when the number of bytes received matches length indicated by the PHR?
I'm trying to connect STEVAL-SPIN3200 with STM32Cube programmer however when I do it appears either of these message: Warning: Connection to device 0x444 is lost or Error: No STM32 target found!I've tried all different solutions but still can't connect. Anyone know how to solve this?
Hello,I am designing a USB-C Power Delivery circuit where our product is the source (NOT the sink). The system can be enabled/disabled via a user button, meaning the USB-C PD portion will lose its control supply power. I would like to be able to achieve either 60W or 100W charging capabilities and I would like the USB-C PD voltage/current settings to be remembered, even when power is lost (similar to a NVM).I found one part that may be able to work for our needs (STUSB4700), but I am trying to understand how to design it currently. I have the following questions:1) This is a general USB-C question. If the source is configured to do up to 100W (20V, 5A) but the sink is rated to less than that (Say, 15W/5V/3A, for example). As long as 15W is one of the configured power levels on the STUSB4700, does the communication between them both ensure it does not go beyond 15W?2) The datasheet mentions "The STUSB4700 has a set of user-defined parameters that can be customized by NVM re-programming
Is it possible to enter TX mode so it immediately starts sending the preamble and header bytes before any data is in the TX FIFO?ie. Can the TX FIFO be filled during state transition (READY->LOCK->TX 70us+26us) and preamble time?Or will the TX Underflow error trigger immediately?
..
Hi, I am evaluating the current consumption of BlueNRG-LP using STEVAL-IDB10V1 and i am a bit confused with the expected and actual device's currents.According to the datasheet, peak TX current during connection at 0dB is 4.3mA, according to Current Consumption Estimation tool it is 5.43mA and in my measurements i get 5.6mA.For peak RX current, datasheet specifies 3.4mA, in Current Consumption Estimation tool its 3.73mA and in my measurements i get 5.6mA (same as TX). Any idea why the difference especially between the datasheet and the estimation tool? Which value should i expect?
Is there a way to flash it ?
I am trying to use malloc() and free() in BlueNRG LP as I want to dynamically allocate some memory during runtime .However, I am not able to allocate memory. I'm using Keil IDE and generic linker BlueNRG-LP sct file.Any help would be appreciated, thanks!
I'm trying to set up TouchGFX on an ILI9341 screen. Board is NUCLEO-L476RG. The screen is connected in parallel in 8-bit modeFor example if I draw a white box over the entire screen in TouchGFX designer, ILI9341 displays a white screen, If I draw a black box over the entire screen in TouchGFX designer, ILI9341 displays a black screen, But if i draw button or some similar, ILI9341 showing only black screen. I'm not sure if my code is wrong (I'm a beginner) or if TouchGFX has a some bug. TouchGFXDataTransfer.c#include "ili.h" #include "TouchGFX_DataTransfer.h" extern void DisplayDriver_TransferCompleteCallback(); static uint8_t isTransmittingData = 0; uint32_t touchgfxDisplayDriverTransmitActive(void) { return isTransmittingData; } void touchgfxDisplayDriverTransmitBlock(uint8_t* pixels, uint16_t x, uint16_t y, uint16_t w, uint16_t h) { isTransmittingData = 1; ILI9341_SetWindow(x, y, x+w-1, y+h-1); ILI9341_DrawBitmap(w, h, pixels); isTransmittingData = 0; Displ
Hi,attached is the code for I2C where we are trying to read from the sensor connected using I2C...I2C_mem_write or I2C_Master Transmit...nothing is sent by the sensor.any change in the coonfiguration ..kindly let us know.attached the IOC file also...Thanks and regardsRavi chandran
I noticed that the BlueNRG-LP BLE stack uses a special version of the cryptographic library "libcrypto.a" with only AES-CMAC cryptographic functions. But I do know that LE Legacy connections and LE Secure connections share AES in four different flavors: AES-ECB, AES-CBC, AES-CTR, and AES-CCM.Since I need AES-CCM to encrypt(decrypt) traffic over UART, I have a question: is the AES-CCM encryption(decryption) used by the stack available to the application developer? If not, which of the plain AES encryption function is safe and better to use: AES_general_SW_enc (from cryptolib), AES_128_HW_enc (from aes_hw.c), hci_le_encrypt (from BLE stack) or AESMGR_Encrypt (from AESMGR)?
At first I go to STM32 CubeIDE -> project_name.ioc file -> software package -> select component -> package name ->STMicroelectronics.X-CUBE-BLE1 ->Wireless BlueNRG-MS & At application I select Virtual COMPort then Configure the SPI pins and upload it on STM board.Now I open the BlueNRG GUI ,set the Baud Rate as "115200".After selecting the COMPort ->click open option -> tools -> stack update ->HW version->BlueNRG-MS -> select image file in the folder "BlueNRG_MS_Stack" -> select the .img file -> open it -> select update option ,while updating the process it stuck at 6% and gives error window with no specific comments.After that when I open the GUI it shows the error "no device detected".another window open it shows error as "no firmware detected on motherboard".Waiting for your positive approach ,please help in solving this issue.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.