I have been working to get WS2801 pixel string Adalight
project working with Boblight
by implementing the AtmoLight
Other people seemed interested in getting Adalight working on a lower spec machine so this might help.
I started by taking ArdiunoAtmo
for Atmolight support with an Ardiuno and added support for the WS2801 pixel string using FastSPI
which makes it easy to support various other RGB pixel strings and strips and is easier to work with than directly with the Arduino SPI.
The aim is to get smooth colour transitions and video playback on my HTPC, which is currently running Win7 on a lowly AMD x64 3800+ (Admittedly DXVA is being used to accelerate the video decode.).
This is still a work in progress but with a 50 LED string the reaction time is acceptable while playing full HD content.
The new versions of Boblight do not run on Windows, but Boblight 1.3-beta 1 works a treat and can be found here
. The attached configuration file should also work for the newer Linux version.
To compile the arduino sketch you will need to install the FastSPI library
. (If you are using an Atmega168 you will need to modify the lib slightly, see this issue
The Boblight configuration is for a string of 50 LEDs going counter clockwise round the TV starting at the bottom right hand corner, 9 LEDs on each side and 16 on top and bottom. This layout is done in the configuration file and the layout mapping code has been removed from the Arduino sketch.
Again this is a work in progress, so any help getting this perfect would be much appreciated.
Known issues :
FIXED - Last pixel in string does not display correct colours, this is probably a sketch bug.
- Red is too prominent, this is adjustable via the Boblight config.
- Colours in general are too vivid compared to the on screen colours, again Boblight config.
- Occasional flickering, this seems related to the use of FastSPI as I've had the issue with other sketches.
- Remove FastSPI dependency, this will involve me learning about the Arduino SPI and the protocol used by the WS2801 string so help would be appreciated.
- Change the sketch to loop and buffer in a similar manner to the original Adalight sketch.
- Add some neighbouring pixel colour averaging similar to what seems to be implemented in the Macetech version of the code