How it Works
Functional Description:
The USB Typewriter consists of three main components: the Sensor Board, the USB Interface Board, and the Reed Switches.
- The Sensor Board is a long strip of flexible of metal contacts which clip easily underneath the keys of the typewriter. A phalanx of shift registers on this board forms a "bucket brigade," passing bits down the row so that 45 or so keys can be reduced to just 4 wires (2 signal wires and 2 power wires). See the animation below for an illustration of how it works.
- The USB Interface Board features an Atmega168P microcontroller chip (ie an Arduino chip), a USB Type B socket, and some supporting components (power supply, crystal oscillator, and USB voltage conversion). It controls the operation of the Sensor Board, and sends keystrokes to the host computer over USB. The Atmega168P chip comes pre-programmed to accomplish all of these tasks.
- The Reed Switches: Because the Sensor Board only detects keys that strike the crossbar, several important keys go undetected. These include Shift, Space, and Return. To deal with those keys, the Interface Board has additional inputs for reed switches, which are tiny switches that close when in the presence of a magnet. Generally, I find that it is enough to install reed switch next to the shift key, the spacebar, and on the return carriage lever (to sense a "return" or "enter" command), although up to 8 reed switches can be placed near various keys in this way.
- The Wires: Contrary to what you might expect, the USB Typewriter does not require much wiring. Only 9 individual wires must be run underneath the chassis of the typewriter, and an additional 2 wires must run out to the return carriage lever. This makes the USB Typewriter mod easy to install, and hard to break.
Cad Files, Schematics, and Software for these boards are available on the Design Files page.
How the Electronics Work:
The shift registers are positioned such that their output pins/contacts are directly underneath the keys of the typewriter (but not touching them). By default, these pins output 0V. However, under the microcontroller's control, a 5V pulse moves sequentially from one shift register pin to the next, very quickly. When the typewriter key is first depressed onto one of these contacts, this 5V pulse will travel down the row of shift registers, then, when it reaches the key that has been depressed, it will shoot through the metal key, into the chassis of the typewriter, and then through a wire into an input of the microcontroller. Because the 5V pulse is only present on one shift register pin at a time, and because the microcontroller knows which pin this is at all times, the microcontroller can deduce which key has been pressed upon receiving a 5V pulse back at its input.
Licenses and Trademarks
The USB Typewriter™ design is distributed under the Creative Commons Attribution-Share Alike License. All design documents used in making USB Typewriter hardware and software can be found on this website. The software design is based on the open source Arduino microcontroller platform, and can be customized and modified using the Arduino IDE. It also makes use of the ArduinoUSB Project developed by RancidBacon.com.


June 14th, 2010 - 17:43
A great project. Just curious – have you looked at the Teensy uController board? It is nice and small, can be programmed with Arduino/Processing or C, and can emulate a keyboard out of the box… it would likely be small enough to hide inside most typewriters, so there’d only be a usb extension cord hanging out the back to plug into.
June 14th, 2010 - 20:41
Outstanding idea! Well done.
I have blogged it here.
June 15th, 2010 - 04:59
That is a cool board there. Actually, I just made my own Arduino-type board from scratch. I’ll post the design files soon, and then you can see what I did to make a custom USB microcontroller board. Its based on the Arduino Diecimila and this design: http://www.practicalarduino.com/projects/virtual-usb-keyboard
June 15th, 2010 - 21:55
An USB “type writer”? How is this different from an USB *keyboard*? so much for re-inventing the wheel…
June 17th, 2010 - 13:46
Since different typewriters have different layouts, I assume there’s a way to program each key (and each shifted key) with the symbol on the key. But what about double shift? There are some typewriters that have double-shifts, three characters per metal key. The first shift gives a capitol letter, while the second, higher, shift gives a symbol. They’re cool typewriters, since they allow >=26 different symbols. I’m just curious if there’s a way to program that activity into the USB controller. Thanks!
June 17th, 2010 - 15:01
This is fantastic. Really great idea for those of us who are modern retro fans. Love it!
June 17th, 2010 - 15:12
Absolutely terrific! Some may not see the difference between a USB keyboard but this gives society to reuse old technology which creates less waste.
Question. How is it in handling the iPhone and iPod Touch devices?
June 17th, 2010 - 17:06
Vlad…you don’t get this do you? It’s *not* meant to be an improvement. It’s meant to tie the past to the present and future. Its a ‘retro’ thing.
It’s ‘Film Noir’….with a flickering monitor casting a pool of green light in a darkened room over the PI’s face and his 2 finger pecking on his Corona as he tracks down Mr. Big’s whereabouts on the Internet while his lit cigarette, joining others in an overburdened ashtray dies a slow burning death; a fate soon to be his had he had foreknowledge or actually took heed of what his Psychic had said yesterday instead of brushing her off as yet just another Loonie who had escaped the Funny Farm.
June 19th, 2010 - 13:33
Thats an interesting idea. I haven’t had any double-shift typewriters come in to my shop. However the next revision of the firmware will unlock a double shift feature, where the keyboard can access non-alphanumeric characters.
July 5th, 2010 - 09:25
This idea occurred to me a while back, and I’m glad to see that someone has worked out how to do it. Why?
The ergonomics of the manual typewriter (more force needed, larger excursion of the key, just to name a few) are such that maximum typing speed is only obtained with good posture and good technique, and which involves much more of the kinetic chain of the upper body than does the average electronic keyboard. Try slumping and just using finger motions to type on a manual. It ain’t gonna to work real well. The combination of factors in manual typing lowers the chances of repetitive strain injury.
July 26th, 2010 - 22:50
Aha! The perfect keyboard for my mother, who insists on pressing the keys on her keyboard as if it were our old Underwood. This leads to double key presses, making passwords especially hard to enter. Hey, she learned to (touch) type almost 75 years ago, so she needs some slack. Old habits die hard, you know.