Skip to content

m5stack/M5EPD

Repository files navigation

M5Paper Library

Arduino Compile Arduino Lint Clang Format

English | 中文

m5paper_pic_01

Description

M5Paper is M5Stacks latest core device with a touch enabled E-ink display. Powered by the ESP32-D0WDQ6-V3 this is our first device to integrate a super sized 540*960 @4.7" E-ink display,which supports 16 grayscale levels. The display is a GT911 capacitive touch screen,which supports two point touch and a variety of gesture controls . Compared to a regular LCD,E-ink displays are easier on the eyes, which makes them a great choice for reading or viewing for longer periods. Other benefits are the low power consumption and the ability to retain the image even if power to the display is terminated. Integrated in the CoreInk are an multi-function button for operation, SHT30 temperature and moisture sensor, physical buttons and an TF card port for data storage.

Additionally the FM24C02 internal eeprom chip(256KB-EEPROM)can be used to store vital data even when the device is off. A 1150mAh lipo battery keeps the device going for long periods and battery life can be further preserved by using the RTC(BM8563)to set the device into deep sleep and wake it up again when needed。Three HY2.0-4P expansion ports are included which allow for building complex projects using the existing sensors in the M5Stack ecosystem.

?>Warning: Do not expose to ultraviolet rays for a long time, otherwise it may cause irreversible damage to the ink screen.

PinMap

E-INK & TF Card

Resolution:540*960

ESP32 ChipGPIO13GPIO12GPIO14GPIO15GPIO4
IT8951MISOMOSISCKCS/
TF CardMISOMOSISCK/CS

Multi-function button

ESP32 ChipGPIO37GPIO38GPIO39
Multi-function buttonRightBTN/PWRLeft

Internal I2C Connection

ESP32 ChipGPIO21GPIO22GPIO36
GT911SDASCLINT
SHT30SDASCL/
BM8563SDASCL/
FM24C02SDASCL/

USB Serial

ESP32 ChipGPIO1GPIO3
CP2104RXDTXD

M5Paper-HY2.0 4P Port

PORT PIN Protocol:
PORT.A G25,G32 I2C
PORT.B G26,G33 DAC/ADC
PORT.C G18,G19 UART

ESP32 ADC/DAC Mappable Pins

ADC1 ADC2 DAC1 DAC2
8 Channel 10 Channel 2 Channel 2 Channel
G32-39 G0/2/4/12-15/25-27 G25 G26

For more info on specific pin functions refer to the official ESP32 DocsESP32 datasheet

How to compile it

For Windows

  1. Install ESP-IDF v4.4. For further info, read: ESP-IDF Getting Started for Windows

    • Either the Online or Offline version shoud work
    • When asked which components to install, don't change anything. Default options are Ok.
    • When asked whether ESP can modify the system, answer "Yes"
  2. Launch the "ESP-IDF v4.4 CMD" (type that in the Windows search box)

  3. From the ESP-IDF cmd, clone the template

    git clone --recursive https://github.com/m5stack/M5EPD.git my_project
  4. Compile it

    # Compile it
    cd my_project
    idf.py build
    
    # Flash + open debug terminal
    idf.py flash monitor

For Linux / macOS

  1. Requirements and permissions

    Install ESP-IDF dependencies (taken from here):

    # For Ubuntu / Debian
    sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

    And in case you don't have permissions to open /dev/ttyUSB0, do: (taken from here)

    # You MUST logout/login (or in some cases reboot Linux) after running this command
    sudo usermod -a -G dialout $USER
  2. Install and setup ESP-IDF

    # Needs to be done just once
    # Clone the ESP-IDF git repo
    mkdir ~/esp && cd ~/esp
    git clone -b release/v4.4 --recursive https://github.com/espressif/esp-idf.git
    
    # Then install the toolchain