E-ink display project

Hello there,
I have a litte project in my but I would like to be sure that it is feasible before going any futher…

My idea is to build a dashboard display powered by a battery, this dashboard needs to get datas from internet feeds (via a wifi network)

As we talk about battery powered solution, I immediately thought of the e-ink screen which consumes nothing (when you don’t modify the display) and which suits my needs because I don’t need to refresh the screen often.
I made some tests with a rpi zero and an Inky pHAT, the big problem comes from the consumption of the rpi zero… I have a python script that works when I need it for the display, but the static consumption of the pi drains the battery in a few hours and this is not acceptable for this projet…
So I thought I had to find an other platform that consumes less or that allows you to go into deep sleep states which the pi is not able to do…
So I will need to port my project (coded at the moment in python) on a micro-controller and while doing some research on the net, I came across Circuitpython… and the Feather S2 which can suits my needs…

So here are my questions:

  • Does a python code made for a rpi zero, needs a lots of modification to be able to run on a CircuitPython platform ?
  • Is it possible to run a code on the feather S2 to drive the inky pHat ?
  • Do you know if this code is availabe somewhere ?
  • If not do you think it’s possible to fork the inky pimoroni library (https://github.com/pimoroni/inky) to make it run on a circuitpython compatible platform ? Looking at the code on github, I realize that the lib just sends commands on a SPI link which a CircuitPython platform should be able to do…
  • What is the voltage needed by the inky, could it works with 3.3V ?

I know i’ve alot of questions…

Many thanks for helping me going forward on the project
Cheers

Does a python code made for a rpi zero, needs a lots of modification to be able to run on a CircuitPython platform ?

That depends on exactly what the code is like, a lot of basic Python is fairly directly compatible, but a lot of libraries aren’t. If your dashboard has images in it then there’s a fair chance that the libraries you used for the images won’t work.

Is it possible to run a code on the feather S2 to drive the inky pHat ?
If not do you think it’s possible to fork the inky pimoroni library

You can’t use the Inkyphat library directly no. Technically it should be possible to fork the module and modify it to work, but that’ll probably be a fair bit of effort.

What is the voltage needed by the inky, could it works with 3.3V ?

Pinout.xyz says it needs 5V and 3.3V.

Honestly? The easiest thing to do is to probably buy Adafruit’s eInk featherwing, and use Adafruit’s Python module. It’ll be far easier, let you get straight to making the dashboard instead of spend time figuring out all of the ahrdware stuff, and it has an additional SRAM chip on the back which some of the Feather boards apparently need for decent eInk use.

Just double check what you want to do with the dashboard: CircuitPython can show pre-made images and overlay text on those, but can’t manipulate images like the PIL/Pillow library on the Pi can.

Thanks for you response.
You’re right, it seems to be a little bit too much effort for so little fun… and a lot of complexity
Because indeed my python script is using librairies for image processing (PIL).

dammit !

regarding your proposal of using the adafruit e-ink feather, taht could make it, but my idea was to switch to the BIG inky presentation, the adafruit screen is too small.

While reading your message I got a new idea : if the rpi is the good plateform to drive the display without any effort (python is easy) and that it’s only problem is consumption, why don’t I use an external board like a “watchdog” to switch ON and OFF the pi when the display needs to be updated (like every 5 minutes).
It should be a very much easier way to achieve this

and I just realised that adafruit has released what I’m talking about (but with a small screen) :

it’s an ESP23-S2 powererd by a battery with a e-ink display…
I’m just dreaming of this but with the screen of the inky presentation

Because indeed my python script is using librairies for image processing (PIL).

Yeah, that’s a pain. I’m honestly a little disappointed in the lack of Adafruit’s usual documentation for their CircuitPython boards with screens, PyPortal doesn’t mave much guidance for creating your own image interfaces.

but my idea was to switch to the BIG inky presentation
The Inky Impression? It’s a very nice board, but yes, no CircuitPython drivers for it. I don’t think there’s a technical reason why they couldn’t be made, but from the few times I’ve attempted them screen drivers are a pain in the neck to write.

A hardware watchdog might work, though if I remember right the Pi still draws a reasonable amount of current in the shutdown state. What are you using PIL for? If you’re using it to apply text on top of an image I think Adafruit has examples of doing that with PyPortal.

I have an e-ink project based on the wHat and Inky-Impression. You can find the code in this github-repository: https://github.com/bablokb/pi-e-ink-daily. You will also find a link to a second project, which handles the battery-management (short story: I use a flip-flop for 50cent).

With this setup, a power-up, update, shutdown-cycle uses 2mAh

Just two additional hints: Adafruit has a push-button (nr 1400) which will do the job as well. Connect the power-off signal of the Pi to this button to turn off power. There is also a low-power timer breakout (3573), this is handy if you want to automatically turn on the Pi in an interval (max is 2h).

So with some cheap additional components, you can use the Zero without problems in battery-based projects.

thanks @bablokb for your answers and sharing your project. This is almost exactly what I want to do :-D