WiFi
Pixel
Controller
LED Project Enabler
Chromatron is an open source pixel controller designed to make LED pixel projects easy and fun.
Chromatron Features
LED Pixel Drivers
Drive 300 pixels of a variety of types without additional circuitry or firmware modifications. Chromatron currently supports APA102, WS2811, WS2812, WS2801, SK6812, and analog PWM pixel strips.
Pixel Graphics Pipeline
Create high quality animation and fading effects with per-pixel faders, robust dimming controls, and 16 bit internal computations.
Control & program over WiFi
Easily control and coordinate multiple devices wirelessly.
FX Scripting Engine
Chromatron's FX Script is a simple language designed specifically for pixel graphics.
Python & Command Line APIs
The Python library and CLI make it easy to integrate Chromatron into other projects.
And even more...
Real-time pixel streaming, simple hardware connections, and much more.
API Examples
Discover, configure, and control devices over WiFi with our Python library and Command Line Interface tools:
Python
1 2 3 4 5 6 7 8 9 10
from chromatron import * # Discover devices in living room group = DeviceGroup('living_room') # Load rainbow effect script group.load_vm('rainbow.fx') # Set master dimmer to 50% group.dimmer = 0.5
Command Line
1 2 3 4 5 6 7 8 9 10 11
# Install Python library pip install chromatron # Discover devices in living room chromatron --query living_room discover # Load rainbow FX script to previous group chromatron vm load rainbow.fx # Set master dimmer to 50% chromatron dimmer master 0.5
Live code with FX Script
FX Script is a hybrid language based on Python syntax running on a custom designed virtual machine that makes it easy to generate graphics directly on hardware. FX can compile and load in real-time to get instant visual feedback.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# this script generates a rolling rainbow pattern # declare a global variable for current hue current_hue = Number() # init - runs once when script is loaded def init(): # set pixels to full colors (maximum saturation) pixels.sat = 1.0 # set to maximum brightness pixels.val = 1.0 # runs periodically, frame rate is configurable def loop(): # increment the base hue so the rainbow pattern # shifts across the pixels current_hue += 0.005 # declare a local variable a = Number() a = current_hue # loop over all pixels in array for i in pix_count(): pixels[i].hue = a # shift color for next iteration a += 1.0 / pix_count()
Hardware
Technical Specs
I/O Processor
- Atmel AVR XMega128A4U
- 32 MHz
- 8K SRAM
- 128K Flash
Runs the real time OS, handles raw pixel data output, USB, auxiliary IO, and the user file system.
WiFi/Graphics processor
- Espressif ESP8266
- 160 MHz
- 64K RAM
Handles WiFi communications, scripting engine VM, pixel faders, and HSV to RGB colorspace conversion. Connected to the real time processor via 4 MHz UART bridge.
I/O
- 4x PWM outputs, 3 amps each
- 1x Pixel clock + data output with built in level shifters, multiplexed with 2 of the PWM channels
- 2x power and ground connections
- Micro USB port
- 2x expansion IO headers for future use
Dimensions
- 1.25 x 2 inches (the USB overhangs by another 0.1 inches or so)
About Us
Sapphire Open Systems is an Austin, TX based startup whose mission is to enable hobbyists, makers, and professionals to connect anything to everything and promote open source as a better way to make electronics.
100% Open Source
All software and hardware will be released under OSI compatible licenses once the project hits the funding goal.