After building a custom E Ink Picture Frame I was keen to continue playing around with E Ink displays. There are still so many things that can be done with them, especially when combined with the energy efficient ESP32 microcontrollers which come with WiFi, Bluetooth etc.
I had this idea for a long time: Most people don’t actually care about the details of weather forecasts. They don’t even care about the temperature or whether they have to expect strong winds or not. All they care about is how to dress appropriately for the day before leaving the house or if they have to expect rain or snow. What if we could generate a comic strip for each day which shows how the weather is going to be? With an artistic interpretation of the weather conditions that we pull from the Open Meteo API? We can even create the comic in the location of the user to make things more relatable and interesting.
Hardware
Before we jump into the details of this project, let’s have a look at the hardware used. This time, I wanted to focus my time on the actual use case instead of building the hardware from scratch. For this reason I went with a finished product from Seeed Studio.
Note: I received this product for free, and this is a tracking link for the manufacturer. My review is my honest opinion, and I receive no compensation.
reTerminal E1002 Full-color ePaper Display
- ESP32 S3 with 8MB of PSRAM
- 7.3" Spectra E6 Display at 800x480
- Micro SD Card Reader
- Microphone
- Buzzer
- 2000mAh battery: this is massive, I expect the battery to last for several months
- Reset button + 2 extra buttons to switch views or for custom interactions
- Iron case
Additionally, it exposes 8 GPIO pins to attach external hardware such as sensors.
When I compare the costs of my own E Ink Picture Frame with the price of the reTerminal E1002, I have to admit that my own project ended up at about the same price with the downside of it being much further away from being a finished product and without many of the extra components. Most importantly, it uses an ESP32 which I know well, giving me the flexibility to replace the firmware with my own code.
Firmware of the ESP32
The product comes with a pre-flashed firmware which uses Seeed Studio’s new SenseCraft HMI platform.
The platform is still in early beta as I write this, so I’ll keep this section brief. However, from my little experience, it is a very decent tool to get started with. I found it very easy to set up my reTerminal firmware and connect it to the SenseCraft HMI account and to get some photos rendered on it.
The ESP32 periodically connects to the SenseCraft HMI platform to get updates. Additionally, it reports battery status and other device metrics. The platform supports various ways to render pictures on the frame. You can create custom dashboards or a picture gallery.
Alternatively, you can paste a URL to a website or image file which will then be rendered. For this project, I simply provided the URL of an externally generated image.
What’s also important to mention is that the SenseCraft HMI platform takes care of applying dithering to the images, which I find very neat. I am not sure whether the dithering is applied on the ESP32 itself or if it’s done by SenseCraft HMI.
The ESP32 firmware itself seems to be closed-source at the moment. I hope that SeeedStudio publishes the source code at some point.
If you want to overwrite it with an open source firmware, have a look at my last projects firmware code. I have also published the source code of the web service that takes care of processing images for E Ink displays by applying dithering, re-sizing of the images and format conversion:
- Firmware: esp32-spectra-e6
- Image processing / dithering: go-eink-dither
Yes, it’s very much beta, with the dashboard feature being pretty basic, but it’s perfectly adequate for my project.
AI Weather Forecast Comics
Finally, let’s get back to the original idea: generating comic strips to explain daily weather conditions visually and artistically. To put everything together, I created a simple, self-hosted web server. This allows me to iterate more quickly on the results compared to running everything on the ESP32 itself. By having a custom web server, I could just paste the URL which returns the generated comic image to the SenseCraft HMI dashboard - simple!
The web server consists of the following components:
- Weather data client for the Open Meteo API
- ChatGPT API integration to generate the images
- An effective prompt to guide the AI model in creating our comic strips
Creating a ChatGPT platform account with a verified organization was also necessary. Organization verification is
required for access to the latest image generation model gpt-image-1
. DALL-E3 is also an option, but results tend to
be less consistent. I experimented with other image generation AIs (Google Gemini, Grok AI) but couldn’t get reliable
results from any of them.
I have implemented my web service using Go, you can find the source code here if you want to self-host it.
Example Forecast Comics
Barcelona
New York
Cairo
Conclusion
While dashboards work well for colored E Ink displays, they truly shine when displaying actual pictures. The Spectra E6 display excels particularly with artistic, comic-style images rather than real photographs. This project turned out surprisingly engaging - the continuously updated comics always give me a reason to check the reTerminal screen. Over the coming weeks, I’ll see how useful these comics are for my daily cycling weather needs.
I am very satisfied with the reTerminal E1002, as mentioned earlier I don’t think there are any better solutions out there for this price if you want to have an ESP32 powered Spectra E6 display with all of the batteries included.
Playing with these displays constantly sparks new ideas for different use cases. This will not be my last project of this kind!
Thank you for making it this far.
Feel free to reach out: blog@shvn.dev ✌️