IR PC keyboards: IBM and Quadram
Posted: 28 Jun 2021, 06:17
For a short period in the early-80's, some home PCs had infrared wireless keyboards, to try to make them more flexible in non-office setups, I guess.
The best known of these is the notorious IBM PCjr, with keyboards made by Advanced Input Devices, first with chiclet keys and then with more normal, slightly less worse, stepped keys. Inside, these AID boards were pretty much the same, with conductive rubber domes making contact onto the PCB. The real key version is also a little interesting in that, in lieu of stabilizers, the space bar and big-ass Enter key are cantilevered. This seems to have also been done on some other AID keyboards, such as this one.
Another wireless keyboard was for the DataVue 25 from Quadram. I found one of these to see what could be done by way of an IR converter.
The layout is a bit crowded. But it has Omron switches, so it isn't impossible to type on. Like the PCjr, it is powered by 4 AA batteries. There is a provision for a wired connection by a DIN-3 connector, but it is not capable of supplying power. And to start I am concentrating on the wireless protocol. Unlike the PCjr, which just ate the cost of keeping the keyboard in standby mode all the time, the DataVue has a mercury(!) reed switch, angled in such a way that it is on most of the time, until the keyboard is locked vertically into the case. That's it in the lower-right of the photo.
I started by connecting the scope to the NPN transistor that drives the IR LEDs and hitting some keys. The on pulses are always the same width and there seem to be three widths for the off interval, suggesting maybe some kind of Manchester encoding. Which is interesting, of course, because that's the encoding used by the PCjr.
Looking more closely at the pulses, they are 40kHz square waves. The on period is three (or two and a half, if you prefer) cycles.
Again, this sure looks like the same protocol as the PCjr, as seen in the Technical Reference. So I decided to get one of those for cheap (no one wants them because they are awful) to be able to compare.
How to detect the IR signal? Most IR receivers today use a single-component digital receiver, which consists of an amplifier and band-pass filter. The most common of these are 38kHz, but Vishay also makes them in 40kHz. Also, the common ones are designed for medium-length pulses. There is a short-pulse version, but it still takes 6 cycles to stabilize. So, that's not going to work.
The circuit in the original Infra-Red Receiver Board has an NEC IR pre-amp and a one-shot. Those pre-amp chips can be found on eBay, but the receiver also needs a bunch of passives like an inductor.
So I built something simpler with what was lying around, using an op-amp as a voltage comparator and including a trim-pot to somewhat adjust the sensitivity. It won't be very good in an environment with much light noise. Specifically, it seems to be okay for around 6 inches when the room isn't too sunny. Honestly, I'm not sure the original was much more reliable than that.
Here is the voltage drop over the photodiode and the resulting compared signal. In the meantime, the PCjr keyboard showed up here, and, yes, it's more or less identical, except maybe for a lack of a "warm-up" pulse before the key press. So, assuming that it really would be the same, I whipped up a sigrok decoder based on that specification. It's not all that surprising that the scan codes are the same, since they are just the XT ones.
But how is the lower level encoding the same? Did it originate with IBM, or AID, or Quadram, or some earlier system? Was it licensed or just "borrowed?"
The best known of these is the notorious IBM PCjr, with keyboards made by Advanced Input Devices, first with chiclet keys and then with more normal, slightly less worse, stepped keys. Inside, these AID boards were pretty much the same, with conductive rubber domes making contact onto the PCB. The real key version is also a little interesting in that, in lieu of stabilizers, the space bar and big-ass Enter key are cantilevered. This seems to have also been done on some other AID keyboards, such as this one.
Another wireless keyboard was for the DataVue 25 from Quadram. I found one of these to see what could be done by way of an IR converter.
The layout is a bit crowded. But it has Omron switches, so it isn't impossible to type on. Like the PCjr, it is powered by 4 AA batteries. There is a provision for a wired connection by a DIN-3 connector, but it is not capable of supplying power. And to start I am concentrating on the wireless protocol. Unlike the PCjr, which just ate the cost of keeping the keyboard in standby mode all the time, the DataVue has a mercury(!) reed switch, angled in such a way that it is on most of the time, until the keyboard is locked vertically into the case. That's it in the lower-right of the photo.
I started by connecting the scope to the NPN transistor that drives the IR LEDs and hitting some keys. The on pulses are always the same width and there seem to be three widths for the off interval, suggesting maybe some kind of Manchester encoding. Which is interesting, of course, because that's the encoding used by the PCjr.
Looking more closely at the pulses, they are 40kHz square waves. The on period is three (or two and a half, if you prefer) cycles.
Again, this sure looks like the same protocol as the PCjr, as seen in the Technical Reference. So I decided to get one of those for cheap (no one wants them because they are awful) to be able to compare.
How to detect the IR signal? Most IR receivers today use a single-component digital receiver, which consists of an amplifier and band-pass filter. The most common of these are 38kHz, but Vishay also makes them in 40kHz. Also, the common ones are designed for medium-length pulses. There is a short-pulse version, but it still takes 6 cycles to stabilize. So, that's not going to work.
The circuit in the original Infra-Red Receiver Board has an NEC IR pre-amp and a one-shot. Those pre-amp chips can be found on eBay, but the receiver also needs a bunch of passives like an inductor.
So I built something simpler with what was lying around, using an op-amp as a voltage comparator and including a trim-pot to somewhat adjust the sensitivity. It won't be very good in an environment with much light noise. Specifically, it seems to be okay for around 6 inches when the room isn't too sunny. Honestly, I'm not sure the original was much more reliable than that.
Here is the voltage drop over the photodiode and the resulting compared signal. In the meantime, the PCjr keyboard showed up here, and, yes, it's more or less identical, except maybe for a lack of a "warm-up" pulse before the key press. So, assuming that it really would be the same, I whipped up a sigrok decoder based on that specification. It's not all that surprising that the scan codes are the same, since they are just the XT ones.
But how is the lower level encoding the same? Did it originate with IBM, or AID, or Quadram, or some earlier system? Was it licensed or just "borrowed?"