Initial backup of LTP-305G matrix clock setup on matrixpi

Captures everything needed to redeploy the two-display clock (hour on I2C
0x61, minute on I2C 0x63) on a fresh Pi:

- Both systemd units (matrix0x61.service, matrix0x63.service)
- Deployed Pimoroni script tree, including the local %I (12-hour) clock
  customization
- Vendored upstream sources (ltp305-python, breakout-garden) so restore is
  fully offline-capable
- Boot config snippet enabling I2C
- install.sh that wires it all back up idempotently
- Inventory doc cross-referencing every live-system path

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
dissimulo
2026-05-06 01:32:39 -07:00
commit 030172f523
99 changed files with 4445 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
# Colour control example
Use the trackball and switch to control the hue and brightness of the trackball's RGBW LEDs
and the 5x5 RGB matrix's LEDs.
Scroll up to increase brightness and left/right to change hue. Click to turn on/off.
## Pre-requisites
This example requires:
- A Pimoroni [Breakout Garden](https://shop.pimoroni.com/products/breakout-garden-hat-i2c-spi)
- A Pimoroni [Trackball Breakout](https://shop.pimoroni.com/products/trackball-breakout)
- A Pimoroni [5x5 RGB Matrix Breakout](https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout)
## Installation
Pop the breakouts into your Breakout Garden, and then run the `install.sh`
script in the root of this repository with `sudo ./install.sh` to automagically
install the libraries to run the I2C breakouts.
## Running this example
To run this example, type `./colour-control.py` in the terminal.

View File

@@ -0,0 +1,80 @@
#!/usr/bin/env python3
import time
import colorsys
import atexit
from trackball import TrackBall
from rgbmatrix5x5 import RGBMatrix5x5
print("""This Pimoroni Breakout Garden example requires an
Trackball Breakout and a 5x5 RGB Matrix Breakout.
Use the trackball and switch to control the hue and
brightness of the trackball's RGBW LEDs.
Scroll up to increase brightness and left/right
to change hue. Click to turn on/off.
Press Ctrl+C to exit.
""")
# Set up the trackball
trackball = TrackBall(interrupt_pin=4)
@atexit.register
def clear_trackball():
trackball.set_rgbw(0, 0, 0, 0)
# Set up the 5x5 RGB matrix
rgbmatrix5x5 = RGBMatrix5x5()
rgbmatrix5x5.set_clear_on_exit()
rgbmatrix5x5.set_brightness(0.8)
x = 0
y = 50.0
toggled = False
while True:
up, down, left, right, switch, state = trackball.read()
# Update x and y vals based on movement
y += up
y -= down
x += right / 10.0
x -= left / 10.0
# Clamp to min of 0 and max of 100
x %= 100
y = max(0, min(y, 100))
# Calculate hue and brightness
h = x / 100.0
v = y / 100.0
# Prevents button from retriggering
debounce = 0.5
# Change toggled state if switch is pressed
if state and not toggled:
toggled = True
time.sleep(debounce)
elif state and toggled:
toggled = False
time.sleep(debounce)
# Set brightness to zero if switch toggled
if toggled:
v = 0
# Calculate RGB vals
w = 0
r, g, b = [int(c * 255) for c in colorsys.hsv_to_rgb(h, 1.0, v)]
# Set LEDs
trackball.set_rgbw(r, g, b, w)
rgbmatrix5x5.set_all(r, g, b)
rgbmatrix5x5.show()
time.sleep(0.01)