Skip to content

twobitcircus/gratis

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gratis

Branch notes

Intel Edison support

We've added Intel Edison support using MRAA. Quick and dirty.

cd PlatformWithOS
LDFLAGS=-lmraa PANEL_VERSION=V231_G2 make edison
LDFLAGS=-lmraa PANEL_VERSION=V231_G2 make edison-install

The FUSE support does work on Edison, and it's awesome. However, the supplied python code doesn't seem to work properly...

Try this:

from PIL import Image
from PIL import ImageDraw

w, h = 264, 176

im = Image.new('1', (w, h), "WHITE")
pixels = im.load()
for x in range(w):
  for y in range(h):
    pixels[x,y] = (x)%2
im.save("/tmp/stripes.png")
with open("/dev/epd/display", "wb") as f:
  f.write(im.tobytes())
with open("/dev/epd/command", "w") as f:
  f.write("U")

This branch implements a proper partial update following the algorithm outlined in the discussion of issue #19 on the repaper/gratis github repository.

The original code in epd_fuse.c and V231G2/epd.c under PlatformWithOS did a full 4 cycle display update including COG power on and COG power down sequence. This resulted in the update taking more than 3 seconds with the display first showing the updated image, then the original image followed finally by the updated image. This made things like a clock, counters and 'game of life' look very bad.

Following changes as outlined in issue #13:

  • in epd_fuse.c run_command() do not call EPD_end() at the end of the 'P' command (only if partial update is supported by the display)
  • in epd.c introduce COG_on status variable in EPD_struct.
  • in epd.c EPD_begin() return immediately when COG_on is true
  • in epd.c EPD_begin() set COG_on to true at the end of the function.
  • in epd.c EPD_end() set COG_on to false at the end of the function.
  • in epd.c EPD_partial_image() only call the last stage (EPD_normal).

With these changes you can get a proper partial display update frequency < 1 Hz.

For a YouTube video showing the difference between before and after the fix see https://youtu.be/dciaFRKtetU

IMAGE ALT TEXT HERE

Original README below

Updated 2015-08-01 by Rei Vilo

Sketches

These are example programs that will compile and run on the following platforms

  1. TI LaunchPad with M430G2553 using the Energia IDE
  2. Arduino Leonardo using the Arduino IDE

Notes for Arduinos with the embedded USB controller

  • Arduinos with the embedded USB controller ('Un' suffix) do not have a real serial port, it is emulated using firmware and uses the USB interface.

  • Arduino Loenardo uses one of these chips.

  • The Command program needs the serial to accept commands so it will wait indefinitely for the serial monitor to be opened before doing any display. (the additional delay code is commented out)

  • The Demo, Flash Loader and Thermo programs do no need serial port to accept commands, it is display only. The additional delay is used and the indefinite wait is commented out. Therefore on a Leonardo to see the initial messages open the serial monitor before uploading. If the serial monitor is not open these programs will now automatically start.

PlatformWithOS

Contains an example driver and Python demo programs that can be compiled and run on:

  1. Raspberry Pi.
  2. BeagleBone Black

Other software links

These are other projects on GitHub or other sites, please check them out. (If you have a project, let us know an we will add a link here)

  1. https://github.com/aerialist/repaper_companion - Companion software for rePaper. Resize image and convert to XBM format.

======

Gratis is a Repaper.org repository, initiated by E Ink and PDI for the purpose of making sure ePaper can go everywhere.

About

EPD Source codes and Documentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C++ 64.7%
  • C 26.8%
  • Python 4.3%
  • Shell 2.1%
  • Ruby 1.3%
  • Makefile 0.8%