The key-feel is quite nice, much nicer than I expected. Much smoother than the horrible Cherry MX linears I've tried (how is that company one of the only remaining mechanical keyswitch manufacturers remaining? Race to the bottom? I digress...). Nice “clop” on bottoming out.
The “pad card” is quite interesting. The bottom side is simply a hashed ground fill (pretty!), with some hookups for the columns, no direct part played in the capacitive sensing: The top side of the pad card is where the interesting stuff happens: The funny bits (looking a bit like Chinese characters) inbetween the key pads is simply more ground fill. The capacitive part is formed by the over-under pairing of the two rectangular pads. The pads with vias connected to them are columns; the other side are rows.
This is quite a different system from what IBM used; they used capacitive coupling through no less than three capacitors formed by pads and the flyplate. The system Amkey used here I can see is more prone to stray capacitance (probably why they used a hashed ground fill rather than a solid ground plane, to mitigate some of that), but is resistant to electrical inteference without having to use the massive heavy bottom plates fitted to the Beamsprings and Model Fs.
There are two connectors; one 32-position pin header across the top (columns), and one 16-position pin header down the left-hand-side (rows). That sounds like a rather fearsome amount of rows and columns until you starting buzzing it out and realise both connectors have interleaved ground pins. Every even-numbered pin is ground. This is more noise shielding (the keyboard is quite open in construction, you can see why it might be necessary).
Let's take a look at the controller (don't you love that curvy hand-routing; one day Kicad, one day...): Here we start to get an idea of how they're doing the sensing. The big AMD chip is some sort of micro; the chip at the bottom with the label an EEPROM. At the top right there is an 74154 to break out the 16 connections for the columns, so the micro only needs to drive four lines. The interesting stuff is over on the left, by the 16-pin row connector.
Here we have an MC14051 analogue multiplexer, to break down the 8 row sense lines into a single output. This is fed to the MC1357. What's that you ask?! Why, it's an FM amplifier! Something you would normally find inside an FM radio or a TV. Why is it here? Well, bearing in mind RF/radio is not exactly my area of expertise, the MC1357 is a certain type of FM chip. It's got a quadrature detector in it. This gives us a clue. Quadrature detectors are designed to carefully follow oscillating signals and pick out when they start deviating from a certain frequency. They are tuned to a certain frequency (the knob on your radio!), and then feed the signal through a capacitor which shifts the phase and allows the detector to measure how far the signal deviates from the centre frequency. Sound useful? In this implementation, the capacitors within the keyboard are used as part of the circuit, varying the centre frequency and with the use of a little comparator (8-pin LM393 at the top left) to scale the signal back to TTL we can read the pressed keys.
It's an inventive use of a part designed for something completely different, but would be highly effective and reliable. On the negative side, you could see you'd need to hit each column with a few square wave cycles before you'd be able to read the result, so it's not quite as fast as the IBM dV/dT method that I pinched for my controllers.
So! After I finish shipping Batch 2 of the ibm-capsense-usb controllers, I will have one left—a Model F USB controller. This conveniently has 16 columns and 8 rows. Then we will see if I can apply the IBM dV/dT sensing method to these capacitive boards. If it works, I may be able to get by with a simple adaptor board that adapts a Model F USB controller to the Amkey connections. I'm hoping I don't have to go to a more involved sensing method like the original Amkey circuit, which looks rather fiddly and slow and would be a bit of a departure; the Amkey circuit does look more tolerant of individual deviations between keys, which IBM was always careful to avoid. That said, with the SPI DAC I'm using in the modern ibm-capsense-usb controllers, I could change the setpoint many times per scan and still have an acceptable scanrate. Experiments must be performed
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)