Vending Machine

From Nottinghack Wiki
Revision as of 12:52, 3 August 2011 by Lwk (talk | contribs) (Created page with "Thanks to pledges from our members we able to acquire a second hand vending machine. {{#widget:Flickr gallery|mode=photoset|id=72157627110141481}} ===Quick details=== * Westoma...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Thanks to pledges from our members we able to acquire a second hand vending machine.

Error in widget Flickr gallery: Unable to load template 'wiki:Flickr gallery'

Quick details

  • Westomatic
  • 6 shelves, 31 vent slots
  • Missing the coin mech, about £100 off eBay to replace
  • Missing lock, £12 off eBay
  • Seller said there was an issue with the refrigeration unit, something about a probe (possible temperature probe --'RepRap' Matt)
  • MCU is a MC68HC11E1CFN2 ('RepRap' Matt I have a few 68HC11E1CFN3's of we ever wanted to swap out for our own logic)
  • All Coin mech's use a common protocol called the Mulit-Drop Bus, pdf of this here
    • Adding RFID payment using same members cards as use for GateKeeper
    • This is made very easy due to the MDB spec
  • Looks like firmware might be stores on the UV erasable EPROM chip next to the MCU

MDB/ICP protocol

The Multi-Drop Bus/Internal Communications Protocol is a voluntary standard for vending machine communication. This is a serial bus interface working at 9600baud in a master-slave arrangement, where the vending machine controller is the master.Each peripheral is assigned a unique address and command set.

MDB has support for the following devices:-

  • Coin Changer
  • Bill Validator
  • Cashless devices
  • Communications Gateway
  • Universal Satellite Device
  • Coin Hopper or Tube Dispenser

In order to operate the serial line as a bus with multiple devices attached MDB uses a 9bit serial over the traditional 8bit, 9n1 vs 8n1 The master Poll's each device for activity, all communication sessions are initiated by the master addressing a slave, slaves are only allowed to respond when addressed, this prevents bus collisions.

The master indicates an address byte/start of session by setting the 9th bit, the correct slave responds as needed and on sending it's last byte it also sets the 9th bit to indicated end of it's session (although the master will ACK this)