Drag Racing Christmas Tree
Recently, I was approached by my friend and co-worker Dave about a possible project. A family member fond of drag racing had a device designed to test his drag-racing reaction time that had stopped working, and Dave wanted to know if I was interested in making a go at getting it back into action. Here’s what it looked like before, and after, I started hacking away at it:
The system consisted of a Radio Shack Model 100 Laptop hooked up to a wire-wrapped perf-board set up to control four standard 110v outlets and accept one push-button input via the bus on the laptop. The system was electrically sound, but the software had been long lost due to the volatile nature of battery backed up RAM.
Rather than try to re-write the old software, I decided to modernize the system using a Freescale MC9S08AW60 microcontroller. After close examination of the line voltage interface, it was determined that standard TTL level voltages were used to activate the solid-state switching setup, and pull-down resistors were already in place after the I/O interface chip tied to the laptop bus. The laptop bus had been connected via ribbon cable to a DIP socket which was then wire-wrapped to a bus interface IC. This provided me ready access to the perf-board and made it easy to modify. I promptly did some surgery on the perf-board, removing the old I/O chip and re-routing 5V, GND, and the four inputs to the DIP socket. I made a small perf-board adapter to reduce the high pin-count DIP socket to a more convenient 10-pin header. A couple connectors mated to some spare CAT5 later, I had ready-made access to the external lighting interface which could now be re-used. Luckily, I even had enough room inside the external light controller power-strip to install a 110v AC to 5V DC converter, which I wired directly to the built-in power switch. Now, instead of having to plug in both the power-strip and a wall-wart for the laptop, one plug will suffice!
As soon as the circuit was working, I designed a PCB in Eagle and shipped it out for manufacturing so I could get this finished soon enough to serve as good practice before race season. While tweaking the software while waiting for the board, though, I discovered I needed some more buttons to make a flexible and easy-to-use UI. Fortunately, there were some extra I/O ports I exposed on the board that weren’t being used, so when I got the boards back, I was able to attach some panel-mount switches to the board with ribbon-cable. If I had another go at this board, I would have preferred board-mounted switches to reduce wiring, but it ended up working out just fine.
Flash forward a week and a half, and I had boards in hand. Unfortunately, testing revealed two swapped nets on the board. Oops! A little PCB-surgery later, though, and it was all working fine. In a very short time, I had a fully working prototype. Now, all that was left was the case. This actually proved to be the most complicated part of the entire project.
A little background is probably in order. I’ve fiddled with electronics and programming constantly since I could get my grubby hands on any. I’ve made countless gadgets and I make a living programming. Nowhere in my background, however, is graphical artistry or case design. But, this project was different. Someone other than me would be playing with this thing and it would probably be a nice design feature if you didn’t need to hold it together with duct-tape and wire-ties for it to stay together. Usability and case-integrity mattered.
My first instinct was to mount it in-between two pieces of acrylic separated by stand-offs. I’ve used this approach before, and it works, but it’s not really attractive when dust and grime come in through the sides. It’s also easy to accidentally rip out wires and connectors if there’s too easy access to the project innards. So, after some brainstorming sessions with my wife Kelly and a few trips to Lowe’s, I decided to attach sides with some small aluminum extrusions and 4-40 nuts and bolts.
Many hours of work later, I came to the conclusion that my aluminum plan sucked. Sure, it would look great if it was CNC machined and precision cut. My attempts with a plexiglass cutter and a hacksaw, however, produced, to be polite, substandard results. Though I used a miter box and did my best to make precise cuts, the aluminum lined up horribly and would have taken me the next two months of weekends to even look only mildly embarrassing. Time to try again.
Our next attempt was much more successful. Kelly and I ran all around town, drew out countless ideas, and finally came up with a winner. The final plan that worked was to route 3/16″ diameter channels 3/32″ deep around the perimeter of 3/16″ acrylic which formed the top and bottom of the case. The channels served as guides for side pieces which were cut from the same acrylic. I didn’t have a router table or a table saw at the beginning of the project and I couldn’t afford to buy both, so we bought a small table for my router and used that for the channels and for more accurately cutting the acrylic. After I had all the pieces cut out, the channels routed, and the edges that were to be exposed rounded over, I drilled all the mounting holes and drilled and tapped holes into the ends of the side pieces of acrylic. I then mounted and connected everything and bolted everything together. Success! Finally, a working project that looked nice to boot!