10

I've been reading over the web about the history of the Internet of Things, and one of the most interesting things I have run across is the Carnegie Mellon University's Coke machine. According to various articles I have read, including this one from ewahome.com, it was a coke machine that was designed to be able to tell people whether cold coke was available in the University's Coke Machine.

I am curious, however, as to what connection protocol would have been used back then for this machine. Were they sending the signals through telephone cables or what? How did they go about sending the signal up to the various people who wanted information about the coke?

10

The Coke Machine, rather amusingly, has its own website with a bit more information on its history.

The Ancient History document explains how the original Coke Machine operated:

The final piece of the puzzle was needed to let people check Coke status when they were logged in on some other machine than CMUA. CMUA's Finger server was modified to run the Coke status program whenever someone fingered the nonexistent user "coke". (For the uninitiated, Finger normally reports whether a specified user is logged in, and if so where.) Since Finger requests are part of standard ARPANET (now Internet) protocols, people could check the Coke machine from any CMU computer by saying "finger coke@cmua". In fact, you could discover the Coke machine's status from any machine anywhere on the Internet! Not that it would do you much good if you were a few thousand miles away...

For the first generation Coke Machine, in the 70s and 80s, the finger command was (ab)used while connecting through ARPANET, the precursor of the Internet. Not exactly a complex protocol, but it worked well enough to indicate the state of the coke machine without being overly difficult to set up.

If you're interested in exactly how the finger command worked, here is an extract from Wikipedia detailing how it operates:

The finger daemon runs on TCP port 79. The client will (in the case of remote hosts) open a connection to port 79. An RUIP (Remote User Information Program) is started on the remote end of the connection to process the request. The local host sends the RUIP one line query based upon the Finger query specification, and waits for the RUIP to respond. The RUIP receives and processes the query, returns an answer, then initiates the close of the connection. The local host receives the answer and the close signal, then proceeds closing its end of the connection.

The finger command can also provide some custom information, such as full name, email address, and some custom text. Presumably the custom text was used to send the state of the Coke Machine and the coldness of the Cokes inside.

  • So the signal was sent straight through the internet, then? – anonymous2 Jan 4 '17 at 20:19
  • 2
    @anonymous2 sort of - the Internet didn't exist in its current state at that time, but many government institutions and universities had access to ARPANET, which is very similar in concept and used a lot of the same TCP/IP suite to communicate. The Coke Machine used that to communicate, over the finger protocol. – Aurora0001 Jan 4 '17 at 20:21

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.