Code Monkey home page Code Monkey logo

paperino's Introduction

Paperino PL_microEPD Arduino Library

Welcome to the Paperino docs! This is a Hardware Library for the 1.1” E-Paper display (EPD) from Plastic Logic for Adafruits GFX library.

Paperino E-Paper Shield for Particle, Breakout Board and Driver Module
Paperino E-Paper Shield for Particle, Breakout Board and Driver Module

So, what is Paperino?

Paperino is an easy to use micro EPD breakout-board for the Photon or other Arduino-compatible microcontrollers. The eInk-based ePaper display mimics the appearance of natural paper and is capable of holding text and images indefinitely, even without electricity. This makes Paperino perfect for your next battery-driven, connected project where the display content changes rarely.

Paperino also integrates an easy to use accelerometer. It extends the EPD by tap-sensing functions and offers portrait/landscape detection. Furthermore you can wake-up your MCU after movement-based events from deep-sleeping, saving battery live during waiting phases.

Featured In

As Featured In

Documentation

This is the place to get started with your new hardware! We have divided the documentation into the following sections:

  • Hookup Guide - Step-by-step instructions to get your Paperino setup and run within minutes.
  • Examples - Ready to use examples for your own inspiration.
  • Reference - Datasheets & Application Notes.
  • Hardware - Schematics & PCB layouts.

How To Use

Installation

This library is part of the Particle and Arduino Library Manager. Please search for PL_microEPD within the Manager and download the library, that’s it! Included are six example sketches, they are useful to learn the basics about this ePaper screen.

Hardware hookup

To start communicating with the ePaper driver IC, you’ll need to supply 3.3V and four more wires for SPI communication (@3.3V voltage level). Please have a look at the hook-up guide for more detailed information.

Example: Hello World!

This is the first, and shortest possible demo and shows how to address the ePaper (don’t forget to update the GPIO name if needed in line 3):

#include "Adafruit_GFX.h"
#include "PL_microEPD.h"

#define EPD_CS      A2
PL_microEPD display(EPD_CS);  

void setup() {  
    SPI.begin();                    
    SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
  
    display.begin();                
    display.print("Hello World!");
    display.update();               
}

void loop() {              
}

You should now be able to see the ePaper screen updating. Congratulation! If you feel more like a pro’ this is now the time to add the wiring of two more GPIO lines (called ‘busy’ & ‘reset’). They are needed to run the image updates a bit faster and/or to reset the IC after having it set to deep sleep.

More…

Once this example is successfully running, please have a look at the following sketches: GFX demo shows how to draw all the letters, rectangles and dots. The Graylevel sketch explains how to use the four different graylevels in your next project. Update modes describes three different ways of updating an ePaper screen.

Distributors

Paperino ePaper displays are available at Crowd Supply, Watterott electronic, Mouser and DigiKey.

Projects

These demo projects are for your inspiration! What will you implement with Paperino? Tell us, we’ll love to add your project here!

Project TrafficIndicator at Hackaday.io Project IoT Connected Desk Frame at Hackaday.io Project local rain forecast for fair weather cyclists at Hackster.io
Project Industrial Tap Tap Machine at Hackster.io

Changelog

  • v1.1.01 (03/2018) - Add support for more EPDs: 1.4", 2.1" & 3.1" (auto-detection) and for deepSleep() of driver IC
  • v1.0.20 (10/2017) - Add support for (optional) simplified wiring for MCUs with limited GPIOs
  • v1.0.10 (08/2017) - Particle & Arduino Library Manager supported; tap sensitivity increased; ‘verified’ by Particle
  • v1.0.00 (07/2017) - Initial release

License Information

This library is open source!

Created by Robert Poser, Mar 4th 2018, Dresden/Germany. Released under BSD license (3-clause BSD license), check license.md for more information.

We invested time and resources providing this open source code, please support Paperino and open source hardware @Adafruit and by purchasing this product @Crowdsupply @Watterott @Plasticlogic.

If you like this project please follow us on Twitter. Having problems or have awesome suggestions? Contact us: [email protected].

paperino's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paperino's Issues

Questions: Simplified wiring

I have two questions regarding the optional simplified wiring.

  1. What are the pros and cons of that approach?
    Obviously one pro is that you will have two GPIO pins for other purposes. So maybe the real question is:
    Are there any downsides using the simplified wiring?

  2. It is currently not documented in the Hookup Guide. Which probably would also be a great place to answer my first question.

Compile error in Arduino IDE

Arduino IDE version: 1.6.12
Library version: 1.1.2 (also tried 1.1.0)

Here are the errors:

In file included from /Users/molecule/Documents/Arduino/libraries/PL_microEPD/examples/_01_HelloWorld/_01_HelloWorld.ino:11:0:
/Users/molecule/Documents/Arduino/libraries/PL_microEPD/src/PL_microEPD.h:84:43: error: overflow in constant expression
byte buffer[EPD_WIDTH * EPD_HEIGHT / 4];
^
/Users/molecule/Documents/Arduino/libraries/PL_microEPD/src/PL_microEPD.h:84:43: error: size of array 'buffer' is negative
/Users/molecule/Documents/Arduino/libraries/PL_microEPD/src/PL_microEPD.h:85:44: error: overflow in constant expression
byte buffer2[EPD_WIDTH * EPD_HEIGHT / 4];
^
/Users/molecule/Documents/Arduino/libraries/PL_microEPD/src/PL_microEPD.h:85:44: error: size of array 'buffer2' is negative
exit status 1
Error compiling for board Arduino Pro or Pro Mini.

I can fix this but wanted to ping the authors about their thoughts before I go in and make changes to the library.

First image update after power off starting with undefined frame buffer

For updating, the ePaper waveform also needs to know the actual image content in order to chose the correct waveform transition. This is handled by the driver IC, but not working for the very first image update after power cycling. Although the driven image looks more or less OK the media is driven imbalanced and the overall contrast id degraded. Workaround is to first drive an (invisible) nullframe update after each initialisation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.