Git Product home page Git Product logo

adafruit-e-paper-display-breakout-pcbs's Introduction

Adafruit-E-Paper-Display-Breakout-PCBs

PCB files for Adafruit E-Paper Display Breakouts

Format is EagleCAD schematic and board layout

For more details, check out the product page at

Adafruit invests time and resources providing this open source design, please support Adafruit and open-source hardware by purchasing products from Adafruit!

Designed by Adafruit Industries.
Creative Commons Attribution, Share-Alike license, check license.txt for more information All text above must be included in any redistribution

adafruit-e-paper-display-breakout-pcbs's People

Contributors

blitzcitydiy avatar kattni avatar ladyada avatar makermelissa avatar siddacious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

adafruit-e-paper-display-breakout-pcbs's Issues

2.13" diagonal eInk display doesn't work

IMG_9970-min
IMG_9971-min
IMG_9972-min
IMG_9973-min
Screen Shot 2019-08-07 at 2 57 24 PM

#Hi, I am trying to display a bmp file with 2.13" diagonal e-Ink display by using Metro M4 express boot. When I try the basic code (from CircuitPython website) below, it seems like working well, it follows the code to the end and prints every command they I put in the code on the pc screen. But nothing changes on e-Ink display device.Do you have an idea about how I can make it work?

output:

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Creating display
File opened
Size: 66200
Image offset: 54
Header size: 40
Width: 212
Height: 104
Bit depth: 24
Image OK! Drawing...
Finished drawing
done

code:

import digitalio
import busio
import board
from adafruit_epd.epd import Adafruit_EPD
from adafruit_epd.il0373 import Adafruit_IL0373

spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
ecs = digitalio.DigitalInOut(board.D9)
dc = digitalio.DigitalInOut(board.D10)
srcs = None
rst = None
busy = None

print("Creating display")
display = Adafruit_IL0373(104, 212, spi, # 2.13" Tri-color display
cs_pin=ecs, dc_pin=dc, sramcs_pin=srcs,
rst_pin=rst, busy_pin=busy)

display.rotation = 3

FILENAME = "blinka.bmp"

def read_le(s):
# as of this writting, int.from_bytes does not have LE support, DIY!
result = 0
shift = 0
for byte in bytearray(s):
result += byte << shift
shift += 8
return result

class BMPError(Exception):
pass

def display_bitmap(epd, filename):

try:
    f = open("/" + filename, "rb")
except OSError:
    print("Couldn't open file")
    return

print("File opened")
try:
    if f.read(2) != b'BM':  # check signature
        raise BMPError("Not BitMap file")

    bmpFileSize = read_le(f.read(4))
    f.read(4)  # Read & ignore creator bytes

    bmpImageoffset = read_le(f.read(4))  # Start of image data
    headerSize = read_le(f.read(4))
    bmpWidth = read_le(f.read(4))
    bmpHeight = read_le(f.read(4))
    flip = True

    print("Size: %d\nImage offset: %d\nHeader size: %d" %
          (bmpFileSize, bmpImageoffset, headerSize))
    print("Width: %d\nHeight: %d" % (bmpWidth, bmpHeight))

    if read_le(f.read(2)) != 1:
        raise BMPError("Not singleplane")
    bmpDepth = read_le(f.read(2))  # bits per pixel
    print("Bit depth: %d" % (bmpDepth))
    if bmpDepth != 24:
        raise BMPError("Not 24-bit")
    if read_le(f.read(2)) != 0:
        raise BMPError("Compressed file")

    print("Image OK! Drawing...")

    rowSize = (bmpWidth * 3 + 3) & ~3  # 32-bit line boundary

    for row in range(bmpHeight):  # For each scanline...
        if flip:  # Bitmap is stored bottom-to-top order (normal BMP)
            pos = bmpImageoffset + (bmpHeight - 1 - row) * rowSize
        else:  # Bitmap is stored top-to-bottom
            pos = bmpImageoffset + row * rowSize

      
        f.seek(pos)
        rowdata = f.read(3*bmpWidth)
        for col in range(bmpWidth):
            b, g, r = rowdata[3*col:3*col+3]  # BMP files store RGB in BGR
            if r < 0x80 and g < 0x80 and b < 0x80:
                epd.pixel(col, row, Adafruit_EPD.BLACK)
            elif r >= 0x80 and g >= 0x80 and b >= 0x80:
                pass  # epd.pixel(row, col, Adafruit_EPD.WHITE)
            elif r >= 0x80:
                epd.pixel(col, row, Adafruit_EPD.RED)
except OSError:
    print("Couldn't read file")
except BMPError as e:
    print("Failed to parse BMP: " + e.args[0])
finally:
    f.close()
print("Finished drawing")

display.fill(Adafruit_EPD.WHITE)
display_bitmap(display, FILENAME)
display.display()

print ("done")

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.