Changelog
yyyy/mm/dd Version x.y.z-1
- Documentation updates:
- Updated interface docs based on live system service
- Fixed minor inaccuracies in DBus docs
- Added directions for installing dbus extra with
pip - Testing updates:
- New test for
StagedConfig - CLI updates:
--versionflag
2025/04/08 Version 5.0.0-1
- API Changes:
- NEW:
Receiverclass- A subclass of
asyncio.Queue
- A subclass of
Client:- BREAKING:
subscribeandunsubscribemethods use newReceiverclass - Emit unmatched exceptions on expecting receivers instead of resolving
client.closed detect_baud_rateexposestimeoutandretry_timesarguments- Document
detect_baud_rate
- BREAKING:
- BREAKING:
ClientProtocol/EffectClientcrystalfontz.protocol.ClientProtocoltype has been replaced bycrystalfontz.effects.EffectClientEffectClientenforces a smaller API thanClientProtocoldid previously
- BREAKING:
Response:Response.from_bytesaccepts bytes as from packets, rather than__init__Response.__init__accepts properties as arguments
- BREAKING:
SpecialCharacterAPI:- Rename
as_bytesmethod toto_bytes - Store pixels as
List[List[bool]]instead ofList[List[int]]
- Rename
KeyStateincludeskeypress: KeyPressattribute- CLI changes:
- BREAKING: CLI now invoked through
python3 -m crystalfontz- Optional unpackaged
crystalfontzentry point at./bin/crystalfontz
- Optional unpackaged
- Use
configurencelibrary - Respect
CRYSTALFONTZ_CONFIG_FILEenvironment variable - Improve error reporting for timeouts
- Client now respects CLI settings
- Cause was the
Clientconstructor being called twice
- Cause was the
- Additional commands accept bytes as arguments
python3 -m crystalfontz line 1python3 -m crystalfontz line 2python3 -m crystalfontz send
- Help for
python3 -m crystalfontz listen--foroption - NEW: Dbus support:
crystalfontz.dbus.DbusInterfacedbus Interface class, implementing most commandscrystalfontz.dbus.DbusClientdbus client classcrystalfontz.dbus.domainAPI for mapping domain objects to dbus typespython3 -m crystalfontz.dbus.servicedbus service CLI- Optional unpackaged
crystalfontz.dbus.serviceentry point at./bin/crystalfontz-service
- Optional unpackaged
python3 -m crystalfontz.dbus.clientdbus client CLI- Optional unpackaged
crystalfontz.dbus.cliententry point at./bin/crystalfontz-dbus
- Optional unpackaged
- Packaging and Releases:
python-crystalfontzCOPR package spec- This has been moved from https://github.com/jfhbrook/public
- NEW:
crystalfontzCOPR package- Depends on
python-crystalfontzCOPR package - Includes systemd unit for
python3 -m crystalfontz.dbus.service - BREAKING: Includes shim bin
crystalfontz->python3 -m crystalfontz.dbus.client
- Depends on
- Tito based release tagging
- GitHub release
- Improved PyPI classifiers
- BREAKING: Release under MPL-2.0 license
- Integration tests:
- Use
python-gakplugin - Use snapshots
- Leverage a config file at
./tests/fixtures/crystalfontz.yaml- Can be overridden with
CRYSTALFONTZ_CONFIG_FILEenvironment variable
- Can be overridden with
2025/01/12 Version 4.0.0
- Fedora package on COPR: https://copr.fedorainfracloud.org/coprs/jfhbrook/joshiverse/package/python-crystalfontz/
- Client API Changes:
- Rename
client.load_devicetoclient.detect_device client.dow_transaction'sdata_to_writeargument defaults to empty bytes- New
client.test_connectionmethod - New
client.detect_baud_ratemethod - CLI Improvements and Features:
crystalfontz pingmay receive encoded bytes- Support for
crystalfontz flash write - Support for
crystalfontz dow transaction - Support for
crystalfontz gpio write - Support for
crystalfontz gpio read - Support for
crystalfontz baud - Support for
--output textand--output json - New
crystalfontz configcommand group - Global config loaded by default when command called with sudo
- Configuration Improvements and Features:
- Export
Configclass used by CLI - Add
get,setandunsetmethods toConfigclass
2025/01/09 Version 3.0.1
- Remove development dependencies from extras
2025/01/08 Version 3.0.0
- API changes:
- Renamed
clientcontextmanager toconnection - Renamed
TemperatureReport'sidxattribute toindex - Moved
reset_invertandpower_invertfromATXPowerSwitchFunctionto flags onATXPowerSwitchFunctionalitySettings - Exposed
ClientProtocolfor developers of custom effects - Retry and timeout related functionality:
- Add response
timeoutoption with 250ms default and per-method overrides - Add response
retry_timesoption with 0 default and per-method overrides - Command line changes and improvements:
- Default port is now
/dev/ttyUSB0 - Renamed
crystalfontz atxarg--power-pulse-length-secondsto--power-pulse-length - Add
--for SECONDSoption tocrystalfontz listenandcrystalfontz effectsthat closes the commands after a certain amount of time - Improved help text
- Docstrings, plus documentation hosted at https://crystalfontz.readthedocs.io/
2025/01/06 Version 2.0.0
- API changes:
- Expose
pauseargument for marquee effect in client and CLI - Rename
client.pokeandPokedtoclient.read_lcd_memoryandLcdMemoryrespectively - Improved control flow and error handling:
- Add
client.closedfuture - Add
clientasync contextmanager that awaitsclient.closed - Handle errors by surfacing them either in the command calls or through
client.closed - Refactor CLI command names
read-lcd-memory->lcd pokesend-command-to-lcd-controller->lcd senduser-flash-area->flashstore-boot-state->storeclear-screen->clearset-line-1->line 1set-line-2->line 2special-character->charactercursor set-position->cursor positioncursor set-style->cursor styleset-contrast->constrastset-backlight->backlightdow read-device-information->dow infotemperature setup-reporting->temperature reportingtemperature setup-live-display->temperature displaykeypad configure-reporting->keypad reportingset-atx-power-switch-functionality->atxconfigure-watchdog->watchdogread-status->statusset-baud-rate->baud- CLI improvements:
- Byte CLI arguments are validated as being in range
- Watchdog CLI argument allows "disable" and "disabled" values
- Configure device model, hardware revision and firmware revison in CLI
- Do not show stack trace on connection errors in CLI
- Support arbitrary multi-byte encodings in character ROM
- Build, package and CI housekeeping
- Compile
requirements.txtandrequirements_dev.txt - Add CI pipeline
- Support Python 3.11
- Add PyPI classifiers
- Updated documentation in README.md
2025/01/04 Version 1.0.0
- First version of
crystalfontz