• sales

    +86-0755-88291180

1.54inch e-Paper (E) User Guide

Features

  • No backlight required; can retain the last displayed content for a long time after power-off
  • Very low power consumption, mainly only consumes power during refresh
  • Provides comprehensive supporting documentation: driver board schematic, Raspberry Pi / Jetson Nano / Arduino / STM32 / ESP32 example programs, etc.
  • The following applies only to the module version (with driver board)
    • Reserved SPI communication interface for easy connection to master controllers such as Raspberry Pi / Arduino / STM32 / ESP32
    • Onboard level shifter chip, compatible with 3.3V and 5V logic levels

Specifications

ParameterValue
Operating VoltageRaw display version: 3.3V
Module version: 3.3V/5V
Communication Interface3-wire SPI, 4-wire SPI
DimensionsRaw display version: 37.32 × 31.8 × 0.85 (mm)
Module version: 48.00 × 33.00 (mm)
Display Area27.0 × 27.0 mm
Dot Pitch0.1125 × 0.1125 (mm)
Resolution240 × 240 pixels
Display ColorE6 full color (E Ink Spectra 6)
Grayscale2
Full Refresh Time27s
Refresh Power Consumption< 40mW
Sleep Current< 0.01uA (close to 0)
Viewing Angle> 170°
Operating Temperature0 - 50 °C
Storage Temperature-25 - 60 °C
  • Refresh Time: The refresh time is based on experimental test data. The actual refresh time may vary; please refer to the actual performance. Flickering during the full refresh process is normal.
  • Refresh Power Consumption: Power consumption data is based on experimental test data. Actual power consumption may vary due to the presence of the driver board and different usage conditions; please refer to the actual performance.
  • Refreshing at low temperatures may cause color shift. It is recommended to let the screen stand at 25°C for 6 hours before refreshing.

Communication Interface


  • CSB (CS): Slave chip select signal, active low. The chip is enabled when this signal is low.
  • SCL (SCK/SCLK): Serial clock signal.
  • D/C (DC): Data/Command control signal. A low level indicates a command is being written; a high level indicates data/parameters are being written.
  • SDA (DIN): Serial data signal.
  • Timing: CPHA=0, CPOL=0, i.e., SPI mode 0.
  • Note: For specific information regarding SPI communication, you can search online for more details.

Working Principle

The e-Paper used in this product employs "Microencapsulated Electrophoretic Display" technology for image display. The basic principle involves charged nanoparticles suspended in a liquid migrating under the influence of an electric field. The e-Paper display relies on reflecting ambient light to show patterns and does not require a backlight. Under ambient light, the e-Paper display is clearly visible, with a viewing angle approaching 180°. Therefore, e-Paper displays are ideal for reading.

Programming Principle

  • For black and white images, we can define black as 0 and white as 1. Thus, we have a way to represent colors:
    • White: □, corresponds to 1
    • Black: ■: corresponds to 0
  • A point on an image is generally called a pixel. Since the color is either 1 or 0, 1 bit can represent a pixel: 1 Pixel = 1 bit. Therefore, one byte contains 8 pixels.
  • Take 16 pixels as an example. Suppose the first 8 pixels are black and the last 8 pixels are white. We can consider pixels 1-16 correspond to bits 0 to 15, where 0 represents black and 1 represents white:

    For computers, data storage is typically Most Significant Bit (MSB) first, and one byte consists of only 8 bits. So, there is a slight adjustment:

    In this way, only 2 bytes are required to represent 16 pixels.
  • Now suppose we have six colors, so at least three bits are needed to represent all colors. However, for ease of computation, we add a 0 in front, i.e., use four bits to represent the color of one pixel, so one byte (1 Byte) can represent two pixels. In fact, the controller of this module uses this method.

  • Taking four pixels as an example, assume the colors of these four points are yellow, blue, red, and green in order. According to the table above, human logic would store them sequentially as:

  • For a computer, data is stored with the most significant bit first and the least significant bit last, and one byte has only eight bits, so it is stored in bytes as:


Working with Raspberry Pi

Hardware Connection

  • Connect using the 9PIN cable. Refer to the pin mapping table below:
    • Raspberry Pi pin mapping
      e-PaperRaspberry Pi Pin Mapping
      BCM2835 PinBoard Physical Pin Number
      VCC3.3V3.3V
      GNDGNDGND
      DINMOSI19
      CLKSCLK23
      CSCE024
      DC2522
      RST1711
      BUSY2418
      PWR1812

Enabling the SPI Interface

  • Open the Raspberry Pi terminal and enter the following command to access the configuration interface:

    sudo raspi-config

    Select Interfacing Options -> SPI -> Yes to enable the SPI interface


  • Reboot the Raspberry Pi:

    sudo reboot
  • Check /boot/config.txt, you should see that dtparam=spi=on has been written


  • To ensure SPI is not occupied, it is recommended to temporarily disable other driver overlays. Use ls /dev/spi* to check the SPI occupancy. The terminal output /dev/spidev0.0 and /dev/spidev0.1 indicates that SPI is functioning normally.


Running the C Example

  • Install the lg library

    #Open the Raspberry Pi terminal and run the following commands:
    wget https://github.com/joan2937/lg/archive/master.zip
    unzip master.zip
    cd lg-master
    make
    sudo make install
    # For more information, please refer to the source code: https://github.com/gpiozero/lg
    Install gpiod library (optional)
    #Open the Raspberry Pi terminal and run the following commands:
    sudo apt-get update
    sudo apt install gpiod libgpiod-dev
    Install BCM2835 (optional)
    #Open the Raspberry Pi terminal and run the following commands:
    wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
    tar zxvf bcm2835-1.71.tar.gz
    cd bcm2835-1.71/
    sudo ./configure && sudo make && sudo make check && sudo make install
    # For more information, please refer to the official website: http://www.airspayce.com/mikem/bcm2835/
    Install wiringPi (optional)
    #Open the Raspberry Pi terminal and run the following commands:
    sudo apt-get install wiringpi
    #For Raspberry Pi systems after May 2019 (those earlier may not require execution), an upgrade may be necessary:
    # project-downloads.drogon.net has been discontinued. Please use the GitHub method below for installation.
    # wget https://project-downloads.drogon.net/wiringpi-latest.deb
    # sudo dpkg -i wiringpi-latest.deb
    gpio -v
    # Run gpio -v and version 2.52 will appear. If it does not appear, there is an installation error.

    #Bullseye branch system uses the following command:
    git clone https://github.com/WiringPi/WiringPi
    cd WiringPi
    ./build
    gpio -v
    # Run gpio -v and version 2.60 will appear. If it does not appear, there is an installation error.
  • Download the example (skip if already downloaded)

    wget https://files.waveshare.com/wiki/1.54inch_e-Paper_E/1.54inch_e-Paper_E.zip
    unzip 1.54inch_e-Paper_E.zip -d 1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 1.54inch_e-Paper_E.zip -O./1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Download the program via GitHub (alternative method, skip if already downloaded)
    • Accessing GitHub may not be very smooth at present. It is recommended to use the above method to download from our official website.
      git clone https://github.com/waveshare/e-Paper.git
      cd e-Paper/E-paper_Separate_Program/1.54inch_e-Paper_E/RaspberryPi_JetsonNano
  • Compile the program (Note: -j4 uses 4 threads for compilation; you can modify the number)

    # It is now in 1.54inch_e-Paper_E/RaspberryPi_JetsonNano
    cd c
    sudo make clean
    sudo make -j4
  • Run the program

    sudo ./epd

Running the Python Example

  • Install libraries

    sudo apt-get update
    sudo apt-get install python3-pip
    sudo apt-get install python3-pil
    sudo apt-get install python3-numpy
    sudo pip3 install spidev
    Install libraries (python2)
    sudo apt-get update
    sudo apt-get install python-pip
    sudo apt-get install python-pil
    sudo apt-get install python-numpy
    sudo pip install spidev
    Install gpiozero library (pre-installed by default, if not, install using the following commands)
    sudo apt-get update
    # python3
    sudo apt install python3-gpiozero
    # python2
    sudo apt install python-gpiozero
  • Download the example (skip if already downloaded)

    wget https://files.waveshare.com/wiki/1.54inch_e-Paper_E/1.54inch_e-Paper_E.zip
    unzip 1.54inch_e-Paper_E.zip -d 1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 1.54inch_e-Paper_E.zip -O./1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Download the program via GitHub (alternative method, skip if already downloaded)
    • Accessing GitHub may not be very smooth at present. It is recommended to use the above method to download from our official website.
      git clone https://github.com/waveshare/e-Paper.git
      cd e-Paper/E-paper_Separate_Program/1.54inch_e-Paper_E/RaspberryPi_JetsonNano
  • Run the program

    # Make sure it is in 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/ position
    cd python/examples/
    python3 epd_1in54e_test.py


Working with Arduino

Hardware Connection

  • Connect using the 9PIN cable. Refer to the pin mapping table below:
    • Arduino pin mapping
      e-PaperArduino UNOMega2560
      VCC5V5V
      GNDGNDGND
      DIND11D51
      CLKD13D52
      CSD10D10
      DCD9D9
      RSTD8D8
      BUSYD7D7
      PWRD6D6

Installing the IDE

Arduino IDE Windows Installation Tutorial

Running the Program

  • In the Resources section download and extract the example, and you will see the following content:

  • Open the test program: 1.54inch_e-Paper_E/Arduino_R4/Arduino_R4.ino

  • In the Arduino IDE toolbar (Tools), select the corresponding Board and Port:

  • Finally, click Upload. A successful upload is shown below (Arduino 1.8.13):


Working with Jetson Nano

Hardware Connection

  • Connect using the 9PIN cable. Refer to the pin mapping table below:

    Jetson Nano pin mapping

    e-PaperJetson Nano Developer Kit
    BCM2835 PinBoard Physical Pin Number
    VCC3.3V3.3V
    GNDGNDGND
    DIN10(SPI0_MOSI)19
    CLK11(SPI0_SCK)23
    CS8(SPI0_CS0)24
    DC2522
    RST1711
    BUSY2418
    PWR1812

Running the C Example

  • Download the example (skip if already downloaded)

    wget https://files.waveshare.com/wiki/1.54inch_e-Paper_E/1.54inch_e-Paper_E.zip
    unzip 1.54inch_e-Paper_E.zip -d 1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 1.54inch_e-Paper_E.zip -O./1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Download the program via GitHub (alternative method, skip if already downloaded)
    • Accessing GitHub may not be very smooth at present. It is recommended to use the above method to download from our official website.
      git clone https://github.com/waveshare/e-Paper.git
      cd e-Paper/E-paper_Separate_Program/1.54inch_e-Paper_E/RaspberryPi_JetsonNano
  • Compile the program (Note: -j4 uses 4 threads for compilation; you can modify the number)

    # It is now in 1.54inch_e-Paper_E/RaspberryPi_JetsonNano
    cd c
    sudo make clean
    sudo make JETSON -j4
  • Run the program

    sudo ./epd

Running the Python Example

  • Install libraries

    sudo apt-get update
    sudo apt-get install python3-numpy
    sudo apt-get install python3-pip
    sudo pip3 install Jetson.GPIO
  • Download the example (skip if already downloaded)

    wget https://files.waveshare.com/wiki/1.54inch_e-Paper_E/1.54inch_e-Paper_E.zip
    unzip 1.54inch_e-Paper_E.zip -d 1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 1.54inch_e-Paper_E.zip -O./1.54inch_e-Paper_E
    cd 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/
    Download the program via GitHub (alternative method, skip if already downloaded)
    • Accessing GitHub may not be very smooth at present. It is recommended to use the above method to download from our official website.
      git clone https://github.com/waveshare/e-Paper.git
      cd e-Paper/E-paper_Separate_Program/1.54inch_e-Paper_E/RaspberryPi_JetsonNano
  • Run the program

    # Make sure it is in 1.54inch_e-Paper_E/RaspberryPi_JetsonNano/ position
    cd python/examples/
    python3 epd_1in54e_test.py


Working with STM32

Hardware Connection

Use a 9PIN cable to connect, please refer to the pin corresponding table below:

STM32 Pin Mapping

e-PaperSTM32
VCC3.3V
GNDGND
DINPA7
CLKPA5
CSPA4
DCPA2
RSTPA1
BUSYPA3
PWRPA6

Running the Program

  • In the Resources section download the example package, then unzip it and enter the 1.54inch_e-Paper_E directory to see the following contents:

  • Use Keil to open epd-demo.uvprojx in the 1.54inch_e-Paper_E/STM32-F103ZET6/MDK-ARM.
  • Open the Keil compile toolbar (usually already open):

  • Click Build.

  • Ensure a suitable programmer is connected, then click Load to download the program to the microcontroller.


Working with ESP32

Hardware Connection

ESP32 Pin Mapping

e-PaperESP32ESP32-S3
VCC3.3V3.3V
GNDGNDGND
DINIO14IO11
CLKIO13IO12
CSIO15IO10
DCIO27IO13
RSTIO26IO14
BUSYIO25IO4
PWRIO33IO5

Environment Configuration

Online installation requires the use of VPN software, while offline installation does not require the use of VPN software

Running the Program

  • In the Resources section download and extract the example, and you will see the following content:

  • Open the test program: 1.54inch_e-Paper_E\ESP32\ESP32.ino or 1.54inch_e-Paper_E\ESP32-S3\ESP32-S3.ino


  • In the Arduino IDE toolbar (Tools), select the corresponding Board and Port:

  • If using a core like the ESP32-S3 with PSRAM, please enable PSRAM

  • Finally, click Upload. A successful upload is shown below (Arduino 2.2.1):


Resources

1. Examples

2. Hardware Resources

3. Technical Manuals

4. Software Tools

5. Other Resources

Support

Monday-Friday (9:30-6:30) Saturday (9:30-5:30)

Email: services01@spotpear.com


TAG: SpotPear Raspberry Pi 5 Raspberry Pi 64MP Camera Rasperry Pico 2 RP2350 7.3 inch e-Paper Ink Display E6 Full Color Electronic PhotoPainter 800x480 For Calendar/Quotes/Paintings/Posters Raspberry Pi DA7212 I2S Audio For XiaoZhi AI Expansion Board Dul-mic Free-Driver For PI5/PI4/Zero ESP32 C3 Zero ESP32 MLX90640 SpotPear GC9A01 Milk V Duo USB to CAN Camera USB Camera 2MP GC2093 &zwnj;WDR Backlight Compensation&zwnj; Onboard microphone ESP32-S3 ETH Camera Development Board PoE RJ45 / OV2640 OV5640 Port / W5500 / Micro-SD Compatible With Raspberry Pi Pico Size Desktop Trinket Raspberry Pi 5 Cooling Spotpear DeepSeek AI Voice Chat ESP32-S3 Box N16R8 AUDIO Board Support External LCD/Camera AI deepseek Milk-V RJ45 Industrial USB TO RS485 Isolated Bidirectional Converter Original FT232RNL 2 Meters long