I finished the design of the laser harp hardware this weekend, and made some good improvements from my first pass design, but even so it is still way too complicated. Because I wanted to allow for a goodly amount of I/O, I needed a way to expand the ports available to the PIC, so I built my design around these fancy I2C-based port expanders that I got a long time ago as samples. This is all well and good, and they are neat because they end up being bidirectional (so any of the pins can be outputs as well as inputs), but its really overkill for this project. Later on, I found two similar projects that had much simpler designs- one used a keyboard matrix for the inputs so that no bus expanders would be needed, and the other just uses some latches to drive a string of outputs off of a parallel bus. I view my design as superior to the matrix one because it should be more immune to random problems with inputs, however the parallel bus design is most certainly a better design (see http://www.members.aol.com/decomidi/index_english.htm.) The program code is less complex and the hardware is cheaper, and it only requires a 1-sided PCB. Of course, that design can only do outputs, but similar chips should be available to make them inputs (I am thinking of tristate buffers.)
Anyway, since I finished the design and I have most of the parts on hand already, I decided to go ahead and build it. If I need to make any more (after the three boards that came in the order), I will strongly consider redesigning it with a parallel bus, or at least with 16-bit I2C buffer chips instead of the 8-bit ones I am using. I’ll put up a full project instructions soon, but here is a screen shot of the board design:
PS if you want of these, I ordered 1 extra PCB (minimum order size) and enough extra parts for a third board, and I will sell a kit at cost +a small fee for handling. Should be somewhere around $60 for the electronics.