• sales

    +86-0755-88291180

5inch e-Paper 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 HAT)
    • Designed based on the Raspberry Pi 40PIN GPIO interface, suitable for Raspberry Pi, Jetson Nano
    • 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 Screen Version: 3.3V
Module Version: 3.3V/5V
Communication Interface3-wire SPI, 4-wire SPI
Physical DimensionsRaw Screen Version: 126.38 × 71.19 × 0.795 (mm)
Module Version: 30.5 × 65 (mm)
Active Area110.592 × 62.652 (mm)
Dot Pitch0.1833 × 0.1833 (mm)
Resolution960 × 552 pixels
Display ColorBlack, White
Gray Scale2
Partial Refresh Time0.7
Full Refresh Time1.8s
Refresh Power Consumption< 50mW
Sleep Current< 0.01uA (near 0)
Viewing Angle> 170°
Operating Temperature0 ~ 50 ℃
Storage Temperature-25 ~ 60 ℃
  • 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 in low-temperature environments may cause color shift. The screen should be left stationary for 6 hours at 25°C 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: CPOL=0, CPHA=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.


Working with Raspberry Pi

Hardware Connection

  • When connecting to the Raspberry Pi, you can directly plug the board onto the 40PIN header, ensuring the pins are aligned correctly.
  • If using a 9PIN cable, please 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:
    wget https://files.waveshare.com/wiki/common/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 demo (skip if already downloaded)

    wget https://files.waveshare.com/wiki/5inch_e-Paper/5inch_e-Paper.zip
    unzip 5inch_e-Paper.zip -d 5inch_e-Paper
    cd 5inch_e-Paper/RaspberryPi_JetsonNano/
    Alternative extraction method
    git clone https://github.com/waveshare/e-Paper.git
    cd e-Paper/E-paper_Separate_Program/5inch_e-Paper/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.
      sudo apt-get install p7zip-full
      7z x 5inch_e-Paper.zip -O./5inch_e-Paper
      cd 5inch_e-Paper/RaspberryPi_JetsonNano/
  • Compile the program (Note: -j4 uses 4 threads for compilation; you can modify the number)

    # It is now in 5inch_e-Paper/RaspberryPi_JetsonNano position
    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 demo (skip if already downloaded)

    wget https://files.waveshare.com/wiki/5inch_e-Paper/5inch_e-Paper.zip
    unzip 5inch_e-Paper.zip -d 5inch_e-Paper
    cd 5inch_e-Paper/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 5inch_e-Paper.zip -O./5inch_e-Paper
    cd 5inch_e-Paper/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/5inch_e-Paper/RaspberryPi_JetsonNano
  • Run the program

    # Make sure it is in 5inch_e-Paper/RaspberryPi_JetsonNano/ position
    cd python/examples/
    python3 epd_5in0_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

Run the Demo

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

  • Open the demo: 5inch_e-Paper\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

  • The 40PIN header on the Jetson Nano is compatible with the Raspberry Pi's 40PIN header, and it provides a Jetson.GPIO library whose API is consistent with the Raspberry Pi's RPI.GPIO library. Therefore, the pin numbers used here are the same as those for the Raspberry Pi. When using the 40PIN interface, you can directly plug the module into the 40PIN header of the Jetson Nano.
  • If using a 9PIN cable, please 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 demo (skip if already downloaded)

    wget https://files.waveshare.com/wiki/5inch_e-Paper/5inch_e-Paper.zip
    unzip 5inch_e-Paper.zip -d 5inch_e-Paper
    cd 5inch_e-Paper/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 5inch_e-Paper.zip -O./5inch_e-Paper
    cd 5inch_e-Paper/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/5inch_e-Paper/E-RaspberryPi_JetsonNano
  • Compile the program (Note: -j4 uses 4 threads for compilation; you can modify the number)

    # It is now in 5inch_e-Paper/RaspberryPi_JetsonNano position
    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 demo (skip if already downloaded)

    wget https://files.waveshare.com/wiki/5inch_e-Paper/5inch_e-Paper.zip
    unzip 5inch_e-Paper.zip -d 5inch_e-Paper
    cd 5inch_e-Paper/RaspberryPi_JetsonNano/
    Alternative extraction method
    sudo apt-get install p7zip-full
    7z x 5inch_e-Paper.zip -O./5inch_e-Paper
    cd 5inch_e-Paper/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/5inch_e-Paper/E-RaspberryPi_JetsonNano
  • Run the program

    # Make sure it is in 5inch_e-Paper/RaspberryPi_JetsonNano/ position
    cd python/examples/
    python3 epd_5in0_test.py


Working with STM32

Hardware Connection

  • Connect using the 9PIN cable. Refer to the pin mapping 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 5inch_e-Paper directory to see the following contents:

  • Use Keil to open epd-demo.uvprojx in the 5inch_e-Paper\STM32-F103ZET6\MDK-ARM directory
  • 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 the example package, then unzip it and enter the 5inch_e-Paper directory to see the following contents:

  • Open the demo: 5inch_e-Paper\ESP32\ESP32.ino or 5inch_e-Paper\ESP32\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. Hardware Resources

Driver Board Design Files

2. Technical Manuals

3. Example

4. Software Tools

5. Other Resource Links


Support

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

Email: services01@spotpear.com

TAG: Raspberry Pi Pico 2 RP2350 USB A Development Board RP2350A User Guide BPI-M4 Zero IR Thermal Imaging Camera 7inch LCD 1024×600 Computer PC Monitor Display Secondary Screen TypeC USB CPU RAM Only For Windows lilygo Arduino MLX90640 Raspberry Pi UGV Rover ROS2 PT AI OpenCV Robot Car MediaPipe Milk V Duo Digital Photo Frames ESP32-S3FH4R2 Matrix 8x8 RGB-LED-WiFi Bluetooth QST Attitude Gyro Sensor QMI8658C Arduino Python Raspberry Pi 1.54inch LCD Bookworm-Desktop Display and Touch Raspberry Pi Pico 2 Tiny RP2350B RP2350-Linux Mini Development Board with PSRAM-8MB Or Without PSRAM Bus Servo DC-BUCK-Adapter 7.2V Voltage mini module For SC15/SC09 Servo ESP32-C6 Development Board Computer USB Monitor Screen ESP32-S3 2.16inch AMOLED Display AI Development Board 480×480 2.16 inch TouchScreen Deepseek UART To Ethernet RS485 Bus ESP32 ST7789 tutorial