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.

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!

Comments

author
lale02 made it! (author)2017-03-13

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,

author
AnghelutaA made it! (author)AnghelutaA2017-03-31

You can just unplug the arduino or make a switch(sry for bad english)

author
paul julesa made it! (author)2017-02-01

Hello !
Great guide ! But I have a problem, the lights works fine, I can have the rainbow wave but bambilight (and ardilight ) don't work. When I check 'output led' it only stops the movements of the wave but the rainbow is still there..
Any suggestions ?

author
giustibond made it! (author)2017-01-26

Hello, I am trying to build your system with some WS2812b 60 led per m.

I wanna do a setup for a 23'' screen. So I am estimating 2M max (120 led).

I found all the componants on banggood.com (except the LED strip). Will this 12V 3A Power supply be okay? http://us.banggood.com/Wholesale-Warehouse-AC-100-... I am really struggling to find the right parts.

Also, I have a 42'' TV attached to another GPU on the same computer. If I want to do to the same project, I estimate 4m max of LED (240 LED). What kind of power supply will I need for it? Will the 12V 3A work with it too? Thank you

author
tobimc made it! (author)2017-01-19

Hi, I've order this led ruban. But i do not know how to power it. Can you help me please ?

20170119_100459_001.jpg20170119_100440.jpg
author
shaysi made it! (author)2017-01-18

hi,

after connected everything right got the Leds working while unchecked
the "OUTPUT LED" in the software and when i do checked it the Leds
turns off..

whats the problem?

author
sdimitri31 made it! (author)2016-10-24

Nice tutorial. I made it too and I love it :D

But I noticed a bug, when the color is green the ambilight froze for few seconds, anybody else have this bug ?

WhatsApp Image 2016-10-24 at 22.00.06.jpegWhatsApp Image 2016-10-24 at 22.01.59.jpeg
author
EternalG made it! (author)EternalG2016-11-24

I replied to someone else with this issue above this comment (Check it out for more info) but use Adrilight instead.

https://github.com/fabsenet/adrilight/releases

author
andersoon_fm made it! (author)andersoon_fm2017-01-16

my ambilight started bugging a lot after 5 minutes running. Adrilight works perfectly for now. :D

author
sdimitri31 made it! (author)sdimitri312016-11-24

Yes I'm using adrilight for few days now and it's better than bambilight.

author
RGBFreak made it! (author)RGBFreak2016-10-28

looking awesome! Yes I have encountered a few of those bugs as well. Unfortunately I have not found a solution yet, sorry

author
sdimitri31 made it! (author)sdimitri312016-10-30

Thanks for your answer, it still looks good anyway :)

author
DjinnJ made it! (author)2016-12-20

I am using Nano atmega328 with strip 300led its giving me not enough memory. Any solution to this?

author
Cramery made it! (author)2016-12-20

The shell doesnt open when executing the .exe from bambilight. The arrows and dots are there but theres also no way to make them disappear without closing the whole program.

Additionaly, when I execute the bambilight, my whole CPU is used and I cant start a video or anything else

author
JMicro made it! (author)2016-12-18

Hi, i have an arduino nano with an atmega168 chip.

The arduino IDE loaded with your source file says that global variables occupy 1057 bytes of dynamic memory of 1024 bytes max and refuses to load it to chip

Any idea of how to reduce that 23 bytes of memory????

Thanks!

PD: With an Arduino Leonardo loaded the file successfully

author
JMicro made it! (author)JMicro2016-12-18

autoanswer: reducing the number of leds make the source works (from 120 to 114 max)

author
JMicro made it! (author)JMicro2016-12-18

edit: it compiles and uploads to the arduino nano, but only lights up the leds, but does not cycle through colors

author
KingN7 made it! (author)2016-12-10

Why doesnt this work ingame?

author
Super Blbosti made it! (author)2016-12-04

And is better one on one strip or three on one strip?

author
aakerjohn made it! (author)2016-10-30

Hey I just finished mine and it works awesome but it sometimes stutters, can I increase the Baudrate or can the Arduino Nano only handle 115200?

author
RGBFreak made it! (author)RGBFreak2016-10-31

You could try, but I think it's a bug in the bambilight software

author
aakerjohn made it! (author)aakerjohn2016-10-31

Yeah, I tried it, it doesn't help but it's no that often. Thanks!

author
EternalG made it! (author)EternalG2016-11-24

Hey I had the exact same issue, Use Adrilight instead.

https://github.com/fabsenet/adrilight/releases

Works on Windows 10 and it uses MUCH less CPU in the background (only 3% for me on my I5-6600K) and does not have the freezing issues.

Note that in the Adrilight control panel, using the overlay you will see black boxes (not colored like bambilight) and there will be no output to the led's when the overlay is active. This is normal. When you are done configuring disable the overlay and check the led output checkbox and everything should work just fine!

author
lucasf made it! (author)2016-08-26

I'm using a 240 LED ws2812b strip and an arudino mega 2560 and it doesn't seem to go into ambilight mode. My LEDs are just in the rainbow mode no matter what, even though the .exe is open. What could be wrong?

author
aakerjohn made it! (author)aakerjohn2016-10-30

Did you check "LED-Output" in the Bambilight program? I forgot that too at first.

author
KingN7 made it! (author)KingN72016-09-27

it maybe that u need to install the code on the arduino, because normal rainbow light sounds like the example neo light file arduino has created

author
M-Brian made it! (author)2016-10-28

Hi I really like your project and went ahead to buy the components.

But I have a problem: I can't get the led strip to work (somehow I got 1 individual led to go on, but there it stopped).

I used the the adafruit neopixel library (strandtest.ino) to test the strip.

I bought these led strips (2m 60 ip67): https://www.aliexpress.com/item/1M-5M-WS2812B-led-...

In the pictures you can see my setup

setup.jpgled.jpg
author
RGBFreak made it! (author)RGBFreak2016-10-28

Make sure to set the amount of LED's in the arduino code and software correctly. Have you done that?

author
M-Brian made it! (author)M-Brian2016-10-29

Ok thx for the quick response, with your code it works. I tried it with the library of Adafruit where it didn't work.

Now I have to find another power adapter because its giving me 12v instead of 5v and my arduino is overheating because it has to supply to much power, could you help me to choose the correct one?

So I have 2 led strips (2m each and 60leds per meter) => 240 leds. My led strip accepts 5v. So I found out it needs 72 Watts. Is a power adapter that supplys 5v and 15a good? Or can I divide this on 2 supplies somehow?

author
RGBFreak made it! (author)RGBFreak2016-10-29

Any 1-2A power supply should be OK. Also you don't have to connect the power supply to your Arduino since the USB which transfers the data also powers the Arduino. All you have to do is look up how much power your LED strip can draw. In most situations 2A is more than enough. Also if thr LED's get too hot you could always reduce the brightness (variable somewhere at the top of the Arduino code). Keep up the good work! :)

author
JordiF14 made it! (author)2016-10-14

I have problems with the bambilight soft. I think is because I am on WIN10 and Directx12 any idea to solve DxScreen lib seems to work only on Directx9

author
Haitek1 made it! (author)2016-08-10

I love it. It works perfectly!

Link to video: https://www.youtube.com/watch?v=tzc55grt0ts

Ambilight Arduino 2.jpgAmbilight arduino.jpg
author
RGBFreak made it! (author)RGBFreak2016-08-23

Wow that looks impressive! Good job!

author
IdoV made it! (author)2016-07-08

I got it all wired and the Bambilight seems to work just fine (using the test overlay) but the LEDs still flicker with different colors (on a not changing screen), it seems like something is wrong with the communication or the android program..
can anyone help me solve this?

Im using Uno, 180 LED's ws2811, 16v 1A power soruce.

author
Haitek1 made it! (author)Haitek12016-08-10

Are your grounds connected with eachother? If not, they should be.

author
IdoV made it! (author)IdoV2016-08-13

That was it! thank you!

author
IdoV made it! (author)2016-07-08

I'm running the Bambilight test-overlay but all the squares are black regardless of the screen colors, anyone knows how to solve this?

author
AlexC366 made it! (author)2016-07-06

WS2812 LED Strip specifications:

Input voltage:.............DC5v;

Power:.......................30leds/m----9watt/meter

.......................60leds/m----18watt/meter

.......................144leds/m----43.2watt/meter

It's important you have the correct PSU to get all this working!!!!!

the WS2812/WS2812b each led on both models consume 0.3 watts @ 5v, you also need to add 10% to the consumption, ie: 100 leds x 0.3w = 30 watts + 10% = 33 watts total

So say a 5v 3a wall wart is used you DO NOT have enough juice as its only 15 watts total in the above example. on 5v 3a is only 5 watts per amp needing about 7a to power those 100 led's

@ RGBFreak

I wish you would clean up the misinformation ie PSU/S used, number of leds, beeter wiring diagram, Make this an excellent post RGBFreak other than that its a good post thanks

To many posts and youtube videos out there, NONE give any hard details

now after ranting on about above im looking to do this project

1. Starter kit arduino Uno R3

2. 4m ws2812b 60/led/m ip30, if it going behind tv why need waterproof?

3. 75W 5V 15A Single Output Switching power supply for LED Strip light

4. multi-meter to check power supply output level @ 5v

5. 9v 1a power adapter wall wart

my setup with led's is going on a 46" panel estimate 3.5m/210 led's total, watts needed 63 + 10% = 69watts

total spent $47 USD

i have a couple of questions if anyone can chime in

the arduino uno shows 5v operating but

"7-12v recommended", hence why i got the 9v wall wart

1. can i use the wart for the Arduino, and the 5v PSU for the LED strip separate? no crossing grounds, or do grounds get crossed?

2. do i just use the 5v 75w PSU to power both? if so grounds do cross on the Arduino + LED strip?

3. last question, on the arduino uno which pin is used for data?

author
JKolegraff made it! (author)2016-06-24

This is amazing, just waiting for my led strip to come in!!!!!!!!! This is the first I learned about the programmable led strip. World of possibilities.

author
RGBFreak made it! (author)RGBFreak2016-06-29

Really appreciate the positive energy! Have fun building it! :)

author
kcube made it! (author)2016-06-20

will it work on arduino uno

author
RGBFreak made it! (author)RGBFreak2016-06-20

yes. It will work just fine

author
audihenry made it! (author)2016-05-25

how is the arduino connected to the monitor so as to get color info?

author
RGBFreak made it! (author)RGBFreak2016-05-25

Using the USB cable and the bambilight software

author
mirecxp made it! (author)mirecxp2016-06-03

So it is usable only for PC with Windows. How to extend it for normal TV?

author
RGBFreak made it! (author)RGBFreak2016-06-04

It is possible to use it on TV, but you will also need a HDMI splitter and a RaspberryPi

author
khapianocovers made it! (author)khapianocovers2016-06-05

Can you explain how one would do this please?

author
WORMSS made it! (author)WORMSS2016-06-19

Custom Code from the sounds of it.

author
s1der made it! (author)s1der2016-06-04

hello, I don't understand, where is connected the USB to get color info !?

author
RGBFreak made it! (author)RGBFreak2016-06-04

Watch my video. It should explain :)

About This Instructable

47,308views

521favorites

License:

Bio: Hi there visitor! First of all thank you for checking out my profile! My name is Youri. I study Mechatronics in the Netherlands. I especially ... More »
More by RGBFreak:Cheap Flying Ghost Halloween Prank!DIY | RGB LED Shades Controlled By ArduinoAdd A Temperature Switch To Your Dusty Old Fan!
Add instructable to: