Introduction: DIY | Ambilight Using Arduino Nano

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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!

Picture of 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!


MinaN7 (author)2017-11-08

i have this led strip how can i connect to arduino and write the code of it

thanks in advance

GranpaO44 (author)MinaN72017-12-26

See my reply to "sfranch" above

sfranch (author)2017-12-06

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...

GranpaO44 (author)sfranch2017-12-26

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.

Antikythera (author)2017-09-19

  • "The windows store netflix app (player components are visible to adrilight but the actual video is not, netflix in the browser works)"
Antikythera (author)2017-09-19

Not working with Netflix on windows 10 (64bit) works fine for youtube and everything else.

lale02 (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,

AnghelutaA (author)lale022017-03-31

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

paul julesa (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 ?

giustibond (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 (except the LED strip). Will this 12V 3A Power supply be okay? 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

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 ?

shaysi (author)2017-01-18


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?

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 ?

EternalG (author)sdimitri312016-11-24

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

andersoon_fm (author)EternalG2017-01-16

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

sdimitri31 (author)EternalG2016-11-24

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

RGBFreak (author)sdimitri312016-10-28

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

sdimitri31 (author)RGBFreak2016-10-30

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

DjinnJ (author)2016-12-20

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

Cramery (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

JMicro (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????


PD: With an Arduino Leonardo loaded the file successfully

JMicro (author)JMicro2016-12-18

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

JMicro (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

KingN7 (author)2016-12-10

Why doesnt this work ingame?

Super Blbosti (author)2016-12-04

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

aakerjohn (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?

RGBFreak (author)aakerjohn2016-10-31

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

aakerjohn (author)RGBFreak2016-10-31

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

EternalG (author)aakerjohn2016-11-24

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

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!

lucasf (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?

aakerjohn (author)lucasf2016-10-30

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

KingN7 (author)lucasf2016-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

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):

In the pictures you can see my setup

RGBFreak (author)M-Brian2016-10-28

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

M-Brian (author)RGBFreak2016-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?

RGBFreak (author)M-Brian2016-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! :)

JordiF14 (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

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

I love it. It works perfectly!

Link to video:

RGBFreak (author)Haitek12016-08-23

Wow that looks impressive! Good job!

IdoV (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.

Haitek1 (author)IdoV2016-08-10

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

IdoV (author)Haitek12016-08-13

That was it! thank you!

IdoV (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?

AlexC366 (author)2016-07-06

WS2812 LED Strip specifications:

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




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?

JKolegraff (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.

RGBFreak (author)JKolegraff2016-06-29

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

kcube (author)2016-06-20

will it work on arduino uno

RGBFreak (author)kcube2016-06-20

yes. It will work just fine

audihenry (author)2016-05-25

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

RGBFreak (author)audihenry2016-05-25

Using the USB cable and the bambilight software

About This Instructable




Bio: Hi there visitor! First of all thank you for checking out my profile! My name is Youri. I study Technical Computer Science in the Netherlands ... More »
More by RGBFreak:DIY Fidget Spinner Accelerator for UNDER $2!Cheap Flying Ghost Halloween Prank!DIY | RGB LED Shades Controlled By Arduino
Add instructable to: