Skip to content
HN On Hacker News ↗

Mysteries of the Griffin iMate

▲ 31 points 6 comments by geerlingguy 4w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 6 of 6
SEGMENTS · AI 0 of 6
WORD COUNT 1,714
PEAK AI % 1% · §1
Analyzed
May 31
backend: pangram/v3.3
Segments scanned
6 windows
avg 286 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,714 words · 6 segments analyzed

Human AI-generated
§1 Human · 1%

A vintage keyboard, a mysterious battery, and some questionable 1990s engineering choices... Keyboard For five years this classic keyboard has sat in my cupboard:

This is an Apple Extended Keyboard II, released 1990. This model is praised by keyboard nerds for its "clicky" mechanical ALPS switches and sturdy design. This particular keyboard has a hand-written asset sticker from the Federal Department of Administrative Affairs (1987-1993):

I think either my Dad or I bought this at an ex-government auction in the late 1990s, together with a Macintosh IIsi that was briefly our dial-up modem router at home. Later, the Macintosh and its keyboard spent around twenty years in my Dad's shed. When my parents downsized five years ago, the Mac and its magnificent Portrait Display were sold. I kept the keyboard. Recently I saw it sitting in the cupboard, once again forgotten. Time to actually use this thing! Birthday The keyboard was a bit sad and unsanitary, with a thick layer of 1990s grime. So I gave it a birthday!1 Specifically I stripped it down, washed all the plastic parts, and put it back together.

iFixit's teardown is very helpful. The vintage plastics on this particular keyboard seem to be in good condition, despite my clumsiness nothing snapped off.

It's never going to be pristine, but it's now a lot nicer to look at and use. No Yak Shaving Being from 1990, this keyboard connects using Apple Desktop Bus (ADB):

A converter is required to connect it over USB. For an embedded developer prone to distraction, this creates a risky situation... the task is simple enough, and countless DIY versions already exist, so it's tempting to "just knock something together". One could build on the classic TMK firmware, leverage the USB device support I've been implementing for MicroPython, or pick a real challenge like bit-banging low speed USB in Rust on a dirt cheap RISC-V micro. NO! BAD GUS! TOO MANY PROJECTS! I reminded myself that I have too many projects already, including a whole electric car conversion to do. Best not to chase more squirrels or shave more yaks.

§2 Human · 0%

In hindsight, I should have ordered a pre-built TMK ADB-USB adapter at this point. However, overseas shipping is slow. Someone on eBay Australia had listed a "Griffin Technology iMate Universal ADB to USB Adapter". Confirmed working, reasonable price, and even in the original packaging:

Griffin Technology These days Griffin Technology seem to mostly sell phone cases, but in the 1990s they specialised in Macintosh accessories. When the iMac was released in 1998, Apple switched from ADB to USB. So in 1999 Griffin released the iMate to adapt ADB devices to "iMacs, Macs with USB, and PCs with USB". Pretty cutting edge stuff! Griffin seem to have sold the iMate from late 1998 through to late 2008. Not a bad run! iMate No Good Sadly, my laptop didn't work with the iMate and the Apple Extended Keyboard II. The iMate briefly enumerates over USB but goes immediately into a permanent USB reset loop before giving up. The Linux kernel log tells the sad tale: 17:34:38 usb 3-4: new low-speed USB device number 6 using xhci_hcd 17:34:38 usb 3-4: New USB device found, idVendor=077d, idProduct=0405, bcdDevice= 3.70 17:34:38 usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 17:34:38 usb 3-4: Product: iMate, USB To ADB Adaptor 17:34:38 usb 3-4: Manufacturer: Griffin Technology, Inc. 17:34:38 input: Griffin Technology, Inc. iMate, USB To ADB Adaptor as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0/0003:077D:04>

§3 Human · 0%

17:34:38 hid-generic 0003:077D:0405.000C: input,hidraw6: USB HID v1.00 Keyboard [Griffin Technology, Inc. iMate, USB To ADB Adaptor]> 17:34:38 input: Griffin Technology, Inc. iMate, USB To ADB Adaptor as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.1/0003:077D:04> 17:34:38 hid-generic 0003:077D:0405.000D: input,hidraw7: USB HID v1.00 Mouse [Griffin Technology, Inc. iMate, USB To ADB Adaptor] on> 17:34:40 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:42 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:43 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:45 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:45 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:47 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:48 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:50 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:50 usb 3-4: reset

§4 Human · 0%

low-speed USB device number 6 using xhci_hcd 17:34:52 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:54 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:55 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:56 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:57 usb 3-4: reset low-speed USB device number 6 using xhci_hcd 17:34:57 usb 3-4: USB disconnect, device number 6

It worked once or twice for a moment, but never consistently. It felt a lot like an electrical noise issue... I messaged the eBay seller, who confirmed the iMate had been working fine plugged into a newer "AppleDesign" ADB keyboard. I figured maybe it was the keyboard. After all, this one had been left in a country shed for twenty years... Capacitors "Oh, I know! Vintage computer people are always excited about replacing old capacitors!" The keyboard had three identical 1uF electrolytic capacitors visible on the board.

I keenly desoldered one. Out of circuit it measured 1.1uF, 110% of the rated capacitance! Solid effort for a 30+ year old capacitor. Uh, maybe it's not the capacitors. I soldered that one back on. Mystery Battery Until now I hadn't done any reading about the iMate. Reading its page on Deskthority, I got a surprise:

The iMate contains an undocumented button cell battery, of type CR1225. The purpose of this battery is not confirmed, as Griffin have never formally acknowledged its existence. The consensus is that it provides the power required to switch on certain Macintosh models via the keyboard, from keyboards with a power button. The battery is not required (the iMate will operate without it, but without the power-on feature), but when the battery becomes depleted, the iMate may fail to function

(Emphasis mine.)

§5 Human · 0%

WTAF! Why does a permanently connected USB device have a secret battery in it? Taking the iMate apart,3 sure enough there's a coin cell battery in there:

It was totally flat. However, even with the battery removed the USB issue stayed exactly the same. Replacement battery My local $2 shop didn't have a CR1225 cell, but they did have a CR1220 cell which is the same thickness and voltage. $4 later and... the iMate worked flawlessly!2

Very weird. Now I am totally Nerd Sniped: What does this mystery battery do? Why is it needed for this keyboard, but maybe not for other keyboards? When I raised the issue on Mastodon I received two theories: "totally an NSA keylogger", and "purely for planned obsolescence". I guess both are possible... Research The 2000s were a long time ago in Internet Years. The blessed Internet Archive has captured a lot from this era, but the sources linked from Deskthority seem to be lost. There's some good info on the TMK wiki, including Wayback Machine links for Griffin's original iMate Support pages. Indeed, Griffin never mentioned it has a battery. Time to look closely at the PCB:

The largest component is a Cypress CY7C63413-PVC. This is long discontinued, but it still has a product page on Digikey complete with datasheet PDF (published 1997, revised 1998). The chip is a One Time Programmable "8-bit RISC" microcontroller with an integrated USB Low Speed interface. Operating voltage is 4.0V to 5.5V and there's no low power features, so it seems unlikely that the 3V battery is used directly with this micro. There's also a lot of discrete parts on the PCB, and a worrying number of very high impedance 2.2 Megaohm resistors. When it comes to noise susceptibility, very high impedance terminations are a red flag. In the end, I traced the whole circuit:

You can get the KiCad files on GitHub. Identifying the diodes and transistors from their marking was tricky, for example Q1 on my board is marked "KF" and I'm not sure what that is.

§6 Human · 0%

However, between Deskthority and flickr user ninjabong (lol), there are images of two other iMate PCBs with the same layout but slightly different parts. Perhaps different production runs? To understand the schematic, I first had to learn about two features of vintage Apple computers... ADB PSW Signal ADB is a single wire low speed serial bus, so the four pins on the Mini-DIN connector are 5V Power, Ground, the ADB data signal, and Power Switch (PSW). In the Apple Extended Keyboard, the power switch is connected to the "power" key in the corner and switches the PSW signal to ground through a diode:

In a Macintosh, the other end of this signal pin has a zener diode for protection and a 100K pullup. The signal then feeds into the "MCU" which can switch on the rest of the Mac:

(Part of a glorious Macintosh IIsi schematic, as created by a company called Bomarc Services and preserved by the Internet Archive. Highlighting mine.) Note that when the Mac is powered off no power flows to the 5V power pin on the ADB connector, the only powered pin is PSW which is pulled up to "always on" power inside the Macintosh. Normal USB Wakeup Modern USB devices do not have a dedicated "power switch" pin on their plugs. Ever since USB 1.0 in 1996, there is a "remote wake-up" option where a USB device can stay powered in a suspended state until it wakes the host. This is what happens on most USB keyboards where pressing any key wakes the computer from sleep, or (depending on the hardware) powers on the computer. Unlike the ADB power switch signal, the USB device has to stay powered for "remote wake-up" to work. Cursed Apple USB Power Button It seems Apple made an "interesting" choice in 1998 when they switched from ADB to USB. I can't find a decent technical source for this, only tidbits like this uncited quote from Wikipedia:

The power key was replaced with a more conventional power button on early USB keyboards, thanks to a proprietary pin wired to the Macintosh's power supply in Apple's early USB implementations, subsequently eliminated on the Pro Keyboard along with the special power supply pin.