Trials and Tribulations…the making of a Christmas Display

 

This is the last year I’m putting up the Christmas Display.  After 20 years of doing it, it’s time to move on.  Because it’s the "end of an era", I wanted to go out in a blaze of glory…use more of the lights from the basement and maybe come up with another display.

 

Inspiration

I saw something at the Calgary Airport that gave me an idea.  It was much smaller in size, about 6 inches long, but I had an idea how to scale it up to 30 feet, ‘cause it’s gotta cross the roof of the house.  And so my quest began.

 

Some People Call it Junk

I had to decide whether to make the electronic control from pure digital components, like CMOS integrated circuits or use a computer-based controller.  As always, the criteria depends on stuff I have “in stock” because I don’t like going out to buy things for a project.  I’m a recycler.  Besides, it’s a way of using up all my junk!

 

I looked in my project drawer and found an old single-board computer I made in 1982 for my very first Christmas project, a 14-foot tall electronic Christmas Tree with 500 ten-watt bulbs on it.  I had dismantled the light part of the display about 7-8 years ago because it was too hard to store and set up every year, but I kept the computer.  This thing had 48 buffered outputs and only took up about 8” square of real estate, so it seemed to match the requirements I had for the project.  It would have to connect to, and control, 48 individual incandescent lights so it would be necessary for me to make some kind of interface board to jump from low current 5-volt signals to high current 12 volt. 

 

To Wrap or Not to Wrap

The choices I had were to make the interface using wire wrap components, or make a copper-clad printed circuit board.  The latter would be “easier” but more time-consuming since it would have to be first drawn with a special computer program (a PCB “CAD” program) and then manufactured.  I was set up for this a few years ago when I was doing lots of this stuff but I had since moved stuff around, got rid of programs I thought were crap anyway, and didn’t get new chemicals.  Since this was going to be a “one-of” item it made more sense to use wire wrap.  (Famous last words.)

 

Although I was developing the various phases of the project simultaneously, it didn’t slip my mind that I had to program the computer first so that I could test the interface I had yet to build. This was a little bit of a challenge because the computer used a 6809 microprocessor chip, something I had not programmed for many years.  (I was programming 68HC11 chips in my last couple projects, which used different commands and “programming model”).  Also, when I made the board in 1982 I decided not to add any RAM because I didn’t have the space (a 128 byte RAM had 24 pins and was the size of two postage stamps), nor did I really need one.  RAM was only needed if I wanted to use sub-routines in my program.  The program was really simple, so I just wrote it linearly, without subroutines.  

 

When the Brain Cells Die

After re-associating myself with the board and the addresses I had put all the components at, I studied some programs I wrote way back then to try and remember how I put it all together.  I had to study how my cross-assembler worked and figure out how the EPROM programmer worked as well.  After a week or so of writing and re-writing test programs, I was ready for the first full test of my program.  For this I used a 6809 development kit that would accept the EPROM and allow me to single-step through the instructions.  On the output side, I borrowed an interface board used for my “Snowflakes” and temporarily wired in 8 lights on the output.  It took about 20 EPROM burns before I got one that worked the way I expected it to. ( I had considered building my own “emulator” using Visual Basic code so I wouldn't have to burn so many eproms, but I thought this would put me too far behind.  Besides, the hardware was available and relatively quick to set up.  Eproms can be erased and reused thousands of times.)  

 

At this point I decided it was time to make the actual display with the 48 lights on it.  I started with 12 volt incandescent bulbs (from old HP 1000 mini-computers we scrapped at Spartan) but I feared that without sockets, it could be difficult to replace bad bulbs.  So instead,  I cut up a cheap mini-Christmas-light set of 1 watt bulbs and used the lamps and sockets.  These I soldered to a 30-foot piece of fencing wire and ran 48 little wires, one for each lamp, all the way back to the computer that was going drive them.  This contraption snaked around from my bench and around the shop and was always in the way.  I finally mounted it above my head so I wouldn’t garrote myself every-time I walked to my bench. Constructing this thing was the easiest part of the whole project, even though I had to strip, tin, solder and shrink wrap 96 connections.

 

Scotch Tape May Have Worked Better

The interface board was another matter.  I used a different type of wire wrap than the common stuff, called  Scotchflex”, that enabled designers to do real quick “one-of” prototypes.  The connections were made by pushing wire into little wedges on the bottom of the integrated circuit sockets.  The wedges would cut the insulation, thus making contact with the wire inside.  I built this interface with 6 driver chips (48 outputs) and  installed them on the board with input and output connectors.  

 

When I tested the board with my program, half the lights didn’t work.

 

Manually testing each connection I determined that it was the Scotchflex connections that were bad.  In my zeal to make the board easy to troubleshoot, I used different color wires for the inputs and outputs of the different chips.  Well, some of those wires were different diameters, which did not work with the little cutting wedges.  Arrrggghhhh!  I dicked around for a day trying to design a workaround (like the Hubble telescope guys did), but it became apparent I had a kludge on my hands, so I ripped it all apart.  Experiment #1 failed.  I was into the project about 20 hours already.

 

Decisions, Decisions

Okay, now what?  Standard wire wrap or PC board?  I elected to do the former, because once again, I was aware of the prep and setup time for making PCBs  (uh…that’s the “good” PCBs I’m talking about here.)  So I got another perf board (a piece of thin board with holes in it), installed all the wire-wrap sockets I needed and started the process of wire wrapping.  Although the special wire-wrap tool is for one size of wire, and I was using 2 different sizes so I could get the different colors, this is not a problem like it was with the Scotchflex.  I did have a few problems stripping the wire because the dual-function tool that does the wrapping works like crap on the stripping!  Using my regular strippers is difficult because they don’t go down in size to such small diameters of wire I’m using.  However, the cutters-part of the strippers is notched from cutting nails (or something…) and I can use the little nicks as a method of stripping the wires.

 

After 2-3 nights of continuous stripping and wrapping, the job is done.  Testing the circuit again I got about 40 of the 48 lights to work properly.  Troubleshooting all the parts of the circuit I found burned bulbs, bad solder to some joints, a solder splash on my board that shorted a couple lines out, and some broken wires from bad stripping.  When I fixed all the problems , I decided the program should be modified so that the timing is better between the light flashes.  So once again I moved to the computer hooked up to my EPROM programmer and made changes.  Every change, no matter how small, had to be made in the editor program, then compiled or assembled into machine code – cleanly, without errors.  It then had to be converted to Motorola code the Eprom programmer can understand and finally, downloaded to the EPROM.  The chip is then removed from the burner and installed into the computer.  That’s the process.  I’m glad I have wheels on my chair.

 

Since I had proved the concept well enough with the evaluation kit, I  moved this computer out of the way and plugged the EPROM into my home-built computer instead.  This necessitated unsoldering the wires from the kit and re-soldering to the home-built because  I didn’t have the necessary card-edge connectors for quick and easy plug-in..

 

Should I Laugh or Should I Cry

Everything worked!  As I was thinking about the next step,  packaging the components, I still didn’t like the timing so I kept modifying the program.  Then an unexpected thing occurred.   When I inserted an EPROM and turned the power on to the computer and lights, there was an apparent short and the power supply would quit on overload.  (I have an adjustable current-limiting power supply so it wasn’t a problem where something could burn out).  Different EPROMS created the same effect, yet when I put in my first test chips, they worked fine.  Now there’s no way the program changes I made could have done this unless the program somehow went into never-never land, and perhaps overwrote memory space used by other components.  I checked that by changing addresses and going over the program byte-by-byte.  I changed EPROMS numerous times and modified some of the programming parameters like programming voltage, all to no avail.  I could not create another EPROM like the first two that worked. 

 

Okay, I decided I could live with that “bad” timing.  When I installed the good chip, it didn’t work.  It was now obvious the whole computer was toast.  After swapping out all the chips I could, to try and make it work, it still refused to access the EPROM and drive the outputs.  In a fit of frustration, I removed the current-limiting of the power supply and jammed the voltage up, cursing at the board.  I would exact my revenge! And I did by blowing up a 40 pin integrated circuit.  

 

Obviously there were serious problems. (with the computer AND me…).  Disconnecting all but 6 of the 48 outputs, it was apparent that somehow the program was turning all the outputs on, causing the power supply to trip.  I had originally designed logic circuitry to prevent this from happening, but it wasn’t working now.

 

I gave up and pushed the computer out of the way. Experiment #2 was a failure. 

 

I recalled a quotation by Thomas Edison, "I have not failed.  I have just found 10,000 ways that won't work".  So I pushed forward.  I only had 2 failures, only 9,998 to go.

 

One Step Forward, Two Steps Back

Since I had to start from scratch, using individual integrated circuits,  I took out a prototyping board that uses jumper wires to make the connections.  I had a few circuit boards in my junk box that I could have made work together but once again thought that would have been too “kludgy”, so I went with the fresh design.

 

Although the new design would use a dozen or so integrated circuits I only used 4 ICs and 50 interconnecting wires to prove the concept.  This was put together and tested in one day.  It was too damn cold to work on my race-car anyway.  I had a fleeting thought of using this prototype board for my actual finished circuit, gluing all the wires down so they wouldn’t fall out.  I could even plug the display wires right into the board, eliminating the contact board I made to make external connections. Uh-uh.  Not a good idea.  Too kludgy.  Although this project only has to work for 30 days, I don’t really want to go up on the snowy roof to troubleshoot when one little output doesn’t work.  I needed reliability.

 

Turn Turn Turn

What to do?  Make a circuit board, what else!!!  I had gone full circle! After 3-4 false starts I was pretty sure that NOW I was on the right track.  You would think that after making hundreds of projects over the years, some of them commercial, that I would have learned…

 

It wasn’t over with that decision because now I was back to the need of proper CAD software for designing the board.  I hate the software written by Protel even though it’s one of the major players in the industry and I have a cracked version of their software.  I had been using a DOS-like version a few years ago that was very simple and intuitive, but it no longer worked on Win98 or above computers.  (I made about 30 PC boards with that program).  The Protel version was not easy to use.  They put keys in the wrong place and used real stupid key strokes to perform a Windows function.  For example, Ctrl-C and Ctrl-V are extremely common in Windows or programs written for Windows.  I use these keys without even thinking about them like they are extensions to my fingers.  Well Protel in their infinite wisdom used Ctrl-shift-insert and Ctrl-shift-something else.  I hate it.

 

PCBs, The Good Ones

Thus my quest began to find a good PCB program.  Via the web I found many sites that listed numerous PCB programs.  Most were demo downloads, many were shareware, and others were restricted-operation demos.  I downloaded 6 different programs and tried them all real quickly to see how well I could cut and paste, access the component libraries, draw the interconnecting lines etc.  One program I was sure would fit the bill was called Eagle.  The restriction on their free download was that the maximum board size could only be 3” x 4”.  This was too small for this project.  However I found a crack for it and downloaded the license.  Despite all my best efforts any "saved" test drawings could not be opened again!  Yeah, I got around the board size limit but I couldn’t recover any of my drawings.  That’s what you get for trying to cheat the system!  (The crack code was for an older version of the software, which is probably why it didn’t work).

 

Other programs didn’t have that ease-of-use I was looking for.  Another program printed a background behind the artwork, preventing users from using the art in a laser-printer, such I do, to make their negatives. 

 

I finally found a very nice, intuitive program that was relatively inexpensive.  As a bonus it had auto-routing, a system whereby rough lines are used to connect components and when the “auto-route” button is pushed, all the wires get routed properly with no shorts and crossovers.  Cool.  I like manually routing PCBs but I could still use this utility to cut down development time.  I bought the program and it was sent to me by email.  I didn’t even have to leave the house!

 

Thinking that the rest of the project would be a piece of cake, I actually ended this story right here.  But there were more frustrations ahead.

 

Auto Routing Has Nothing to do With Cars

I used a hand-drawn schematic, developed from my prototype board wiring, to layout the integrated circuits and major circuitry.  Then I put down a "rat's nest" of wires and let the program auto-route the rest.  Wow! 5 seconds and all the wiring was done.  Inspecting the board I realized I didn't have a clock or frequency source for the circuitry, because I had been simulating the clock signal with my waveform generator.  I quickly bread-boarded a trusted 555 timer chip and then laid down the circuitry for that.

 

Looking at the board, over and over again to see if the traces matched the schematic drawing, I became disillusioned with the auto-routed traces.  The problem was that many of the traces that were laid down crossed the board from the top surface to the bottom in a rather lackadaisical fashion, using vias to connect the top and bottom surfaces.  It looked ugly and I knew that troubleshooting lines that moved from top to bottom so much was going to be a problem.

 

So…I deleted all the auto-routed traces and after a couple hours of manual routing, I had a board I could live with.  I made numerous check prints to verify correct wiring, no shorts, all pins connected, and I made prints to transparency film.  Glueing the two pieces together, I lined the top and bottom prints so that when I later drilled through a pad on the top side, I could be sure that the hole would come through into the bottom pad.  That's the theory anyway.

 

Itching to Use the Etchant

I placed a copper board, pre-coated with photo resist, between the plastic sheets and exposed the top side, then the bottom side to ultraviolet light.  This hardened the areas masked out by the dark print on the plastic overlays, so that where there was a line in toner, there will later be a line in copper.  I developed the board with a caustic solution, then put the board into a batch of warm ammonium persulphate.  This material dissolves the copper on the board not hardened by the UV light and "fixed" by the developer.  Things started to go wrong.  My etchant became saturated too fast and etching stopped.  Crystals formed on the board when I got the etchant too hot and the board looked ruined.  I threw that one into the garbage about ½ way through the etching.  That pre-etched board cost me $20.00 and I used about $10 worth of chemicals..

 

I made another board and this one came out perfect.  But at the very end of the process when I could see the top side and the bottom side through the semi-transparent fiberglass base-board, I noticed my holes were not aligned!!  Arrrgggghhh.  I wanted to put my face in the etchant tank!  I stopped the process immediately and tried to find out why this happened.   Well, I really pulled a bone-head move on this one.  I had the artwork all aligned but I didn't have it attached to the board, so when I flipped the board to expose the other side, the board moved 1/8" relative to the artwork.  Every hole was out 1/8 inch, or 125 mils, when the maximum tolerance is normally 1 or 2 mils!

 

On October 11, 2002 I made a good board.   Mark that down on your calendar.  I did…

 

I populated the board with sockets even though a "good" designer would do without them.  After all, putting in sockets takes all the fun out of trouble-shooting when things don't work.  I say that with tongue-in-cheek because "one-ofs" NEVER work the first time.  You guys out there that do this kinda stuff know of what I speak.  Because this was a two-sided board, and the holes were not plated through (ie no electrical connection), I had to use all metal sockets so that I could solder the top and bottom pads that the socket was sitting in.  Since I designed the last output stages with bottom traces only, I could use ordinary plastic sockets for those chips.  I had installed one 18 pin socket and was ¾ way through soldering the pins when I realized that one of the pins didn't come through the hole drilled for it; it had bent over under the socket.  I didn't want to desolder a dozen pins and make the problem worse, so I drilled a hole through the trace leading to the pin and installed a jumper direct to the chip lead.

 

Further checks revealed some copper bridges which the etchant didn't remove.  Using my trusty Dremel tool I carved that stuff away and put in a couple wire jumpers where necessary to get between some of the pins.

 

Finished

Yeah right.  It ain't over 'til the fat boy sings, and I wasn't singin'!  The board was done, all the traces fixed, pads and sockets checked out.  I used the parts from my breadboard prototype to insert into the sockets.  There are two schools of thought here as to what chips to use: Do you use the chips in the prototype that you know work, or do you use other chips so that you can keep your prototype intact in case you have to "go back to the drawing board"?  I elected the former because I was confident my circuit would work.  It didn't of course…

 

First of all the clock didn't work, obvious because the light-emitting diode I had on the output wasn't flashing.  On the prototype board I had left a pin unconnected, but on the circuit board, I had attached it directly to ground.  Leaving it unconnected could lead to noise input (the pin was a control voltage input), so I elected to cut the ground trace and insert a small capacitor in series, to decouple the pin.  Voila.  One problem solved.

 

I couldn't get the lights to flash properly.  They would light up brightly in some odd sequence, and many of them at a time.  My power supply was supplying enough current and the meter indicated "roughly" 5 volts, the design voltage.  I took the chips out of the sockets and followed every trace top-to-bottom to verify proper source and destination and to verify the socket pin was soldered correctly.  I just could not find any problems.  Every thing was correct.  The problem was quite chronic and fatal though because nothing worked.   Usually if a line or a pin is "bad", symptoms indicate this by the rest of the circuit still functioning to some degree.  I really scratched my head on this one, until I decided I should check to make sure I was getting my voltage to all the control chips.  Well…the voltage, as determined by my very accurate digital voltmeter, was only 4.1 volts!  Yeah, the meter on the power supply indicated "roughly" 5 volts, but that just goes to show how "rough" those lousy meters are!

 

I cranked the voltage to 5.1 volts and away she went.  Like Archimedes who ran naked down the streets of Athens, yelling "Eureka! I have found it!" when he discovered the principle of buoyancy, I threw my hands up and yelled "Yes, Yes!"  Unlike Archimedes however, I had clothes on when I had my Eureka moment.

 

Will this project never end? 

I now have a circuit board laying on my bench with 50 wires temporarily attached to it.  All this stuff has to go outside, up on the roof, so now all that remains is to package it so that it's protected from the weather, crows and squirrels.  The board will go into a case of some sort with the lights themselves mounted on a couple metal posts I have yet to secure to the eaves of the house.  I also have to find a 5 volt power supply for the system because I didn't build one onto the circuit board.  I have a bunch of power supplies removed from old computers so the search will be short!

 

Near the end of November when most of the lights will be up, I have to test this new display to see how it actually "looks" and if it blends in with the rest of the display.  I once spent many weeks designing a display, only to find out when it was finally installed that it took away from the rest of the lights.  And when it was daylight (no lights on), it stuck out like a sore thumb.  It cost me $150 in materials and I had to take it down after only 3 days.

 

Such are the trials and tribulations of a guy trying to make a difference in the Christmas Display world.

 

Come and see the fruits of my labour, Dec 1 to Jan 5, 2003.  For anyone wanting to see the “control center” that runs everything, I’ll be conducting tours.   At no charge!  This WILL be the last year so tell your friends.

 

Bob Found

Sep 2002