Skip to content

Commit

Permalink
extend documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
vroland committed Apr 24, 2020
1 parent d90737e commit 0f6a891
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 4 deletions.
2 changes: 2 additions & 0 deletions doc/source/about.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ About

EPDiy is a driver board for e-Paper (or E-ink) displays.

.. _display_types:

Display Types
-------------

Expand Down
2 changes: 2 additions & 0 deletions doc/source/api.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _pub_api:

Public API
==========

Expand Down
68 changes: 68 additions & 0 deletions doc/source/getting_started.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,82 @@
.. _getting_started:

Getting Started
===============

Flashing the demo
-----------------

First, connect you board with the computer. In the output of :code:`lsusb` you should find something like:
::

Bus 001 Device 048: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

This means the serial adapter is working and there a serial like :code:`/dev/ttyUSB0` should appear.

Next, make sure you have the `Espressif IoT Development Framework <https://github.com/espressif/esp-idf>`_ installed.
The current stable (and tested) version is 4.0.
For instructions on how to get started with the IDF, please refer to their `documentation <https://docs.espressif.com/projects/esp-idf/en/stable/get-started/>`_.

Then, clone the :code:`epdiy` git repository (and its submodules):
::

git clone --recursive https://github.com/vroland/epdiy

Now, (after activating the IDF environment) you should be able to build the demo:
::

cd examples/demo/
idf.py build

Hold down the :code:`BOOT` button on your board, while quickly pressing the :code:`RESET` button.
The ESP module is now in boot mode.
Upload the demo program to the board with
::

idf.py build && idf.py flash -b 921600 && idf.py monitor

Pressing :code:`RESET` a second time should start the demo program, which will
output some information on the serial monitor.

With the **board power turned off**, connect your display.
Power on the board.
You should now see the demo output on your display.

Use with esp-idf
----------------

The neccessary functionality for driving an EPD display is encapsulated in the :code:`components/epd_driver` IDF component.
To use it in you own project, simply copy the :code:`epd_driver` folder to your project-local :code:`components` directory.
The component sould be automatically detected by the framework, you can now use
::

#include "epd_driver.h"

to use the EPD driver's :ref:`pub_api`.

Selecting a Display Type
~~~~~~~~~~~~~~~~~~~~~~~~

To select the display type you want to use for the project (see :ref:`display_types`), run
::

idf.py menuconfig

And navigate to :code:`Component config -> E-Paper driver -> Display Type`, select the appropriate option and save the configuration. You can use the defines
::

CONFIG_EPD_DISPLAY_TYPE_ED097OC4
CONFIG_EPD_DISPLAY_TYPE_ED060SC4
CONFIG_EPD_DISPLAY_TYPE_ED097TC2

to make your code portable.

Use with Arduino
----------------

Using the library from arduino framework is currently not recommended,
as it uses a pre-compiled ESP-IDF, which only allows slower SPI RAM speeds and is not
sufficiently configurable.

However, it is possible to use the `Arduino APIs as an IDF component <https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md>`_,
which allows you to use the Arduino ecosystem (Except for a different build process).
Binary file added doc/source/img/board_p1.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/source/img/board_p2.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/source/img/demo.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 20 additions & 4 deletions doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,31 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to EPDiy's documentation!
=================================
The EPDiy Driver Board
======================

.. toctree::
:maxdepth: 2
:caption: Contents:
:caption: Quickstart:

about.rst
api.rst
getting_started.rst

Work in progress. See API!
EPDiy is a driver board which talks to affordable E-Paper (or E-Ink) screens, which are usually sold as replacement screens for E-Book readers. Why are they interesting?

* Easy on the eyes and paper-like aesthetics
* No power consumption when not updating
* Sunlight-readable

Ready-made DIY modules for this size and with 4bpp (16 Grayscale) color support are currently quite expensive. This project uses Kindle replacement screens, which are available for 20$ (small) / 30$ (large) on ebay!

The EPDiy driver board targets multiple E-Paper displays. As the driving method for all matrix-based E-ink displays seems to be more or less the same, only the right connector and timings are needed. The EPDiy PCB features a 33pin and a 39pin connector, which allow to drive the following display types: ED097OC4, ED060SC4, ED097TC2

:ref:`getting_started`

.. image:: img/demo.jpg

.. image:: img/board_p1.jpg

.. image:: img/board_p2.jpg

0 comments on commit 0f6a891

Please sign in to comment.