library for creating dynamic layouts for frame-buffered devices
Project description
epdlib v0.6
EpdLib provides an interface for creating and displaying scalable layouts that work with most of WaveShare's EPaper displays (EPD). The Layout
module can also be used for generating layouts for any screen-buffered display that does not require fast updates.
EpdLib provides classes for interfacing with the screen (Screen
), building layouts that will work at any resolution (Layout
), and blocks that are used to assemble layouts (Block
). EpdLib makes it trivial to build a project that will work on almost any WaveShare display without worrying about the resolution or recoding the display functions.
EpdLib supports almost all of WaveShare's EPD screens. See the Supported Screens below.
- 7-Color screens are supported in full color
- HD Screens are supported in 8 bit gray and support partial refresh (~1 second)
- All 2 and 3 color screens are supported in 1 bit (black and white) only
Changes
See the ChangeLog for details
v0.6
- Add support for 8-Color WaveShare screens to Block, Screen and Layout
- All Blocks and Layouts now support "RGB" content
- Layouts and blocks can now be dynamically updated during runtime
Layout.layout
dictionaries must contain keytype
that matches the block type- Layouts support HTML standard color names and map [RED, ORANGE, YELLOW, GREEN, BLUE, BLACK, WHITE] to proper WaveShare Values
Dependencies
Python Modules:
- Pillow: System dependencies for Pillow:
- libopenjp2-7
- libtiff5
- RPi.GPIO
- spidev: ensure SPI is enabled on the pi
- waveshare-epd (Non IT8951 based panels): see notes below for installation instructions
- this is for interacting with waveshare epaper displays and is not strictly needed to use the Block and Layout objects.
- IT8951 (IT8951 based panels): see notes below for installation instructions
Modules:
- Block - image and text blocks that can be used to create a layout
- Layout - create layouts from Blocks that will work on nearly any WaveShare screen automagically
- Screen - simple interface for writing to WaveShare EPD devices
Supported Screens
Screen | Supported | Mode |
---|---|---|
00. epd13in3k | True | "1" 1 bit |
01. epd1in02 | True | "1" 1 bit |
02. epd1in54 | True | "1" 1 bit |
03. epd1in54_V2 | True | "1" 1 bit |
04. epd1in54b | True | "1" 1 bit |
05. epd1in54b_V2 | True | "1" 1 bit |
06. epd1in54c | True | "1" 1 bit |
07. epd1in64g | True | "1" 1 bit |
08. epd2in13 | True | "1" 1 bit |
09. epd2in13_V2 | True | "1" 1 bit |
10. epd2in13_V3 | True | "1" 1 bit |
11. epd2in13_V4 | True | "1" 1 bit |
12. epd2in13b_V3 | True | "1" 1 bit |
13. epd2in13b_V4 | True | "1" 1 bit |
14. epd2in13bc | True | "1" 1 bit |
15. epd2in13d | False | Unsupported |
16. epd2in13g | True | "1" 1 bit |
17. epd2in36g | True | "1" 1 bit |
18. epd2in66 | True | "1" 1 bit |
19. epd2in66b | True | "1" 1 bit |
20. epd2in66g | True | "1" 1 bit |
21. epd2in7 | True | "1" 1 bit |
22. epd2in7_V2 | True | "1" 1 bit |
23. epd2in7b | True | "1" 1 bit |
24. epd2in7b_V2 | True | "1" 1 bit |
25. epd2in9 | True | "1" 1 bit |
26. epd2in9_V2 | True | "1" 1 bit |
27. epd2in9b_V3 | True | "1" 1 bit |
28. epd2in9b_V4 | True | "1" 1 bit |
29. epd2in9bc | True | "1" 1 bit |
30. epd2in9d | False | Unsupported |
31. epd3in0g | True | "1" 1 bit |
32. epd3in52 | True | "1" 1 bit |
33. epd3in7 | False | Unsupported |
34. epd4in01f | True | "RGB" 7 Color |
35. epd4in2 | False | Unsupported |
36. epd4in26 | True | "1" 1 bit |
37. epd4in2_V2 | False | Unsupported |
38. epd4in2b_V2 | True | "1" 1 bit |
39. epd4in2bc | True | "1" 1 bit |
40. epd4in37g | True | "1" 1 bit |
41. epd5in65f | True | "RGB" 7 Color |
42. epd5in83 | True | "1" 1 bit |
43. epd5in83_V2 | True | "1" 1 bit |
44. epd5in83b_V2 | True | "1" 1 bit |
45. epd5in83bc | True | "1" 1 bit |
46. epd7in3f | True | "RGB" 7 Color |
47. epd7in3g | True | "1" 1 bit |
48. epd7in5 | True | "1" 1 bit |
49. epd7in5_HD | True | "1" 1 bit |
50. epd7in5_V2 | True | "1" 1 bit |
51. epd7in5_V2_old | True | "1" 1 bit |
52. epd7in5b_HD | True | "1" 1 bit |
53. epd7in5b_V2 | True | "1" 1 bit |
54. epd7in5bc | True | "1" 1 bit |
55. All HD IT8951 | True | "L" 8 bit |
Add your enthusiasm to standardize the epd1in02
screen to this Pull Request.
The epd3in7
is an oddball that has several issues:
- 'Non-standard, unsupported
EPD.Clear()
function', - 'AttributeError: module does not support standard
EPD.display()
function
Notes
WaveShare non-IT8951 Screens
The waveshare-epd library is required for non-IT8951 screens and can be installed from the Git repo:
pip install -e "git+https://github.com/waveshare/e-Paper.git#egg=waveshare_epd&subdirectory=RaspberryPi_JetsonNano/python"
IT8951 basee Screens
Greg D Meyer's IT8951 library is required and can be installed from the Git repo:
pip install -e "git+https://github.com/GregDMeyer/IT8951#egg=IT8951"
getting ready for pypi: https://medium.com/@joel.barmettler/how-to-upload-your-python-package-to-pypi-65edc5fe9c56
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file epdlib-0.6.5.2.tar.gz
.
File metadata
- Download URL: epdlib-0.6.5.2.tar.gz
- Upload date:
- Size: 44.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5a4a16d3db640c594beaed0f25ea62d43c285844eec43d75591b582c0273078 |
|
MD5 | 7f85f916a6a250ab6a6fbd7205fa1e8f |
|
BLAKE2b-256 | 9e1b4400d8e0a59e7ce748de7a8f3d7176df83d71da3b1a09e640ba0bf083024 |
File details
Details for the file epdlib-0.6.5.2-py3-none-any.whl
.
File metadata
- Download URL: epdlib-0.6.5.2-py3-none-any.whl
- Upload date:
- Size: 44.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63474da5f1e3ac5d06dd91fff852cb7f4816669a9fa5c7f3fdc8ed21f5adbc90 |
|
MD5 | bb1c8ee33c1e7289ec24d663e01a98ef |
|
BLAKE2b-256 | 6c047d52b64f1885222e0b0f49fc3e6fdcd9d32c696a2c435b66f7fb358c0f77 |