SkillAgentSearch skills...

Blinksy

Rust no-std, no-alloc LED control for spatial layouts 🟥🟩🟦

Install / Use

/learn @ahdinosaur/Blinksy
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <img src="https://i.imgur.com/0FQeTbC.gif" alt="Blinksy simulation of 2D grid with noise pattern" width="320px" height="313px" /> </div> <h1 align="center"> <a href="https://github.com/ahdinosaur/blinksy"> Blinksy </a> 🟥🟩🟦 </h1> <div align="center"> A <strong>Rust</strong> <em>no-std</em> <em>no-alloc</em> LED control library. </div> <div align="center"> For <strong>1D</strong>, <strong>2D</strong>, and <strong>3D</strong> layouts. </div> <div align="center"> Inspired by <a href="https://fastled.io/">FastLED</a> and <a href="https://kno.wled.ge/">WLED</a>. </div> <br /> <div align="center">

GitHub Repo stars GitHub Sponsors Chat License

</div>

How Blinksy works

  • Define your LED layout in 1D, 2D, or 3D space
  • Create your visual pattern (effect), or choose from our built-in patterns library
    • 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:

  • Rainbow: A basic scrolling rainbow
  • Noise: A flow through random noise functions

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:

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

CI status

Examples

For all examples, see:

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

View on GitHub
GitHub Stars152
CategoryDevelopment
Updated6h ago
Forks10

Languages

Rust

Security Score

95/100

Audited on Mar 26, 2026

No findings