-
-
Notifications
You must be signed in to change notification settings - Fork 26
IT8951 Eink.com 16 bit parallel controllers
- Size: Various sizes, 6" (1448x1072), 7.8" (1872x1404 is the first to be tested)
- Sold by: Waveshare. Wiki link, IT8951 Datasheet
- Controller: IT8951
- Status: Being implemented.
- Arduino ESP32 class: GxEPD2
- Input: SPI or USB with Eink demo software. Alternatively slow I2C.
- Output: 16 bit parallel interface
- Notes: Take care when connecting epaper 40 pin FPC to the IC controller. The notation 1 - 40 in eink FPC should coincide with the PCB marks, connecting it upside down will not work and you might damage your IT8951. SPI connector is on the other side of the PCB just below the 30 pin FPC.
CONFIG_EINK_SPI_MOSI=23
CONFIG_EINK_SPI_CLK=18
CONFIG_EINK_SPI_CS=14
CONFIG_EINK_RST=33
CONFIG_EINK_BUSY=12
CONFIG_EINK_SPI_MISO=27
- It's still not defined if I will add an ESP-IDF class for this. Taking in account that:
- You will need an 3.3v to 5V step up booster to feed the Eink PCB if you want to power this up with a Lion 3.7V Battery
- It's a complex build since you need the IT8951 PCB plus the step-up and the ESP32 combined
- It's slow compared to the speed you can get feeding the IT8951 via USB and you will need a big battery to feed all this construction
Anyways I will try to make the class but I'm not highly motivated to do so. That means it can take a while. Pull request's accepted and I will give credits and support if anyone has success implenting this in a CalEPD class.
So far the alternative solution is to use LovyanGFX that has great support and it's compatible with IT8951 and ESP-IDF. Here an example on how this may look like: /main/www-jpg-render/main/jpg-render-it8951.cpp#L51
To add the submodule:
git add submodule https://github.com/lovyan03/LovyanGFX.git components/LovyanGFX
This is already done in feature/45-it8951 branch. So just run:
git submodule update --init --recursive
In order to fetch this component.
GND -> ESP32 Ground
5V -> ESP32 usb/5v PIN
RST Reset pin (Low active) -> Any Output capable GPIO
CS Chip select (Low active) -> Any Output capable GPIO
HRDY Busy stats pin (Low when busy) -> ESP32 GPIO X needs only Input capabilities
MOSI Data in for the epaper -> ESP32 GPIO 23
MISO Data out -> To read device info from ESP32
CLK Clock -> GPIO 18
// Check working pin configuration in config-examples/lolin32-pro
If you are working with a Lipo 3.7 v battery you will need a boost up converter to feed the IT8951 with 5 volts. The 5v should be strong and exact for this configuration to work correctly.
Remember to run
idf.py menuconfig
And enable in Component config --> ESP32-specific --> Support for external RAM
This SPI has no DC signal to differentiate between command or data cycle, so every packet needs to contain a preable word to signalize if it's data or command. This are the preambles:
Packet Type Preamble word (16 bit)
Command 0x6000
Write Data 0x0000
Read Data 0x1000
For SPI read/write cycle please check page 25 of the Datasheet.
Revision v.1.3 | Firmware for ESP-IDF >= v. 4.3 Documentation written by Fasani Corp.
We are also launching a new company called Marespa.es that will help EU citizens find an affordable apartment in Spain. With the price of Rent going through the roof in 2024, this might be the moment to make an investment, if you plan to work from the spanish coast. With this project we are also supporting our open source projects.