Wednesday, February 02, 2005

Hacking Coke machines (vending)

Shamelessly ripped for my own reference from places like 2600, hackaday, and i-hacked:


Written by Fire and Kyint
Sunday, 26 September 2004

# File written by Fire and Kyint #
# © 2004. All Rights Reserved #
# Modifications to this file are not permitted without prior consent #

Coke vending machines are everywhere. They're getting more and more like regular computers with LEDs that show little "ICE COLD" messages and whatnot. Well, there's a lot more to those little built-in computers than you may think. Included in the low-level operating system that these babies run on is an actual debug menu that gives you access to all sorts of machine information and possibly gives you free cokes in older machines.

There's a very strict list of vending machines that have the debug menu. First off, they're all COCA-COLA product vending machines. This means the giant, un-missable picture on the front must show any of the following: Coke, Dasani (Water), Barq's Root Beer, Vanilla Coke, Cherry Coke, Sprite, Evlan (water), Fanta, Fresca, Frutopia, Hi-C, Sprite Remix, Mad River, Mello Yello, Minute Maid, Nestea, Odwalla, Mr. Pibb/Pibb Xtra, Planet Java, Power Ade, Seagram's Ginger Ale, Simply Orange, Sparkletts, or Tab. Of course anything Diet or Caffeine free works too.
The machine must have an LED screen. Some of the older ones just allow the LED to be set to a price amount and won't have the debug menu. You're safer if the little LED is telling you something. Usually it will scroll a little message like "Ice Cold Cokes". Newer machines are more likely candidates.

To enter the menu, there's a button combination. HERE'S THE ONLY THING YOU HAVE TO REALLY REMEMBER:


The buttons are numbered depending on how they are positioned. They will either be vertical (more likely), or in horizontal rows of 4 buttons per row. If it is vertical, the first button is #1, the one below it is #2, and so forth. If the buttons are in horizontal rows, the first button is #1, and the one to the right of it is #2. The numbers work like a type writer after that. In rows of 4, the first button of row 2 will be button #5. So, to review, getting in to the debug menu looks like this:

$1.00 -------
[ Coke ] <-- Hit this button last
[ Coke ] <-- Hit this button second
[ Diet Coke ] <-- Hit this button third
[ Sprite ] <-- Hit this button first
[ And so on ]

Some text should show up on the LED (probably the word "Error", we'll explain what it means next sections). If nothing happens, your machine doesn't have the debug menu.

To navigate from option to option (What they are is next section), remember the numberings we gave the buttons. They work as follows:
Button [ 1 ] - Exit/Back
Button [ 2 ] - Up
Button [ 3 ] - Down
Button [ 4 ] - Select

Depending on the age of the machine, you will get a varying amount of default options available.
On older machines: SALE, VER, EROR, and RTN
On newer machines: CASH, SALE, EROR, and RTN

CASH - Machine Earnings Display
The CASH option will display how much money is in the machine currently. It generally takes a second or two to load. From here, you can scroll up and down through 12 or 16 different options, depending on the machine age. These other options display how much money was spent on each individual item, classified through its button (or slot, as I like to call it) number.
A neat side note about the slot numbers is that there are more slot numbers than there are actual slot, so usually the last 4 buttons contain zero money. This could be so that the same OS could be used on bigger machines, but the newer machines have even more slot numbers.

SALE - Total Sale Count
The SALE option displays how many drinks have been sold out of the machine. This tends to be cumulative, but not on all machines. The stock guy is probably supposed to reset this each time he re-stocks. Also, this has the same sub-options as the CASH option, where you can scroll up and down and see how many drinks have been sold from each slot.

VER - System/Machine Version?
This option will cause a large alphanumeric string to scroll across the LCD. The number looks very much like a serial number, but doesn't vary from machine to machine. It is most likely the OS or machine version number, but of the older machines that have the option, I haven't seen one that doesn't have the same number.

EROR - Error Log
There are 8 different types of errors - COLJ (Column Jams), VEnd (Vend Mechanism), door (Door Switch), sels (Select Switch), CHAR (Changer Errors), acce (Acceptor Errors), StS (Space-to-sales errors), and bVal (Bill Validators). The separate types and actual errors are useless, as you assumably can't get inside the machine, BUT(!) you can clear the errors. Hold the enter (Number 4) button down for about 2 seconds, and it should clear the error.

RTN - Return
This is simply the return option. Selecting this will exit the debug menu. On newer machines, pressing the BACK button at the main menu will not exit, and RTN must be selected.
A side note: The menu can also be exited by pressing the coin return button.

By holding in the coin return button and not releasing, on the newer "big-button" machines, this will display the internal temperature in Fahrenheit, as in "42F".

There are many more menu options that are only accessible if they've either been enabled from the computer inside the machine, or on the internal computer behind the door (Probably not feasible for you to access).

CPO - Coin Payout Mode
You can can dump coins from the coin mechanism, and the various menu options allow you to choose which type of coins (Nickels, dimes, etc.) are dumped.

tVFL - Tube Fill Mode
This is useless to you. This allows you to load coins into the coin tubes, which you can't do from the outside.

TEST - Test Routines
This allows you to test the following various routines:
SE Allows you to test the buttons. Will give you number
of button when you press it
SP Sold-out paddle test. Not quite sure, most likely internal function.
Su Sold-out switch test. Same as paddle.
CO Motor test. Will run various column motors.
Cn Coin test. Put in a coin and it will tell you what kind of
coin it is.
nA Note acceptor test. Same as Cn, but for bills.
dSP Display test. Will illuminate various LEDs.
vErS Rattles off version number.

RELY - Relay test
This tests the relay electronic control of various parts. Do not do, as it will cause damage if various internal parts are not unplugged before usage.

PASS - Password
This is not normally accessible, but allows you to change the menu password from the 4-2-3-1. Whoo!

PrIC - Price Setting
Used to set the price for a drink. Not sure how to work it, but it seems simple enough.

StOS - Space-to-sales routine
Lets you change the STS routine and other options. This means that various buttons will all mean the same thing, i.e. the 6 coke buttons don't actually vend from 6 different columns, but vend from one (changing when one runs out of course).

COn - Machine Configuration/Permissions
This is the machine config menu that decides what of these options you are allowed to access through the outside panel. This is probably only accessible with the door open. I won't go into detail, but I'll list the Config numbers and what each do: C1 sets price menu on, C2 sets special (manufacturer) options on), C3 disables the "ICE COLD COKE" message. C4 is autoviewing of menu when door is opened, C5 is door switch status, C6 is mysteriously reserved for "future use", C7 determines whether your money credit stays in for 5 minutes or indefinitely, C8 is Force Vend, C9 allows multiple vends without putting in more money (i.e put in a 5 and get 3 cokes and then your change), and C10 is Escrow Inhibit.

CCoC - Correct Change Only Control
Adjusts Correct Change only rule to your liking.

TIME - Time Adjustment
Allows you to set the machine's local time.

LANG - Language Selection
Not sure how many languages are supported, but there are apparently more than just English.

Unless you can get behind the door, there's little you can do with this except impress your friends. However, if you're able to set the C-switches properly, you'll be able to manipulate the machine in any way you want, get free drinks, change the price, set up cool buy-one-get-one-free deals, etc, etc :). Not to forget, knowledge is power. One step closer to free sodas!

No comments: