You are welcome to contact me about this project but I won't be moving forward on it. I was ripped off by the company that promised to sell my vending machine on consignment; I no longer have access to the hardware. I have moved on to bigger and better things. Getting me a machine and some testing hardware will not be enough - no two VM makers follow the MDB protocol the same way, the edge cases are painful. Good luck with your project!
Modern vending machines voluntarily adhere to the NAMA standard for Multidrop Bus (MDB). If these steps are correctly duplicated then this will output to the Arduino serial window a human-readable interpretation of the conversation taking place inside the vending machine between the various peripherals and the VMC.
Many people want to create devices that "speak" MDB and can interact with a vending machine. Some examples include adding an RFID reader, Accepting payment with BitCoin, touch screens, and discount for secret knock.
This code is meant to be Arduino firmware. It assumes that the vending machine components adhere to the MDB 4.2 standard. There are three required components:
- A physical circuit you will have to build/source. Section 4.4 of the standard describe the circuit. An example schematic from the Nottingham Hackspace Wiki has been included in this distro.
- Arduino #1 runs "near_MDB" firmware. A1 connects to the physical circuit through the hardware serial. This means the hardware serial is not avilable to output data to a PC.
- Arduino #2 runs "near_PC" firmware. A2 connects to your PC through a USB cable. A2 pin 10 connects to A1 pin 11. A2 pin 11 connects to A1 pin 10.
Don't forget the common ground between A1 and A2.
Created by Dan Royer (dan@marginallyclever.com) for the vending machine at the Vancouver Hackspace April 16, 2014.
"If I have seen further it is by standing on the shoulders of giants." -- Isaac Newton
Based on previous work from Nottingham Hackspace members James Hayward and Matt Lloyd.