I found this Siemens PC16-11 keyboard at a flea market. I had been searching for a Siemens keyboard for quite some time because I like their funky keycaps and overall aesthetics. Finally, I stumbled upon one. Here's how it looked when I first brought it home:
It was a bit dirty but otherwise in good condition, with no missing keycaps! The first thing I did when I got home was disassemble the keyboard to take a look inside:
Everything looked good! Fortunately, there were no obvious signs of damage. The most interesting part of the circuitry is definitely the upper-left corner. Notable components include the Intel 8031 micro controller (1), a 2732 EPROM (2), and, most intriguingly, a beeper speaker (3):
Another highlight for me were the switches, the original Siemens STB 11 switches. Chyros did a review on their (seemingly disappointing) successors, but I couldn’t find much information on these earlier models:
I really wanted to use this keyboard with a modern computer, but it uses a proprietary connector and protocol, so reverse-engineering seemed inevitable. I had previously done an internal conversion on a keyboard of similar vintage, but this time, I wanted to try an external conversion, leaving the original keyboard functionality intact. This approach meant that I would have to reverse-engineer the entire protocol, which would probably be a more extensive project in comparison. However, before making any assumptions I thought I’d start by looking for the original PC16-11 manual. Perhaps someone had scanned it, and it might contain useful information for the project.
To my surprise, I found that someone had indeed scanned the entire manual and uploaded it for archival purposes. A huge thank you to that kind soul! The 250-page manual (written in German) detailed the workings of the entire system, including how it communicates with the keyboard:
The manual revealed that the keyboard communicates with the computer via a unidirectional serial protocol on Pin 11. It also outlined how the protocol worked: the keyboard simply sends a keycode to the computer with each keypress, and that’s it:
Armed with this valuable information, building the hardware for the converter became much easier. Within hours of receiving the parts, I had a working prototype:
The only thing I changed from the schematic was adding a 2.2 kOhm resistor between pin 4 and ground, since we don't need the -RxD signal. Finalizing the software took a bit longer, as I had to account for various edge cases when mapping the keycodes to actual keys. Fortunately, the excellent TMK Keyboard Firmware Core Library made this process much smoother. After working on it for about five evenings, I had a working converter. The source code is available here for anyone interested. The repository also includes a dump of the EPROM for archival purposes. After a thorough cleaning, here's a typing demo with and without the buzzer:
I was really surprised by the switches. They’re tactile, which explains why the buzzer was necessary to reintroduce the noise level people were used to at the time. The tactile bump is gentle but noticeable, and the force required to bottom out increases sharply, perhaps reminding me a bit of Cherry MX Clears. I’ll definitely pull this keyboard out from time to time to type on it.
A downside of how the protocol works is that it only sends keypress events, not key release events. While this is fine for typing, it’s not at all suited for things like gaming (if you hold a key down for a while, it sends repeated keypress events). That said, it does have 2-key rollover, so it won't satisfy your gaming needs in any case. Here’s a final photo of the cleaned-up keyboard, complete with the converter:
Overall, this was a fun and rewarding project. It also highlighted how valuable archiving things can be. I'm not sure how long the project would have taken without the manual. I wish modern computers still came with similarly detailed documentation. Even apart from the technical details, the manual was a fun read. I really enjoyed learning the German equivalents of terms I usually hear only in English; and just look at how happy this guy from the manual looks with his new PC16-11 keyboard! Sure looks like me.
Building a converter for a Siemens PC16-11 keyboard (Siemens STB 11 switches)
-
- Location: Stockholm, Sweden
- DT Pro Member: 0011
Good work! That keyboard sure has character.
BTW. Is that supposed to be a pen tray at the top right, or is it for something else?
BTW. Is that supposed to be a pen tray at the top right, or is it for something else?
- DrCracket
- Location: Germany
- Main keyboard: IBM Model F AT
- Favorite switch: Capacitive Buckling Spring
Thanks!
I believe it's meant to be a pen tray, but there's a jumper on the PCB that refers to a barcode reader. I think that other versions of the keyboard may have included a barcode reader in that spot instead.Findecanor wrote: 18 Dec 2024, 11:39 BTW. Is that supposed to be a pen tray at the top right, or is it for something else?