tsileo / Inkplate-micropython

Micropython driver for Inkplate boards

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inkplate micropython module

Micropython for all-in-one e-paper display Inkplate can be found in this repo. Inkplate is a powerful, Wi-Fi enabled ESP32 based e-paper display – recycled from a Kindle e-reader. Its main feature is simplicity. Just plug in a USB cable, open Arduino IDE, and change the contents of the screen with few lines of code. Learn more about Inkplate on official website. Inkplate was crowdfunded on Crowd Supply Inkplate 6 and Crowd Supply Inkplate 10.

Original effort done by tve.

Features

  • Simple graphics class for monochrome use of the e-paper display
  • Simple graphics class for 2 bits per pixel greyscale use of the e-paper display
  • Support for partial updates (currently only on the monochrome display)
  • Access to touch sensors
  • Everything in pure python with screen updates virtually as fast as the Arduino C driver
  • Bitmap drawing, although really slow one

Getting started with micropython on Inkplate

  • Flash MicroPython firmware for ESP32 with SPIRAM from https://micropython.org/download/esp32spiram/

  • Port name/number vary on different devices

  • Run

    //Linux/Mac
    esptool.py --port /dev/cu.usbserial-1420 erase_flash
    
    //Windows
    esptool.py --port COM5 erase_flash 
    

    to erase esp32 flash and then

    //Linux/Mac
    
    esptool.py --chip esp32 --port /dev/cu.usbserial-1420 write_flash -z 0x1000 esp32spiram-20220117-v1.18.bin
    
    //Windows
    esptool.py --chip esp32 --port COM5 write_flash -z 0x1000 esp32spiram-20220117-v1.18.bin
    

    to flash supplied firmware. Use esp flash from this repository since it's tested with Inkplate.

    If you don't have esptool.py installed, install it from here: https://github.com/espressif/esptool, at minimum use version 1.15.

    • Copy library files to your board, use inkplate6.py or inkplate10.py for respective versions, something like this:
      //Linux/Mac
      python3 pyboard.py --device /dev/ttyUSB0 -f cp mcp23017.py inkplate6.py image.py shapes.py gfx.py gfx_standard_font_01.py :
      
      //Windows
      //This one might need to be started twice
      python pyboard.py --device COM5 -f cp inkplate6.py gfx.py gfx_standard_font_01.py mcp23017.py image.py shapes.py :
      
      (You can find pyboard.py in the MicroPython tools directory or just download it from GitHub: https://raw.githubusercontent.com/micropython/micropython/master/tools/pyboard.py)
  • Run example.py:

    //Linux/Mac
    python3 pyboard.py --device /dev/ttyUSB0 "Examples/Inkplate6/basicBW.py"
    
    //Windows
    python pyboard.py --device COM5 "Examples/Inkplate6/basicBW.py"
    
  • You can run our others examples, showing how to use rest of the functionalities.

Examples

The repo contains many examples which can demonstrate the Inkplate capabilities.

  • basicBW.py -> demonstrates basic drawing capabilities, as well as drawing some images.
  • basicGrayscale.py -> demonstrates basic drawing capabilities, as well as drawing some images.
  • exampleNetwork.py -> demonstrates connection to WiFi network while drawing the HTTP request response on the screen.
  • exampleSd.py -> demonstrates reading files and images from SD card.
  • batteryAndTemperatureRead.py -> demonstrates how to read temperature and voltage from internal sensors.
  • touchpads.py -> demonstrates how to use built in touchpads.

Battery power

Inkplate has two options for powering it. First one is obvious - USB port at side of the board. Just plug any micro USB cable and you are good to go. Second option is battery. Supported batteries are standard Li-Ion/Li-Poly batteries with 3.7V nominal voltage. Connector for the battery is standard 2.00mm pitch JST connector. The onboard charger will charge the battery with 500mA when USB is plugged at the same time. You can use battery of any size or capacity if you don't have a enclosure. If you are using our enclosure, battery size shouldn't exceed 90mm x 40mm (3.5 x 1.57 inch) and 5mm (0.19 inch) in height. This battery is good fit for the Inkplate.

Arduino?

Looking for Arduino library? Look here!

Open-source

All of Inkplate-related development is open-sourced:

Where to buy & other

Inkplate is available for purchase via:

Inkplate is open-source. If you are looking for hardware design of the board, check the Hardware repo for Inkplate 6 and Hardware repo for Inkplate 10. You will find 3D printable enclosure there, as well as detailed dimensions. In this repo you will find code for driving the ED060SC7 e-paper display used by Inkplate.

For all questions and issues, please use our forum to ask a question. For sales & collaboration, please reach us via e-mail.

About

Micropython driver for Inkplate boards

License:MIT License


Languages

Language:Python 100.0%