October
2005, Issue 183
The
Silicon Wallet
CY8C27443-Based
Data Manager
KEY
FEATURES
The
battery-operated Silicon Wallet has an alphanumeric
LCD. As you can see, the wallet doesn’t have a keyboard;
it has only a wheel peeping out on one side like the
volume controller in miniature radios (see Photo 1).
By turning the wheel (you can do it with one hand),
you enter a secret five-digit code—the only one you
have to remember from now on. It’s like having a safe
in your pocket. After it’s opened, you can use the wheel
to scroll through the information that’s inside it.
The
Silicon Wallet’s most amazing feature is the way you
enter new information. Instead of an awkward miniature
keyboard or uncomfortable input schemes, the input device
is a single phototransistor. How do you enter text using
a phototransistor? Well, recognizing that whenever I
get a new password I am also using a web browser, I
developed a JavaScript program capable of transforming
ASCII text into encoded light flashes and thus changing
the color of screen objects. I used this script to build
a nice web page displaying a keyboard (see Photo 2a).
Thus, to enter fresh data, just direct your web browser
to the keyboard page, place the Silicon Wallet on the
PC screen so that it can see the flashes, and click
the text you want to store (see Photo 2b). It’s that
easy!
|


(Click
here to enlarge)
|
Photo
2a—Take a look at the Silicon Wallet’s keyboard
as it appears on a web browser. A simple HTML/JavaScript
file that can be stored locally or included in a
web site generates it. The large white square is
where I place the device; it transmits keystrokes
by changes in color. b—Placing the Silicon Wallet
on the screen triggers a detector switch that sets
the device to Data Entry mode. When you click text
on the virtual keyboard, it materializes magically
on the LCD in real time. A software routine automatically
adjusts the sensitivity according to the screen
and ambient light. |
By
design, this wireless input technology requires only
a web browser. It works on any combination of platforms
and operating systems. Remarkably, it doesn’t require
you to install specialized software and drivers. On
the security side, the script encodes data on the fly,
one character at a time, with the intention of preventing
RAM and cache hacking. When it’s in the wallet, information
is stored in the processor’s on-chip flash memory, which
is hardware-protected from external reading. At last,
a fairly secure place for a password list!
In
the following sections, I’ll describe the Silicon Wallet’s
hardware and software. This inexpensive single-chip
project exploits both the analog and digital qualities
of the CY8C27443 microcontroller. I’ll describe how
I managed to adapt it to the different signals captured
from CRT and LCD monitors. As you’ll see, I added Hamming
error correction code (ECC) and designed the filters
in such a way to get rid of the noise coming from ambient
light and superposition of the video raster. I’ll also
cover the tricks to embedding a signal encoder in a
web page with a general-purpose language like JavaScript.
Finally,
I’ll show you how you can configure, enable, and program
a wide range of products (from toys and music players
to industrial timers) using nothing more than web pages
and an inexpensive light sensor. My intention is to
show you the potential of the underlying technology,
which, when considered as a more general mechanism capable
of transferring data from the web to electronic devices,
can inspire a whole class of cutting-edge products.