1.9inch Segment e-Paper Module Manual
| ||
| ||
Overview
Parameters
| Size | 1.9inch |
| Driver Board Size | 51mm × 34 mm |
| Display Size | 41.35mm × 28.11 mm |
| Outline Dimensions (raw display) | 49.35mm × 32.11mm × 1.13 mm |
| Operating Voltage | 3.3V / 5V (IO level voltage should be the same as the supply voltage) |
| Communication Interface | IIC |
| Segment code | 91 |
| Display Color | black, white |
| Grayscale | 2 |
| Partial Refresh Time | 0.3s |
| Refresh Time | 1.5s |
| Refresh Power | <5 mW (typ.) |
| Sleep Current | < 0.01uA (close to 0) |
- Refresh time: The refresh time is based on experimental test data, and there may be errors in the actual refresh time. The actual results shall prevail. There will be a flickering effect during the global refresh process, which is a normal phenomenon.
- Refresh power consumption: The power consumption data is experimental test data, and the actual power consumption may have certain errors due to the presence of the driver board and actual usage. The actual results shall prevail.
- IIC address: 0x3c and 0x3d are used by default
Command transmission address: 0x3c/0x3e Data transmission address: 0x3d/0x3f
IIC Communication Protocol
From the above function pin table, it is known that I2C communication is used, with one data cable and one clock cable. There are three types of signals in the process of transmitting data on the I2C bus: start signal, end signal, and response signal.

Start signal: When SCL is high level, SDA transitions from high to low to initiate data transmission.
End signal: When SCL is high level, SDA transitions from low to high to terminate data transmission.
Response signal: After the IC receiving the data receives 8-bit data, it sends a specific low-level pulse to the IC sending the data, indicating that the data has been received.
- I2C writing data sequence

First, the host (that is, the Raspberry Pi, collectively referred to as the host) will send a start signal, and then combine its I2C 7-bit address and the write operation bit into 8-bit data and send it to the slave (that is, the TSL2581 sensor module, collectively referred to as the slave), the slave will respond with a response signal after receiving it, the host will send the address of the command register to the slave at this time, the slave will receive the send response signal, at this time the master will send the value registered in the command, and the slave will respond with a response signal until the host sends a stop signal, the I2C write data operation ends.
I2C reading data sequence

First, the host will send a start signal, and then combine its I2C 7-bit address and write operation bits into 8-bit data and send it to the slave. After receiving it, the slave will respond with a response signal, and the host will send the address of the command register to the slave, the slave receives the send response signal, at this time the host sends a start signal again, and combines its 7-bit address and read operation bit into 8-bit data to send to the slave, and the slave sends a response after receiving the signal, and then send the value in its register to the host, and the host will give a response signal until the host sends a stop signal, and the communication ends.
- 1.9inch Segment e-Paper I2C address
Command Address: 0x3c
Data Address: 0x3D
Operating Principle
- The e-paper used in this product uses "microcapsule electrophoresis display" technology for image display. The basic principle is that charged nanoparticles suspended in a liquid migrate under the action of an electric field. The e-paper display screen displays patterns by reflecting ambient light and does not require a backlight. Under ambient light, the e-paper display screen is clearly visible, with a viewing angle of almost 180°. Therefore, e-paper displays are ideal for reading.
Programming Principle
- For black and white images, we can define it as 0 if it is black and 1 if it is white, so there is a way to represent colors:
- White: □ corresponds to 1
- Black: ■ corresponds to 0
- White: □ corresponds to 1
- A dot is generally called a pixel on the graph, and the color is either 1 or 0, that is, 1 bit can identify the color: 1Pixel = 1bit, then a byte contains 8 pixels.
- Take 16 pixels as an example. We assume that the first 8 pixels are black and the last 8 pixels are white. Then it can be thought that pixels 1-16 correspond to bits 0 to 15, and 0 means black. 1 means white:

For the computer, the way it stores data is that the high bits come first and the low bits come last, and each byte only has 8 bits, so there may be a slight change:

In this way, only 2 bytes are required to represent 16 pixels.
The programming principle of 1.9inch Segment e-Paper is basically the same as the one introduced above, except that the size of each pixel is different
Segment Code Table
![]()
Number correspondence table (without decimal point):
0: 0xbf, 0x1f
1: 0 x 1f (position 1), 0 x 00, 0 x 1f (other positions)
2: 0xfd, 0x17
3: 0xf5, 0x1f
4: 0x47, 0x1f
5: 0xf7, 0x1d
6: 0xff, 0x1d
7: 0x21, 0x1f
8: 0xff, 0x1f
9: 0xf7, 0x1f
The decimal point and % are the 5th place in the 4th, 8th, and 10th positions respectively.
The 13th position can display Celsius (0 x 05) and Fahrenheit (0 x 06), the 0th position is the bottom line, the 1st position is the middle line, the 2nd position is other displays, the 3rd position shows the Bluetooth icon, and the 4th position shows the power icon, position 14 is unused.
Precautions
- The screen supports partial refresh. Please note that when using it, you cannot always use partial refresh to refresh the screen. You need to perform a global refresh of the screen after several partial refreshes. Otherwise, the screen display effect will be abnormal and cannot be repaired!
- Note that the screen cannot be powered on for a long time. When the screen does not refresh, the screen must be set to sleep mode or power off. Otherwise, the screen will remain in a high voltage state for a long time, which will damage the diaphragm and cannot be repaired!
- When using the e-paper screen, it is recommended that the refresh interval is at least 180s, and refreshed at least every 24 hours. If the e-paper screen is not used for a long time, it should be whitened and stored. (Refer to the data sheet for specific storage environment requirements)
- After the screen enters sleep mode, the image data sent will be ignored, and it can only be refreshed normally after re-initialization.
- The working voltage requirement for an ink screen is 3.3V. If you purchase a raw display and need to work in a 5V environment when designing the circuit, it is recommended to perform level conversion processing. The new version (V2.1 and subsequent versions) has added a level processing circuit, which can support both 3.3V and 5V working environments simultaneously. The old version can only support 3.3V working environment. You can confirm the version before using it. (The ones with 20PIN chips on the PCB are generally new versions.)
- The FPC cable on the screen is relatively fragile, be careful to bend the cable horizontally along the screen when using it, and do not bend the cable vertically along the screen
- The ink screen screen is relatively fragile, so be careful to avoid falling, colliding, or pressing hard.
- We recommend that customers first use the sample demo we provide and use the corresponding development board to test after getting the screen.
Raspberry Pi
Hardware Connection
When connecting to the Raspberry Pi, you can directly plug the board into the 40PIN pin header of the Raspberry Pi, and be careful to align the pins.
| e-Paper | Raspberry Pi | |
| BCM2835 encoding | Board physical pin number | |
| VCC | 3.3V | 3.3V |
| GND | GND | GND |
| SDA | SDA.1 | 3 |
| SCL | SCL.1 | 5 |
| RST | 4 | 7 |
| BUSY | 17 | 11 |
Enable I2C Interface
- Open the Raspberry Pi terminal and input the following command to enter the configuration interface:
sudo raspi-config Select Interface Options -> I2C -> Yes to enable the I2C interface
sudo reboot
Run C Demo
- Install 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 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/
- Download the demo (you can skip it if you have already downloaded it)
wget https://files.waveshare.com/wiki/common/E-Paper-Segment-Code.zip unzip E-Paper-Segment-Code.zip -d E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- Alternate decompression method
sudo apt-get install p7zip-full 7z x E-Paper-Segment-Code.zip -O./E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- Compiler program (Note: -j4 means using 4 threads for compilation, the number can be modified by yourself)
# It is now in e-Paper/RaspberryPi position cd c sudo make clean sudo make -j4
- Run the demo
sudo ./main
Run Python Demo
- Install function library
sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo apt-get install python3-numpy sudo apt-get install python3-smbus
- Install function library (python2)
sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo apt-get install python-numpy sudo apt-get install python-smbus
- Download the demo (you can skip it if you have already downloaded it)
wget https://files.waveshare.com/wiki/common/E-Paper-Segment-Code.zip unzip E-Paper-Segment-Code.zip -d E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- Alternate decompression method
sudo apt-get install p7zip-full 7z x E-Paper-Segment-Code.zip -O./E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- Run the demo
# Make sure it is in e-Paper/RaspberryPi/ position cd python/1in9_E-paper sudo python3 main.py
Arduino
Hardware Connection
| e-Paper | Arduino UNO | Mega2560 |
| Vcc | 5V | 5V |
| GND | GND | GND |
| SDA | SDA | SDA |
| SCL | SCL | SCL |
| RST | D8 | D8 |
| BUSY | D7 | D7 |
The connection diagram is as follows (click to enlarge):
Install IDE
Arduino IDE Windows Installation Tutorial
Run Demo
- In the Resources section download the demo, then unzip it and enter the E-Paper_code directory to see the following content:
- Open the demo: E-Paper-Segment-Code\Arduino\EPD_1in9\EPD_1in9.ino
- After selecting the board in Arduino IDE, compile and download it.
STM32
Hardware Connection
| e-Paper | STM32 |
| VCC | 3.3V |
| GND | GND |
| SDA | PB9/D14 |
| SCL | PB8/D15 |
| RST | PA9/D8 |
| BUSY | PA8/D7 |
Take our XNUCLEO-F103RB as an example, the connection is as follows:
Run Demo
- In the Resources section download the demo, then unzip it and enter the E-Paper_code directory to see the following content:
- Find the STM32 program file directory after decompression, open epd-segmented-demo.uvprojx in the E-Paper-Segment-Code\STM32\epd-segmented-demo\MDK-ARM directory, and you can see the program.
- Comment out the corresponding function in main.c:
// EPD_1in9_test();
Modify it into:
EPD_1in9_test();
- Then, compile it to download.
Resources
Documents
- Schematic
- 1.9inch Segment e-Paper Datasheet
- 1.9inch Segment e-Paper V1.1 Datasheet (current version)
- IST7134 Driver Manual
Demo
Related Link
FAQ
Software Issues
- Use the command "sudo apt-get install python-imaging" to install the imaging function library.
- In this case, the customer needs to reduce the number of partially refreshing positions and perform a screen clearing after partially refreshing 5 times (increasing the voltage of VCOM can improve the color, but it will increase the afterimage).
- The process of waking up the e-Paper is actually a process of re-powering on, so when the EPD wakes up, it needs to perform a screen clearing action first to minimize residual images.
- It may be caused by an unsuccessful I2C driver.
- 1. First check if the wiring is correct.
- 2. Check if I2C is enabled and the parameters are configured correctly (I2C baud rate, I2C mode and other parameters)
Hardware Issues
- Yes, there is now a level conversion chip onboard that supports 3.3V drive.
- The rated input voltage of the e-Paper is 2.3~3.6V. If it is a 5V system, level conversion is required. In addition, the voltage should not be lower than 2.5V to avoid affecting the display effect of the e-Paper.
- For device selection, you can use the model in the schematic diagram we provide or select according to the data sheet.
- Yes, please note that the timing needs to be correct.
- Confirm if I2C communication is normal.
- Confirm if the BUSY pin is properly initialized to input mode.
- It may be that there is no normal reset, try to shorten the duration of the low level during reset (because the power-off switch has been added to the drive circuit, resetting the low level for too long can cause the driver board to lose power and result in reset failure.)
- If the busy function has a send 0x71 command, you can try to comment it out.
Screen Issues
- [Working conditions]: Temperature range: 0~50°C; Humidity range: 35%~65%RH
- [Storage conditions]: Temperature range: below 30°C; Humidity range: below 55%RH; Maximum storage time: 6 months
- [Transportation conditions]: Temperature range: -25~70°C; Maximum shipping time: 10 days
- [After unpacking]: Temperature range: 20°C±5°C; Humidity range: 50±5%RH; Maximum storage time: Complete assembly within 72 hours
- Refresh mode:
- Global refresh: The e-Paper will flash multiple times during the refresh process (the number of flashes depends on the refresh time). The flashing is to remove residual images to achieve the best display effect.
- Partial refresh: The e-Paper screen has no flickering effect during the refresh process. Users who use the partial refresh function should pay attention to performing a global refresh operation to clear the residual images after refreshing several times. Otherwise, the residual image problem will become more and more serious and even damage the screen (only some black and white e-Paper screens currently support partial refresh, please refer to the product page for details).
- Refresh frequency:
- During use, it is recommended that customers set the refresh interval of the e-Paper screen to at least 180 seconds (except for products that support partial refresh).
- During the standby process (that is, after the refresh operation), it is recommended that customers set the e-Paper screen to sleep mode or power off (the power supply of the e-Paper can be disconnected with an analog switch) to reduce power consumption and extend the life of the e-Paper screen. (If some e-ink screens are powered on for a long time, the screen may be damaged and cannot be repaired.)
- Usage Scenarios:
- The e-Paper screen is recommended for indoor use. If it is used outdoors, it is necessary to avoid direct sunlight on the e-Paper screen, and at the same time take ultraviolet protection measures, because charged particles will dry out under strong light for a long time, resulting in inactivation and cannot be refreshed, which is irreversible. When designing e-Paper products, customers should determine whether the use environment meets the requirements of e-Paper screens.
- Ideally, with normal use, it can be refreshed 1,000,000 times (1 million times).
- When the development board is powered on for a long time, after each refresh operation, it is recommended to set the screen to sleep mode or directly cut off the power, otherwise the screen may be burned when the e-Paper is in a high voltage state for a long time.
- Yes, but you need to redo the e-paper initialization operation with the software.
- The gray scale of electrophoresis e-paper is determined by the spatial position of the particles in the microcapsule or microcup, and the electrophoresis phenomenon occurs between black particles and white particles under the action of voltage, and the voltage timing that prompts the electrophoretic movement of the particles is the driving waveform of the e-paper. The driving waveform is the core part of the e-paper display, and the optimization of the driving waveform will directly affect the display effect of the display. The drive waveform file is a parameter formed to describe the voltage timing that causes the electrophoretic motion of the particles, and needs to be called periodically when the e-paper is refreshed.
- Different batches of e-paper diaphragms and electrophoretic matrices will have different voltage values when driving the display due to reasons such as materials and manufacturing processes. The relationship between grayscale, voltage, and temperature is reflected in the waveform of the e-Paper screen. Generally speaking, after each batch of electrophoresis matrices is generated, there will be a corresponding waveform file in the form of a .wbf file. The membrane manufacturer will provide the waveform file and electrophoresis matrix to the manufacturer of the e-paper screen, and then the the manufacturer of the e-paper screen integrates the protective board, substrate and driver and provides them to customers later; if the waveform file does not correspond to the screen, it is likely to cause the display to fail or the display effect to be unsatisfactory. Generally, the waveform file has been OTP built into the driver IC of the e-paper screen when it leaves the factory, and some of the demos we provide also call external waveform files to drive the e-paper screen.
Other Issues
- With coating.
- 0.5mm pitch, 8Pin.
- Cable socket 0.5-8pin rear flip 2.0H (FPC connector).
- When switching from partial refresh to global refresh on the e-Paper, a global refresh initialization function needs to be added.
- It may be that a C language demo based on the BCM2835 library has been run before. At this time, you need to restart the Raspberry Pi and then run the Python demo.
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)


