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.
http://www.vending.org/technical/MDB_3.0.pdf
Do you guys even look for the documentation first?
I used the 4.2 spec. Even.
Strange, why don’t vending machines use a more common protocol like SPI or even I2C?
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.
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.
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.
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.
$300 for that interface. {Dan} looks like he got out for under $50. While I would have skipped sniffing the bus for the protocol, I can’t say I wouldn’t have built my own gateway/interface.
I could have left out a lot of that code and just gone for my goal, but that doesn’t help anybody else.
“If its stupid but it works then its not stupid” thats awesome…never heard that one before…
Ever ridden Greyhound? There’s a bus you don’t wanna sniff.
What, no war about the use of buses vs. busses? Have the trolls given up?
Hi, please let me know. Which software i need to use to write donw program for Vending machine into MDB protocol?
THank you very much in advance.
Cinserely,
Sergey.