User Tools

Site Tools


Vending Machine Dreams

Turning a vending machine into a world-dominating robot.


Improve the vending machine to make it fit for the purpose of dispensing a range of goods (particularly popular electronics modules), accept other payment mechanisms and provide control / reporting over the Internet. Also, provide a group project for the Wednesday evening robotics (ENR) sessions.

Regarding bikeshedding … Experience suggests that just asking for ideas on the forum is a great way to get 400 people who never intend to visit the space arguing that it should be red, so let’s try to direct the conversation as much as possible. (Also, CLEARLY it needs to be “police box” BLUE;-)


Project Team

Project Lead/Champion: This Project needs a Champion! (May be this should be determined by the Project Members or as required?)

Project Members: This Project needs some Members! FIXME

  • Alec Clews : Software architecture/implementation (e.g. Receipts, swipe card reader, tidy club integration etc etc)
  • Andy Gelme : Firmware, networking, mischief
  • John Spencer: Hardware, General Arguing.
  • Tim Crawley: Hardware, Software and Rebuttal
  • Peter Shallue: Hardware

Background, Purpose and Objectives

What we currently know:

The existing system works.
The coin changer works.
You reprogram the prices using a button on the board
The compressor is broken and needs to be removed.
The dispensers work.
The dispensers and coin changer are 24v.
We have a manual (of sorts)
“Datasheet”(well thats what they call it):

What we know:

  1. The limit switch is in series with the motor but the NO and NC terminals are connected together, so the limit switch breaks the circuit only while it is changing. Note, the limit switch is a break before make type.
  2. Therefore, the control system will sense the drop in current as the cam changes the state of the limit switch and thus the radial distance the cam has travelled may be determined.
  3. If the control system can see the DC current it may also be used to check for over current. If it can only see an AC current it may use a similar method that is used in fans to check that the motor is rotating.
  4. Note: thanks Tim for drawing the circuit from the PCB. (a Kicad diagram is attached)

FIXME - This edit attempts to explain how the system works, but my understanding is limited so this may contain errors. Please rewrite this to better reflect how it ACTUALLY works.

What we want to sell:

A range of electronics from our favorite sponsors and resellers.
Members projects
Members excess stock of parts (and stuff)
Cables, usb sticks, neopixels, packets of M3 bolts and nuts

Sample list based on what's been popular with group orders
- Neopixel sticks of 8 (Adafruit)
- Micro Servos
- Right angle brackets for 20mm extruded tubes
- 12 or 16ch PWM servo driving boards
- Veroboard / experimenters board
- Debug/programming cables (ftdi-like)
- Pi Plate (display + buttons for Pi)
- WS2811 ics, short joinable strips of WS2812Bs
- Servo extension cables
- MicroSD cards w/SD adapter suitable for Pi, Beaglebone

CCHS “products”
- Learn to solder badge kit as used at fairs
- OpenBlink surface mount kit
- Blank kinsten pcbs

What we need the machine to do (Seriously, these are important):

Sell products (as obvious as it seems, it needs to be mentioned explicitly)
Be a tool that can be relied on, not just a project that is constantly being worked on
Record sales and stock control: Stock feeder status: Empty ? Quantity left ?
Not attempt to sell items that are out-of-stock
Set the prices for items
Support the coin changer, particularly for small value items.
Support more expensive items through either members swipe cards, single use codes, eftpos, TidyClub(preferred) or some other method.
Be well documented.
Dispense both large and small items.

What we would like the machine to do:

Replace the tube lighting with neopixels (Lachlan is already measuring it in his mind.)
Provide a secure way to monitor stock levels (possibly through tidyclub).
Provide receipts for purchases (some may be expensive and/or tax deductable)
Be modular enough that we can extend it later (maybe a credit card facility that loads up your tidyclub account/pays your membership fees/etc)
Be Open Source/Hardware so the whole world can tremble at our name.
Use a Raspberry Pi/Arduino/combination, guaranteeing our entry on Hackaday and makezine.

What we would like the machine to do (members ideas, add yours here):

Forced access and tilt alarm.
Large LCD display to show information on items being sold.
Sound system to promote sales and for fun.

VM Minimum Viable Product Specification:

The following document (see link) covers the requirement specifications as discussed Wed night (19/11/14).

The implementation details are up to those who have responsibility for that area (see above document).
Only where one part of an area interacts/impacts with another (ie an area that is the “Role/Responsibility” of someone else) is there a need for a mutual agreement (in writing) on the implementation.

The Coin Changer:

Is a “Cashflow 690”

Supports 3 different communication protocols, MDB, EXEC and BDV …
BDV is only used in German speaking countries
EXEC is a propriety Mars system.
MDB stands for “Multi Drop Bus” and has been an open standard since the 80’s

MDB links to using it with Arduino …

Project Plan


Task List, come and join in

Due to the lack of documentation we need to reverse engineering the current hardware.

Code Repos

Related Projects

project/cchs/vending_machine.txt · Last modified: 2015/11/05 10:14 by