What's an AlphaSmart??The AlphaSmart was a brand of portable word-processing devices in the 90s and 00s. They were designed and sold by a company founded by former Apple engineers. They were popular with schools because of their simplicity, durability, and battery life as a low-cost writing tool for students. The AlphaSmart 3000 was the 4th model released, and the last one, the Neo, was discontinued in 2013. They can be found on eBay for about $20, and have a cult following, especially among writers who want something portable and distraction-free. Further reading:
1The IdeaIf the AlphaSmart has one fatal flaw, it's the keyboard. Today, if you wanted to put a low-profile keyboard in a portable device, you'd use scissor switches. But in 2000, when the AS3000 was released, the solution was really flat, really bad rubber domes. The little domes themselves have these long, narrow nipples that come up to meet the keycaps, so in effect it's like the keys are being depressed onto a rubber slider, creating probably the most squishy and insubstantial keyfeel of any keyboard this side of the ZX Spectrum. I had previously purchased an AS3000 for about US$5 at a thrift store which I loved, and I felt I could fix this problem by replacing the rubber domes with mechanical switches.
I didn't know how I'd do it when I first had the idea, but I opened it up and found the keyboard is a separate board connected to the main board via two FPCs, so all I needed to do was recreate the matrix on a PCB and connect it with flex cables. What follows is a description of this process, as well as the mistakes made along the way.
The DesignFirst I decided on a layout. The AlphaSmart uses standard key sizes for most of the keys, except the top row of keys, which are 0.85U, and the arrow keys, which are 0.92U by 0.66U. I reduced the spacebar and rearranged the keys to make everything fit, and ended up with this layout
The keyboard itself is a tight sandwich of plastic affixed to an aluminum plate, and to get to the key matrix, I'd have to cut into the plastic. I purchased a sacrificial liquid-damaged AlphaSmart on eBay and and set about disassembling the keyboard with a pair of flush cutters. I was left with the two layers of FPC that the matrix was printed on, and so began mapping it out in a spreadsheet. This is the result, with 16 lines on the bottom layer and 10 on the top layer (one of which is unused)
Finally I measured the board and traced it on a large piece of graph paper with notes and measurements. I'm no draftsman, and the resulting diagram was pretty muddled. The measurements, however, ended up being surprisingly accurate.
I designed the PCB in KiCAD. This was my first time using KiCAD or any EDA software. I found it surprisingly straightforward and accessible, but also like most open-source software, possibly designed for use by aliens. I never figured out how to use the push-and-shove router efficiently, so the traces are routed by hand, and in some cases look like they were routed by a crazy person. The results are linked towards the bottom of this post. The cheapest fabrication service I could find was EasyEDA for a minimum of 5 PCBs. I ordered those, as well as the switches, caps, and various other components (see below). The switches and caps came from KBDFans, everything else came from Mouser. I briefly considered trying to find some of those Kailh low-profile switches to preserve the device's size, but decided there wasn't enough information on them available and went with Gateron blues instead, which increase the keyboard's height by about a centimeter.
Building ItWhen everything had arrived, I tested how the PCB fit in the case. To my surprise and delight, all the screw holes lined up and all the keys produced the right signal when shorted. The only problem was a plastic standoff from the top half of the case that I had failed to account for slightly intersected with the top edge of the board and made it impossible to close the case.
I considered fixing my design and ordering more PCBs because I wanted the keyboard to fit perfectly in the place of the old keyboard, but I decided it would be cheaper and easier to just cut away the obstructing plastic. I did this by heating a dollar store hobby knife with a lighter so it cut the plastic like butter. This is not a good idea at all, but it worked. Then I placed and soldered the connectors and switches, and assembled and attached the stabilizers.
After carefully connecting the flex cables, screwing it all together, and placing the keycaps, I finally had a fully working machine! It produces predictably loud
tock tock tock noises, and is an enormous improvement over the previous keys. Here I'm comparing it to the old keyboard and working on my 3rd grade book report on
Island of the Blue Dolphins.
The Files, and RevBAfter finishing this mod, I made a revised version of the PCB. It has these major differences:
- Sharp corners have been smoothed and case standoffs which were previously misplaced have been moved to their correct location, although they did not make a significant difference
- Space was made for the top standoff and the board should now fit in unmodified cases.
- Added a feature that only occurred to me after ordering the PCBs. A common criticism of the AlphaSmart 3000 is that it's too easy to accidentally hit the power key, especially in transportation or storage. To help with this I moved the key over to make room for a DIP switch that allows for "locking" the power key. Note that this has the effect of making the power key 1U instead of 1.25U. If one wishes to forgo this feature, one can simply jump the pads.
Here are the KiCAD and Gerber files for the PCB. Because of the mistakes in the first version that were corrected in the second,
I strongly recommend against using the first design. Use revB instead.The parts needed to build this mod are:
- An AlphaSmart 3000
- 80x MX-compatible PCB-mounted switches
- Keycaps, probably any unsculpted, fullsize set
- 3x 2U Cherry stabilizer kits
- 1x Molex 15167-0311 16-contact FFC or equivalent (Mouser: 538-15167-0311)
- 1x Molex 15167-0245 10-contact FFC or equivalent (Mouser: 538-15167-0245)
- 1x FCI SLW16R-1C7LF 16-pin FFC connector or equivalent (Mouser: 649-SLW16R-1C7LF)
- 1x FCI HLW10R-2C7LF 10-pin FFC connector or equivalent (Mouser: 649-HLW10R-2C7LF)
- Optionally 1x 1-position SPST DIP switch 611-BD01 seems to work, although I haven't tried it. Confirm that the keycaps don't bump against the switch. If you prefer, use a jumper wire instead.