I cannot achieve a data packet transmission rate exceeding 5Hz between two LoRa transceivers in TEST mode.
I am using LoRa E5 boards to send data packets (18 bytes), peer to peer/wirelessly, between Arduino hardware serial ports. I purchased the boards without understanding they are designed to work specifically with WAN and Server (rooky mistake) but I have worked out I can enter TEST mode on the LoRa boards and achieve the same peer/peer outcome which allows me to broadcast data to other devices.
The LoRa transceivers and Arduino boards are wired as a simple transmitter/receiver. I adapted the information from here to configure the arrangement. Note: I have changed all softwareSerial comms referenced in the article to hardware serial ports and I am using two Arduino Mega boards
I have set the TX LoRa board to TX mode (AT+TEST and send each packet of data using the AT+TEST=TXLRPKT, command). The LoRa receiver is configured similarly with AT+TEST and receive data using the AT+TEST=RXLRPKT command).
During initial tests, I successfully “talked” to both LoRa boards (AT commands) and then broadcast data from the transmitter end to the receiver end by using the serial command line (happy days ).
I then set about to have the Arduino TX hardware serial port continuously sending packets of data to the LoRa TX serial port. The other LoRa receiver serial port is connected to a second Arduino Hardware Serial port. The Arduino connected to the LoRa receiver serial port is simply polling the LoRa serial port continuously and any data it receives is printed to the Arduino Serial screen.
My dilemma is, after automating the data sending process from the transmitter end, I can only successfully receive data at the receiver end when the transmitter sends data packets at intervals of 200mS or greater. If I increase the frequency of transmissions to more than about 5 Hz, the receiver stops receiving data. To be accurate, the Arduino receiver stops printing data to the screen, but I am assuming that the LoRa receiver does not have data at its serial port. This is based on the fact if I remove the LoRa boards and hardwire the two Arduino hardware serial ports together, the is no restriction on transmission rates. So, I don’t know if the LoRa transmitter is unable to send the data or if it is the LoRa receiver is unable to receive the data at the increased rates.
In an attempt to increase the throughput speed, I have increased the LoRa UART speeds to 115200, varied the radio data rates to from 250bits/s up to the maximum 50kB/s, varied the frequencies between 433MHz and 868MHz, changed channels and varied the data packet size (being sent from the Arduino) from 1 to 18 bytes. I have also removed any timeout restrictions and set the duty cycle restriction to ‘off’ on each of the LoRa boards (clutching at straws at this point ).
None of the changes have provided me with any faster transfer rate of data. Interestingly, the size of the data packet (1 byte up to 18 bytes) seems to make no difference.
I am unable to determine if it’s the LoRa is TX mode or the LoRa in RX mode (or both) that is causing the bottleneck.
Before I abandon the hardware and look for something that will operate at a higher rate, has anyone had any experience with the LoRa E5 configuration, in TEST mode, that might shed some light on the data rate restriction and more importantly, if it is possible to double/triple the data rate.
Thanks Tim