Overrun Errors in UART While Sending Data Through the Radio on LoRa E5 Module

Hello everyone,
I have modified the Ping Pong example to create separate transmitter-only and receiver-only code for two Seeed Studio LoRa-E5 modules.
I’m using the Low Level (LL) driver with UART1 interrupts on the LoRa-E5 TX module to receive data via UART, which is then transmitted over the radio. On the receiving end, the LoRa-E5 module receives the data via radio and forwards it to the target device through UART.

Setup:
UART —> LORA E5 TX------| ( Radio ) |----------- LORA E5 RX ------> UART

All data received by the LoRa-E5 TX module is handled exclusively through UART interrupts. Therefore, if interrupts are disabled, the UART will not be able to read any incoming data.

In the LoRa-E5 transmitter code, Radio.Send() disables interrupts while transmitting data over the radio. During this period, UART interrupts are also disabled, preventing UART from receiving incoming data, which leads to overrun errors.

Is there any possible way to prevent UART overrun errors when interrupts are disabled during Radio.Send()?

Hi there,

So , Most serial ports support FLOW control, Hardware or Software flow control. For exactly that reason. Higher Baud Rates can overrun the UARTS receiver buffers.
You should be able to implement Software flow control X0n/Xoff or DTR/CTS Hardware flow control if your port supports it.

HTH
GL :slight_smile: PJ :v:

You may need another serial Uart LIB for other options to be available.
:+1: