Introduction: Display an Image on E-Ink Displays With Arduino Uno

About: We're a group of fun-loving, electronic DIY'ers with Smart-Prototyping.com. We hope to share useful guides and tutorials as well as the cool things we think up every-once-in-awhile. Enjoy!

Ready to stamp an image onto an everlasting display? What worthy design will you work with? In this tutorial we'll walk step-by-step programming an image onto an E-Ink display module using an Arduino Uno

The E in E-Ink or E-Paper stands for electronic (how about everlasting?) and imitates the look of normal ink on paper. It's a useful display in Arduino projects for its high visibility and contrast, wide viewing angle, and low power requirements. Once you program it, it will remain until reprogrammed, even if there's no power supply.

We're using a free software that's used to convert an image to color LCD format called Image2LCD, which is where we'll get our code to program with.

Things to prepare:

Hardware

Software

Step 1: Let's Connect the Display

Refer to the pictures above for the pin layout for the E-Ink display. Below are the connections to make:

E-Ink Module > Arduino Uno

D/C > D5

CS1 > D6

SCL > D13

SDA > D11

GND > GND

RES > RESET

BU > D7

BS1 > D8

3.3V > 3.3V (5V is ok too)

Step 2: Install the Arduino Library

  1. Download the E-Ink Library as a .zip file from the Software section in the Introduction above.
  2. Open your Arduino IDE and import the E-Ink Library onto it (Install the IDE if you haven't already)
  3. In the Arduino IDE, go to Sketch > Include Library > Add .zip Library
  4. Choose the SmartEink_Arduino_Library.zip file that you previously downloaded
  5. You should see the library was added successfully

Step 3: Upload and Run the Code

  1. In the Arduino IDE, navigate to File > Examples > SmartEInk > ShowBitMapDemo. Load up the example sketch. A new window will open with default code like the code above:
  2. Before you upload the code to your Arduino Uno, make sure you have the correct Board and Port selected under the tools tab
  3. Upload the code!

The code should’ve successfully uploaded a picture. You can try unplugging the Arduino Uno from its power source. The module will display this image until you upload new code to the Arduino.

Step 4: Upload Your Own Design

Now it's time to display your own design!

  1. First, pick a picture you'd like to display. I picked cartoon grapes for this tutorial
  2. Change the file size to 172x72 pixels, .bmp format.
    1. The grape file size is 1600x1600 pixels in .png format, so we use Photoshop to change the size and format
  3. Next, use the software Image2Lcd to open it
  4. Copy the options as they appear in the above screenshot of Image2Lcd
  5. Click save and you will get the C array code for this picture.
  6. Copy this array code starting from after the { symbol to right before the last comma at the end of the string of code. In the ShowBitMapDemo page in the Arduino IDE, paste the code right after the { that is following "unsigned char PictureCode[]",
  7. Upload the code to the Arduino board and wait for the module to display the image you selected

You now have your E-Ink display module up and running! Keep going and try uploading different pictures. What can you draw?