Throughput testing of ESP8266 module, size matters !

Summary

I’m looking into the ESP8266 module as a possible low cost alternative to the high speed spi module I use but, looking around I didn’t see any clear specs that told me how much data I can push through the thing. So I decided to run some tests and see how much data I could push through. I’m using a python application to simply send random data through the unit, I vary the baud and transmit package size and try and find sweet spots where there is maximum throughput.

Please if you know of any way to make them faster let me know. Maybe there is another firmware or way of interfacing that could make it faster.

Results

Comparing it to my other wifi modules it is very slow, my other wifi modules do up to 4.5Mbps (bits) where the esp maxes out at about 7KBps or .056Mbps (in tcp mode) which is very slow. Even with compressed jpeg images we are looking at 2fps at very low resolution.

In UDP mode we maxed out at about 19.2KBps which is much better, but it also has all the hurdles of UDP traffic that comes with the gain in speed. Thats about .15Mbps. At this speed it is possible that I could get a frame rate of 19KBps/3BJpg = 6fps 🙁 I easily get 2Mbps using my other wifi device, in fact my other wifi device is not even at its full potential because the camera can only output at 20fps.

Anyway these are my results, if you want to maximize throughput they may be helpful to you. I also realize that some of these tests may have to do with my network and butterfly wings but the overall trend line should be useful !

ESP Info

ESP03, on a custom made board
AT+GMR
00200.9.5(b1)
compiled @ Dec 25 2014 21:40:28
AI-THINKER Dec 25 2014

230400 Baud, TCP Client

Max Bps = 5760 @ TX Packet Size 1400

230400

460800Baud, TCP Client

Max Bps = 7200 @ TX Packet Size 1424

4608000

460800Baud, UDP Client

Max Bps = 19200 @ TX Packet Size 1904

4608000UDP

 

2 thoughts on “Throughput testing of ESP8266 module, size matters !”

  1. Hi,

    I’ve tested sending UDP packets from the ESP directly, and I was able to get a transfer rate of around 1 MBYTE / sec.

    So, around 8 Mbits/s! 😮

    That was just with using the Arduino IDE and a simple sketch though, but

    I also tried receiving UDP packets on the ESP then sending the via the SPI pins, and I got transfer rates in the range of 300-400 KBytes / sec.

    That was using a packet size of around 1472 though (the max MTU on my PC), and for testing the transmitted throughput, I was simply using WireShark on the PC. The ESP module was running at 160 MHz.

    Just a heads-up, as these modules seem to be capable of way more than 2 MBps if you’re not using the UART.

    I was using an ESP-12E btw (metal shield, with PCB antenna).

Leave a Reply