[Opendispense] UI design

Bernard Blackham bernard@blackham.com.au
Thu Aug 7 15:11:17 2003

On Thu, Aug 07, 2003 at 09:22:47PM +0800, Nick Bannon wrote:
> > Here's a brain dump of my plans for the UI. Please rip it to pieces.  :)
> Well, there is a risk that we're UI overloading the poor little keypad
> and display... I wonder about a flexible keyboard, or capacitive
> sensors behind the glass, or... Still, in the meantime what we've got
> is what we've got. ::-)

Not overloading. Consider it maximising its utility :)

> Unused selection prefixes include 00, 22, 55, 88, 99. 00<slotnumber>
> sounds good for drinks - 000, 001, 002, 003, 004, 005 and the quad slot
> 006. 007 as a synonym for the quad slot (coke!) sounds good.

All of row 5 is available. The original ROM has what seems like a
"is valid slot" function which returns invalid slots numbers. And
given there's only 40 dispensable items in the vending machine and
it supports at most 80, it still does leave a large selection of
double digit items.

> (There's some potential inconsistency here. You could number the slots
> 1-7 which would make 007 come naturally and leave 000 free. The coke
> brain firmware, and dispense, calls them 0-6. The sticker inside the
> drink machine calls them 7-1. (ie 1 is the quad slot) Hmmm. )

I was thinking of assigning them 50 - 56. But always changable.

> >   - 5-digit UID entered:
> >     - Say "Welcome <username>. Enter PIN."
> >       Verify PIN number.
> Perhaps that needn't be necessary for adding money to an account.

Complicates the UI, but feasible. :)

> We may not want to allow withdrawls, this should perhaps be a
> deprecated, manual action by a cashbox keyholder in all cases. We have
> given people credit on occasion that we'd prefer the didn't withdraw in
> cash and there is of course the chance someone could find a bug or
> vulnerability and fill up their account.

Hmmmm, if we limit withdrawls to $1 a time, and at most $3 a day (or
something) I think it's convenience would outweight the security

> [...]
> > And return to the main menu after any of these operations (so people
> > with have to authenticate several times to do multiple
> > transactions) - bad thing?
> [...]
> "Press 1 to follow-on . . . <timeout>"?

I plan to make it so that pressing Reset twice, no matter where you
are in the menu, will log you out - I think people will catch on. In
addition to having a 20s timeout.

> I think a flowchart for documentation and a foolproof, bug-free, state
> machine is called for. Naturally, you shouldn't listen to anyone (e.g.
> me ::-) ) who seems to want to make it _more_ complex.

Well if it does what people would intuitively expect it to do then
complex shouldn't be a problem.

What I am rethinking though, is taking wimpier ways out - to allow
the interface to be as flexible as possible, make the vending
machine as dumb as possible (just a display, keypad, set of motors
and coin mech), and have the interface driven from mermaid. Hence
keypresses would travel to mermaid and display updates back to the
machine. It might seem a little laggy even over a 9600bps link, but
this way we only need to flash the ROM as few times as possible.

Though I know Harry probably won't like this suggestion :)


 Bernard Blackham 
 bernard at blackham dot com dot au