All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- support for Waveshare 7.3in E display - thanks @antoinecellerier
- replaced
importlib.resources
withimportlib_resources
per the migration information - Waveshare libraries now loaded from official repo again.
- Waveshare 7.3 inch was loading the wrong driver - thanks @reinharty
- Waveshare 1.54in V2 had wrong init() method - thanks @W11T
- fixed GitHub actions Pytests not working
--list
argument for theomni-epd-test
utility. This will list all valid display options and exit.- Added PiArtFrame to projects list
- added development mode install instructions to README
- waveshare 1in displays had wrong device name in README - thanks @rpdom
- palette filter processing was not working with modes other than black/white - thanks @fardage for the issue
- support for Raspberry Pi OS 12 (Bookworm) and Python 3.11 through some dependency fixes
- information regarding Python virtual environment usage
- disclaimer on status of official Waveshare repo support with Bookworm
- updated IT8951 repo link to build from source with RPI dependencies
- Waveshare drivers now loaded from forked repo to fix Bookworm Rpi detection
setup.cfg
information merged intopyproject.toml
- changed valid Python versions from 3.7 < 3.11. Issues currently on 3.11 installs running on Raspberry Pi OS 12 (Bookworm)
- pinned Waveshare repo to 4822c07. This is known to work with Python 3.7 < 3.10.
- pinned IT8951 repo to 6721516. This is known to work with Python 3.7 < 3.10.
- all build information moved from
setup.cfg
topyproject.toml
- Updated Waveshare GitHub URL to https://github.com/waveshareteam/e-Paper/ in README and documentation
- Fixed Waveshare 1.02in as the
display()
method has changed.
palette_filter
advanced option now supports color names or hex values in addition to RGB colors. Thanks @missionfloyd- IT8951 devices now support
gray16
mode for grayscale - Waveshare 10.3 IT8951 device marked as tested. Thanks @simonjowett
- added link to pycasso in the README. Thanks @jezs00
- new displays, Waveshare 7.3in 7 Color - thanks @evelyndooley, Waveshare 2.13in V3
- updated Pillow min version to 9.1+
- code cleanup for proper style standards - thanks @missionfloyd
- added new 4 color waveshare displays (epd1in64g, epd2in36g, epd3in0g, epd4in37g, epd7in3g). Thanks @missionfloyd
omni_epd.mock
can now set both the width and height values within the.ini
file. Thanks @missionfloyd
-
omni_epd.mock
device now returns a palette filter when using the color mode. Previously this returned only b/w and resulted in image processing enhancements resulting in a black and white only image, even when color was selected. Hardcoded palette based on web safe colors. -
Waveshare device
epd2in13_V2
should use the alternate clear method which requires a color parameter. Thanks @ThatIsAPseudo for pointing this out
- dithering is now done with didder - this is a massive improvement both in scope and speed to hitherdither. Thanks @missionfloyd
- removed
hitherdither
as a dependency
- added
force_palette
argument to thevirtualepd._filter()
function. Will force palette based conversion if wanted, default is False - added additional tested displays per #63 comments
- new unit tests to make sure image processing components run without error
- support for
inky.auto
as a valid EPD device. This will auto detect Inky devices and load the correct driver. Thanks @donbing - support for IT8951 devices, such as the WaveShare 6in display
- calls to
Image.quantize
require an RGB or L mode Image object, convert any loaded image before applying new palettes - when filling palette too many colors were being set (< 256), wrong length variable was being used
- fixed regression where Inky
bw
mode was causing colors to be inverted - universal fix for Waveshare Tri-color displays as original fixes broke some displays - thanks @aaron8684
- make sure Pillow and Inky packages are known working versions or above - thanks @donbing
bw
standardized as the consistent naming for the default black/white device mode.black
will throw a warning, affects Inky devices - thanks @missionfloyd
- added
version
identifier for Waveshare devices so that V2 and V3 boards can be identified from the others
- fixed typos in 5.65in Waveshare implementation - thanks @aaronr8684
- fixed issues with BW display on 7.5 tri-color screens - thanks @aaronr8684
- removed dependency inky[fonts], this is not needed. Thanks @missionfloyd
- fixed overlay colors in epd5in83c tri-color display (thanks @dr-boehmerie)
waveshare_epd.epd2in9
andwaveshare_epd.epd5in83c
are now tested (thanks @dr-boehmerie)
- fixed issues with Waveshare 3.7in devices not working properly.
- dithering options in
ini
file added using the hitherdither library, thanks @missionfloyd
- added SlowMovie to list of implementing projects
- modified several of the Waveshare devices to make sure
init()
,display()
, andclear()
methods are all being called correctly based on device specifics
- restructured object inheritance to reduce duplicate code, this is especially true for waveshare devices
- fixed issue where test utility would fail on inky displays. made the
draw()
function more universal between devices
- added device specific modes to INI file
- updated device types to use multiple color modes when available
- added many device specific options, loaded within INI files. Documented on wiki
- Inky Impression is tested - thanks @missionfloyd
- updated device table to show available device modes for each supported type
- dynamically load class files instead of using import where possible
- changed example image to use one from NASA with more colors for better color display test
- updated tests to better handle INI file cleanup
- removed Image Enhancements from INI having to do with colors, moved to device specific configurations
- The mock display driver,
omni_epd.mock
, now writes the image file to a jpg in the local directory for better testing
- EPD config section didn't have corresponding var in
conf.py
- fixed issues with some Waveshare displays not working due to differences in individual drivers #8 for more details
- Added some notes on contributing
- unit test build badge to README
- Rebrand!
vsmp-epd
renamed toomni-epd
, subsequent commands and documentation also updated
- support for Inky type displays (pHAT, wHAT, and Impression)
- added instructions for installing direct from repo
- removed PyPi setup instructions, more important to allow installing of waveshare libs
- added ability to create
vsmp-epd.ini
file to manually set display options for epd that always get applied - added device level ini file using
devicename.ini
for syntax - automatic pytest checks for PRs on Github Actions
- added working code examples
vsmp-epd-test
now accepts the-i
flag to load an image in addition to the default display pattern
- don't use the root logger
- added additional VirtualEPD class logging
- modified
setup.cfg
to add additional Classifiers and correct dependencies (waveshare from git)
- added
clear()
functionality to waveshare display class - added
EPDTestUtility
class for basic display troubleshooting - added
vsmp-epd-test
console script for quick user testing
- fixed issue when waveshare lib not installed throwing error due to import ordering
- moved
EPDNotFoundError
class so it's easier to import - updated README with better individual display and testing instructions
- missed some debug messages and syntax errors
- added some license notices per gnu.org
- added some unit tests
- invalid device now throws
EPDNotFoundError
instead of calling exit - let the user deal with it
- Pypi badge with most current version
- small tweaks to create a decent release version for PyPi
- Added information on supported displays and usage information to README
- fixed waveshare
close()
behavior
- added project config files like .gitignore, README, License, etc
- added python project build files (setup.py, setup.cfg, etc)
- updated legacy class files for better package management