here are some more pictures:
i took a week-long vacation, and in that time without me looking after it, the kegbot had no problems. i think the hardware and software reliability is now at a very nice place.
because installing them will require a new controller board to be soldered up, the ftdi chips are not yet being used.
next big features/changes to add:
although it has come a long way, the microcontroller for the kegbot has needed some changes, both in the hardware and the software.
software changes
i'm now testing a newer method of communication with the mc. the new state machine is much simpler and much easier to understand.
all commands the host can send to the MC consist of a single one-byte command word. examples include OPENVALVE, GETSTATUS, etc. the host now replies to all commands with a single unform "status packet", which contains around 7 bytes of status: state of the relays, current flow ticks, and so on. this will soon contain the temperature information, which is presently handled by the secondary quozl pic.
the other major change is that the MC now "pushes" flow ticks to the host. this means that the internal flow counter only accumulates between status packet sends, which the host requests every second or so. when a status packet is sent, the MC clears the internal counter. this eliminates all the kludgey "greater-than-8-bit" arithmetic i was doing inside the PIC, since the counter should only rarely exceed 8 bits in length..
(of course, this also means we now rely on the host to reliably receive and accumulate these counts, but that should be a fair assumption...)
hardware changes
the edgeport usb drivers -- and actually, the usb serial generic driver -- in the linux 2.4 and 2.6 kernels cause numerous panics and OOPS's these days. this is extremely odd, since my edgeport/4 has worked great until 2.4.22+... greg KH (usb kernel master) was kind enough to take my bug report, but i just havent had time to thoroughly examine these panics. but they do occur, typically on close() calls.
this, and the fact that a usb-serial converter is another piece of hardware have led me to move (albeit slowly) to a USB-only MC interface. i've ordered some evaluation units of the ftdi ft232bm usb UART chip. the chip looks very nice, requires only a few external components (xtal, a few resistors), and is relatively inexpensive (~$5 in one-off quantities). considering that a max232 costs around $3, i think i can justify this somewhat premium pre-made solution. (evaluation boards with a USB connector, xtal, and the other misc hardware cost $25.)
this means that the dependency on serial ports in the kegbot will be reduced by 1, leaving the 1-wire and LCD display on rs-232. (and it is surely conceivable that one could use USB versions of either -- they do exist).
whew! well, sloppy typing aside, that's whats new. in summary: better controller means no more freezes!