Introduction: Everymans Simple WS2801 RGB LED Strip Controller
The purpose of this instructable is to make ordinary people able to take control of the WS2801 RGB led strips for home or shop decoration with minimal effort. The WS2801 Led strips have a small chip for each led and enables you to set each leds color. It typical has 32 leds pr meter.
This solution can handle 1350 LEDs pr device, about 40 meters. It uses the bitbang feature of the FTDI Ft232rq USB to Serial port converter. If you are creating static mood settings or very slow moving changes, this works great, but if you are thinking of flashy discotec fast moving lights this is NOT the solution.
Also the software is created for Windows. Software and source code is provided.
What you need:
Of curse WS2801 Led Strips.
from ebay at about 10 dollars or something similar like an old computer power supply
A FTDI FT232 Device from ebay
Be able to solder a few wires.
Step 1: The FTDI Device
The FTDI device you clicked was probably a bit expensive, now I did this because thats what I am using.
But these should be ok: FT232RL
at around 3 dollars each. I cant guarantee that they work because there are counterfeit chips on the marked as well
for the version A of this chip did not work properly. The only difference of mine and this one is the version, the data sheet for the chips is the same. If you get one of these, make sure is not version A but preferable version C. A version should not be on the marked anymore, however I've seen them on ebay.
One is on the way for verification of this, I will follow up. Datasheet
10.8.2015 I have tested the FT232RL from Ebay on XP and Windows 7 and had no problems. Remember to get a USB A to mini B cable.
The FT232H is also compatible as well and is a good choice. The FT232H runs at 12 mbps, 4 times faster and also includes an SPI interface with means that the total speed will be 32 (4x8) times faster, which is more than the led strips can take (25Mhz). Though not supported by this software version. Check out my project with the FT232H chip Here
Step 2: Putting It Together
Connect Power Supply +5v to the led strip
Connect Gnd on FTDI module, Supply - and led strip - together
Connect RX from FTDI module to led strip CLK_IN
Connect TX from FTDI module to led strip DAT_IN
Make sure its clk and data IN, led strips can be reversed. CI & DI are inputs, CO & DO are outputs
A good thing to pay attention to is that led strips need direct power about every 5 meters. If they are not getting enough power they will not read the data properly or flicker.
Step 3: The Software
Download the FTDI Drivers here and install if windows doesnt recognize your module.
Download my software and you should be ready to go.
Open the cmd shortcut(right click run as administrator) and type rgb and a help screen shows up
type RGB LIST to get a list of FTDI devices. Look for TTL232 and its serial nr.
configure the device with RGB config.serialnr.baudrate.divisor fx. RGB config.DRGH3RTF.3000000.0
serial nr is case sensitive. Run RGB test.
Count you leds. I experience that supplying the wrong counts of leds makes it flicker sometimes.
There are 2 basic commands.
c.red.green.blue.ledcount and f.red1.green1.blue1.red2.green2.blue2.ledcount
RGB c.255.0.0.160 will make 160 leds red
RGB f.255.0.0.0.0.255.160 will fade 160 leds from red to blue
You can combine commands fx. RGB c.255.0.0.1 c.0.255.0.1 c.0.0.255.1
commands can be written in a text file, one command pr line and execute with RGB file:demo.txt
I added the possibility for running vb scripts for animation, but they run slow depending on the led count.
Try RGB script:Demo.scp
If leds dont light up correctly play around with the baudrate and divisor. The Baudrate is max 3.000.000 except for FT232H which is 12.000.000. The Divisor divides the clock speed. For the FT232H 12 mbps and divisor 0 worked well. For the FT232RQ 3 mbps and divisor 0 was ok.
The source code is written in Visual Studio 2010 Express
Step 4: New Software
Now Supports FT232H SPI Interface. For SPI interface switch TX & RX
We have a be nice policy.
Please be positive and constructive.