This Guide shows you, how to assemble/connect the StripInvaders System. You need:
- WS2801 LED Strips
- An Arduino Ethernet Board and a USB/Serial Light Adapter to upload the firmware
- 5 Volt power supply – I use an old ATX Power supply
- Optional: Grove — Base Shield and Cables
Also make sure that the StripInvaders Sketch is already on your Arduino!
This is my WS2801 LED Strip:

You see that the connections described on the Strip itself (Black: 5V, Green: Clock, Red: Data, Blue: GND).
Now it’s time to connect the Grove Base Shield to the Arduino Ethernet:

The Grove Cable is connected at Port nr. 4, this means Yellow: D4, White: D5, Red: V+, Black: GND. Hint: D4 means Arduino Digital Pin 4, D5 means Arduino Digital Pin 5.
Almost done, now connect the cable from the Arduino Grove Shield with the LED Strip and the 5V power supply. This should look like this:

Now connect the StripInvader to your LAN and power up StripInvaders. Try to ping the host “invader.local”, this is the mDNS name of the StripInvaders Arduino device.
The StripInvaders can be configured without re-uploading the Arduino sketch, by sending a special OSC messages (/cfg). Take a look at this PureData example:

In our example we send “/cfg 66 5 4 96″. The first parameter 66 is just a magic byte, it must be 66, period. The second parameter defines the data pin, the third parameter defines the clock pin and the last parameter define how many led pixels are installed.
Links: StripInvaders System
Look, it’s really easy ma:
Edit 4.2.2012:
I just released the StripInvaders config Tool (for OSX and Windows), this should simplify the setup process. Here is a screenshot:


29 Comments
1 Robert wrote:
Hey, just got your strip, getting the Arduino Ethernet board with adapter and POE tomorrow. Just wondering if the POE will be enough to power the strip, if not and I need to buy a power supply how many amps should I be looking for? cheers
2 michu wrote:
To be honest, I don’t have a clue. I don’t have the POE version nor a POE injecter. But I guess it depends on the injector. According to this paper: http://techon.nikkeibp.co.jp/article/HONSHI/20071127/143095/ the default power is about 13Watt. My Strip needs up to 10 Watt per meter (when full white)…
3 Robert wrote:
Hey again, almost there,
I got myself a ATX power supply. my setup is without a base shield so am I right in assuming that the 5v goes from the Vin on the arduino to the 5v on the ATX and then onward to the strip (black wire) and the same for the ground which goes to the blue wire? I’m so close I don’t want to blow anything!! It could be and idea to have a photo without the base shield…
4 michu wrote:
Take a look at Seeedstudios Wiki: http://www.seeedstudio.com/wiki/index.php?title=Stem_-_Base_Shield
GND is GND (sounds good, eh?), 5V to 5V (again, sound pretty logical). As long you don’t connect 5V to the 3.3V connector, you cannot blow anything.
5 Robert wrote:
Hello Michu,
…My base shield comes tomorrow, in the mean time I’ve got some lights ablinking but need to setup my DHCP sever. I’ve tried a few turtioials and downloaded some third party software. Just wondering what you used. I’m Windows 7. Is there a particular tutorial you followed?
cheers
6 michu wrote:
Hey Robert
I guess your Router/Firewall/Wireless Access Point should have an option to act as DHCP server, that would be the easiest solution. And if you don’t like DHCP you can also compile the StripInvaders Firmware with a static IP assigned.
Hope that helps
cheers
7 m@nu wrote:
hey michu
where do i get these “clamps” from which you use in your video to connect the cables?
thank you & cheers,
manu
8 michu wrote:
hey manuel, they are called Scotchlok UR2. Cheers
9 m@nu wrote:
thanks :) hope to find them in the “bau&hobby”
btw. thanks for the documentation of your great project!
trying to assemble a “stripinvader” by myself at the moment.
10 Tom wrote:
Hello,
I am trying to compile this code, but if I include audio, it says it is too big to fit onto the Arduino. Is there a workaround for this?
11 michu wrote:
Disable audio OR disable some mDNS/Bonjour feature OR use a microprocessor with a larger ROM. anyway this is one the issues I want to address…
12 ethan wrote:
Is there any way I could have damaged the ws2801 chips by sending wrong data down the wrong wire? Eg sending CLK into SDI?
13 michu wrote:
nope, you cannot destroy you strip by switching data and clock…
14 Dave wrote:
Hi, thank you for sharing your work — I think it’s great. I’ve assembled the strip and psu, but I cannot get the code to compile. I’m using an uno with a 3rd party ethernet sheild. The Arduino software reports “EEPROMReadInt was not declared in scope” and highlights this line in the code cnt = EEPROMReadInt(EEPROM_POS_COUNT);
Any ideas ? And sorry for the newbish q — I’m very new at this.
15 michu wrote:
Make sure you’re using Arduin IDE v1.0. this EEPROMReadInt method is defined in the Helper.ino file.
Cheers
16 Dave wrote:
Thanks for the quick reply — Yes, am using V1.0 — Should helper.ino (and the others included in your zip) be in the same folder as the StripInvaders sketch or somewhere else ? Do I have to pre-load them or tell the IDE where they are ? Thanks again.
17 michu wrote:
All files should be in the same dir (like on github). Arduino should open a couple of tabs with all files… I guess the IDE moved the main file in the “StripInvaders” subdir, while the other files are still outside…
18 Dave wrote:
Perfect — You were correct. I had to open StripInvaders first, which moved it to a new directory. I did the same for all of the .ino files in the zip. This moved them to a new individual folder for each one. I then had to move these to the StripInvaders directory created by the IDE and then restart the IDE. The Tabs appeared as you said. Thank you again. One one error left at compile time, but I’ll try and fix that one myself.…
19 Dave wrote:
Working ! Thank you. It wont upload to my Uno w/ Ethernet shield — the sketch is 30114 bytes, so it should work. Luckily I have a mega, which it loaded to fine. Am controlling my lights from my phone now. Brilliant.
20 michu wrote:
There is a Arduino Bootloader bug that prevent you to upload a Sketch largen than 28kb, take a look at http://code.google.com/p/arduino/issues/detail?id=380
21 Dave wrote:
For anyone with an Uno, I was able to upload StripInvaders by burning a new bootloader into the Uno using OptiLoader — https://github.com/WestfW/OptiLoader/downloads This give you an extra 1.5kb of space, and StripInvaders (No DHCP, No Sound) just fits.
22 Robert wrote:
Hey Michu,
Just wondering if you thought of trying more then 5ms worth of stirp, lots more. Lets say 300m in series with several power supplies?? Theoretically could it work? would you foresee large delays along the strip??
Cheers,
Robet
23 michu wrote:
It depends how you connect the devices together but I assume 300m are a bit too much. You need of course a SPI driver and limiting factor will be the memory of the Arduino. An Arduino Ethernet has 2KB SRAM, 5m LED Strip have 160 leds, each led needs 3 bytes make 480bytes RAM per 5m. So you can drive 10 maximal 15m with an Arduino Ethernet. Another option would be an Arduino MEGA with an Ethernet Shield, the MEGA has 8kb RAM so you might drive up to 50m…
24 Jip wrote:
Hey,
Do you know if there’s an easy way to achieve the same functionality (controlling led strip with osc per led) but then with an normal arduino connected to USB (for serial connection+power) (the led strip is very short, so it can handle the power)
Is it hard to modify your code to achieve this?
Thanks!
25 michu wrote:
The maximal current you can draw from the USB is 0.5A, this means 2.5W. 1 meter LED Strip needs about 8W so you can light up 30cm… cheers
26 AJ wrote:
I’m trying to do the same as Jip here: achieve the same functionality (controlling led strip with osc per led) but then with an normal arduino connected to USB. So not an arduion Etherent just a normal Uno.
Or something as simple as commands over serial instead and writing my own small code to switch between effects.
And I’m also having problems uploading the code. Is there no way to burn the bootloader without another arduino as programmer?
27 michu wrote:
hey AJ, that possible, you can throw away the OSC and bonjour libraries and the code should be much smaller. Check the file InSerial.ino, there i check if the user press ‘m’ on the keyboard to change the mode. You need to add more key mapping functions to compensate that the whole OSC code was stripped. cheers
28 Peter Harris wrote:
Do you know if StripInvaders will work with HL1606-based strips instead of WS2801-based ones?
29 michu wrote:
Hey Peter, no, and I will not add support for HL1606 based strips — HL stands for HELL!