ervanalb / lux

Light control protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lux

Lux is a protocol for the transmission of power and data from a host device to one or more nodes. It is capable of data rates approaching 3 megabits per second and supplying 30 Watts of power over distances of up to 100 feet. It is designed to be easy to implement and uses low-cost cabling and connectors.

Lux was designed as a lighting control protocol, specifically for LED strips. But, it generalizes nicely to any sort of automation on a small to medium scale.

For tech-specs of the protocol, see SPECS.md.

In this repository, you will find:

Library

The lux library is a architecture-independent implementation of the lux in C which you can use to implement your own lux nodes. Simply provide the necessary simple hardware abstraction layer, and you're good to go. The implementation fits in under 8K of program memory and 2K of RAM (1K of which is shared with the application) on a Cortex-M0.

LED strip firmware

This is a real-world instantiation of the lux protocol to control WS2811 or LPD6803 light strips. It uses a STM32F030 at 48 MHz, which has only 32K of FLASH and 4K of RAM for all of the processing. The code also implements a bootloader for firmware upgrades over lux.

Python

There is also a python implementation of a lux master using pyserial.

About

Light control protocol


Languages

Language:Gnuplot 57.0%Language:C 33.2%Language:Assembly 4.1%Language:Python 3.5%Language:C++ 1.3%Language:Makefile 0.8%Language:Objective-C 0.1%Language:Shell 0.1%Language:GDB 0.0%