DIY | Ambilight Using Arduino Nano

106,040

563

80

Introduction: DIY | Ambilight Using Arduino Nano

About: 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. I especially love the electronical part of my study. Since I lov…

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!

4 People Made This Project!

Recommendations

  • The 1000th Contest

    The 1000th Contest
  • Battery Powered Contest

    Battery Powered Contest
  • Hand Tools Only Challenge

    Hand Tools Only Challenge

80 Discussions

0
StefanS32
StefanS32

1 year ago

Is it possible to run the arduino alone, without an computer.

0
saadland
saadland

Reply 1 year 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!!

wiring2.jpg
0
smthng
smthng

2 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?

0
smthng
smthng

Reply 2 years ago

I solved my problem :)

0
kris701
kris701

2 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 ^^

0
matthieu.langin
matthieu.langin

Question 2 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 ?

0
DenizY13
DenizY13

Tip 2 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

0
AlexK24
AlexK24

Tip 2 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 ;)

0
GranpaO44
GranpaO44

Reply 2 years ago

See my reply to "sfranch" above

0
sfranch
sfranch

2 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

0
GranpaO44
GranpaO44

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

0
Antikythera
Antikythera

3 years ago


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

3 years ago

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

0
lale02
lale02

3 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,

0
Ferferite
Ferferite

Reply 3 years ago

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

0
paul julesa
paul julesa

3 years ago

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 ?

0
giustibond
giustibond

3 years ago

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