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
|
---
categories:
- software
date: 2016-02-13
title: Visualize music with MPD and an LED strip
---
With Arduinos, 5050 RGB LED strips, Hyperion and MPD on a Raspberry Pi I created a low cost party lightning environment.

_First tests show that the setup seems to work._
The setup consists of cheap RGB LED strips, 2 \* 5 meters, powered by two 12V 3.5A adapters and an Arduino with three TO-120 transistors each.
For strips with 30 LEDs per meter, you need 0.5A per meter. To be safe, add additional 10% to the total. So for my 10 meters, I could also have used a single adapter with at least 5.5A.
The Arduino's GPIOs are not nearly able to supply 5.5A \* 12V = 66W, so we need transistors - either darlington transistors or MOSFETs. [Adafruit](https://learn.adafruit.com/rgb-led-strips/usage) has more information and detailed explanations. After wiring, the Arduino needs to be flashed with a software that communicates with the Raspberry Pi. I adapted a sketch that implements the Adalight protocol, you can find it [here](https://git.schneefux.xyz/electronics/mpd-rgb-vis/src/master/adastrip.ino).
The Raspberry Pi as server runs [Hyperion](https://github.com/tvdzwan/hyperion) which is AmbiLight-like. On the same host, MPD outputs music to speakers and a FIFO. I wrote a Hyperion plugin that processes the output of the FIFO and thus visualizes the music that is currently be played. The plugin and more installation instructions are [here](https://git.schneefux.xyz/electronics/mpd-rgb-vis). In my case, I started two Hyperion daemons, because I had two Arduinos connected and it is currently not possible to output the same data to two Hyperion compatible devices.
Initially, I planned using an ESP8266 instead of the Arduino. I had not the right parts to step down 12V to 3.3V and tried to hack something together with LEDs and a 7V-3.3V-stepdown converter.
Well… that didn't work out quite well. I used Arduino Unos instead.

_Do not reproduce, this fries the ESP…_

_The controller in use_
|