Introduction: DIY | Ambilight Using Arduino Nano
In this Instructable I will be teaching you how you can create your own (b)ambilight for under $40!
Keep in mind that the Ambilight will only work on a PC running the Bambilight software.
You will need the following components:
- Individually addressable RGB LED strip - Available on Aliexpress
- Arduino Nano
- Mini breadboard
- A few breadboard cables
- 12V DC Power Adapter
- Double sided tape
- 4-5 Paperclips
- Zip Ties
Step 1: Watch the Video Tutorial!
Step 2: Testing Your LED Strip
It would be a pain in the ass to remove the LED strip when it turns out one of the LED's isn't working. That's why it's a good idea to solder temporary wires to your LED strip and test it using your Arduino, the power adapter and the .ino file (can be downloaded in step 3). Upload the .ino to your Arduino. You don't have to configure anything yet. You should see multiple colors waving through the LED strip.
You can wire the LED strip using the image provided in this step.
My LED strip (link in parts list) uses the WS2811 IC to control 3 LED's individually.
Step 3: Mounting the Electronics Onto Your Monitor
Before sticking the LED strip to the back of your monitor make sure to clean it as good as possible.
To get rid of any dust I suggest using a fiber cloth.
Once you're sure the surface is clean you can measure the length of the LED strip by holding it next to your monitor and cutting it to the right size. Make sure the strip on the opposite side has the same length.
After you've cut all the pieces to the right size you can stick them to the back of your monitor. Because the glue usually isn't the best quality I suggest using some pieces of double sided tape to improve the stickiness of the strip.
IMPORTANT: Make sure the arrows on the LED strips circle around your monitor! If you mess this up you have to start all over!
Once the strips are in place you can mount the breadboard with the Arduino Nano to the back of your monitor. Make sure to mount it in a convenient spot, because you need to be able to plug the USB cable into your computer later on in this project.
Step 4: Soldering All the Electronics
To solder the LED strip I used a few paper clips and bend/cut them to the corresponding size.
After that I soldered them to the LED strips to connect them together. You could use some shrinking tube to prevent short circuits, but in my case I didn't need any. To make it look a little bit better I used a permanent marker to give the paper clip "wires" a black color.
Now connect the LED strip to the Arduino using the same schematic as shown in step 1. Plug in the USB cable, install the FastLED library and upload the code provided in this step into your Arduino.
You may also connect the power adapter now since we're done wiring.
Attachments
Step 5: Configuring the Software
Download the Bambilight files (link in the introduction).
Open up the .ino file and edit the following lines to fit your situation:
#define NUM_LEDS 38
#define BRIGHTNESS 100
Now upload the file to your Arduino.
Open up Bambilight.exe located in "[Location you saved the Bambilight folder]\Bambilight-master\Bambilight-master\Binary".
Now configure it to your likings and test it using a test video like this one.
Once you're satisfied with the result you can minimize the Bambilight program.
Step 6: Sit Back, Relax and Enjoy!
And......... you're done! Now all that's left is to grab some popcorn and some soda and enjoy your favorite movies!
83 Comments
Question 2 years ago on Step 4
Hello
I want to ask, I builded all by instructions, I have board chines Arduino nano, LED strip WS2812B, no power adapter only on USB, I installed FastLed library last version 3.3.3
com port baud rate 115200, DATA_PIN is 3, NUM_LEDS is 30, my laptop is Windows 10 Home, com port settings are 115200,8,none,1,none
my test working, I see multiple colors waving through the LED strip
but when I checked LED output in bambilight program all leds goes off, and nothing happens.
I've noticed that RX LED on board doesn't blinking at this time, it's blinking only when I check Test-Overlay, it's all right?
Can someone help?
Answer 9 months ago
Same situation. Can you manage to find any solution?
Reply 9 months ago
try adrilight aplication Release Long-awaited Features and Bugfixes fabsenet/adrilight GitHub
4 years ago
Is it possible to run the arduino alone, without an computer.
Reply 3 years ago
To anyone who is going to make his AmbiLight, I recommand you to use this configuration!!!
Even with some Led Strip of 1 or 2m, there is a big difference with this configuration. At the end of the strip, or from the second lateral side of the screen, light is not really white but kind of white with some yellow/orange tint (Kind of complicate to describe), anyway it is called "Warm White, in opposition to pure "Cool White", which you are supposed to get. It is due to decrease of amps through the strip. To test that, you need to choose static Color with the soft and select 'White", and you will notice what I mean.
I was using simple/standard config for a while, and notice that wierd Warm White color at the end of the strip. First I thought that it was due to insufficient Power Supply to the Strip, even with a power supply of 24 amps!!! Then, I realised the issue, and changed to this configuration. I tested and 100% approved!!
4 years ago on Introduction
Merhaba bunu tv için nasıl yapabilirim ws2812b + arduino nano + 12v 5A adaptör
Hepsi hazır başka gereken bir şey var mı??
Aslanturk42@gmail.com
5 years ago
Hi and thank you for your working but when I have a problem with ino file. When I want to built the broject ı am taking no such file error for "#include "FastLED.h"". I can't find this file. Can you help me,please?
Reply 4 years ago
Grab this https://github.com/FastLED/FastLED.
Reply 5 years ago
I solved my problem :)
5 years ago
Hi, im working on a similar project, however a bit more extensive. I was wondering what refresh rate you get from this, and what gamma correction you have. I have implemented it myself but its quite hard to find anyone else that have done it, and how they have done it, if there is a better way or anything. Never the less hope to get an answer soon. And please do take a look at my project, still work in progress but it have come very far.
https://github.com/kris701/ArduLED
Thanks ^^
Question 5 years ago
Hi guys, thanks a lot for the article !
I tried to follow the steps but I get this error when uploading the code to the Arduino :
invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
Apparently the issue is in the line : Serial.readBytes(buffer, NUM_BYTES);
Any idea ?
Tip 5 years ago on Step 2
I've noticed a big problem with your LED Strip that you've linked in your instructions. The fact that on this strip three LEDs are adressable as one group (in bambilight one 'spot') and not adressable for every single LED was not clear to me..
Maybe you should point the other users towards this problem and link an alternative LED Strip like this one:
https://www.aliexpress.com/item/1m-4m-5m-WS2812B-S...
I've ordered these now and hope I'll get it as nice soldered as my first try :D
Tip 5 years ago
Hey, thanks for the project. It's super cool and super easy to make.
I did it and I love it.
The only strugle I had is that I have 100 leds and when you start Bambilight the whole strip just freezes. So I looked through the .ino file and found small bug in the code:
if you change
uint8_t led_counter = 0;
uint8_t byte_counter = 0;
to
uint16_t led_counter = 0;
uint16_t byte_counter = 0;
everything works fine. (NEEDs TO BE DONE if you HAVE MORE THAN 85 LEDS in strip) !!!!!!!!!!!
and I was wandering if you can give the source code for bambilight, cause on my PC it often stucks on green colour, when you test the project on videos like you provided.
Anyways many thanks to you and keep on doing such grate thigs ;)
5 years ago
i have this led strip how can i connect to arduino and write the code of it
https://www.amazon.com/dp/B06Y6KXF4G/_encoding=UTF...
thanks in advance
Reply 5 years ago
See my reply to "sfranch" above
5 years ago
Hi there, I need some help My led strip has 4 connection. How can I able to connect this strip with my arduino?? what will be the code,, please help. Thanks
here is the link... https://www.amazon.com/econoLED-Flexible-Multi-colors-Non-waterproof-Changing/dp/B006LW2NJM/ref=sr_1_3?ie=UTF8&qid=1512593875&sr=8-3&keywords=smd+5050+led+strip+lights
Reply 5 years ago
The LED strip you have will not work with program. They are what I call "DUMB" LED's. You need to purchase "SMART" LED's, WS2811, WS2812, etc. These LED's have chips built into them that allow programs to write to them and controll each LED seperately.
6 years ago
6 years ago
Not working with Netflix on windows 10 (64bit) works fine for youtube and everything else.
6 years ago
Hi, i have managed to build this, but there is one problem, my led strip stays on even when PC is turned off or in sleep mode, please help mi to fix this issue.
Thank you very very much,