Meet Suzy. Suzy is an authentic late-1800s telegraph, attached to a USB port with the aid of an ATTINY2313 microcontroller and the magical FT232. Among other functions, Suzy serves as my alarm clock (I rise to "Wake up!! Wake up!!! Wake..." in Morse code each morning) and as a Nagios alert destination for the various systems in the bus. Below Suzy is a touchscreen attached to a Gumstix Verdex Pro, which is the human interface to the bus control systems. In the pictures at right the touch screen is sitting in its frame, not yet permanently attached.
Suzy was inspired by Jake von Slatt's home-made telegraph sounder. Rather than building the telegraph itself from scratch, I purchased an antique telegraph and built the electronics to run it. It was an excuse to cut my teeth on microcontroller programming before moving on to more sophisticated projects like the ethernet-enabled sensor control board. I figured it would be a little more interesting and useful than a LED flasher.
The circuit is about as simple as can be. A FT232 USB-to-serial converter attaches to the serial port on an ATTINY2313 microcontroller. The microcontroller reads characters from the UART, echoing each back over the serial port as it is clacked out on the telegraph. I use hardware flow control since the microcontroller has very limited RAM to use as buffer space. One of the microcontroller GPIO lines drives a MOSFET (with catch diode) which is attached to the sounder coil. All power is provided by the 5V lines from the USB host.
The microcontroller code (attached) is written for AVR Libc; the Perl script uses Net::SMTP::Server to accept mail and write select headers to the telegraph. Yes, my telegraph has a public email address. No, I won't tell what.