Chip-on-board LED Desk Lamp Retrofit

After the 5 mm white LEDs failed on the original desk lamp rebuild, I picked up some chip-on-board LED lamps from the usual eBay supplier:

COB LED Desk Lamp - bottom
COB LED Desk Lamp – bottom

The LED’s aluminum baseplate (perhaps there’s an actual “board” inside the yellow silicone fill) is firmly epoxied to a small heatsink from the Big Box o’ Heatsinks, chosen on the basis of being the right size and not being too battered.

The rather limited specs say the LED supply voltage can range from 9 to 12 V, suggesting a bit of slack, with a maximum dissipation of 3 W, which definitely requires a heatsink.

The First Light test looked promising:

 COB LED Desk Lamp - first light
COB LED Desk Lamp – first light

That’s driven from the same 12 VDC 200 mA wall wart that I used for the failed ring light version. Measuring the results shows that the supply now runs at the ragged edge of its current rating, with the output voltage around 10.5 V with plenty of ripple:

COB LED V I 100ma div
COB LED V I 100ma div

The 260 mA current (bottom, trace 1 at 100 mA/div) varies from 200 to 300 mA as the voltage (top, trace 2 at 2 V/div) varies between 10 V and a bit under 11 V. If you believe the RMS values, it’s dissipating 2.7 W and the heatsink runs at a pleasant 105 °F in an ordinary room. The wall wart gets about as warm as you’d expect; it contains an old heavy-iron transformer and rectifier, not a trendy switcher.

The heatsink mount looks nice, in a geeky way:

COB LED Desk Lamp - side detail
COB LED Desk Lamp – side detail

The left side must be that long to anchor the gooseneck; I thought about tapering the slab a bit, but, really, it’s OK the way it is. Dabs of epoxy hold the gooseneck and heatsink in place.

The heatsink rests on a small ledge at the bottom of the slab that’s as tall as the COB LED is thick, with a wire channel from the gooseneck socket:

COB LED Heatsink mount - Slic3r
COB LED Heatsink mount – Slic3r

The Hilbert Curve infill on the top produces a textured finish; I’m a sucker for that pattern.

The old lamp base isn’t particularly stylin’, but the new head lights up my desk below the big monitors without any glare:

COB LED Desk Lamp - overview
COB LED Desk Lamp – overview

Now, let’s see how long this one lasts…

The OpenSCAD source code as a Github gist:

// Chip-on-board LED light heatsink mount for desk lamp
// Ed Nisley KE4ZNU December 2015
Layout = "Show"; // Show Build
//- Extrusion parameters must match reality!
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
// Dimensions
ID = 0; // for round things
OD = 1;
Gooseneck = [3.0,5.0,15.0]; // anchor for end of gooseneck
COB = [25.0,23.0,2.5]; // Chip-on-board LED module
Heatsink = [35.5,31.5,4.0]; // height is solid base bottom
HSWire = [23.0,28.0,53.3]; // anchor width OC, width OAL, length OC
HSWireDia = 1.4;
HSLip = 1.0; // width of lip under heatsink
BaseMargin = 2*2*ThreadWidth;
BaseRadius = Gooseneck[OD]; // 2 x gooseneck = enough anchor, sets slab thickness
BaseSides = 2*4;
Base = [(Gooseneck[LENGTH] + Gooseneck[OD] + Heatsink[0] + 2*BaseRadius + BaseMargin),
(Heatsink[1] + 2*BaseRadius + 2*BaseMargin),
// Useful routines
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=(FixDia + HoleWindage)/2,
//-- Lamp heatsink mount
module Lamp() {
difference() {
translate([(Base[0]/2 - BaseRadius - Gooseneck[LENGTH]),0,0])
for (i=[-1,1], j=[-1,1])
translate([i*(Base[0]/2 - BaseRadius),j*(Base[1]/2 - BaseRadius),Base[2]/2])
translate([(Heatsink[0]/2 + Gooseneck[OD]),0,Heatsink[2] + COB[2]]) // main heatsink recess
cube((Heatsink + [HoleWindage,HoleWindage,0.0]),center=true);
translate([(Heatsink[0]/2 + Gooseneck[OD]),0,Heatsink[2] - Protrusion]) // lower lip to shade lamp module
cube(Heatsink - [2*HSLip,2*HSLip,0],center=true);
translate([0,0,Base[2]/2]) // goooseneck insertion
rotate([0,-90,0]) rotate(180/8)
translate([0,0,Base[2]/2 + Gooseneck[ID]/2]) // wire exit
translate([Gooseneck[OD],0,(COB[2] - Protrusion)/2]) // wire slot
cube([2*Gooseneck[OD],Gooseneck[ID],(COB[2] + Protrusion)],center=true);
// Build it
if (Layout == "Show") {
if (Layout == "Build") {

One thought on “Chip-on-board LED Desk Lamp Retrofit

Comments are closed.