Home $5K RTOS Bundle The Blunk Difference Contact Us Downloads

Blunk Microsystems

Example Web Enabled Device

Vending Machine that Dispenses DVDs of Movies

Think Out-of-the-Box

The benefits of web enabling a device are not always completely obvious. It is often difficult to think about things that were previously outside of the normal frame of reference. Given that web enabling allows order of magnitude improvements in user interfaces and remote access capabilities, out-of-the-box thinking is called for to figure out how to capitalize on this new functionality. To make this point, we will describe here a vending machine that is very different from any vending machine anyone has ever built. Different, in this case, is better, and it is all because the device is web enabled.

Exactly what does this Example Assume

Just to be clear, our web enabled vending machine incorporates an embedded web server and it is connected to the Internet. That is, the machine appears as a web site when its web address is supplied to any browser connected anywhere to the Internet. To keep this example pure, we do not presume that the machine itself contains a browser, so the actual hands-on physical interface to the machine is conventional. (It goes without saying that there would be a certain logic to providing access to the machine's website user interface on or near the machine itself, but for purposes of the example, we are leaving that aside.) Although not central to this example, it is probably useful to visualize the machine as having a flash file system holding the web content pages and the nonvolatile data associated with its operation. In this configuration, the machine would be diskless, contain a single board computer with a few megabytes of flash and network interface and be powered by some moderate-performance 32-bit processor. It would have an RTOS and a TCP/IP stack. Most all of these components are available off-the-shelf and would be inexpensive to build.

Machine Functionality Overview

What our web enabled vending machine dispenses is DVDs of movies for rental and sale. There are reasonably obvious advantages to using a vending machine for this purpose: 24 x 7 operation, the cost of labor is high compared to movie rental fees associated with video rental, and machines can be strategically placed for customer convenience in places where stores can not be located, such as inside college dormitories. We imagine that our machine uses a credit card for charges and to take deposits and that the DVDs are returned in some slot on the machine and automatically restocked at the end of the rental period. If the DVD was bought, not rented, or if it was not returned after a grace period and penalty period, the DVD is considered to have been sold and the customer is appropriately charged.

Web Interfaces

Our web enabled vending machine hosts three websites:

  • Customer Website, accessible to anyone
  • Owner's Website, accessible only to the owner of the machine
  • Facilities Website, access granted by the owner to authorized facilities managers

Before describing what each of these websites might offer, it is important to focus on a subtle, but very important property of web based user interfaces: pages can display content and have hotlinks that are associated with resources available anywhere on the Internet. Accessing these distributed resources is very easy for the interface designer via URLs and the mechanism is essentially transparent to the user of the website. In the discussion below, the functionality as it appears to the user is described, and the user perceives most all of this functionality to be inside the vending machine, but the implementation would be such that only those functionalities actually associated with the physical machine will be served from the machine's internal website. For example, information about in-stock DVDs and putting a title on hold would be implemented on the machine itself, but general information about a movie, such as its plot summary, would be served from some conventional and presumably shared web server.

Customer Website

The customer website has a user friendly interface that provides the following functionality (it is not too hard to picture the actual "website like" graphics and this is left to the reader's imagination).  Remember, this interface is available to the customer remotely; picture the customer sitting at home.  Before going to the vending machine, the customer wants to browse the available titles and know that the desired movie will be in the machine when they get there.

Web Available Functionality:

Display list of movies the machine carries (for example, by alphabetic pick list). For each movie, display plot summary, actors, etc. and whether the movie is in-stock or out-of-stock.
Display list of movies in-stock at the moment (as above, but limited to only in-stock movies).
Display list of newly available movies, and a list of movies soon to be stocked in the machine.
Look-up movie by actor, director, most popular recently, etc.
Reserve a movie: takes a credit card number and holds an in-stock movie for the customer for 24 hours. Customer picks up the movie within the 24 hour period and has the remainder of the 24 hours to return it.
Waitlist a movie: takes a credit card and an email address and holds an out-of-stock movie once it comes in for 24 hours. Sends an email to the customer notifying them that the movie is available in the machine and on hold for them.
Request that the machine be stocked with a particular movie (posts this request for the machine's owner). Can provide email to the customer when the request has been satisfied.
Ask machine for its location, including map.
Ask machine for the location of another machine that is close by, (owned by the same owner!) that carries a particular movie. Hotlinks to that machine's website.

Given the ease with which web enabled devices can support sophisticated user interfaces that are straight-forward to use, the customer website can be enhanced with all kinds of additional functionality. For example, the customer can have an "account" on the machine (actually an account with the owner of the machine that covers all of his units, a good example of a function not actually on the vending machine itself) that remembers credit card information and rental history. This enables "every tenth movie free" functionality and would allow the machine to suggest a list of titles that are derived from a search based on the "people who rented what you rented also liked" criteria. Customers could store a reminder list of films they might like to rent in the future. The system could support communication among users whereby one customer could post a recommendation for someone else. Customers could post their own movie reviews. There is literally no end to what could be offered to customers and web enabling the device opens up all these possibilities.

Owner's Website

The owner's website is all business, but that does not mean that it isn't easy to use.  Keep in mind that the owner sees this interface remotely.  The advantage to remote access is as a substitute for costly actual visits to the machine and to make the necessary visits more efficient.  Not only does web enabling the machine provide the advantage of remote access, but it has allowed the relatively easy implementation of a much more elaborate and valuable interface to the machine than would have been cost effective using other means.

Web Available Functionality:

Check on the status of the machine, such as what movies are now out-of-stock, presumably because they have been bought, which are currently out as rentals, usage statistics, remote test, etc. We leave these details to you to imagine. It is clear that the owner will be able to increase the efficiency of servicing the machine if at any time it is possible to know remotely whether a visit to the machine is warranted and what to bring along for the visit.
Obtain the list of titles requested by customers and their frequency.
Obtain information about referrals this machine has made to other machines.
Given that it is not uncommon for vending machines to have owners who hire technicians to service their machines, the owner may never actually visit a machine. Given that technicians come and go, our web enabled vending machine has been equipped with a security access code that needs to be entered to physically open it up. The owner can change this code remotely at any time to control access to the inside of the machine.
Although we hadn't mentioned it earlier, it turns out that our vending machine has a display screen on it to show advertising content. Normally the owner uses that screen to hawk the machine's movies, but on occasion he sells that space to other companies to hawk candy or popcorn or he uses that space for a timely announcement such as the date on which he plans to stock the machine with a particular title. The owner's web interface allows him to remotely download the content of the display screen so that it can be nimbly managed.
In conjunction with the display screen, the owner may want to offer promotional pricing to encourage, for example, the sale of a title that is going stale for rental. From the owner's website, it is possible to change the pricing of items in the machine. By doing this before a site visit, it may be possible to clear out the title before sending someone to restock the machine.
Finally, given that the machine presents its user interfaces by serving web content out of its file system, the owner can remotely upload revisions to the user interfaces, or completely new user interfaces at any time.
Facilities Website

What is anticipated here is something like a hotel front desk interface to assist guests at the hotel who might not have Internet access. Without describing all the details, imagine an interface that a skilled operator would find more efficient than the Customer Website, but providing similar functionality. Remember, once the machine is web enabled, this is just a few more HTML pages and it opens up an entire additional space of placements for the machines.

The "Coolness" Factor

Aside from the impressive array of functions and capabilities described above for our web enabled DVD vending machine, there is also an advantage to this approach at an entirely different level. For the foreseeable future, until web enabling is as common as television remote control clickers, web enabling will create product uniqueness. The fact is that customers will actually want to deal with such devices and they will find them to be fun to operate. There is a value simply in the distinctiveness imparted using this approach and the high tech shine acquired by the web enabled device.


Web enabling devices is an extremely powerful way to enhance their operational functionality for two reasons: (1) it is much easier to implement vastly more sophisticated user interfaces using the website paradigm than with conventional implementation methods, and (2) remote access via the Internet is automatic. Described above are just some ideas on leveraging the power of web enabling as applied to something as mundane as a vending machine.  Dare to think out-of-the-box about your embedded application and see if web enabling your device doesn't open up a world of possibilities for you.