Sniffing Vending Machine Buses

Sniffing the Multidrop Bus

 

We’ve talked about a variety of protocols and how to deal with them in the past. Today, [Dan] is working on sniffing vending machine Multidrop Bus. The Multidrop Bus (MDB) protocol is a standard used in vending machines to connect devices such as currency collectors to the host controller.

To connect to the bus, interface hardware is required. [Dan] worked out compliant hardware and connected it to an Arduino. With the device on the bus, [Dan] got to work on an Arduino sketch to parse the MDB data into a human-readable format. With that working, the bus can easily be sniffed over the Arduino’s serial console.

This is just the start of a more involved project. Since this protocol is used to communicate with a vending machine’s currency collector or card reader, being able to communicate it would allow him to implement his own payment methods. The plan is to augment the vending machine he operates at Vancouver Hack Space to accept Bitcoin. We’re looking forward to seeing that project unfold.

Comments

  1. fartface says:

    http://www.vending.org/technical/MDB_3.0.pdf

    Do you guys even look for the documentation first?

  2. lja says:

    Strange, why don’t vending machines use a more common protocol like SPI or even I2C?

    • lja says:

      Actually reading on the Wikipedia page it says it’s been used since the 80’s in vending machines. I guess it’s just a standard that caught on without reason to change.

    • Andrew says:

      Amazingly, ‘multidrop bus’ is a generic expression which covers such things as, well, any multidrop bus. Even RS485. Or I2C. Or…, well, you get the picture.

    • Steve says:

      I worked for the company that created the “MDB” protocol for vending machines. The 9600 baud serial communications was the advanced protocol in the vending world. There are various others that still probably are working today.

      http://ebookbrowsee.net/overview-of-vending-machine-interface-2012-pdf-d323974851

      The big change that MDB brought about was in vending machine system architecture. It adds the ability to separate the credit system, change system, and vending system. The modularity brought about competition and innovation for new forms of payment systems.

      Even though 9600 baud is pitifully slow in relation to most data transmissions, moving to a higher speed bus just is not necessary. i.e. You cannot insert coins faster the data can be transferred.

      “Change is inevitable… except from a vending machine” – unknown.

  3. atoudam says:

    Having just completed this project for a client of mine (not bitcoin but another payment method) . it really did not need all this effort, as you can see above the MDB spec is online and a quick google search for mdb to rs232 will show http://www.upstatenetworks.com/ who already make all you need to convert mdb to rs232.

  4. Ginsublade says:

    “If its stupid but it works then its not stupid” thats awesome…never heard that one before…

  5. Ever ridden Greyhound? There’s a bus you don’t wanna sniff.

  6. justice099 says:

    What, no war about the use of buses vs. busses? Have the trolls given up?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 97,759 other followers