Help needed with GxEPD2 Wifi example

I'm currently working with the Wifi example from GxEPD2 (GitHub - ZinggJM/GxEPD2: Arduino Display Library for SPI E-Paper Displays)

I've got it to successfully work with my ESP8266 and 7.5 inch Waveshare EPD. However, when I update the code to make a request to my own heroku server instead of github it will fail after only reading a few bytes of the image and only a small sliver of the image will be displayed on the screen.
The logged error is "Error: got no more after {x} bytes read!"

Not quite sure how to progress from here. Could anyone suggest some steps though which I could verify and isolate where the issue could be?

@romanholiday, Hi, welcome to the forum!

Please read How to get the best out of this forum, if you haven't done yet.

This question isn't easy to answer. We would first need to know if you use a secure connection (https). And if so, what encryption method your server uses.

It might be an encryption not supported by the ESP8266, or your server being too slow.
What number of bytes did you get? Always about the same number? This might help.

Can you see the picture with a browser? Can you download it with a browser?

Jean-Marc

Thanks @ZinggJM ,
I'm using a secure connection and the encryption method is RSA, this is the same as github.

The number of bytes downloaded is different each time.

I've also now also tested across a couple more servers, on one the issue is the same, and on another, it works fine.
The other server where it's working is using Elliptic Curve encryption.

The picture can be seen and downloaded in the browser in all cases.

Just a bit of follow-up info. I've now tried serving the example image from github, netlify, heroku, and aws.
When the image is served from github and netlify - it works fine
When the image is served from heroku or aws - it fails.

I've noticed that github and netlify are using TLS 1.3, while heroku and aws are using TLS 1.2.

@ZinggJM is there a known limitation with TLS 1.2? Could this be an issue that's upstream from GxEPD2, maybe with BearSSL?

@romanholiday, Hi, I am sorry that I can't help you.

I wanted to add an example to GxEPD2 (and GxEPD) to show how a BMP file accessed over WiFi can be presented with GxEPD2. The trick is to transfer one-row bitmaps to the controller of the display.
I noticed issues with big BMP files, e.g. > 32k or 64k bytes. I noticed that after a read returned zero, every subsequent read would return zero bytes again (persistent error?). I got a workaround working. But more problems came up later, so I had to switch to BearSSL.

I have no knowledge with secure communication, not on ESP32, nor on ESP8266,
nor on any other platform.

Therefore, for help with secure transfer of BMP files, some other expert would need to step in.

You could check if GxEPD2_Spiffs_Loader.ino works, and then use GxEPD2_Spiffs_Example.ino.

Jean-Marc

1 Like