Lightpainting with 4m RGB LED pole
Again some new photographic techniques. This picture was taken using 4m (128 pixels height) RGB led strip mounted on aluminium tube and controlled by Carambola2 from 8devices. Camera was set to long exposure and I moved led strip along to get a picture.
There are several kinds of RGB strips with integrated controllers. One of them is based on WS2801 dedicated controller to drive LED’s. I am using this controller because of it’s simplicity and availability. Push 3 bytes via SPI and you light one pixel. Push more and second pixel will be lit. If you stop sending data for certain period of time counting will start from first LED. What could be simpler… except Carambola runs Linux and it has more tasks to do. Sometimes Linux kernel interrupts drawing and LED controller understands it as “start from the beginning” command. Because of this it is recommended to write dedicated drivers, but I went shorter way. I managed to put sensitive code to C and wrapped it to Python module. I spent little time on developing, have C speed and Python flexibility.
So, how it works? I prepare pictures of 128*xxx dimensions (well actually 160 but top is black to maintain constant drawing speed) pixels, convert it to uncompressed BMP format and put it to USB flash disk which is later read by Carambola2. Carambola runs small python web server and serves it via integrated WiFi. You can browse available pictures and select necessary using any smart phone. Very handy on the field. After loading selected picture Carambola starts flashing small LED and waits for pressed button. After this it pumps pixel data to LED’s. That’s all – it’s kept as simple as possible.
Previously I mentioned length xxx. Width is key parameter how long picture will be displayed. As discovered in practice it’s not so trivial to juggle between display time, ISO, exposure time and aperture, especially when it’s dusk, ambient light is constantly changing and you can’t adjust LED brightness. To be short 800 pixels takes about 30 seconds display and it’s impossible to capture long pictures when there is too much ambient light.
This project is open source and anyone can make it by himself. Check this github repository.