Hobby Projects Page

Electronics Projects

I present a collection of odd projects I have worked-on over the past few years. I teach both microcontroller technology and digital signal processing and practice what I preach: most projects here are microcontroller-based and employ PIC or dsPIC series chips from Microchip.


Logic Analyzer A Win-32 Logic Analyzer

Presented is both the hardware and software for a Win-32 based Logic Analyzer. This is an updated version of an old project which now uses a USB interface.


Nixie Thermostat Nixie Thermostat

A heating and cooling thermostat employing technologies spanning fourty years from the unique Nixie tube display, circa 1960's, to a PIC 18F microcontroller, circa 2006.


DSP-based Flat Panel Controller dsPIC-Based Flat Panel Driver

A dsPIC Digital Signal Controller chip is used to generate real-time video signals to drive a flat-panel display. Targeted at a Finlux Electroluminescent display panel, the project is adaptable for almost any panel with separate sync inputs.


Laser Scanner Laser Light Show

A laser light show controller based on a 30F dsPIC chip. This vector-scanning system can produce complex images and allows upload of vector files via the serial port.


DSP-based IR Controller dsPIC-Based IR Controller

An example project using a dsPIC30F2010 Digital Signal Controller chip. The project was designed as an introduction to the chip's features rather than as a 'polished' application.


Doll House A Doll House Elevator and Lighting Controller

A controller for a doll house which runs a three-floor elevator as well as lights. Features auto-off. The 'cleanest' piece of code I have ever written (at least which isn't covered by an NDA)! Uses interrupts for timing.


A PIC-based Temperature Alarm

An alarm which warns when temperatures fall below or rise above user-settable limits. I use the prototype in my cold cellar to warn when canned goods are about to freeze and another version to control the temperature of the carboy in which I ferment wine. Features a user-friendly two-line LCD display.


Halloween Display

Each year I build an automated display to scare the trick and treaters. This year's offering includes a coffin with skeleton which opens when a laser beam is broken.


Enigma Enciphering Machine Enigma Enciphering Machine

Being an espionage buff, naturally I'm also intrigued by enciphering technologies and codebreaking. I've provided a glance at the workings of the German Enigma enciphering machine and a PIC16C84-based Enigma project.


I2K High Power Inverter A High-Powered Power Backup Inverter

A working prototype of a 2 KVA inverter. This is an old, archived, project using old technology - better technologies exist today - and the project will not be updated.


Pinball ...

Williams Firepower Pinball Machine A recent (Fall 2009) acquisition of a Williams Firepower pinball machine has certainly turned into a project. The condition of the machine was, well, "neglected" but you get what you pay for and it was cheap. As we got it, the machine was dead (only a few constant backlights worked and the CPU did not run) and the playfield was damaged by screws put in to prevent the ball from rolling into the gutters as well as between the flippers. I figured the game would be a good bet for me since it features 1980's computer technology (including the 6800 CPU) of which I'm familiar due to my hobby collecting Old Computers.

Well, a day of cleanup - both physical cleanup of the machine innards as well as contacts and connectors, repair of a driver board (which prevented a bunch of lights from working: hard to play when you can't see which player is up), replacement of about twenty burned-out lamps, rebuilding of the wood backbox (one corner was split and an earlier attempt to repair it with nails failed) and the basic machine works! The entire family went on a pinball binge for a few days and we just love the beast!

To be fair, the machine is a work-in-progress and still needs a lot of work. The playfield is badly worn and probably needs extensive touch-ups, the backglass is flaking, and many mechanical parts still need work (primarily a through cleanup). Many little problems have been fixed already including the ball ejector which "stucks" one out of every ten balls, a host of electronics issues including a strange bug which caused the machine to boot-up in a diagnostic mode, and "flaky" neon discharge displays which didn't operate properly until the machine warms-up (I'm still unsure if they work when cold).

She looks beautiful, still, and you can see the machine in all it's glory here. In the coming months, there will be a lot of touch-ups done on the case exterior, backglass, playfield.

If you're into repair of pinball machines like this, be sure to check out: Mark's Pinball Page with a huge library of documentation (including schematics and instruction manuals) as well as useful diagnostic procedures and tips, Firepower Pinball with yet more diagrams and even details of artwork, and Fred's Pinball Station outlining the refurbishing of a Firepower machine esp. the playfield and backglass artwork.


How I Started Into Micros ...

I started into computers in 1979 with an Ohio Scientific Superboard II (documented on this site under Old Computers. The OSI system featured BASIC on board and so I pretty-much stuck with BASIC programming, even for I/O programming, however got very much into digital hardware. I began by building memory boards (using stacks of 2114 1K-by-4 memory chips) and interfaces for the system - all on 44-pin card-edge boards. Only later, during my undergrad days, did I venture to building computer systems "from scratch" based on Z8 mircocontrollers and Z80 processors and using machine-code programming.

Z8 Eprom Programmer If you wanted to get into building computer systems during the 1980's you first required an EPROM programmer (there's a bit of "which came first, the chicken or the egg" here). Since I already knew BASIC the logical approach was to build a programmer using a Z8-BASIC microcontroller which allowed the user to upload the control program directly to the system then run it there. My first eprom programmer is shown here. The entire unit was wire-wrapped on perfboard and used a bank of DIP switches to configure the socket for various types of EPROMs. Visible in this photo is a stack of 2K RAM chips with the chip-enable lines bent upward and wired to a 74LS138 decoder (2K chips were all that was available cheaply from surplus suppliers at the time).

The bottom of the Z8 EPROM Programmer showing the wirewrap construction.

The switches on the EPROM Programmer allowing the programmer to be configured for various types of chips.

Upon starting the system the MCU boots in BASIC mode. Using a PC (running ProComm at the time), the control program is uploaded to the RAM on the board and executed at which point it prompts for the address and data to be written to the installed EPROM. Software is used entirely to perform all functions including timing (accomplished using a for/next loop inside the program itself, with the delay determined experimentally). It was a great little system and was flexible: when a new EPROM was to be used a little bit of wiring was done to configure the socket and the control program changed accordingly.

Z80 System 1 My first Z80 system was built using an old TI calculator for a display and keypad. A friend at University (Kenn Heinrich of Tesla-coil fame) wrote a simple monitor 'D-MON' allowing the user to interrogate and write memory and registers.

A close-up of the Z80 system showing the EEPROM holding the monitor code. This later version incorporates a UART (the AY-3-1015 chip) and an RS-232 port. The baud rate generator was a 555 timer. The monitor was updated to 'U-MON' (for UART-based monitor).

Z80 Transporter My thesis project at engineering school was a Z80-based transporter which acts as a NIC between a generic system having an RS-232 link and a high-speed RS-485 network. Using a Z-80 SCC chip the system was capable of speeds of 1 Mbit/sec (the chip is not rated for this speed but it was found to work regardless).


My Workshop ...

My Workshop
I started with a single shop 12' by 16' in size used for both woodworking and electronics. A year or so ago I was able to expand the shop into two areas, the original area used for woodworking alone (featuring a planer and radial arm saw), and a new electronics area 12' by 6' seen here. This shop, used exclusively for electronics, has a 6' workbench with a set of shelves above for test equipment. Some of the test equipment is commercial including an analog oscilloscope and a nixie tube frequency counter - other parts of my workshop are homebuilt including a signal generator (based on an XR22xx chip) and a logic analyzer based on an AM7402 dual-port RAM chip which uses a PC as a front-end display. The logic analyzer runs at 20 MS/sec maximum and has proven invaluable when debugging microprocessor circuitry. Test equipment includes several power supplies, one a homebuilt unit with a variable 0-30V/3A output.

My Workshop - Parts As well as test equipment the shop has a wall full of parts boxes. Parts I stock include an assortment of discretes (resistors, capacitors, diodes), TTL (74xx) and CMOS (40xx) chips, and a host of microprocessor parts both current (PIC processors) and some deemed 'obsolete' used primarily to service machines I keep in my collection of vintage computers.


Woodworking ...

Woodworking Project During a recent "vacation" I had an opportunity to construct a half-Deacon's bench for our hallway with my father-in-law. The bench features a small seating area as well as two drawers to hold catalogues and other stuff. It was constructed with a frame of poplar and skinned with real red oak. Drawer fronts were constructed of rail-and-stile technique. The top and sides were constructed of quarter-inch oak-skinned plywood.

Details:
Veneer Detail the corner of the bench showing the thick veneer glued to the frame. A trim router was used to make the corners fit perfectly.
Drawer Detail the rail-and-stile construction of the drawer front is seen in this detail. In order to use the cutters a 3.5 hp plunge router was used and mounted on a homemade table with a one-piece fence made of aluminum channel.
Panel Detail the side and front panels were pre-finished and simply inserted into the hole trimmed by the veneer. They are secured by short wood screws.


Other Hobbies and Interests ...

Railway Signalling and Control. Having worked for CP rail I have an interest in signalling and control systems. Here I've outlined CROR signalling as it applies to the modeller.