Use an Inky wHAT display with Raspberry Pi

By Rosemary Hattersley. Posted

One of the fun things about Raspberry Pi is how easy it is to use to show off your personality, whether that’s with a custom case you’ve designed, a complete DIY project, or a display that uses code to send a personalised message.

Here we explore the Inky Python library and look at how to use it with Pimoroni’s Inky wHAT. This wide version of the Inky pHAT can be used to show off a distinctive image, text, a meaningful slogan, and to tell people at a Raspberry Jam who you are.

Inky wHAT’s e-ink display operates in the same way as a Kindle e-book reader. It’s easy to read, even in bright sunshine, and has no eye-fatiguing bright white backlight. Better yet, it draws very little power and therefore is ideal for battery-powered use. Once the desired display data has been sent to Inky wHAT, it can even be disconnected from your Raspberry Pi. Your message will stay on its screen.

Attach Inky wHAT to Raspberry Pi

Carefully line up your Inky wHAT over the GPIO header pins on Raspberry Pi (use the header booster that sits between the wHAT and the board if yours is a full-sized Raspberry Pi model) and press it into place. Connect Raspberry Pi’s mouse, keyboard, screen, and power on. As with using any new hardware, start by updating your Raspberry Pi. We advise using a fresh installation of Raspberry OS, which will suggest updating itself when it first boots up. Follow the prompts to check for and download any updates.

Turn on SPI and I2C

Inky wHAT needs both SPI (Serial Peripheral Interface) and I2C (Inter-Integrated Circuit) enabled to work. Both can be found in Raspberry Pi Configuration. Click on the menu icon and choose Preferences > Raspberry Pi Configuration. Click on the Interfaces tab and set both SPI and I2C to Enabled. Click OK.

Install Inky wHAT software

With the Inky wHAT hardware attached, we’ll install the software. Open a Terminal (click the black rectangle icon in the top bar) and enter:

curl https://get.pimoroni.com/inky | bash

Press Y in response to ‘Do you wish to do a full install?’, then press ENTER.

Clean and reset

During the wHAT installation, some example programs will have been copied to Raspberry OS. Open a new Terminal window and type:

cd /home/pi/Pimoroni/inky/examples
ls

…to locate them. Let’s start by ‘cleaning’ your Inky wHAT’s screen (it ships with the logo displayed.) While in the examples directory, enter:

python clean.py --type what --colour yellow

(If you have the red wHAT, then enter --colour red instead, and for all following examples.) The Inky wHAT screen flashes as it refreshes and then cycles through yellow, black, and white. In the end you will have a clear screen. To bring back the fantastic Inky wHAT logo screen, type :

python logo.py --type what --colour yellow

Quotes

Inside the examples directory is another folder marked what. There are more examples in here, including a selection of quotes. Enter:

cd what

…to change directory. Then run the example:

quotes-what.py –colour yellow

For these programs, you don’t need to specify the type (because you’re in the what folder). The quotes are pulled from an editable selection at Wikiquote.

Change quote

You can edit the quotes-what.py code to pick quotes from any of your favourite people. Enter:

mousepad quotes-what.py

…to open the file in Text Editor. And replace the list of names with your favoured person:

people = [
	"Douglas Adams"
]

Use File > Save As and save the file as quotes‑adams.py. Now, in the Terminal, enter:

python quotes-adams.py --type yellow

…and you’ll see a quote from the celebrated author.

Make a name badge

Now we’ve explored the options Pimoroni provides, let’s tell Inky wHAT to display something we specify. Head back to the examples directory, using cd .. or cd /home/pi/Pimoroni/examples, and type:

python name-badge.py --type what --colour yellow --name "The MagPi"

Replace ‘The MagPi’ with your own name (or any name you like). After a few seconds, Inky wHAT’s display will mimic a conference delegate’s name badge, complete with the name you provided.

Here we see Inky wHAT displaying a name badge with The MagPi as our name. You can change it to anything you want

Hello Python

What about coding your own text and images from scratch? Fortunately, it’s possible to code your own messages using Python. Let’s start with the traditional Hello World program. Open the Thonny IDE (Menu > Programming > Thonny Python IDE) and save the file as hello_inky.py (we saved ours in the Pimoroni/inky directory).

Now enter the code from hello_inky.py. Click Run to display Hello World on the screen.

Show off your own images

You can tell Inky wHAT to display any image you wish, but it can only handle 400×300-pixel PNG files that use three-channel indexed colour.

Although specific, it doesn’t mean you can’t display most images, just that you will need to convert them first. The GIMP image editor is ideal for this. To install GIMP, type:

sudo apt update
sudo apt install gimp

You will also need the three-channel indexed palette. Either use Text Editor to create the inky‑palette.gpl file and save it with your code files (we’ve put ours in /home/pi/Pimoroni/inky), or download it from Pimoroni’s Inky GitHub repo – in a Terminal, enter:

git clone https://github.com/pimoroni/inky

You’ll find the colour palette at inky/tools/ inky–palette.gpl. It’s configured for the Inky wHAT red version, so change the third line from 255, 0, 0 to 255, 255, 0 if you have a yellow Inky wHAT.

Import the palette

Once installed, type gimp in the Terminal to run GIMP, or open it from Menu > Graphics > GNU Image Manipulation program. Choose Windows > Dockable Dialogs > Palettes. The Palettes dialog appears in the top-right of the screen. Right-click it and choose Import Palette. Choose Palette File and click the Select Palette File icon next to it. Use the window to select the inky-palette.gpl file. Click Import.

Convert an image

You can use inky-palette.gpl to convert an RGB image to the three channels. For best results you can create your own image using GIMP (Choose File > New and set the width to 400 and the height to 300). And then draw an image using the tools and stick to the three colours that match your Inky wHAT model (white, black, and yellow/red). If your artistic skills aren’t feeling up to much, we’ve included a MagPi-Logo.png file along with the code files on our GitHub. It’s already sized at 400×300 and features the three colours.

Open the image (File > Open) and click Convert to the colour profile (this isn’t related to our three channels). Now choose Image > Mode > Indexed and select Use Custom Palette. Click the palette graphic (typically it will be marked Web) and choose inky-palette from the list.

Click Convert.

Now choose File > Export As and save the file to the same directory as your code (we saved it to /home/pi/Pimoroni/inky).

Image code

The code to display an image on the Inky wHAT is much shorter, and easier to understand, than the code for text.

Enter the code from magpi_inky.py and make sure that the file name and path on line 7 (magpi_logo.png) match the file you saved in the previous step. Run the program to view the image on your Inky wHAT:

python magpi_inky.py

From The MagPi store

Subscribe

Subscribe to the newsletter

Get every issue delivered directly to your inbox and keep up to date with the latest news, offers, events, and more.