Mysteries of the Griffin iMate – Venture Gus
A classic keyboard, a mysterious battery, and a few questionable Nineteen Nineties engineering decisions…
Keyboard
For 5 years this basic keyboard has sat in my cabinet:
That is an Apple Prolonged Keyboard II, launched 1990. This mannequin is praised by keyboard nerds for its “clicky” mechanical ALPS switches and durable design.
This specific keyboard has a hand-written asset sticker from the Federal Department of Administrative Affairs (1987-1993):
I believe both my Dad or I purchased this at an ex-government public sale within the late Nineteen Nineties, along with a Macintosh IIsi that was briefly our dial-up modem router at residence. Later, the Macintosh and its keyboard spent round twenty years in my Dad’s shed.
When my mother and father downsized 5 years in the past, the Mac and its magnificent Portrait Display had been bought. I saved the keyboard.
Lately I noticed it sitting within the cabinet, as soon as once more forgotten. Time to really use this factor!
Birthday
The keyboard was a bit unhappy and unsanitary, with a thick layer of Nineteen Nineties grime. So I gave it a birthday!
Particularly I stripped it down, washed all of the plastic components, and put it again collectively.
iFixit’s teardown may be very useful. The classic plastics on this specific keyboard appear to be in good situation, regardless of my clumsiness nothing snapped off.
It is by no means going to be pristine, nevertheless it’s now so much nicer to take a look at and use.
No Yak Shaving
Being from 1990, this keyboard connects utilizing Apple Desktop Bus (ADB):
A converter is required to attach it over USB.
For an embedded developer vulnerable to distraction, this creates a dangerous scenario… the duty is easy sufficient, and numerous DIY variations exist already, so it is tempting to “simply knock one thing collectively”. One may construct on the classic TMK firmware, leverage the USB device support I’ve been implementing for MicroPython, or choose an actual problem like bit-banging low pace USB in Rust on a dirt cheap RISC-V micro.
NO! BAD GUS! TOO MANY PROJECTS!
I reminded myself that I’ve too many tasks already, together with a whole electric car conversion to do. Greatest to not chase extra squirrels or shave extra yaks.
In hindsight, I ought to have ordered a pre-built TMK ADB-USB adapter at this level. Nevertheless, abroad delivery is sluggish. Somebody on eBay Australia had listed a “Griffin Expertise iMate Common ADB to USB Adapter”. Confirmed working, cheap worth, and even within the authentic packaging:
Griffin Expertise
Nowadays Griffin Expertise appear to largely promote cellphone circumstances, however within the Nineteen Nineties they specialised in Macintosh equipment. When the iMac was launched in 1998, Apple switched from ADB to USB. So in 1999 Griffin launched the iMate to adapt ADB units to “iMacs, Macs with USB, and PCs with USB“. Fairly leading edge stuff!
Griffin appear to have bought the iMate from late 1998 by means of to late 2008. Not a nasty run!
iMate No Good
Sadly, my laptop computer did not work with the iMate and the Apple Prolonged Keyboard II. The iMate briefly enumerates over USB however goes instantly right into a everlasting USB reset loop earlier than giving up. The Linux kernel log tells the unhappy story:
17:34:38 usb 3-4: new low-speed USB system quantity 6 utilizing xhci_hcd
17:34:38 usb 3-4: New USB system discovered, idVendor=077d, idProduct=0405, bcdDevice= 3.70
17:34:38 usb 3-4: New USB system 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: Producer: Griffin Expertise, Inc.
17:34:38 enter: Griffin Expertise, Inc. iMate, USB To ADB Adaptor as /units/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0/0003:077D:04>
17:34:38 hid-generic 0003:077D:0405.000C: enter,hidraw6: USB HID v1.00 Keyboard [Griffin Technology, Inc. iMate, USB To ADB Adaptor]>
17:34:38 enter: Griffin Expertise, Inc. iMate, USB To ADB Adaptor as /units/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: enter,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 system quantity 6 utilizing xhci_hcd
17:34:42 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:43 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:45 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:45 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:47 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:48 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:50 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:50 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:52 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:54 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:55 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:56 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:57 usb 3-4: reset low-speed USB system quantity 6 utilizing xhci_hcd
17:34:57 usb 3-4: USB disconnect, system quantity 6
It labored a couple of times for a second, however by no means constantly. It felt so much like {an electrical} noise difficulty…
I messaged the eBay vendor, who confirmed the iMate had been working effective plugged into a more recent “AppleDesign” ADB keyboard. I figured possibly it was the keyboard. In any case, this one had been left in a rustic shed for twenty years…
Capacitors
“Oh, I do know! Classic pc persons are at all times enthusiastic about changing previous capacitors!”
The keyboard had three similar 1uF electrolytic capacitors seen on the board.
I keenly desoldered one. Out of circuit it measured 1.1uF, 110% of the rated capacitance! Strong effort for a 30+ 12 months previous capacitor.
Uh, possibly it is not the capacitors. I soldered that one again on.
Thriller Battery
Till now I hadn’t finished any studying concerning the iMate. Studying its page on Deskthority, I obtained a shock:
The iMate accommodates an undocumented button cell battery, of sort CR1225. The aim of this battery just isn’t confirmed, as Griffin have by no means formally acknowledged its existence. The consensus is that it supplies the facility required to change on sure Macintosh fashions by way of the keyboard, from keyboards with an influence button.
The battery just isn’t required (the iMate will function with out it, however with out the power-on function), however when the battery turns into depleted, the iMate could fail to operate
(Emphasis mine.)
WTAF! Why does a completely linked USB system have a secret battery in it?
Taking the iMate aside, positive sufficient there is a coin cell battery in there:
It was completely flat. Nevertheless, even with the battery eliminated the USB difficulty stayed precisely the identical.
Substitute battery
My native $2 store did not have a CR1225 cell, however they did have a CR1220 cell which is identical thickness and voltage. $4 later and… the iMate labored flawlessly!
Very bizarre. Now I’m completely Nerd Sniped: What does this thriller battery do? Why is it wanted for this keyboard, however possibly not for different keyboards?
Once I raised the problem on Mastodon I acquired two theories: “totally an NSA keylogger“, and “purely for planned obsolescence“. I suppose each are attainable…
Analysis
The 2000s had been a very long time in the past in Web Years. The blessed Internet Archive has captured so much from this period, however the sources linked from Deskthority appear to be misplaced. There’s some good data on the TMK wiki, together with Wayback Machine hyperlinks for Griffin’s authentic iMate Assist pages. Certainly, Griffin by no means talked about it has a battery.
Time to look intently on the PCB:
The biggest element is a Cypress CY7C63413-PVC. That is lengthy discontinued, nevertheless it nonetheless has a product page on Digikey full with datasheet PDF (printed 1997, revised 1998).
The chip is a One Time Programmable “8-bit RISC” microcontroller with an built-in USB Low Pace interface. Working voltage is 4.0V to five.5V and there is no low energy options, so it appears unlikely that the 3V battery is used straight with this micro.
There’s additionally a number of discrete components on the PCB, and a worrying variety of very excessive impedance 2.2 Megaohm resistors. In relation to noise susceptibility, very excessive impedance terminations are a crimson flag.
In the long run, I traced the entire circuit:
You may get the KiCad files on GitHub.
Figuring out the diodes and transistors from their marking was difficult, for instance Q1 on my board is marked “KF” and I am undecided what that’s. Nevertheless, between Deskthority and flickr user ninjabong (lol), there are photos of two different iMate PCBs with the identical structure however barely totally different components. Maybe totally different manufacturing runs?
To know the schematic, I first needed to study two options of classic Apple computer systems…
ADB PSW Sign
ADB is a single wire low pace serial bus, so the 4 pins on the Mini-DIN connector are 5V Energy, Floor, the ADB knowledge sign, and Energy Swap (PSW).
Within the Apple Prolonged Keyboard, the facility change is linked to the “energy” key within the nook and switches the PSW sign to floor by means of a diode:
In a Macintosh, the opposite finish of this sign pin has a zener diode for defense and a 100K pullup. The sign then feeds into the “MCU” which might change on the remainder of the Mac:
(A part of an excellent Macintosh IIsi schematic, as created by an organization known as Bomarc Companies and preserved by the Internet Archive. Highlighting mine.)
Word that when the Mac is powered off no energy flows to the 5V energy pin on the ADB connector, the one powered pin is PSW which is pulled as much as “at all times on” energy contained in the Macintosh.
Regular USB Wakeup
Trendy USB units don’t have a devoted “energy change” pin on their plugs.
Ever since USB 1.0 in 1996, there’s a “distant wake-up” choice the place a USB system can keep powered in a suspended state till it wakes the host. That is what occurs on most USB keyboards the place urgent any key wakes the pc from sleep, or (relying on the {hardware}) powers on the pc.
In contrast to the ADB energy change sign, the USB system has to remain powered for “distant wake-up” to work.
Cursed Apple USB Energy Button
It appears Apple made an “fascinating” alternative in 1998 once they switched from ADB to USB. I can not discover a respectable technical supply for this, solely tidbits like this uncited quote from Wikipedia:
The facility key was changed with a extra standard energy button on early USB keyboards, due to a proprietary pin wired to the Macintosh’s energy provide in Apple’s early USB implementations, subsequently eradicated on the Professional Keyboard together with the particular energy provide pin.
This Instructable, linked from the TMK wiki, describes constructing a customized “Energy Macintosh G3 energy button” by connecting a USB cable’s USB D- sign and Floor pin by means of a momentary pushbutton.
Looks like somewhat than implementing USB “distant auto-wakeup” to energy on, Apple saved the spirit of the ADB PSW pin. They wired the keyboard’s energy button to the USB D- sign. Urgent the button shorts this sign to floor. This fashion the remainder of the keyboard can keep unpowered, aside from the D- pin.
For about $50AU I may get a “mannequin M2452” Apple keyboard and ensure this sketch is correct, however I’ve already gone manner too deep on this…
All of the FETs
Wanting on the iMate once more, I believe the additional circuitry exists to translate ADB’s Energy Swap sign into the “Cursed Apple USB Energy Button” sign. Here is the related a part of the schematic:
I believe it really works like this:
- PSW is generally pulled as much as the battery voltage by pull-up resistor R3, so Q1 (P-channel FET) is generally turned off.
- When the facility key’s pressed, PSW drives low and activates Q1.
- Q2 is one other P-channel FET, whose objective is to cease the facility key from messing up USB signalling if USB is powered. If Q1 activates then Q2’s Supply pin sees 3V from the battery.
- If USB is powered then Q2’s Gate pin sees 5V, which means Vgs stays constructive and Q2 stays turned off.
- If USB just isn’t powered then the voltage at Q2’s Gate pin is 0V, Vgs is detrimental, and Q2 will activate.
- If Q2 activates then the voltage from the 3V battery subsequent seems on the Gate pin of Q3 (an N-channel FET).
- This activates Q3, which pulls down the USB D- pin.
- If the iMate is linked to an previous USB Mac, this sign will flip the Mac on!
This beautiful a lot works as designed so long as the battery holds cost. Yay!
There are some issues concerning the schematic that I nonetheless do not perceive, akin to why Q1 and Q2 are totally different P-channel FETs with comparable specs and in suitable packages. I assume there is a key distinction between them, however I do not know what.
Confirming the fault
If the fault is on this a part of the circuit then we should always have the ability to see it by capturing the USB knowledge alerts with a logic analyzer.
Here’s a working iMate with a contemporary battery, speaking 1.5Mbps Low Pace USB:
Listed below are the USB alerts from a defective iMate with no battery, caught in a USB reset loop:
The traces are comparable, however on the defective iMate the USB D- line randomly glitches to a low stage (close to the best of the picture). The Sigrok USB decoder has interpreted these as “bus reset” alerts, however a compliant USB Bus Reset must final 10ms or longer to be legitimate. These pulses are a lot shorter, they’re nothing however noise!
However, the USB host is appropriately deciphering them as an error and triggers a correct Bus Reset a short while later. Communication restarts till the following time the USB D- sign glitches low…
A lot noise
The difficulty seems both when the battery is eliminated, or if the battery has utterly discharged which means its inner resistance may be very excessive. At this level all the a part of the circuit linked to “BATT+” is successfully floating, as is the PSW pin:
Wanting on the PSW pin on an oscilloscope, it is extremely noisy:
The ADB knowledge sign is clearly seen, coupled into the floating PSW sign:
(Ch1 is PSW pin and Ch2 is ADB pin.)
With none low impedance path to decouple or discharge, the noise is left bouncing across the circuit!
I believe that the noise-induced voltage at Q2’s Supply pin typically exceeds 5V. When it reaches a excessive sufficient voltage, Q2’s Vgs turns into detrimental sufficient that Q2 activates regardless of USB being powered and lively:
(Recall that Q2 was meant to forestall the facility change from triggering whereas USB was lively…)
Q2 solely has to very barely activate in an effort to cross sufficient present to activate Q3 and brief out the USB D- sign. It is because Q3’s Gate pull-down resistor R5 is an enormous 2.2Mohm, and the everyday Gate cut-off voltage for Q3 is 1.2V. Even 550nA of present passing by means of Q2 could also be sufficient to activate Q3.
I wasn’t capable of see this on the oscilloscope, the best PSW voltage I noticed was round 5V. Nevertheless, probing the circuit modifications its behaviour! My low cost 10X scope probe provides roughly 17pF of capacitance, and this resolves the problem: whereas the oscilloscope probe was connected the iMate labored completely!
Fast Repair
To validate this idea I soldered a 100nF capacitor between the BATT+ voltage and Floor. This could act as a decoupling path for {the electrical} noise.
A fairly good place to solder a floor mount capacitor is between pin 3 of D3 and one of many battery holder pins:
I used an 0603 sized capacitor, however an 0805 would match higher. Not the best soldering, however the electrons will not discover.
Positive sufficient, the iMate works effective now. The PSW sign seems to be a lot the identical on the oscilloscope, however Q1 now not activates. I imagine that any time a voltage develops between Q1 and Q2, it now discharges by means of Q1’s physique diode into the capacitor.
Including extra decoupling capacitors to the precise PSW line (somewhat than BATT+), or reducing the worth of a number of the Gate resistors, would seemingly scale back the noise additional. For now it appears to effective, although. My solely doubt is how a lot RF noise is radiating from the ADB cable’s PSW wire, however I suppose I will discover out about that!
I have never reinstalled a battery, as I do not want the Apple Cursed USB Energy Button performance. Nevertheless if somebody installs a battery afterward then it ought to all maintain working effective, as effectively.
Why this keyboard?
Why did different ADB keyboards apparently work OK with a flat-battery iMate, whereas this one was defective?
My finest guess is that totally different ADB keyboards have totally different PSW circuits in them. For instance, different keyboard fashions might need a decoupling capacitor, a pullup resistor, or higher frequent mode noise filtering on the PSK sign. That is only a idea.
Does it really want a battery?
I have been making an attempt to consider a manner Griffin may have applied “Apple Cursed USB Energy Button” performance with no battery. I have never considered a manner, but.
If you happen to had been designing the iMate in 2023 then you would most likely use a supercapacitor as an alternative of a coin cell battery, and have it charged when USB was powered. Sadly shopper grade supercapacitors had been most likely fairly laborious to supply in 1998…
Connecting the PSW pin on to D- could be tempting, as the 2 circuits are so comparable. Nevertheless, then the USB D- sign could be linked into the ADB cable’s PSW wire every time USB was lively, and would grow to be a good worse antenna! When you begin considering of how to dam the sign when USB is enabled, and unblock it when the keyboard is unpowered, then it is laborious to not want you had entry to an unbiased voltage supply like a battery…
Griffin’s engineers(s) seemingly ignored what occurs within the circuit when the battery goes away. Some would recommend this wasn’t an accident (i.e. deliberate obsolescence), however I believe it most likely was an accident. That stated, not mentioning the battery in any respect of their assist materials is tougher to clarify.
Conclusion
So, uh, “do not begin a brand new venture” resulted in much more yak shaving than I would counted on…
Worse, I am already type of dissatisfied with the iMate – it would not distinguish left and proper for Alt/Shift/and many others. Additionally, as a result of I am not a Mac consumer it might be good to have a firmware that might swap Command and Alt keys as an alternative of needing to configure that in software program. So, if I maintain this keyboard then I’d find yourself shopping for a unique adapter for it anyway. Sigh.
Oh effectively, at the very least I most likely discovered one thing.