This is a project I've been occasionally working on since 1998.
I have had a simple 8-LED CPU meter for years.
Since my time as an undergrad I've been planning a fancier,
alphanumeric replacement. Thirteen years later, after a few abandoned
attempts, I finally have a finished version.
Hardware
The meter has six 14-segment Alphanumeric digits,
two 10-segment bar graphs, 12 additional red LEDs, and
6 colorful LEDs (ROYGBV).
The display is driven by 4 SAA1064 LED driver chips hanging off of
an i2c bus. Currently this is driven by Linux from the parallel port;
I hope to create a USB version at some point.
The hardware to make this ends up costing ~$100 or so, although that
involves buying some of the parts in bulk and already having some of
the extra tools.
The geda source for the circuit boards is included with the source code
download.
You can run the examples even without the hardware. The source code
will build versions that display ANSI color ASCII art output. This
allows testing of display routines w/o having hardware available.
Featured examples
CPU Meter -- bar graphs show odd/even CPU usage,
text display of total CPU percentage,
random and cylon/knight-rider
usage speed on remaining LEDs
Clock -- shows time, day of week, and 32-bit UNIX time (latter in
binary). Also occasionally shows day/month/year.
Music Visualizer -- shows left/right VU bargraphs, as well
as text of what song is playing.
Scrolling Text -- list arbitrary text files to the display.
Enemy Attack -- demo for using the meter as an auxiliary
display for a video game.
Movie of Meter in Action
Original Meter Running Demos:
Prototype USB Meter Running Space Battle Simulator:
Construction Pictures
Prototype USB version, with the USB circuitry on a perf board
where the parallel port usually would be (again, apologies
for fuzziness):
Proof of concept of USB support, showing "HI". An attiny
on the breadboard is acting as the usb->i2c bridge:
Finished parallel-port meter running CPU-meter software with linux-kernel
"make -j1". It's a dual core
machine, so total CPU is 50% with one CPU maxed out and one idle.
Finished meter running clock software. Day of the week is indicated
by color LEDs (it's Sunday so none lit). 32-bit UNIX time is shown
around the edge via bargraphs. Occasionally day/month/year is shown
on display. Both red/green and green/red display options shown.
The finished project, cover removed (I apologize for the fuzzy
pictures):
A view showing the various hacks needed to make it work. Most
were due to me not realizing that most chips/connectors overhang
the sockets on either side, necessitating lofting of some
of the sockets.