Lloyd Coke Machine Documentation Project
Purpose
The intent of the Coke project is to create a well-designed, reliable,
expandable computer system, with the Coke machine as the primary console.
Functional Overview
The hardware is able to detect pushes on the Coke buttons, detect
coins being inserted, deposit frosty beverages, display messages on a
30x7 LED display, and display the current time on a digital clock.
Firmware and software modules simulate the action of a standard Coke
machine, in addition to providing any other gratuitous functionality that is
desired.
System Overview
The Coke System consists of a hierarchial structure of subsystems
which interface with
each other in fun and exciting ways. At the lowest level, there are
the hardware boards that interface with the real world or the physical
Coke machine. The hardware boards attach to a central controller board,
which is based around a 68HC11 microcontroller. The controller board
receives commands over a serial port from a 486 computer system. The
commands are sent by software modules -- programs that import the Libcoke
library. These programs are spawned by coked, the coke daemon, which is
at the top of the food chain.
Specific Docs:
Mechanical documentation -- docs on the
mechanical aspects of the Coke machine.
Hardware documentation -- controller board
and external board docs and interface specs.
Firmware documentation -- CokeOS v3 and
support module source and interface specs.
Libcoke documentation -- how to write your
own programs for the Coke machine.
Software documentation -- coked and support
module source.
Bugs
A list of things you should be aware of when
working with this stuff.
Comments
All this stuff is maintained (for the time being) by Bret Victor.
If something's wrong, send me mail:
bret@ugcs.caltech.edu