Ive always wanted a touch sensitive lamp, I just love that slightly sci-fi feel to them, but I also like things that combine the old with the new so I came up with the idea of a retro touch lamp for my desk at home.
There were some pretty basic guidelines that I set myself for this project
- don't break the bank - some of my recent projects have sort of eaten my wallet
- easy construction in a limited time frame - I don't have a lot of spare time at the moment so something simple to accomplish
- fit in with everything else - what's the point in making something that I wont want to be seen with
Step 1: Touch Sensing on a Budget
there are a lot of different capacitive touch sensing IC's out there including a really nice looking one from atmel but for this project I wanted to minimise my expenditure and space is a bit confined so I looked to my arduino because it could also allow for PWM dimming...
I started with how to make it touch sensitive. capacitative sensing is what is used in modern touch screens, touch buttons and anything else that you can touch to do something electrical. Luckily there is an arduino library for capacitive touch sensing which uses just 2 digital pins so work (and a 1MΩ resistor) and even better is that it already has quite a few tutorials about how to use the library.
first off I needed the capacitive touch library to test the sensor then to breadboard it to see how it worked.
- Uno (I've got a sainsmart clone)
- 1MΩ resistor (I used 5 200KΩ instead because I didn't have a MΩ resistor
- low power LED
- something metal
I adapted some code off the capsense library page to toggle the LED on and off (ill post the final code later, but its pretty simple), I set my sensing threshold to 1000 which seemed to be about right, to find out how well the sensor works. there are a few things I found out
- It works, surprise surprise
- its kinda buggy, the sensor tends to just go off as the readings on the serial monitor fluctuate above and below the sensing threshold on their own
- it works much better with large metal objects - first I was testing the sensor with some tinfoil with some success but a lot of random spikes in the readings, but when I hooked it up to a large solid metal file the readings stabilised and weren't as prone to spikes causing the LED to randomly turn on and off.
having established that it works and that it is a bit buggy I went on to write a bit of code to dim the LED through various levels of brightness with PWM from the arduino. when I tested the code again using my Nano rather than my Uno and using a length of copper tube I found that the sensor worked flawlessly without any big spikes in the readings.
Step 2: The Body
I wanted to make the lamp look retro mashed with modern design so that meant curved edges, simplistic shapes and a combination of materials. I took inspiration from old desk lams and wall fixtures and came up with a design.
keeping with the criteria of minimal cost and maximum quality I chose to do two things
- stick to recycled wood and metal where possible - I can get offcuts of hardwood from the local supplier for almost nothing and old copper tubing from the reclamation site would work just fine.
- keep it natural - I want to use materials that are going to require minimal finishing without causing them damage to save cost on finishes.
I found a lump of mahogany that was an off-cut from the hardwood supplier which I could use to make the main body of the lamp.
- mark out the shape using the 2D drawing
- cut shape using band saw
- curve ends of the block according to the design - this was hard to get right, in hind sight I should have made a jig for this
- inset hole into the base using mitre drill according to the design - this needs to be deep enough for the power board and the Nano
- drill a hole half way along and 15mm from the bottom for the DC power connector
- cut out the cover for the electronics on the laser cutter
- finally round off the top edges with the table router
making the base was pretty simple thankfully, next is the tubular light section.
Step 3: The Circuit
having established that my power circuit works with the Darlington transistor (thanks to the community for pointing out why it wasn't working) it was time to make the PCB... my first ever PCB.
there are a number of ways of making a PCB at home, the most popular method is to use the toner transfer method, but this is really quite hard to get right as I soon found out firstly just getting the toner to stick properly to the copper. secondly when I eventually did get it to stick reasonably well the PCB came out with a lot of holes where there shouldn't be. this lead me to another method which I could try...
the laser cutter I have access to is pretty much the most useful tool I've ever used and as it turns out its pretty good for PCBs too.
the idea behind using the laser cutter for making the PCB is the same as any other method, cover up the bits you want and expose the bits you dont.
- spray paint the board with matt black paint - I used an enamel based paint so that it wouldnt scratch off easily and make sure its matt because laser cutters dont like reflective surfaces (unless you've got a really expensive one)
- upload the PCB design to the laser cutter - I use Dip trace to design the PCB and then took the .dxf file into 2D design THEN used that file directly with the laser cutter.
- play around with the etch power settings until the cutter is removing just the right amount of paint - this step will be specific to each laser cutter
- cut the design out - don't forget to mirror the image! I forgot the first time
- wipe off the excess paint with a scouring pad - this is why I used an enamel based paint and put a few good layers over the copper so it wouldn't damage the mask
now that the mask is on the board, its time to clean an etch.
- clean the exposed copper with some diluted acetone - if you get the mix wrong it will remove your mask, i just soaked a q-tip in water then dipped it in acetone which seemed to work fine
- etch the board - I used ferric chloride because its cheap and easy to get hold of (you can get it off amazon!)
- neutralise the ferric chloride with baking soda - important!
- drill the holes - I used a dremil for this, don't forget a mask especially if its fibre glass based board
reflowing SMD components
most people will know what re-flow soldering and SMD components are, but using them and reflowing them at home without specialist equipment such as a hot air rework station is usually a bit of a pain so I looked on-line.
thankfully there is a way of re-flowing components at home, like this tutorialfrom spark fun, using just your stove and a flat pan or dish (in my case a griddle). Im sorry I didnt get any photos of this
- put the pan on the stove and get it up to full temperature - I have a gas stove, but im sure it works with any type of stove
- put the paste on the pcb - I got some cheap leaded solder paste with a low melting point to make life easier
- stick down the components in place on the PCB
- put the PCB on the hot plate and cover it with a pan lid - the pan lid helps to keep the hot air around the pcb and help the solder paste to melt and re-flow
- test the connections
you can use a thermocouple if you have sensitive components to check the temperature.
I also soldered the power board together and hooked up the wires from the arduino too. once I had made the circuit I needed to test it so I hooked it up to the arduino an gave it a spin, luckily there were no problems (the arduino code is in up there as promised)
Step 4: The Tube
the main feature of the lamp is to be the copper tubular section with houses the light and acts as the switch.
first I tried bending the tube to the right shape, but the curve was too sharp so the tube kept splitting.
plan B, use copper elbow connectors to join the parts was the next best option and turned out better than I had expected.
first I cut the tubes to lengths I needed, ready for the joints. seeing as its copper I just used solder joints to join the tubes together to make the shape I needed.
- I cut a slot into the 250mm length tube 200mm long from the mid point of the tube.
- cut 5mm off top of the acrylic tube - this is to allow the LED strip to fit inside the tube with the acrylic in front of it
- sand down the acrylic with very fine wet and dry paper to slightly frost it - this helps to diffuse the light better
- solder the first elbow onto the 280mm tube - I used my stove as a substitute for a blow torch, dont forget to use flux to help the solder flow
- solder the other elbow to the 250mm tube with the cut out
- solder the 50mm length tube to both elbows so that the 280mm tube is vertical and the 250mm tube is horizontal - I just did this step by eye to see if the top tube was parallel to the table when it was in the base
- clean up any excess solder around the joints
once the tubular section was constructed it was time to put it together
Step 5: Putting It Together
- First was to fit the LED strip into the copper tube with the acrylic onto of it, I also had to thread the wires though the tube to connect them to the power- the fit was really tight luckily so just a little bit of epoxy was enough to hold it all in place
- put all the electronics into the base - the arduino Nano and the power board both fit snugly into the base
- connect the sensor wires to the copper tube - the wires from pin 2 & 4 from the arduino were hooked up to opposite sides of the tube, they don't need to be far apart.
- fit the DC power connector into the base and hook it up to the power board
- fit the mahogany ring over the tube
- fit the tube into the base and glue into place with epoxy - I also glued the mahogany ring into place
- secure the cover into the base to hide the electronics
with it all together I just gave it a rub down with some fine sand paper to remove any smudges and fingerprints from the copper. to get a more rustic look I cleaned up the copper with fine sand paper and acetone to remove oils then left it over night to oxidise which darkens the copper. whilst leaving the copper bare is a little high maintenance, it looks much better than when it did when it was shiny.
Step 6: Finished
This project was probably one of the most informative projects ive done. I learned how to make my own PCB's, how to solder SMD components and a little more about transistors and programming an arduino!
- swap out the darlington for a MOSFET - MOSFTEs work better as switches for high current loads and you can even get logic level MOSFETs that work off 5v
- change the circuit to account for the voltage drop - In my ignorance and not understanding how transistors work fully I didnt take into account the voltage drop from my darlington transistor of 0.7 volts so the LED's are a little dimmer than they are supposed to be. ill change the circuit to have have a 5 volt power supply stepped down to 4 volts to account for the voltage drop of the transistor
- use a chip such as an atmel AT42QT1011 to control the touch sensor rather than the arduino so that its more reliable, but still use the arduino to PWM dim the LED's
thanks for taking a look and if you have any questions or suggestions Im happy to hear them