Giter Club home page Giter Club logo

e-ink's Introduction

Contents

The Overview


  • Arduino library for E-Ink display(1.54, 2.3, 2.9) made by HelTec Automation(TM)
  • Now this library allows three sizes of e-ink to run on the "AVR" , "ESP32" , "ESP8266" development board.
  • Display size definition in "imagedata.h".

Installing


To install this library:

  • Download a zipfile from github using the "Download ZIP" button and install it using the IDE ("Sketch" -> "Include Library" -> "Add .ZIP Library..."
  • Clone this git repository into your sketchbook/libraries folder.

For more info, see https://www.arduino.cc/en/Guide/Libraries

Features


  • Arduino library for E-Ink display(1.54, 2.3, 2.9).
  • Consumes power only during refresh, power consumption as low as 24-30mW.
  • Support for partial refresh, only takes 0.3s.
  • Can continue to display for more than half a year in the power-off state.

Test information


Contact us

Issue/Bug report template

Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as for reference.

e-ink's People

Contributors

destinyfxxker avatar heltec-aaron-lee avatar per1234 avatar quency-d avatar weidingerhp avatar yxlazy avatar

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

e-ink's Issues

E-ink 1.54 and HSPI on esp32

Hi all!
We chose a good screen that we needed for a long time and settled on E-ink 1.54 https://heltec.org/project/154-e-ink/

The board was created (main controller ESP32-wroom) and we started the code. We figured out the library, but do not fully understand how it can work.
We’re having a problem connecting to the SPI.
The fact is that we have the following connection for our esp32 board (it has 2 SPI - VSPI and HSPI):
The screen is connected to the pins:
e-ink HSPI
cs-15
mosi-13
dc-12
clk-14
bysy - 27

another sensor module VSPI
ss - 5
sck - 18
mosi - 23
miso - 19
busy - 17
When I use the eink library I get problems because the library uses the call to SPI.**
which by default uses pins VSPI.

But my physical connection is different. Please tell me how can I be?
I have no options to change the connection. I ask for your help in setting up the library to use the screen connected to the HSPI pins

Cant get it working on UNO

I am evaluating the heltec 1.54 board with green label attached, to run on an UNO board.
So far I have been unable to modify your library to work (spent 1 day on this).
Could you please configure your system, and test it, to run on an UNO, and then email me a zip file containing all the required files?.. My email is [email protected]
Thanks

To everyone having issues

By now you know this repository is crap. This is what worked for me on a 1.54 e-ink display. It should work on other sizes as well.

NOTE: This display requires 3.3 data lines. It works on 5v data lines, but just barely. The display is not crisp. I've read it's possible to use a 10k/4k7 resistor divider for 5v data lines, but it didn't work for me.

Download this library https://github.com/ZinggJM/GxEPD

From Arduino IDE, open the example

Select this display
#include <GxGDEH0154D67/GxGDEH0154D67.h> // 1.54" b/w

Use these pins
GxIO_Class io(SPI, /CS=/ 10, /DC=/ 9, /RST=/ 8);
GxEPD_Class display(io, /RST=/ 8, /BUSY=/ 7);

Connect as follows (display / arduino):
VCC / VCC
GND / GND
D/C / D9
SDI / D11
CS / D10
CLK / D13
BUSY / D7

Not really usable examples - Please add demo configuration for gxEPD

Sorry but I have to mention that the implementation examples compared to what we can see in another libraries like gxEPD do not bring any explanation about how to use the library (GPIOs configuration?)

We, and the whole maker community, will really appreciate if the examples section can be something a bit more usable.

Also PDF documentation link is broken from heltec.cn
https://docs.heltec.cn/download/e-ink/154/1.54b&w/HTEW0154T8_V20.pdf

I bought one of this since I want to give it a try to another type of displays but I'm greatly surprised to see this. Is not possible to run this display using gxEPD?
In my first try I still couldn't but I did not try so hard, just wanted to have some feedback.
Thanks in advance!

Writing text to 2.13inch E-Ink v2

Hello,

i am trying to figure out how i can write normal text to the 2.13inch (122x250) e-ink v2 screen.
The example sketch with name 'QYEG0213RWS800' works fine. However, this example only prints a static image. I tried integrating the paint class but i could not get it to work properly.

this is my example code:

#include "QYEG0213RWS800.h"
//#include "picture.h"
#include "e_ink_display.h"
#define COLORED     0
#define UNCOLORED   1
    
void setup() {
    Serial.begin(115200);
    epd213.EPD_HW_Init(); //Electronic paper initialization    
    unsigned char image[1024];
    Paint paint(image, 122, 250);
    paint.DrawStringAt(1, 1, "TEST", &Font24, COLORED);

    unsigned char empty[1024] = { 0 };
    epd213.EPD_ALL_image(paint.GetImage(),empty);	//Refresh the picture in full screen
    epd213.EPD_DeepSleep();  //Enter deep sleep	
}

This is what is see on the epaper:
20200612_215318 (Klein)

Does anybody know how i can solve this?

How I got it working with ESP8266

So this library and everything connecting it is a mess. I spent a whole day messing with UNO and other boards and just got it to work with esp8266 so here's what I did, hoping it helps others. Using Arduino IDE

Download the GxEPD library instead, (also have the basics of programming esp8266 in the IDE down).
Open the GxEPD_Example.

I'm using the 1.54" board with a red sticker, so I uncommented this line:
#include <GxGDEH0154D67/GxGDEH0154D67.h> // 1.54" b/w

For other boards you gotta find that out yourself, sorry. I only have the one

Pin definitions (Esp8266/Display) (using nodemcu v3 board, and pins on the board itself, not gpio pinouts)
D2/BUSY
D5/CLK
D3/DC
D8/CS
D7/SDI

Good luck to everyone who bought this display. It's a pain.

How to Write?

Hello, I tried to use this library but I wasn't able to make it working to write test on the E-ink display. There's no example about how to write and even the example is not working.
I was able to use it with GxEPD library but I had a problem with contrast. As the display updates contrast remains ok for 1-2 seconds and then becomes poor. Below images
IMG_20210305_172600
IMG_20210305_172554

solution for : `epd290bw` not declared for AVR arduino devices

When we are trying the example DEPG0290BxS75AFxX_BW.ino the compiler gives us the following error

/home/####/Arduino/libraries/e-ink-master/examples/DEPG0290BxS75AFxX_BW/DEPG0290BxS75AFxX_BW.ino: In function 'void setup()':
DEPG0290BxS75AFxX_BW:38:5: error: 'epd290bw' was not declared in this scope
   38 |     epd290bw.EPD_Init(); //Electronic paper initialization
      |     ^~~~~~~~
exit status 1
'epd290bw' was not declared in this scope

after a quick review, we can see that in the third elif for AVR devices (line 29) the object DEPG0290BxS75AFxX_BW epd290bw was not declared which created the error.

To fix the error I have added the declaration of the object and added the CLK_PIN to 13

Here is what the file looks like after the change :

/*
DEPG0290BxS75AFxX_BW is a 2.9 inch black and white screen
Display Resolution 128(H)×296(V)
*/
#include "DEPG0290BxS75AFxX_BW.h"
#include "picture.h"

#define UNDEFINED -1
#ifdef CubeCell_Board //AB01
    #define FREQUENCY 2000000

    DEPG0290BxS75AFxX_BW epd290bw(GPIO1, GPIO2, GPIO3, GPIO5, UNDEFINED, SPI_NUM_0, FREQUENCY);//reset_pin, dc_pin, cs_pin, busy_pin, clk_pin, spi_num, frequency
#elif defined( ESP32 )
    #define RST_PIN         16
    #define DC_PIN          22
    #define CS_PIN          18
    #define BUSY_PIN        23
    #define CLK_PIN         5

    DEPG0290BxS75AFxX_BW epd290bw(RST_PIN, DC_PIN, CS_PIN, BUSY_PIN, CLK_PIN);//reset_pin, dc_pin, cs_pin, busy_pin, clk_pin
#elif defined( ESP8266 )
    #define RST_PIN         16
    #define DC_PIN          4
    #define CS_PIN          15
    #define BUSY_PIN        5
    #define CLK_PIN         14

    DEPG0290BxS75AFxX_BW epd290bw(RST_PIN, DC_PIN, CS_PIN, BUSY_PIN, CLK_PIN);//reset_pin, dc_pin, cs_pin, busy_pin, clk_pin
#elif defined ( AVR )
    #define RST_PIN         8
    #define DC_PIN          9
    #define CS_PIN          10
    #define BUSY_PIN        7
    #define CLK_PIN         13
    //#define SDI             11 // Pin MOSI

    DEPG0290BxS75AFxX_BW epd290bw(RST_PIN, DC_PIN, CS_PIN, BUSY_PIN, CLK_PIN);//reset_pin, dc_pin, cs_pin, busy_pin, clk_pin
#endif

void setup() {
    Serial.begin(115200);
    epd290bw.EPD_Init(); //Electronic paper initialization
    epd290bw.EPD_ALL_image(gImage_290image_bw);	//Refresh the picture in full screen

    // delay(1000);
    // epd290bw.EPD_WhiteScreen_Black();
    // delay(1000);
    // epd290bw.EPD_WhiteScreen_White();
    epd290bw.EPD_DeepSleep();  //Enter deep sleep	

}
void loop() {

}

Cubecell Board Plus - HTCC-AB02 with e-paper

Hello

Now I use Cubecell Board Plus - HTCC-AB02

Arduino IDE

Can I use the library with Cubecell Board Plus - HTCC-AB02 ?

If can, Do I have to config ?

I got the error

Documents\Arduino\libraries\e-ink-master\src\font16.c:1732:3: error: 'Font16_Table' undeclared here (not in a function)

Thank you so much.

The sketch does not compile 1.8.8

When just compiling the example, the Arduino compiler returns an error:
WARNING: library e-ink-master claims to run on (AVR) architecture(s) and may be incompatible with your current board which runs on (avr) architecture(s).
d:\Google Drive\Soldering\Arduino_sketches\libraries\e-ink-master\src\e-ink-display.cpp: In member function 'void Paint::DrawCharAt(int, int, char, sFONT*, int)':

....\e-ink-master\src\e-ink-display.cpp:135:34: error: 'pgm_read_byte' was not declared in this scope
if (pgm_read_byte(ptr) & (0x80 >> (i % 8))) {
^

Messy Lib

The display BW 152 is completely missing in the lib. ORDINARY_SCREEN not work for me << i have a 1.54 inch screen.

Pin declarations are strange
SPI.pins(CLK_PIN,MISO,SDI_PIN,CS_PIN);
OK we have custom pin declarations but we use the standard MISO pin. Makes no sence.
Select.cpp have fancy defineds to.
the function Display_String dont work at all if you have not the right display.
lib.properties file have only avr architectures.

Can you take a look at the lib and rewrite it?

display 1.54 inches, black and white with arduino uno does not work

I have a 1.54 inch display, black and white.
How can I get it to work with arduino uno?
I connected it like this

// VCC - 3V3
// GND - GND
// D / C - D9
// SDI (DIN) - D11
// CS - D10
// CLK - D13
// BUSY - D7

What example should I run next? What constants do you need to declare?
It looks like this library doesn't work at all.

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.