Emersons Green
South Gloucestershire
BS16 7GA
United Kingdom
Smart Router
One element of our work with vending machines was the realisation of how poor in general M2M communication is for remote equipment. Good communication is vital to be able to check stock, to handle credit card transactions, to monitor the health of the machine and to be able to provide updates of software, product images and prices. In addition, a lot of our machines contain a large 48″ plasma screen which we use to display adverts; adverts for the stock in the machine or just general adverts. This set of adverts needed to be changed, updated and rotated, to keep interest alive, and also to keep the owner of the advert happy.
We use 3G modems to provide the communications link for the machine. The display system uses a Linux based PC and its own 3G modem. And we noticed that a lot of the places we site machines provide public wifi – railway stations and airports increasingly provide free wifi or perhaps subscription wifi such as ‘The Cloud’.
An ideal solution seems to be one that would provide a 3G router which would allow all of our supplied equipment to use a single 3G link. And indeed would allow us to group together a number of vending machines and use a single access point. The same unit should also be capable of using wifi if that were available or Ethernet if that was available, although we’ve found that is rare.
We designed a complete system, based on Digi’s ConnectCore modules, which run Embedded Linux. This was designed to remain connected at all times, using the best way to route to the Internet, preferring wifi over 3G for example. It would use 3G as the last resort. We provided a number of Ethernet ports to allow switching between different vending machines. The board also includes a number of extra features specific to our vending machine design, allowing us to integrate a number of features into a single design.
In practise, this works extremely well. We have a fast, reliable link; we provide our own access channel using SSL, allowing us access at all times to the entire network within a machine or a group of machines. The major difficulty we’ve found, particularly at railway stations, is inadequate bandwidth. During the rush hour periods, the number of mobile phones arriving and departing causes congestion on the wifi network but also overloads the 3G network. We find that we lose connectivity during these periods and it doesn’t help to switch to 3G from wifi because the 3G is as congested as wifi.
The solution we are currently exploring is expensive but likely to be successful; we have 3G SIMs which guarantee us at all times a fixed part of the 3G network.
Vending Machine Software
Vending machines are classic products for developers in the real-time world. They combine control of hardware in the motors that drive the product; they include simple user interfaces that are designed to be simple to use and readily understood, with a degree of remoteness.
To this mix, we added support for Chip and PIN, accepting payment from credit cards. The products are tending to be high value items, not the 50p cup of coffee or bar of chocolate. One of the first examples is the MyMemory machines, a typical example of which is installed in the Departure lounge at Gatwick Airport. As you are about to leave for your holiday, you realise that you need an additional memory card for your digital camera or mobile phone. This machine vends the most popular items from MyMemory’s huge range of products. (see MyMemory.co.uk)
Selection
This machine has now been enhanced to include what is effectively an expert system. You provide details of the device that you want to buy memory for and the software provides you a number of suggestions, based on the memory devices that are available in the machine. If the machine is out of stock on an item, then it won’t offer you that item. The user interface is based on a touchscreen, so you control the machine through touch.
Telemetry
We have provided a simple add-on solution for a vending machine to add telemetry. We return data about the machine, such as stock situation, faults in the machine, need for maintenance etc. This returns an email to a defined email address with all of that information. In addition, we can send email alerts, for events such as low-stock, jammed produce etc. We work with vendpay.net, maintained by K6, and data is analysed with results displayed through a web interface.
Hardware
Another successful Vending machine project is a range of cigarette vending machines. These are modern, attractive and quite stunning machines because they look futuristic, and make effective use of materials such as stainless steel and glass. These machines are installed in places like the Roof Gardens, in Kensington.
The machine uses Chip’n’PIN to handle credit card transactions, communicating over the mobile phone network to approve a transaction. A card reader and PIN card is included inside the machine.
Design
The machine was designed by K6 Design group (K6 Design). They are skilled mechanical designers and also did much of the design for the electronics. We helped with some of the electronic hardware and wrote all of the software.
Control
The machine uses a LCD to provide feedback to the user. This, and the selection buttons, are actually located along the edge of the machine. Produce is dispensed through the glass door shown at the bottom of the picture above. LED lighting is used throughout the machine to provide the halo effect visible in the picture above, and also to light key areas of the machine. The effect is subtle and quite satisfying.
Vending Machine Hardware
Vending motor control
VMC (Vending Motor Control) is a board to control the internal operations of a vending machine. We developed a VMC board to control 24V motors to vend product. The board is effectively in two halves – one processor to drive the selected motor channel and a second processor to drive lamps and to accept commands from the vending machine control software. The two processors communicate using SPI, with the second processor designated as the master.
This design approach was important. It allowed us to separate out functionality, providing a dedicated controller for running the motor and monitoring its operation. This was a simple processor, so there was no additional cost to the approach but it provided a better partitioning of the work. The master processor handles the rest of the hardware in the vending machine, providing feedback through LEDs, monitoring delivery of the product and communicating with the vending machine control software.
The vending machine control software provides the user interface and the credit card payment scheme. It decides when payment has been accepted and which motor needs to be activated. The command is passed over a USB interface to the VMC and the motor control processor starts and monitors the motor until delivery is complete.
The two processors were part of the AVR family from Atmel and were programmed in C. We designed the hardware and wrote the firmware to control both processors.
Duty free control
We developed a different VMC board for a different application. Duty free shops in Ireland changed over last summer to stop advertising cigarette cartons to duty-free customers. In conjunction with Nuttalls and K6 Design Group, we designed a VMC board to control up to eleven motors to vend cartons from a bespoke machine designed by K6. Again, this used an AVR micro-controller and the software as developed in C. The board can drive and monitor up to 4 motors simultaneously and is able to detect a blockage so as to reverse the motor away from damage.
The motors are linear actuators with override switches at the end of the travel. In the software, we provided extensive diagnostic capabilities, using a couple of LEDs per channel to provide status information at the different stages of the delivery process. During startup, the board auto-configures, detecting which channels have motors connected, allowing for flexibility during installation.
Sorry, no records were found. Please adjust your search criteria and try again.
Sorry, unable to load the Maps API.