Control neopixels (WS2812B) leds
Clone or download


Libre Connect
Download Leds / LibreConnect /Source

What is Leds

Photo LEDs
leds is a device to control 1 or more leds (ws2812b) using USB.
You can animate each leds independently, and change the color using hsv colors.


By default , leds are available at ws://localhost:42001


Control your leds using a webpage
Photo LEDs


Be notified when someone calls you, using tasker and some easy to use JavaScript. You can trigger leds for any events that happens on your phone!

You can also use Power Toggles to make buttons on your notification bar.

Power Toggles

Here is a script I use to turn off leds.

  • Create a task
  • Import your code using Code/Javascript
  • Remove auto exit
  • Delay set to 1 seconds.

bluepulse = "load;255;160;255;143;2;0;0;160;255;116;2;0;0;";
police = "load;255;0;255;255;4;0;1;160;255;255;4;1;70;";
fire = "load;123;32;255;41;2;0;0;32;255;129;2;0;0;";
off = "/off";

leds = new WebSocket("ws://"+ip+":"+port);
leds.onopen = send;

function send(){


Be notified when someone sends you an email, using filters and mail alerts plugin.

You can use ws-send to control leds.

"c:\libreconnect\ws-send.exe" -u "ws://localhost:42001" -m "/on"

How to build leds



First we need to copy the code on an arduino,

  • Copy arduino/leds and arduino/library into your arduino sketchbook
  • Upload leds/leds.ino


Here is the list of components, you will need you can easily find it using these keywords on ebay/aliexpress etc...


  • RobotDyn Nano V3 (micro-usb): 2€


  • Arduino nano clone CH340G (mini-usb): 2€

Strip WS2812B

  • 30 leds WS2812B : 4.50€ ( 5 leds :0.75€)
  • Resistor pack 400pcs (3€) (1 resistor: 0.0071€)
  • Total : 9.5€ (2.75€)


Wiring_leds Inside Led2

  • D6 --> RESISTOR (470Ω) DI
  • +5V --> 5V
  • GND --> GND


Do not used more than 5 LEDs without a dedicated power supply or this can damage the LEDs, Each led can draw up to 60ma at full brightness
Arduino can provide up to 500ma (on 5v/Gnd pin)
5 LEDs = 5x60ma = 300ma

3D printing

You will have a more uniform light, if you put the case inside another semi-transparent case.
Wiring_leds Wiring_leds


Here are the commands available, you can send it using Arduino at baudrate 115200.

Global commands

  • /info -------> Give name of device (name:port) (leds:42001)
  • /off --> Turn off all leds
  • /on --> Turn on all leds
  • /status --> Display state of all leds as general_brightness;led0;hue;saturation;value;type_animation;arg1;arg2 etc...
  • /load;[status] --> Load the state of leds/animation specified (warning this won't works with 5 leds as the string is too long for serial buffer)
  • /save --> Save current state to eeprom
  • /reset --> Reset state to eeprom state
  • /sync --> Change all value to 255 (max brightness), this will synchronize blink/pulse animation for all leds
  • /clear --> Remove settings in eeprom

Load example

 Fire: load;123;32;255;41;2;0;0;32;255;129;2;0;0;

Leds specific commands

color;led;Hue;Saturation;Value ---> Change color for a specific led using hsv
animation;led;type;arg1;arg2 ---> Change animation for a specific led

Color (hue)

Color is hsv have three parameters: hue(color),saturation(more or less white~),value(brightness) The most important value in hsv is the hue which define the color, you can pretty much always use 255;255 for saturation/value (with the exception of the white color which use 0 as saturation).

  • red = 0
  • orange = 32
  • yellow = 64
  • green = 96
  • aqua = 128
  • blue = 160
  • purple = 192
  • pink = 224

led0 in red



Photo LEDs

  • 0: No animation
  • 1: Blinking (param1:speed in ms)
  • 2: Pulsing
  • 3: Rainbow mode
  • 4: Alternative Blink (param1:0:master/1:slave, param2:second led/speed in ms)
  • 5: Progressive Change (Change color progressively)

led 0 pulsing


led 1 blinking at 25ms


led 2 rainbow mode (hue change)




  • Author: Rémi Sarrailh (
  • Licence: MIT


Cases (stl)

  • Author: Olivier Sarrailh
  • Licence: CC-by