7 Colour E-Ink Display For Raspberry Pi | Inky Impression 5.7" (7 Colour ePaper/eInk HAT)

Hey all, finishing touches are all done for the 7 Colour E-Ink Display For Raspberry Pi | Inky Impression 5.7" (7 Colour ePaper/eInk HAT) guide.

Welcome in the Inky Impression 5.7" 7 Colour, 600x448 Pixel E-ink/E-paper HAT which is capable of running with a Raspberry Pi Single Board computer. That’s right, Seven colours! They are Blue, Green, Red, White, Yellow, Orange, and Black. Combine these block colours with dithering, a method used by computers to approximate unavailable colours from a mixture of other colours, this Electronic Ink display can produce to the human eye all the colours!

This is a huge step in E-Paper technology! These screens have all the benefits of electronic paper, including excellent battery life, image retention when un-powered and great visibility in sunlight, but they are finally multi-coloured. The Inky Impression screens are remarkable. It’s ink, but way better. From hardware assembly to image display tinkering this has everything you need to hit the ground sprinting with these displays. Also I make an auto-changing E-Ink Picture Frame :blush:

Read more


Hey Tim,

This screen looks really cool, and it may be an ideal upgrade to my project. I’m using a 7 inch led screen, but it is very hard to see what’s on it outdoors.

My questions:- do you have to connect to the e-ink as a hat?
How many GPIO pins does the screen need, and which ones?


Hi Matt,

That’s correct, it attaches as a HAT but you could send data over SPI instead if you wanted to mount the display somewhere else.

The pins it uses can be found here :slight_smile:



Hi Tim,

Quick question regarding PiicoDev integration, what’s the best way to also connect PiicoDev modules along with the display?

For example, how would you go about adding a PiicoDev adapter into the mix? Assuming not all the GPIO are used by the display in the first place.

Any suggestion or alternative to PiicoDev adapter would be very helpful, thanks!


Hi Jono,

Welcome back :slight_smile:

Pimoroni’s done the hard yards and uploaded the pins being used on pinout.xyz

As for connecting it, I’d go for the male prototyping wire.

You might be able to use a HAT hacker or something similar but the onboard breakouts should do well :smiley:



Thanks Liam!

I ordered a few bits and pieces to go with it, will see how I go putting it together… :slightly_smiling_face:


Hello Tim!

I am the commenter on from the e-ink video asking to see how my art looks on the display. I don’t know if I could send private messages on here so I figured I could send the modified images in this thread relating to the video:

Wild Flowing Hair DISPLAY EXPORT

They are upscaled and slightly cropped from their original resolutions to fit well on the display.


Hey Oretal,

I love your Art! And thanks for the excuse to use the 7-Ink Display some more. The image come out better on the display when I formatted them as JPEGs. Thanks for making them the right size, making it very easy on my end. Check out the results below, hope you dig them as much as I do.

Kindest regards and hope all the best for your pursuits :blush:,


Thank you Tim!!!

Now I’ll definitely consider getting an e-ink display. I might get the one you have or look around for a slightly bigger display. I had to crop these images a bit.

A while ago I found one that is 640x480 pixels tall which is the perfect height for my art but I would probably have to learn some things to make it work.

Again Thank you Tim!!! This rocks!!!


Hi Tim,
I’ve got the screen to show a live webpage (using an iframe), and while I’ve got it to run from the terminal, I can’t get it to work from the cron tab.
I’ve tried variations on */5 * * * * home/sean/Pimoroni/inky/examples/7color/html/html.sh testpage.html &
and while it doesnt throw an error in the tab, it doesn’t want to run.

Hi Sean,

Is this the exact line? If so, you may be missing the leading / on the file path. Also it may be worth seeing if you can run it as sean specifically:

That’s my usual fix when cron jobs don’t work as expected

1 Like

Hi Oretal,

Just thought I’d mention, Pimoroni have come out with a larger one that’s 800x480 if you’d prefer borders to cropping:


Sorry, I missed the / when pasting in the comment box.
For some reason, I have to cd to the /html folder to even run it from the terminal first.
The cron still seems to be ignoring the request, even when I was polite and asked please “sudo”
Apologies in advance as I’m still learning

I noticed that in the Colourful Picture Examples and Technology Overview section, it says that “more colours mean longer refresh time with more full-screen flashes when images are changed”.

In that case, I am wondering that is it possible to only change a part of the display instead of having full-screen flashes for Inky Impression 7.3. Or maybe it is in principle not feasible. Thanks in advance.

This is the longest i’ve been stuck. I’ve even started from scratch to run as user pi, because I thought maybe it was a permissions issue
in crontab I have i to run on reboot
@reboot python3 /home/pi/inky/examples/color/html/run-on-boot.py

in run-on-boot.py I replaced the line
c = “/html.sh hello-world.html”
in run-on-boot2.py I tried the full path “/home/pi/inky/examples/color/html//html.sh hello-world.html” which I thought would run manually

The regular process hangs and gives me a “glx process failed” or a script error in line 3 of html.sh, which the only resolution was a compete reinstall and back to step 1 :frowning:
Long story short, it seems to work when I cd to the folder, but not when I try to run using the full path, preventing me from running this in cron

1 Like

Hi Sean,

Is that double slash in there in the real thing? Or just this forum post? Keep in mind you can visit this site from your Pi as well, or ssh into the Pi and copy output directly here.

Where is hello-world.html located? If for example your working directory was /home/pi/, and you ran the script ./inky/examples/color/html/html.sh, hello-world.html would go looking in /home/pi/ (as that is the working directory at the time).

Some shell path aliases that might prevent some confusion:

  • ~ refers to your home folder, or /home/pi when pi is logged in
  • . refers to the current directory you are in
  • .. refers to the directory “above” the one you are in

One thing I might try is adding pwd >> /home/pi/working-dir-at-boot to run at boot, and open that file with cat or nano to see which directory is the working directory at the time the script runs.

1 Like

Thanks! I’m still a newbie, so maybe my syntax was off.
I ran pwd >> /home/pi/working-dir-at-boot and it gave me /home/pi as expected.
Everything is in the /home/pi/inky/examples/7color/ folder. (The double-slash was accidental. It was pretty late when I posted).
I ran it in cron appending with >> /home/pi/joblog.txt 2>&1 so see if i could see if it was running. The first time, it ran, but stopped midway after displaying
[GFX1-]:glxtest: process failed (received signal 11)
This usually displays right before the screen changes so i wasn’t worried, but it never actually runs

1 Like

Do cron tasks timeout? That would explain why it appears to run, but doesn’t get as far as updating the display.

1 Like

As I mentioned, I think html.sh is looking in the working directory (/home/pi) not the directory with all the files (and hello-world.html) in it? Try the full path in your cron job i.e. /home/pi/inky/examples/7color/html.sh /home/pi/inky/examples/7color/hello-world.html

It could be another error though, have you been able to get any of the other demos working?


I was able to get stripe.py working with no problems.
Then I ran
@reboot /home/pi/inky/examples/7color/html.sh /home/pi/inky/examples/7color/hello-world.html >> /home/pi/joblog.txt 2>&1 to log the process
It gave me the errors I see when running it via command prompt

*** You are running in headless mode.
[GFX1-]: No GPUs detected via PCI
[GFX1-]: glxtest: process failed (received signal 11)

I see this every time I run html.sh, but the display still works. In crontab, it just halts midway.