You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Giovanni Harting 12ed601446
added notice
5 years ago
ledd fixed wrong calculation of read pwm frequency 7 years ago
.gitignore more sql work 7 years ago
LICENSE Initial commit 7 years ago added notice 5 years ago added set_all_channel method 7 years ago
ledd.service fixed typo in avahi service conf 7 years ago added set_all_channel method 7 years ago



This project is no longer maintained and has been superseded by LedD.Go.


LedD is a multipurpose daemon for interfacing LED(s) written in python. It provides an abstract interface for effects to control any kind of LED through an backend, although its original purpose was interfacing a PCA9685 chip via i2c. Since there are multiple ways to control leds we made the decision to write LedD as open as possible to other ways of controlling leds. As a result of this decision we split LedD in a server part (this repository) and multiple clients, which can be written in any kind of language and can use a custom way to control its LEDs, as long as they implement LedD's protobuf protocol they can be controled with LedD.

As for frontends there is only an Android app available at this time, there will be more some time in the future. (You are encouraged to write your own!)


  • Python 3.x, tested with Python 3.4
  • Linux with i2c-dev module loaded and permissions to access /dev/i2c-* devices, preferably as non-root (add your user to the i2c group)
  • Compatible controller device connected via i2c; currently supported controllers:
    • PCA9685
  • Note: Plugins can have different permission requirements


Make sure your i2c devices are available (modprobe i2c-dev) before you follow these steps.

  1. apt-get install python3-dev python3-pip python3-cffi python3-docopt python3-nose python3-sqlalchemy python-smbus libffi-dev
  2. pip3 install -U cffi (fixes a bug where smbus-cffi can't install)
  3. pip3 install coloredlogs spectra json-rpc smbus-cffi
  4. adduser $USER i2c

Plugins & Effects

Plugin functionality is planned as we provide APIs for effects and plugins to use. Here are some we are going to provide when they are finished.


  • lux sensor (TSL2591) for providing information if lights need to be turned on
  • start/stop hook so you can switch your LED power supply
  • planned hook points for plugins include
    • start/stop
    • set color (for e.g. gamma correction)
  • controller support


  • pulse
  • fade
  • drop
  • blink
  • strobe (as far as possible)


This project is licensed under the conditions of the GNU GPL 3.0.