Interesting E-Ink Display

This looks interesting for $55:

Has anyone played with that yet?

Looks really nice actually, but I’d check the documentation is understandable before getting one :slight_smile:

I have not bought one yet, but I will get one before Christmas. I’m working on a project that could use it, and a 4 inch screen is a fairly good size. The Imp can e-ink the display and then sleep.

Here’s what I’ve learned about the WaveShare E-Display (e-ink).

The screen refresh is about 1.3 seconds, so it can’t be used for animation. But it’s an e-ink screen, so it’s meant to be drawn and then power removed. The image stays in place permanently.

You should also buy the $5.00 USB-uart mini board, so you can program it with a PC:

It comes with built-in 128MB Flash, but it has a micro SD card slot, so you can put in your own TF memory card (ie 8GB).

It comes with software for Windows which includes the English Font files. I have no idea what the font files are, or how many fonts are included. With the text command, the fonts can be resized. They don’t have much information about the actual fonts.

For graphics/images, you create those ahead of time using MS Paint (or whatever). They need to be BMP format converted to gray4, which supports 4 shades of gray (black). No color obviously.

Once you upload the font files and any graphics you create, then you can disconnect the PC. It can now run from the Imp or Arduino. Now you are ready to use UART from the Imp to display text and BMP images anywhere on the display. You can also draw lines, rectangles, circles using their built-in command set.

The command set seems easy enough to understand.

The Parity byte (which is the last byte of the command set) is the XOR of all previous bytes. That will be hardest part to do with the Imp. To calculate that parity byte.

An example command string …
CLEAR SCREEN, which is the 2E command.

A5 00 09 2E CC 33 C3 3C 82

A5 = always first byte sent (it’s the header, which is 1 byte)

00 09 = two bytes representing how many bytes are being sent in total. The Imp will have to calculate ahead of time how many this will be, as it could be a text string as well. It might be a total of 100 bytes. In the case of text, each letter is represented by its ASCII Hex Byte. For an image, the text string is the name of the BMP file you stored in the memory.

2E = clear screen command (each command is 1 byte)

CC 33 C3 3C = always the same “frame end” (4 bytes)

82 = parity, which is the combined XOR of the previous bytes (the previous 8 bytes in this example, and it includes the header as well).

I’m certainly expecting WaveShare to make a larger screen in the future. What they’ve done here seems like an easy way to work with e-ink at an affordable price. It has limitations, but way better than other e-ink options I’ve come across.

I’ll post about this again later this fall, unless someone else beats me to it. I see a future hardware library in the making.

You have to remember that one of the only other choices for hobbyists, that is affordable is the Pervasive Displays e-ink screen:

That one is $40, 2.7 inches, and text has to be part of the image (I believe). Not sure if that one even supports 4 shades of gray (it is only black and white?).