2013 Christmas light controller :: Part 1

I really don’t like hanging or taking down Christmas lights.  I generally do the bare minimum my wife requires to get through the holidays.  I HAVE always been intrigued with the computer controlled lighting displays that are synced to music.  Last year I got into a fun partnership with one of my neighbors.  He wanted to do the whole music shebang, but didn’t know how to do the hardware side of the equation.  Mmmm.. symbiotic relationship.

Last years’ system was a 12 channel deal controlled by a basic arduino.  Worked well enough, built on perfboard and stuffed into a 2-gang junction box.  Downsides were it was not engineered well at all, with the 5v logic intermixed with the 110v ac.  It also required a lot of extension cords as all 12 channels/outlets were combined at the same location (in his garage).

So, we are at it again this year.  The objectives are:

  • increase to 30 channels (arduino mega)
  • hub/spoke design.. with centralized control and 6-channel remote boards to minimize extension cord usage
  • add LEDs to show when channels are on/off for easier programming/debugging
  • safer design.. with better isolation between logic and 110v.  also include little things like fusing on board.
  • waterproof enclosures as we are approaching this as a modular multi-year initiative

So with that in mind, I first created one of the satellite boards.  I designed this in eagle, with a goal of keeping it a single-sided board for easy machining.  The initial trial board machined out well (see previous posts showing generation of gcode from eagle-cad).

First run was pretty good, and soldered up into a usable board.  I did have to hand-dremel a joined trace.  Improvements identified were:

  • Increase the amount of cnc routing around the traces to improve isolation
  • fix the 110v connector pin sizing.  I had them at .1 and they are really .2, so my screw terminal connector wont fit
  • Add a fuse which I forgot to add
  • Increase trace size where possible.  Mid-trace holes sometimes cut the whole trace, so had to bridge with solder.

Did solder up ok into a usable board though:

After a few eagle cad changes and some modifications to the cnc gcode generator you can see the a/b comparison of the boards.  With the original run on the right, and the new one of the left.  Machine time takes about 30 minutes/board.  Using a 60 degree v-carve bit… probably not the best tool for the job.  If you have recommendations on bits please let me know.

Advertisements

3 thoughts on “2013 Christmas light controller :: Part 1

  1. Macka says:

    You’ve probably worked out how to make PCBs better by now, but here are some tips you may find useful anyway:
    60° V-bit is good if you are using large isolations
    30° V-bit will do the job much better for smaller isolations (this is what I use)
    10° V-bit may be necessary for some SMD work and very small isolations (I’m going to attempt this in the next couple of months)

    Make sure you calculate your cutting depth based on the thickness of copper, the tip of your V-bit and the angle of your V-bit. Excel sheet for performing the calculation: https://www.dropbox.com/s/gzkcpolpmxs56zm/Etching%20Width%20Calculator.xlsx

    I didn’t make the original XLS, but I added in some different V-bit sizes and the copper thicknesses.

    Use a touch probe and auto-leveller!
    An auto-leveller modifies your gcode to add touch probe commands in. Your engraving bit is used to probe a number of points on the blank copper clad and develop a height map. The height map then makes very slight adjustments to your Z axis as you do your isolation routing.

    Your bits will last longer because you don’t need to cut as far into the abrasive FR4 (PCB substrate) and your PCBs will be far more repeatable. I’ve only made 2 PCBs so far, first one was a failure, second one was perfect, with traces as small as 0.254mm.

    I use this (www.autoleveller.co.uk/) software for generating auto-levelled g-code (generate your g-code using your normal method, then run the gcode file through the auto-leveller software and it will modify it slightly).

    Without the auto-leveller results will be very unpredictable.

    Hope that helps.

    • widgetninja says:

      Thanks for taking the time to share your insight. I have not done many boards since this last one, as I tend to jump from project to project. Love the concept of the autoleveller though, and have that website open now. Thanks again!

      Do you have a blog? I’d love to check it out.

      • Macka says:

        Sorry, only just saw your reply as I was clearing out my inbox.

        I do have a blog (added it to the website field on my post), but I’ve not gotten around to updating it for a few years, hoping to change that sometime in the next few months, got a few things I want to write about but not really had the time to do it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s