E-ink Display Shield
Do you like Amazon Kindle’s E-paper screen? E-ink Display Shield, an E-paper & shield which uses exactly the same techniques, provides you a smooth and clear reading experience for you. It has a super-low power consumption. It won’t consume power until next refreshing of its screen, which enables it to maintain a clear display even in the power-off state. Users can customize texts and position of the characters displayed .Due to the character chip inside, it knows of 175 countries’ language and their respective characters.
- High resolution
- Low power consumption
- Wide viewing angle
- Four grey level modes
- Maintains a clear display in the power-off state
- Supports characters of 175 languages
|E-ink Panel Size||2.1||inch|
|E-ink Drive Ic||SSD1606||mm|
The display glass may break when being dropped or bumped on hard surface .Please handle with care.
Pins usage on Arduino
Pins Used for E-ink Control:
D4: Eink_CS, E-ink select input pin
D5: Eink_D/C, E-ink Data/Command control pin
D6: GT_CS, GT20L16P1Y select input pin
Pins Used for SPI Interface： D10: SPI chip select
D11: SPI MOSI pin
D12: SPI MISO pin
D13: SPI serial clock pin
Following is a test using E-ink to display Chineses and displaying Characters.
1. Connect E-ink Screen with the shield via the FPC connector
2. Connect Arduino with PC via USB cable
3. Stack the E-ink Display shield onto your Arduino board
Update E-Ink Library
1. Download the SeeedEink Library.
2. Unzip/copy the including folder to the path: ..\arduino-1.0\libraries
The following program is written to test the function of displaying characters. This demo code can be used as a test program as well as reference for your further exploration of other functions of the board.
Demo 1：Displaying characters
1. Restart the Arduino IDE. Open “displayCharacter” example via the path: File --> Examples --> SeeedEink -->displayCharacter.
2. Learn about the command. In “displayCharacter”, the function we use is described as follow.
- Name: displayChar(INT8U x,INT8U y,INT16U unicode_Char);
- Function: Display a char of which the starting point is located at (x, y), The parameter unicode_Char is the character machine code.
4. If you do not want to change the display, you can remove the screen, the characters will still be displayed.
- 1) X must be the value in the range of 0 -14, y must be the value in the range of 7-171; The screen area occupied by a character as shown below.
- 2) If X is greater than 14 or y is less than 7 ,the character cannot display normally;
- 3) See the page 18 to 24 of the GT20L16P1Y datasheet to find references for the unicode_Char; The characters include Latin、Hebrew、 Thai、Greek、 Kirill and Arabic. All the characters size is 8X16;
- 4) The unicode_Char between 0x0020 to 0x007E can directly input via the keyboard. Such as the display of the character 'G' ,the function can be displayChar(3,10,'S') or displayChar (3,10,0x0047);
- 5) Every E-ink can display up to 84 characters.
Demo 2：Displaying Chinese
1. Open the “displayChinese” example. 2. Learn about the command. In “displayChinese”, the function we use is described as follow.
- Name: displayChinese(INT8U x, INT8U y, INT16U unicode_Chinese);
- Function: Display a Chinese character of which the starting point is located at (x, y), The parameter unicode_Chinese is the Chinese machine code
- 1) X value must be between 0 to 14, y value must be between 15 to 171. The screen area occupied by a Chinese character is shown below. If X is greater than 14 or y is less than 15, it cannot display Chinese normally.
2)The unicode_Chinese of the Chinese can see GB2312 (Simplified Chinese) character code table. Every Chinese character size is 16X16.
- 3) The E-ink can display up to 40 Chinese.
3. The screen can also display two-dimensional code, just add the function displayTwoDimensionalCode(INT8U x,INT8U y) into the demo code, the starting point of two-dimensional code is located at (x, y). The phone can scan two-dimensional code to enter our website.
Displaying two dimensional code
1. If you want to display other two dimensional code, just change the values of the array dimensionalData.
These values can get by converting two-dimensional code to lattice data. My method of getting lattice data is a bit lame, yet you can click here to see it if you are interested.