ESP8266 + SD Card Module + Waveshare 10.3 inch E-INK + IT8951 display driver

I am a newbie to ESP32 and E-ink display. I have a Waveshare 10.3 inch E-ink display with IT8951 driver.

I want to use it with one of these Wemos D1 R32(ESP32)( or a ESP32 or a ESP8266) board because of the ultra low power consumption during deep sleep.

I found this below GITHUB library and was successfully able to get my display to work and displays a single image of 400*400 perfectly everywhere on my screen.

But, now when I want to have to load more than one image or a bigger image, I run out of memory(even if I declare PROGMEM). I want make a offline Eink photo frame that loads image arrays from the SD Card. The size of each is [123600] and the .ino file is around 800kb.

Could you please guide me how to load the .ino files from the SD Card.

or If I cannot load .ino arrays, can you let me know how I can save the array as a .txt file and load it into the Arduino without running out of memory.

Thanks in Advance.

From the caveat on the GitHub page you referenced:

The ESP's RAM is limited, so if you want full resolution images, you need to stream them to the device via WiFi or load them from flash storage.

You want to create:

I want make a offline Eink photo frame that loads image arrays from the SD Card. The size of each is [123600] and the .ino file is around 800kb.

Opinion: You have stepped into quicksand; which is to say that you are struggling and need to find something firmly attached and within grasp to pull yourself out and back onto 'terra firma'.

The eInk display you purchased is sold with the description:

800x600, 6inch E-Ink display HAT for Raspberry Pi

To map the display pixels, you need 480000 bits x grayscale depth which is stated as * Gray scale: 2-16 (1-4 bit)

Could I do this on an ESP8266? Maybe, but I would not waste my time unless I am doing a copy&paste from someone that did the effort just to say they can (bragging rights.) It would be a read from SD into a small buffer, position, push the bits, and repeat until the display is fully written.

Clearly from the e-Paper HAT page, the Raspberry Pi was the intended target cpu board.
https://www.waveshare.com/wiki/6inch_e-Paper_HAT

Personally, my recommendation is to find one of the many online projects using this display and replicate that.

Hey @mrburnette

Thank you very much for taking time to answer me.

As you suggested, i will try to read from the SD card into a small buffer and play around with the position until I fill up the screen.

Battery is a major concern for me which is why I chose ESP instead of a Raspberry.

I only have 4 to 5 images to display. So, that won't be a problem right now.

If in the future, if I want to have more images, maybe I will try connecting to the cloud or automate the entire process.

Thank you again for your time. I will keep you updated about my progress.

Keep in mind that often faster (rPi) may actually save power over lower-current but far longer execution. It is a classic example of current used over time before sleep.

Good luck,

Ray

@mrburnette .
I am kind of a newbie. So, please Correct me if I am wrong.

The project that I am working on runs on Solar power, but my unit turns off in less than a day or two with cloudy weather.( when currently I am running it on a Raspberry pi)

I did some research on the current consumption of all my options. I found that during deep sleep the ESP32 consumes as low as 10micro amps.

Because i would update the unit very few times during the day, I was thinking of saving up the power by running it on an ESP because I would be able to run it in deep sleep mode for most part of the day and the entire night.

Please let me know if there is something I might be thinking wrong.

Thanks in advance.

The ESP32 has numerous web projects that are solar based.
You need to be particularly aware that by default, FreeRTOS is configured to run RF /Espressif stuff on core0 and Arduino runs on core1. While I have personally played with core tasking, I have no experience with ultra-low power; your trip may be a bit bumpy.

https://docs.espressif.com/projects/arduino-esp32/en/latest/tutorials/tutorials.html

https://esp32.com/viewforum.php?f=19

Good luck,

Ray

That was really helpful. Thank you again @mrburnette.