Hacker News new | ask | show | jobs
by nhod 1061 days ago
The Cocktail Consoles (as we called them) were all custom hardware. Everything was designed to be rock-solid both physically (bars are full of drunk people and liquids) and operationally (everything had to Just Work). Leo designed a core “motherboard” which was a PIC microcontroller (I forget the exact model) that did five main things: serial I/O for the buttons and joystick; serial I/O for the attached TV tuner; serial I/O for the attached pan-tilt video camera; audio from the telephone handset; and then multiplexing all of that serial I/O and sending it over serial to a central server (which I wrote — in Perl!) which then controlled all the Cocktail Consoles in the bar.

We used black and white cameras because they were both cheaper and also had much better sensitivity to low-light conditions (this has changed somewhat — but not entirely — in 20+ years) and black and white tube TVs because they were cheap. (This part was actually really dangerous — tube TVs hold enormous charges after they’ve been switched off, enough to kill someone, and we had the guts exposed on the insides of the Cocktail Consoles. Had to be very careful). We used public telephone handsets for the audio because of their durability, and video game buttons and joysticks so you could try very hard, and generally fail, to damage them.

The TV's, cameras, and telephone audio were all connected over an analog CCTV system. The camera was video source and the handset's microphone was the audio source for a given channel. The TV could be tuned to any channel, and was thus the video output device, and the handset's speaker was tied to the same channel. Thus, if you tuned to any camera, you would see and hear whatever was going on at that console, but not the other way around, so it was rather voyeuristic. If TV A was tuned to camera B, and TV B was tuned to camera A, that established a bi-directional link, which meant you could see and converse with the other person.

The serial data from all the microcontrollers were sent over serial-to-CAT5 converters, so the entire place was wired for Ethernet, but it was plain old serial over the wire. We then had these serial cards in a Dell server on the other end, which presented as roughly 100 serial ports on the server.

This was where I had to do a lot of learning. I was a good IP programmer, but I had to reach back into the depths of the kernel and learn all about TTYs and switch() and lots of other stuff that even in 2000 was sort of forgotten. It took me forever to find any good documentation on how to handle that many serial ports in a non-blocking way.

I kept asking Leo to just put a cheap Intel box in each machine and do it all over regular Ethernet, but he (rightly) kept insisting on this low-cost, rock-solid approach. Today the calculus would undoubtedly be different — you would do everything over IP — but back then Leo had a level of foresight I still admire.

1 comments

All this was done in Manhattan itself?
Yep. 3rd and Bowery, before CBGB closed and the East Village went from the bohemian hipster world of RENT to the expensive place it is today. The Bowery had just barely changed from “don’t go there ever” to “oh, cool!”