I am currently building an encoder board for ThinkPad laptop keyboards to make it possible to use them as external keyboard as well. I own a few ThinkPads and I find them very pleasant to write on and I want to use them when I’m not using a ThinkPad or then the laptop is in the docking station. When you read this, you might think: “Why not just buy one of the USB keyboards from Lenovo instead?”. The quick answer is that I think it will be a fun project. The longer answer is; the more recent USB keyboards from Lenovo has the island style keys, which I don’t like, while the older ones are very difficult to find on eBay etc.
I am not the first person to accept this challenge, there are a couple of others that have done this and more or less succeeded. The best one, according to me, is this guy, which created a fully functional USB encoder board, but the project is discontinued and the source code is not available as it is closed source and wont be released. A PCB and connector could be bought here, but isn’t available any longer. He also wrote an Instructable for an early version of the board as well as one for a more recent version.
So, with this being said, if you want to have a ThinkPad USB keyboard, you have to do the encoder yourself. And that is exactly what I will do. But I will do it a bit different. First, I will try to find an existing keyboard encoder which is cheap and works for the ThinkPad keyboard and TrackPoint. If that turns out to be unpractical, I will use a plain Z80. The advantage of the Z80 is that I get a linear device address space which, with a bit of address decoding, can be used to scan the entire keyboard matrix without the need of a shipload of GPIO pins on the MCU. I don’t have any special requirement regarding power consumption or interfacing except for the following:
- Should work as a normal keyboard with all non printable keys etc.
- Should work with the TrackPoint as well.
- Should have PS/2 interface.
- Should not use any hard to get exotic MCU which requires expensive programmers etc.
Regarding the PS/2 requirement, yes it is old but it is much more simple to interface with a Z80 than USB. An adapter could be used to convert it to a USB keyboard and costs $0.99 on eBay. It works for both the keyboard and TrackPoint and could be hidden in the keyboard case or similar.
Please, type a comment about what you think 🙂