Streaming 160x160 image over wireless.


As the title suggests, I'm trying to find a way to stream the output from a black and white LCD, of which I am given a 1 or 0 depending on if the pixel is on or off. This amounts to 25600 bits. I've tried to stream from the ESP in chunks of 10x16 binary bits, converted to hex and then to a byte array. At the receiving end I have a C# app that reassembles these (upon receiving 160 'lines') into an image, or frame.

This works, but is really slow. In between sends, I have to wait at least 70ms or the stream never arrives.

I got to thinking that there must be a standard way of transferring this kind of data across a wireless network, but I can't find any information on it, other than to stream it in a similar way to which I'm doing.

Any ideas what the best way to do this would be?

I've created a dummy of just the part that sends the bytes (my electronics engineer friend is working on the part that sends the output to an input pin).

So far, I have this in Arduino:

  if (client.connect(host, port)) //Try to connect to TCP Server
      char command[40];
        Serial.println("Connected to screen receiver... ");                             
        // spoof of image 'line'.
        String WasteOfResource = "A5A4A5A4A5A4A5A4A5A4A5A4A5A4A5A4A5A4";            
        WasteOfResource.toCharArray(command, 40);
        Serial.println("Sending bytes... ");       
        client.write((uint8_t *)command, sizeof(command));          
        Serial.println("Bytes sent...sending more in 100 milliseconds.");       

Try adding client.setNoDelay(true) before the while(true).