Code Monkey home page Code Monkey logo

it8951's Introduction

6inch e-Paper HAT

Description:

This is an E-Ink display HAT for Raspberry Pi, 6inch, 800x600 resolution, with embedded controller IT8951, communicating via USB/SPI/I80/I2C interface.

Due to the advantages like ultra low power consumption, wide viewing angle, clear display without electricity, it is an ideal choice for applications such as shelf label, industrial instrument, and so on.

Website:

CN: http://www.waveshare.net/shop/6inch-e-Paper-HAT.htm

EN: https://www.waveshare.com/6inch-e-paper-hat.htm

WIKI:

CN: http://www.waveshare.net/wiki/6inch_e-Paper_HAT

EN: https://www.waveshare.com/wiki/6inch_e-Paper_HAT

Driver install:

git clone https://github.com/waveshare/IT8951.git

cd IT8951

make

sudo ./IT8951 0 0 01.bmp

it8951's People

Contributors

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

it8951's Issues

Memory hungry?

Noticed that the library hogs memory when using the BMP-conversion feature. Each screen update added about 1-2% of memory usage until the application would crash.

I added these two lines just before the return in Show_bmp() in miniGUI.c (line 685), which seems to be a big improvement from my initial tests. I also added a call to the IT8951_Cancel() function from IT8951.c in my application, but this doesn't appear to have a big effect.

free(bmp_dst_buf);
free(bmp_src_buf);

Only tested on 9.7" display with RaspberryPi Zero.

Connection dies for e-paper

Hi, can someone help with with this problem, I am a newbie so it might be something very simple.

When I run the example from waveshare like so, sudo ./IT8951 0 0 01.bmp I get the following data:

Panel(W,H) = (1872,1404)
Image Buffer Address == 119F00
FW Version = SWv_0.1.
LUT Version = M841_TFA5210
VCOM = -2.27V
IT8951_GUI_Example

I can then freely put other bitmaps, and test will execute and the images will display.

However, when I try to use the python example, nothing gets displayed. What is worse -- if I come back to the C code, and run the same command, I get blanks:

Panel(W,H) = (0,0)
Image Buffer Address == 0
FW Version = 
LUT Version =
VCOM = -0.00V
IT8951_GUI_Example

Since there is no test code for 10.3" display, I am using a randomly picked epd7in5b_V3 and modified the width and height. I see that the other displays using this hat are 6", 7.8", 9" but none of those are available with working code examples in this python folder.

There must be a pin that needs to be switched in order to get this going again, but I have no clue where to dig and what to try. I attempted to use the EPD Hardware reset function, but it didn't work

Any help is appreciated!

Question about time to write Data to IT8951 Framebuffer.

Hello,
I am working with Raspberry Pi 3 and the 10.3" Epaper Display from Waveshare. The refresh rate is very fast but the time to write the data from host frame buffer to IT8951 Frame Buffer is about 10 seconds. This is way to long for my application. Is there any way to make this process faster? Or can write multible images to different Frame Buffers on the IT8951? Has this to do with SPI interface?

Faster image load from host to IT8951 Image Buffer

After a quick profile to see why I'm not achieving a 450ms full refresh (7.5s instead) with the example code for a Raspberry Pi, it appears that most of the wall clock time is being spent loading the image from the host to the IT8951 driver (IT8951HostAreaPackedPixelWrite()). Is there a way to accelerate this?

Where can I found register description?

Hi, I am working with IT8951 via USB, full screen update is working,
but when I try partial update, control board freeze. I see, that in source you are using
registers like 0x18001138. Where can I found description all of registers? Thanks!

Partial refresh

Is there a way to partially refresh the screen instead of a full refresh?

I am asking this because I want to add lines smoothly as quickly as possible, but the refresh speed is too slow and I thought that is because it has to refresh the whole screen now.

How can rotate

in constants.py there is this

TODO: make sure CW/CCW are correct

class Rotate:
NONE = 0
CW = 1
CCW = 3
FLIP = 2 # 180 degree rotation
How do we use it?

What is the license this code is released under?

I have been picking out the useful functions in this library, fixing them, and modifying them for my project. I would like to know if I have permission to share them.

There currently does not seem to be a license. Could you please add a license of some sort?

If you want suggestions, I would highly suggest an public domain license such as CC0 or the Unlicense. The MIT license is popular.

Linux USB example/driver

Do you have also linux version of USB interface? I have module without access to SPI, but I can use USB (Tested from Windows application), but I need such SW/Example for linux.

Thanks

Partial refresh examples?

Hi and thanks for your code, it's really helpfull to start and build a new software to render images on the 7.8" e-ink screen!

I'd like to know if you can provide code to partially refresh the screen (only write a small image at a specific location)

Thanks for your help

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.