Matricks
"Teach an old matrix new tricks..."
Matricks is a WASM-based extensible LED matrix control tool intended for use on Raspberry Pi devices.
LED matrix functionality is defined by user-developed plugins, or "tricks", which can be developed in any language that
is supported by the Extism PDK.
To simulate plugins while you're developing them, check out Simtricks!
See usage details below:
```
Usage: matricks [OPTIONS] --plugins --width --height
Options:
-p, --plugins Path to plugin or directory of plugins
-x, --width Width of the matrix, in number of LEDs
-y, --height Height of the matrix, in number of LEDs
-f, --fps Target framerate at which to drive the matrix [default: 30]
-L, --log Directory to write logs [default: log]
-s, --serpentine Data line alternates direction between columns or rows
-b, --brightness Brightness of matrix, from 0-255 [default: 255]
-t, --time-limit Maximum time (in seconds) that a single plugin can run before moving on to the next one. No time limit by default
-l, --loop Loop plugin or set of plugins indefinitely
-h, --help Print help
-V, --version Print version
```
Installation on Raspberry Pi
- Install 64-bit Raspbian[^1] on your Raspberry Pi[^2]
- Install Rust and Cargo from the Rust website
- Run
apt install libclang-dev libssl-dev
- Install and configure the rpi_ws281x library.
- Run
cargo install matricks
Cross-compilation for Raspberry Pi
- On another device,
- Install Rust and Cargo from the Rust website
- Run
rustup target add aarch64-unknown-linux-gnu
- Build with
cargo build --release
[^3]
- Transfer the produced executable to your Raspberry Pi
- On your Raspberry Pi,
- Install 64-bit Raspbian[^1]
- Install and configure the rpi_ws281x library.
- Run the executable