I was thinking of the following input scheme:
- rotate in any direction to get the first letter/digit,
- rotate in the opposite direction for the second,
- change direction again for the third, etc.
- to delete one letter, press the center button, after which
  you turn in the direction you want.
- waiting 0.5 s (or similar) ends input and starts validation.

The display would show the current letter/digit plus briefly
the last one, so one could be sure that the button press didn't
alter it.

I'm tempted to do this in javascript to see how it works :P
 

The display has room for about three lines of reasonably large
text (~12 pt, bold and illuminated). During code entry, one line
could show the alphabet in a tiny (4 pixels wide) font. That
would be hard to read but all you really need to see is the
rough shape of letter. There would also be room for making some
of the letters a little larger.

To clarify, it would be something like following, no?

 



> 4. If you leave the device on without interaction for more than 2 mins
> (e.g), the screen will be powered off and the cpu will go to deep sleep.

I'm thinking of the following states (among other, more specialized
ones):

- off: minimum power consumption, password safe is locked,
  pressing the button a brief moment (longer than just hitting it,
  to reduce accidental activation), turn on and show the PIN
  dialog.

- standby: display is off, LED is lit (possibly via PWM, to save
  power), password safe is open.  Switches to "off" after a while
  or when turning the wheel. Goes to "open" when pressing the button.

- PIN dialog: as described above. With automatic return to "off" if
  left idle for more than a couple of seconds.

- open: display is on, password safe is open. Goes to "standby" if
  idle for a while.


It doesn't have sense to have a off status if you can poweroff the device with a button, no?