Tottie wee image rendering library for 64×64 LED matrix displays
Project description
tottie
Tottie /ˈtɒti/ — Scottish word meaning tiny or very small. A tottie wee library for tottie wee displays.
Tottie is a Python library for rendering images onto 64×64 LED matrix displays. It provides the shared rendering primitives used by homeassistant-idotmatrix and homeassistant-trinity.
What's included
tottie.moon— Moon phase renderer. Draws the current moon disc with texture, a direction/altitude ring indicator, and a lunar cycle progress bar across the top edge.tottie.overlay— Pixel-font text overlay. Renders track/artist (or any two lines of text) onto an image using a compact 3×5 bitmap font, with automatic text paging for long strings.tottie.image— Image utilities. Centre-crop-and-resize to any square size, and RGB565 conversion for displays that accept raw pixel data over serial/MQTT.
Installation
pip install tottie
Usage
Moon phase
from tottie import render_moon
img = render_moon(lat="51.5", lon="-0.1", elev=10)
img.save("moon.png")
Set mirror_ew=True (the default) when the display is on a north-facing wall, so the moon rises on the correct side.
Now playing overlay
from PIL import Image
from tottie import apply_now_playing_overlay
img = Image.open("album_art.jpg").convert("RGB").resize((64, 64))
apply_now_playing_overlay(img, track="Astronomy", artist="Blue Oyster Cult")
img.save("now_playing.png")
For animated paging (long track/artist names scroll across multiple frames):
from tottie import render_now_playing_frames
frames = render_now_playing_frames(img, track="A Very Long Track Title Indeed", artist="Artist")
# frames is a list of (PIL.Image, duration_ms) pairs
Image utilities
from PIL import Image
from tottie import crop_and_resize, to_rgb565
img = Image.open("photo.jpg").convert("RGB")
small = crop_and_resize(img, size=64) # centre-crop square, resize to 64×64
raw = to_rgb565(small) # bytes ready to publish over MQTT
Requirements
- Python 3.11+
- Pillow
- ephem (for moon rendering)
Licence
MIT
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tottie-0.3.0.tar.gz.
File metadata
- Download URL: tottie-0.3.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8fb63734d50d2eae052d1029edf71ba390f07f3b9a4d531591886f79389c81c
|
|
| MD5 |
8bbccc68bab1797f418bc4d1a8b630b2
|
|
| BLAKE2b-256 |
7f2d146a58dce2ef48f7bce894ceaf24b20520b32699c082157a6298f33932a4
|
Provenance
The following attestation bundles were made for tottie-0.3.0.tar.gz:
Publisher:
release.yml on d0ugal/tottie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tottie-0.3.0.tar.gz -
Subject digest:
a8fb63734d50d2eae052d1029edf71ba390f07f3b9a4d531591886f79389c81c - Sigstore transparency entry: 1350769677
- Sigstore integration time:
-
Permalink:
d0ugal/tottie@b335ea092d8362baf5fa221de2edaa132d9d3eea -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/d0ugal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b335ea092d8362baf5fa221de2edaa132d9d3eea -
Trigger Event:
release
-
Statement type:
File details
Details for the file tottie-0.3.0-py3-none-any.whl.
File metadata
- Download URL: tottie-0.3.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb79376385e12b32d3667b54c06cf016fa3f9fad0b46b3086f874479d2890a12
|
|
| MD5 |
fd6798d610175a88965330bf019002db
|
|
| BLAKE2b-256 |
84bc1b7dc1f9e91d6d87224048c7ccd307049b193cb3ba3cb57d8e1472a03668
|
Provenance
The following attestation bundles were made for tottie-0.3.0-py3-none-any.whl:
Publisher:
release.yml on d0ugal/tottie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tottie-0.3.0-py3-none-any.whl -
Subject digest:
fb79376385e12b32d3667b54c06cf016fa3f9fad0b46b3086f874479d2890a12 - Sigstore transparency entry: 1350769759
- Sigstore integration time:
-
Permalink:
d0ugal/tottie@b335ea092d8362baf5fa221de2edaa132d9d3eea -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/d0ugal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b335ea092d8362baf5fa221de2edaa132d9d3eea -
Trigger Event:
release
-
Statement type: