Blinksy
Rust no-std, no-alloc LED control for spatial layouts 🟥🟩🟦
Install / Use
/learn @ahdinosaur/BlinksyREADME
How Blinksy works
- Define your LED
layoutin 1D, 2D, or 3D space - Create your visual
pattern(effect), or choose from our built-inpatternslibrary- The pattern will compute colors for each LED based on its position in space
- Setup a [
driver] to send each frame of colors to your [leds]
Features
- No-std, no-alloc: Designed for embedded targets.
- Spatial in 1D, 2D, or 3D: Map out the shape of your LEDs in space.
- Async support: Supports blocking or asynchronous execution.
- Full color support: Supports modern and classic color spaces.
- Global settings: Control overall brightness and color correction.
- Desktop simulation: Simulate your LEDs on your desktop to play with ideas.
- RGB+W support: Supports RGB + White color channels
LED Support
Clockless: One-wire (only data, no clock)
Clocked: Two-wire (data and clock)
- APA102: High-FPS RGB LED, aka DotStar
If you want help to support a new LED chipset, make an issue!
Pattern (Effect) Library:
If you want help to port a pattern from FastLED / WLED to Rust, make an issue!
Microcontroller Family Support
Clocked LED support (e.g. APA102):
|Micro|HAL|Blinksy|Recommended Driver|Backup Driver| |---|---|---|---|---| |ALL|embedded-hal|blinksy|Spi|Delay|
Clockless LED support (e.g. WS2812)
|Micro|HAL|Blinksy|Recommended Driver|Backup Driver| |---|---|---|---|---| |ALL|embedded-hal|blinksy|-|TODO Spi #12| |ESP32|esp-hal|blinksy-esp|Rmt|-| |RP (2040 or 2350)|rp-hal|TODO|TODO #36|-| |STM32|stm32-hal|TODO|TODO #78|-| |nRF|nrf-hal|TODO|TODO #77|-| |atsamd|atsamd|TODO|TODO #67|-| |AVR (Arduino)|avr-hal|TODO|TODO #79|-| |CH32|ch32-hal|TODO|TODO #80|-| |???|-|-|-|-|
If you want help to support a new microcontroller family, make an issue!
Board Support
These are ready-to-go LED controllers with board support crates to make things even easier:
- Gledopto: A great LED controller available on AliExpress: Gledopto GL-C-016WL-D
- (TODO) QuinLED: The best DIY and pre-assembled LED controller boards
If you want help to support a new target, make an issue!
Quick Start
To quickstart a project, see:
To start using the library, see control.
Modules
blinksy:blinksy-desktop:blinksy-esp:gledopto:
Examples
For all examples, see:
- Desktop examples in
./blinksy-desktop/examples - Embedded (with Gledopto) examples in
./esp/gledopto/examples
Embedded Gledopto: 3D Cube with Noise Pattern
https://github.com/user-attachments/assets/36a2c6ad-7ae6-4498-85b3-ed76d0b62264
<details> <summary> Click to see code </summary>#![no_std]
#![no_main]
use blinksy::{
layout::{Layout3d, Shape3d, Vec3},
layout3d,
leds::Ws2812,
patterns::noise::{noise_fns, Noise3d, NoiseParams},
ControlBuilder,
};
use gledopto::{board, bootloader, elapsed, main, ws2812};
bootloader!();
#[main]
fn main() -> ! {
let p = board!();
layout3d!(
Layout,
[
// bottom face
Shape3d::Grid {
start: Vec3::new(1., -1., 1.), // right bottom
Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.4kCommit, push, and open a PR
