Ambilight

Today I got my new Ambilight from adafruit.

Getting it connected took less than 5 minutes, so I was quickly ready to start looking at how to mount all the LEDs behind my screen.

Could use tape… but…

Could ziptie it, maybe…

Hang it like christmas lights? naaah!

Why not 3D print something? Great idea!

Here is my way of mounting them.

One strip with one hole for each led, and then a hole in each end for a screw.

If you need another amount of holes, wider base, narrower base, what ever, you can do that too!

All you need is openscad, and then the script I used, all you need to do is the edit the parameters in the top, and you should be ready to roll with a version exactly like you want it to be.

The values for “LED clip” is currently set to match the LEDs from the adafruit kit, and should then have a tight fit without being too tight.

//Base
base_width = 150; 	//Width of the base
base_height = 3; 	//Height of the base
base_depth = 10; 	//Depth of the base

//LEDs
leds = 3;			//How many LEDs you want
led_edge = -40;		//Adjust the distance from each outer tap to the edge of the base

//Mounting
screw_hole = 4; 	//Diameter of screw hole
screw_edge = 2; 	//Distance from the side of the hole to the side of the base

//LED clip
led_outer = 22;		//Diameter of the outer ring around the LED
led_inner = 12;		//Diameter the LED goes into
led_clipw = 2;		//Thickness of the groove the LED snaps into
led_offset = 12;	//Distance the hole is raised from the base

//Quality
fn = 100; //How many surfaces circles should have

rotate([0,0,45]) holder();

module holder()
{
	echo(str("Distance between holes: ", (base_width - led_edge) / leds));

	difference()
	{
		cube(size = [base_width, base_height, base_depth], center = false);

		rotate([90,0,0])
		{
			translate([(base_width - screw_edge) - (screw_hole / 2), ((screw_hole / 2) + (base_height * 2)) - screw_edge, -base_height / 2]) cylinder(h = base_height + 0.1, r = screw_hole / 2, center = true, $fn = fn);
			translate([screw_edge + (screw_hole / 2), ((screw_hole / 2) + (base_height * 2)) - screw_edge, -base_height / 2]) cylinder(h = base_height + 0.1, r = screw_hole / 2, center = true, $fn = fn);
		}
	}

	for ( i = [1 : leds] )
	{
		translate([(((base_width - led_edge) / leds) * (i - 1)) + (((base_width - led_edge) / leds) / 2) + (led_edge / 2), led_offset, (led_clipw / 2)]) ledClip();
	}
}

module ledClip()
{
	difference()
	{
		union()
		{
			cylinder(led_clipw, r = led_outer / 2, center = true, $fn = fn);
			translate([0, -led_offset / 2, 0]) cube(size = [led_outer, led_offset, led_clipw], center = true);
		}
        cylinder(h=led_clipw + 0.1, r = led_inner / 2, center = true, $fn = fn);
	}
}

Warning, this is the first thing I have made in openscad, so there might be some cat hairs in…

One comment

  • Hi Captain, I am trying to capture a specific area rather than full screen capture. Do you know how from modify full screen capture to a portion area only? Please help me as i am trying to get it works for my thesis.

Leave a Reply