Money I/O board and Coin Changer board

The money I/O board was built by Bret Victor and Jeremy Boulton. This board allows the controller to determine when change is inserted and control various aspects of the Coke machine, such as spitting out nickels and putting the machine into a state where a beverage can be released. Not pictured above is the coin changer board which we built as a replacement for the original circuit board in the Coke machine, and resides inside the coin changer package. The signals passed between the I/O board and the coin changer board are opto-isolated, because the coin changer board runs off of another power source (it has its own transformer) and I didn't want them to share grounds. Vague, cave-painting-esque schematics are available. The top part is the coin changer board and at the bottom is the I/O board (pictured above). The meanings of the numbers are below. (Note that a wavy line indicates the wires are being passed through a connector to the other board.)

Chip List

U1: PAL20V8 - controller PAL for I/O and stuff: money.pds
U2: ULN2003A - transistor pack for reading opto-isolators
U3,4: NTE3220 - dual opto-isolators for signals output to the coin changer board
U5: ECG3081 - opto-isolator for signal (motor switch) input from the coin changer board

Use

Only the low four bits of the data bus are used. Read this from any address (all active high):

bit 3: dime switch
bit 2: nickel switch
bit 1: nickel tube empty switch
bit 0: nickel motor switch

Write this to any address (all active high):

bit 3: "exact change required" light on
bit 2: nickel-spitter motor on
bit 1: purchase pulse
bit 0: CREMs active (money can be accepted)

The nickel motor switch will pulse after each nickel has been spit out. The purchase pulse bit should be pulsed high and low to put the machine into a state where the next "button push" will release a beverage. A quarter being inserted is indicated by both the dime and nickel bits being high.

Pinouts

In the schematic, the numbers with circles are on the connector between the I/O board and the coin changer board. The numbers without circles are on the connector between the coin changer board and the machinery.

I/O connector pinout (colored ribbon, circled numbers):

CoinCo connector pinout (row of pins on the coin changer board)