Difference between revisions of "7.5inch e-Paper HAT"

From Waveshare Wiki
Jump to: navigation, search
(Created page with "{{Infobox item|colorscheme=blue |brief=640x384, 7.5inch E-Ink display HAT for Raspberry Pi |img=File:7.5inch-e-paper-hat-4.jpg|300px|link=http://www.waveshare.com/7.5inch-e-...")
 
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Infobox item|colorscheme=blue
+
{{Infobox item
|brief=640x384, 7.5inch E-Ink display HAT for Raspberry Pi
+
|name=7.5inch e-Paper raw Panel
|img=[[File:7.5inch-e-paper-hat-4.jpg|300px|link=http://www.waveshare.com/7.5inch-e-paper-hat.htm]]
+
|name2=7.5inch e-paper HAT
|caption=640x384, 7.5inch E-Ink display HAT for Raspberry Pi, SPI interface
+
|img=[[File:7.5inch-e-Paper-1.jpg|300px|link=https://www.waveshare.com/7.5inch-e-paper.htm]]
 +
|img2=[[File:7.5inch-e-paper-hat-4.jpg|300px|link=http://www.waveshare.com/7.5inch-e-paper-hat.htm]]
 +
|caption=640x384, 7.5inch E-Ink raw panel without driver board
 +
|caption2=640x384, 7.5inch E-Ink display HAT for Raspberry Pi, SPI interface
 
|category=[[:Category:OLEDs / LCDs|OLEDs / LCDs]], [[:Category:LCD|LCD]]
 
|category=[[:Category:OLEDs / LCDs|OLEDs / LCDs]], [[:Category:LCD|LCD]]
 
|brand=Waveshare
 
|brand=Waveshare
Line 13: Line 16:
 
}}
 
}}
 
== Introduction ==
 
== Introduction ==
 +
 +
'''Note:''' The raw panel require a driver board, If you are the first time use this e-Paper, we recommend you to buy the HAT version or buy more one driver hat for easy use, otherwise you need to make the driver board yourself.And this instruction is based on the HAT version.
 +
 
640x384, 7.5inch E-Ink display HAT for Raspberry Pi, SPI interface
 
640x384, 7.5inch E-Ink display HAT for Raspberry Pi, SPI interface
 +
 +
  
 
{{Amazon|{{#urlget:amazon|default}}=display
 
{{Amazon|{{#urlget:amazon|default}}=display
 
|More = [http://www.waveshare.com/7.5inch-e-paper-hat.htm More]}}
 
|More = [http://www.waveshare.com/7.5inch-e-paper-hat.htm More]}}
 +
<!--
 +
 
== Interfaces ==
 
== Interfaces ==
 
{|class="wikitable"
 
{|class="wikitable"
Line 48: Line 58:
 
SPI communication has data transfer timing, which is combined by CPHA and CPOL.  
 
SPI communication has data transfer timing, which is combined by CPHA and CPOL.  
 
# CPOL determines the level of the serial synchronous clock at idle state. When CPOL = 0, the level is Low. However, CPOL has little effect to the transmission.
 
# CPOL determines the level of the serial synchronous clock at idle state. When CPOL = 0, the level is Low. However, CPOL has little effect to the transmission.
# CPHA determines whether data is collected at the first clock edge or at the second clock edge of serial synchronous clock; when CPHL = 0, data is collected at the first clock edge.
+
# CPHA determines data is collected at the first clock edge or at the second clock edge of serial synchronous clock; when CPHL = 0, data is collected at the first clock edge.
 
* There are 4 SPI communication modes. SPI0 is commonly used, in which CPHL = 0, CPOL = 0.
 
* There are 4 SPI communication modes. SPI0 is commonly used, in which CPHL = 0, CPOL = 0.
 
As you can see from the figure above, data transmission starts at the first falling edge of SCLK, and 8 bits of data are transferred in one clock cycle. In here, SPI0 is in used, and data is transferred by bits, MSB first.
 
As you can see from the figure above, data transmission starts at the first falling edge of SCLK, and 8 bits of data are transferred in one clock cycle. In here, SPI0 is in used, and data is transferred by bits, MSB first.
Line 55: Line 65:
 
=== Working with Raspberry Pi ===
 
=== Working with Raspberry Pi ===
 
==== Installing libraries required ====
 
==== Installing libraries required ====
If you want to connect your E-paper screen to Raspberry Pi, you should install some necessary libraries, or else the [[:File:4.2inch_e-paper_module_code.7z|Demo (click to download)]] below may work improperly. For more information about how to install the Raspberry Pi libraries, please visit the website: [[Pioneer600#Libraries_Installation_for_RPi|Libraries Installation for RPi]].
+
If you want to connect your E-paper screen to Raspberry Pi, you should install some necessary libraries, or else the [[:File:7.5inch-e-paper-hat-code.7z|Demo (click to download)]] below may work improperly. For more information about how to install the Raspberry Pi libraries, please visit the website: [[Pioneer600#Libraries_Installation_for_RPi|Libraries Installation for RPi]].
  
 
You can find the detailed presentation about the installations of libraries wiringPi, bcm2835 and python.
 
You can find the detailed presentation about the installations of libraries wiringPi, bcm2835 and python.
Line 74: Line 84:
 
| CS || CE0
 
| CS || CE0
 
|-
 
|-
| DC || 25 (BCM)
+
| DC || Pin22/GPIO25
 
|-
 
|-
| RST || 17 (BCM)
+
| RST || Pin11/GPIO17
 
|-
 
|-
| BUSY || 24 (BCM)
+
| BUSY || Pin18/GPIO24
 
|}
 
|}
 +
 
==== Expected result ====
 
==== Expected result ====
1) After the corresponding libraries installed, you can copy the relative programs into your Raspberry Pi, and then enter the corresponding file.
+
1) After the libraries required installed, you can copy the relative programs into your Raspberry Pi, and then enter the corresponding file.
 
* '''BCM2835:''' Execute the command: <code>make</code>, to compile the code and generate a file <code>epd</code>. Execute the command: <code>sudo ./epd</code>, the program will run.  
 
* '''BCM2835:''' Execute the command: <code>make</code>, to compile the code and generate a file <code>epd</code>. Execute the command: <code>sudo ./epd</code>, the program will run.  
 
* '''WringPi:''' Execute the command: <code>make</code>, to compile the code and generate a file <code>epd</code>. Execute the command: <code>sudo ./epd</code>, the program will run.  
 
* '''WringPi:''' Execute the command: <code>make</code>, to compile the code and generate a file <code>epd</code>. Execute the command: <code>sudo ./epd</code>, the program will run.  
Line 87: Line 98:
 
2) Image will be displayed on the screen.
 
2) Image will be displayed on the screen.
 
* Note:The refresh rate of this module is slow (about 6s), and it will flicker for several times during refreshing. Please be patient.
 
* Note:The refresh rate of this module is slow (about 6s), and it will flicker for several times during refreshing. Please be patient.
 +
 
=== Working with Arduino ===
 
=== Working with Arduino ===
 
==== Hardware connection ====
 
==== Hardware connection ====
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
! e-Paper !! Arduino
+
! e-Paper !! UNO PLUS (3.3V)
 
|-
 
|-
| 3.3V || 3V3 (if the display doesn't work on 3.3V, you can try 5V in most cases.)
+
| 3.3V || 3V3  
 
|-
 
|-
 
| GND || GND
 
| GND || GND
Line 109: Line 121:
 
| BUSY || D7
 
| BUSY || D7
 
|}
 
|}
 +
 
==== Expected result ====
 
==== Expected result ====
# Copy the libraries file of Arduino demo code to the libraries folder which is under the installation directory of Arduino IDE, it usually is C:\users\username\documents\arduino\libraries. You can also designate the location on Arduino IDE--> File -->Preferences -->Sketchbook location
+
# Copy the libraries file of Arduino demo code to the libraries folder which is under the installation directory of Arduino IDE, it's path usually is C:\users\username\documents\arduino\libraries. You can also designate the location on Arduino IDE-> File ->Preferences ->Sketchbook location
 
# Upload the project.
 
# Upload the project.
 
# E-paper will display the image.
 
# E-paper will display the image.
 
Note:
 
Note:
 
* The refresh rate of this module is slow (about 6s), and it will flicker for several times during refreshing. Please be patient.
 
* The refresh rate of this module is slow (about 6s), and it will flicker for several times during refreshing. Please be patient.
 +
 
=== Working with the STM32 development board ===
 
=== Working with the STM32 development board ===
 
* Here we use STM32F103ZE development board.
 
* Here we use STM32F103ZE development board.
Line 151: Line 165:
 
Here, we will analyze the driving code and take the demos for Raspberry Pi based on WiringPi library as examples.  
 
Here, we will analyze the driving code and take the demos for Raspberry Pi based on WiringPi library as examples.  
 
=== Hardware interface function ===
 
=== Hardware interface function ===
The functions of drive code like DigitalWrite, DigitalRead, SendCommand, SenData and DelayMs call the interface functions which are provided by hardware device (epdif.h, epdif.c, epdif.cpp) to respectively implements the functions that Control IO Level, Read IO Level, Send SPI Command, Send SPI Data and Delay For Millisecond. If you want to port the demo code, you need to implement all the interfaces of epdif (e-paper display interface) according to the corresponding hardware device.
+
The functions of drive code like DigitalWrite, DigitalRead, SendCommand, SenData and DelayMs called the interface functions which are provided by hardware device (epdif.h, epdif.c, epdif.cpp) to respectively implements the functions that Control IO Level, Read IO Level, Send SPI Command, Send SPI Data and Delay For Millisecond. If you want to port the demo code, you need to implement all the interfaces of epdif (e-paper display interface) according to the corresponding hardware device.
  
 
Note that Raspberry Pi uses hardware chip select while transmitting SPI data. So we needn’t set the CS pin to LOW before transmitting data, and the code will set it automatically while transmitting. However, for Arduino and STM32, etc. you need to explicitly set the CS pin to LOW with codes to start the SPI transmission of module.
 
Note that Raspberry Pi uses hardware chip select while transmitting SPI data. So we needn’t set the CS pin to LOW before transmitting data, and the code will set it automatically while transmitting. However, for Arduino and STM32, etc. you need to explicitly set the CS pin to LOW with codes to start the SPI transmission of module.
 +
 
=== Send Commands and Data (SendCommand and SendData) ===
 
=== Send Commands and Data (SendCommand and SendData) ===
 
SendCommand and SendData are used to send commands and data to module respectively. What the difference between them is that, D/C pin is set to LOW for sending commands and HIGH for sending data. If the D/C pin is LOW, the data transmitted from SPI interface to module will be recognized as commands and executed. If the D/C pin is HIGH, the data will be recognized as normal data. Generally, normal data will follow the command, works as parameter or image data.
 
SendCommand and SendData are used to send commands and data to module respectively. What the difference between them is that, D/C pin is set to LOW for sending commands and HIGH for sending data. If the D/C pin is LOW, the data transmitted from SPI interface to module will be recognized as commands and executed. If the D/C pin is HIGH, the data will be recognized as normal data. Generally, normal data will follow the command, works as parameter or image data.
Line 160: Line 175:
  
 
=== Initialization (Init) ===
 
=== Initialization (Init) ===
After powering on the module, initialization function (Init) will configure the parameters of module. It can also wake up module from sleep mode. Process of initialization: reset --> power setting --> panel setting --> booster soft start --> power on --> PLL control --> temperature calibration --> VCOM and data interval setting --> TCON setting --> TCON resolution --> VCM DC setting.
+
After powering on the module, initialization function (Init) will configure the parameters of module. It can also wake up module from sleep mode. Process of initialization: reset -> power setting -> panel setting -> booster soft start -> power on -> PLL control -> temperature calibration -> VCOM and data interval setting -> TCON setting -> TCON resolution -> VCM DC setting.
 
=== Display a Frame (DisplayFrame) ===
 
=== Display a Frame (DisplayFrame) ===
 
DisplayFrame is used to send a frame to the module, and the screen will refresh and display it.
 
DisplayFrame is used to send a frame to the module, and the screen will refresh and display it.
  
Process: Send command data start transmission 1 --> Send data of an image to display --> Refresh the screen.
+
Process: Send command data start transmission 1 -> Send data of an image to display -> Refresh the screen.
  
 
Note:
 
Note:
Line 182: Line 197:
 
Sleep can make the module go into sleep mode to reduce the consumption.
 
Sleep can make the module go into sleep mode to reduce the consumption.
  
Process: power off --> deep sleep
+
Process: power off -> deep sleep
  
 
If you want to wake up the module from sleep mode, you need to give a LOW pulse to RST pin. Then maybe you need to reconfigure the parameter of power (According to the batches, some of them need to reconfigure, some needn’t). So if you want to wake up module, you had better use the Init function instead of Reset. Reset function and relative commands will be executed while executing the Init function.
 
If you want to wake up the module from sleep mode, you need to give a LOW pulse to RST pin. Then maybe you need to reconfigure the parameter of power (According to the batches, some of them need to reconfigure, some needn’t). So if you want to wake up module, you had better use the Init function instead of Reset. Reset function and relative commands will be executed while executing the Init function.
Line 193: Line 208:
  
 
# Open a picture with drawing tool comes with Windows system, create a new image, and set the pixel to 640x384.
 
# Open a picture with drawing tool comes with Windows system, create a new image, and set the pixel to 640x384.
# Because this module can only display two gray level (Only black and white), we need to convert picture to monochrome bitmap before converting it to array. That is, File --> BMP picture --> Monochrome Bitmap.
+
# Because this module can only display two gray level (Only black and white), we need to convert picture to monochrome bitmap before converting it to array. That is, File -> BMP picture -> Monochrome Bitmap.
 
#: There is a monochrome bitmap on examples pack for demonstration (raspberrypi/python/monocolor.bmp).
 
#: There is a monochrome bitmap on examples pack for demonstration (raspberrypi/python/monocolor.bmp).
 
# Use [[:File:Image2Lcd.7z|Image2Lcd.exe]] software to generate corresponding array for picture (.c file). Open picture with this software, set the parameters:
 
# Use [[:File:Image2Lcd.7z|Image2Lcd.exe]] software to generate corresponding array for picture (.c file). Open picture with this software, set the parameters:
Line 204: Line 219:
 
# Click “Save”, to generate .c file. Copy the corresponding array into your project, and you can display picture by calling this array.
 
# Click “Save”, to generate .c file. Copy the corresponding array into your project, and you can display picture by calling this array.
 
* Note: the module decodes the image data as: 4 bits = 1 pixel, but due to Gray scale unsupported, a monochrome bitmap array (1 bit = 1 pixel) is enough. Once the program finds a bit set in a bitmap table, it will send 0x3; but if a bit reset, it will send 0x0. For example, if the program decodes a byte 0xAA in a bitmap table, it will send 0x30303030 in fact.
 
* Note: the module decodes the image data as: 4 bits = 1 pixel, but due to Gray scale unsupported, a monochrome bitmap array (1 bit = 1 pixel) is enough. Once the program finds a bit set in a bitmap table, it will send 0x3; but if a bit reset, it will send 0x0. For example, if the program decodes a byte 0xAA in a bitmap table, it will send 0x30303030 in fact.
 +
-->
  
 
== Resources ==
 
== Resources ==
 
=== Documentation ===
 
=== Documentation ===
* [[:File:7.5inch-e-paper-hat-schematic.pdf|Schematic]]
+
*[https://www.waveshare.com/w/upload/7/74/7.5inch-e-paper-hat-user-manual-en.pdf User Manual]
 +
{{Commom Instruction of SPI e-paper}}
 +
* [[:File:E-Paper-Driver-HAT-Schematic.pdf|Schematic]]
 +
 
 
=== Demo code ===
 
=== Demo code ===
 
* [[:File:7.5inch-e-paper-hat-code.7z|Demo code]]
 
* [[:File:7.5inch-e-paper-hat-code.7z|Demo code]]
 
=== Datasheets ===
 
=== Datasheets ===
* [[:File:7.5inch-e-paper-hat-specification.pdf|Datasheet]]
+
* [[:File:7.5inch-e-paper-specification.pdf|Datasheet]]
 +
 
 +
== Related applications (shared by user)==
 +
*[https://www.youtube.com/watch?v=OW4GYmzWOb8 Task List using Raspberry Pi 3 and 7.5" E-paper Display]
 +
*[https://github.com/aceisace/E-Paper-Calendar-with-iCal-sync-and-live-weather E-Paper Calendar with iCal sync and live weather ]
 +
 
 +
== FAQ ==
 +
<!--{{e-Paper FAQ}}-->
 +
{{e-Paper FAQ}}
 +
 
 
==Support==
 
==Support==
 
{{Service00}}
 
{{Service00}}

Latest revision as of 09:22, 25 December 2018

7.5inch e-Paper raw Panel
7.5inch-e-Paper-1.jpg

640x384, 7.5inch E-Ink raw panel without driver board
7.5inch e-paper HAT
7.5inch-e-paper-hat-4.jpg

640x384, 7.5inch E-Ink display HAT for Raspberry Pi, SPI interface
{{{name3}}}

{{{name4}}}

{{{name5}}}

Primary Attribute
Category: OLEDs / LCDs, LCD
{{{userDefinedInfo}}}: {{{userdefinedvalue}}}
Brand: Waveshare
Website
English: Waveshare website
Chinese: 官方中文站点
Onboard Interfaces
SPI
Related Products

Introduction

Note: The raw panel require a driver board, If you are the first time use this e-Paper, we recommend you to buy the HAT version or buy more one driver hat for easy use, otherwise you need to make the driver board yourself.And this instruction is based on the HAT version.

640x384, 7.5inch E-Ink display HAT for Raspberry Pi, SPI interface


More

Resources

Documentation

Demo code

Datasheets

Related applications (shared by user)

FAQ

Question:
1. Why the e-Paper cant work with Arduino?
Answer:

The I/O level of Arduino is 5V, and the e-Paper should be driven with 3V3. If your Arduino cant drive the e-Paper successfully, please try to convert the level to 3.3V

You can also try to connect the Vcc pin to the 5V of Arduino to see whether the e-Paper works, but we recommend you not to use 5V for a long time.


Question:
2. Why does the color of e-Paper look a little black or grey?
Answer:

You can try to change the value of Vcom on demo codes.


Question:
3. Three-color e-paper looks more red/yellow than the picture on website?
Answer:

Because of different batch, some of them have aberration. Store the e-Paper right side up will reduce it. And if the e-Paper didn't be refreshed for long time, it will become more and more red/yellow. Please use the demo code to refresh the e-paper for several times in this case.


Question:
3. Why my e-paper has ghosting problem after working for some days
Answer:

Please set the e-paper to sleep mode or disconnect it if you needn't refresh the e-paper but need to power on your development board or Raspberry Pi for long time.Otherwise, the voltage of panel keeps high and it will damage the panel



Question:
4. Why the FPC of the e-Paper is broken after using for some times?
Answer:
Please make sure you have used it in correct way.

E-Paper FAQ FPC.jpg



Support

Mail.png Contact your seller (fast response and most recommended)

or send emails to [email protected] (not fast enough but please be patient) for help.

Our working time: 09:00-18:00 (UTC+8 Monday to Saturday)