Maximum UDP throughput
Posted: Wed Aug 09, 2017 11:50 am
I have an application where I am trying to send UDP packets of 37 bytes between 2 ESP8266 modules as fast as possible to replace a long analog cable. My application uses a pair 8-channel 16-bit ADCs to gather 16 channels of data. I will then send this 37-byte packet to the receiver where the data are pulled and sent to a pair of 8 channel 16-bit DACs. I need to send packets as fast as possible to maintain end-to-end analog integrity. I am able to send packets with low error rate (2-5 packets in a row occasionally) with around 5mS delay in the transmitter. To maintain analog fidelity, I should be in the microsecond range. I am running in UDP mode on an open connection. Also, there will be 2 of these systems running at the same time. I will use channel 1 for the first and channel 5 for the second. If another system in close by, it will use channels 9 and 13. This is an industrial application, so I don't anticipate much WiFi traffic.
If I speed the transmitter up to 1 packet per mS, I get a lot of missed packets on the receiver. I don't know if the transmitter is not transmitting them, or the receiver is not receiving them.
My questions are:
Is the ESP8266 capable of sending packets in the 100uS range or faster?
How could I configure it to do this?
Can I configure it to not run background code which involves HTML or TCP to speed up he ESP8266. I am not going to use other protocols in this application.
Is there something on the receiver which is causing the packets to not be received? i.e. excessive background operations?
Is there a good packet sniffer I can run on a laptop to see if the packets are in deed being transmitted?
Is there some other way I can achieve this?
Is there some other radio system I can use to get there from here?
If I speed the transmitter up to 1 packet per mS, I get a lot of missed packets on the receiver. I don't know if the transmitter is not transmitting them, or the receiver is not receiving them.
My questions are:
Is the ESP8266 capable of sending packets in the 100uS range or faster?
How could I configure it to do this?
Can I configure it to not run background code which involves HTML or TCP to speed up he ESP8266. I am not going to use other protocols in this application.
Is there something on the receiver which is causing the packets to not be received? i.e. excessive background operations?
Is there a good packet sniffer I can run on a laptop to see if the packets are in deed being transmitted?
Is there some other way I can achieve this?
Is there some other radio system I can use to get there from here?