Apple’s mechanical keyboard from 80’s with USB-C? Bringing AEKII back to life.
Restoring a classic Apple logo. Refurbished Apple Extended Keyboard 2 with Teensy 2.0 board and USB Type-C wiring.
Mechanical keyboards are back on everyone’s lips. Now is possibly the best time to get yourself one, but the amount of ostentatious LED designs paired with aerodynamic, science-fiction cases is overwhelming 🙊, so I thought — let’s go back to the roots, right!? As a kid, I had IBM Model M, but back then I wasn’t really into mechanical keyboards. Boy oh boy, if I have only known…
So, I’ve rolled up my sleeves and after combing through a local classified ads website, I’ve found some really good deals on retro mechanical keyboards. I’ve narrowed my research down to 2nd gen Apple Extended Keyboards and surprisingly I’ve gotten my hands on a grimy AEKII in no time. And all that for under 20€! 💸
Apple Extended Keyboard 2 — quick recap
In a nutshell, M3501(AEK2) model is a successor to the M0115(AEK). Both were assembled by Alps Electric co. The 2nd gen has SKCM Cream Damped switches. The overall build quality was remarkable, especially when compared with today’s standards.
The only engineering flop was an adjustable bar that got stuck rather often. I wasn’t lucky, my model was latched too. However, with the bar extended, palms position isn’t anywhere near the ergonomic one. So it wouldn’t be considered as a missing link anyway.
What’s interesting, I’ve found a specimen with Polish keycaps and native(!!) case translations. Spotted some minor mistranslations on keycaps, but also found a biggy on a case itself. Believe me, “Przesuw” is the most bizarre translation for the “Scroll Lock” you can ever imagine. 💯
In case you want to learn more about AEK2 model here’s a comprehensive article from Deskthority.
Restoring and cleaning
Since this keyboard is older than me, you can only imagine how many breadcrumbs, stuffings, dust and coffee stains it had been storing for all these years. So first things first, let’s clean this baby up!
In case of opening up the case without any friction, here is a detailed teardown provided by iFixit.
To do list:
- Case cleaned up — check ✅
- Squeaky clean keycaps — check ✅
- Next stop, switches.
Must say, it was the most time-consuming part of all (took over ~4–6 hours). There are several ways to properly clean Alps switches, but one of the most efficient ones is the one described by Chryosoan22 in his video below.
“…next time when I go to the beach I’ll be sure to take the case and the spacebar with me! 🌞 ”
Retr0bright as a solution to yellowing plastic?
Most people restoring old hardware look mainly to de-yellow plastic parts most visibly affected by the test of time. One of the most known project for reverting this side effect is the retr0bright. There are many opinions around this topic:
- for some people it worked perfectly,
- some have discovered the yellowing reappears rapidly,
- some, that this may weaken the plastic and eventually bend it,
I must admit that I’ve skipped the whole process of de-yellowing intentionally so I cannot share my opinion here.
But why is ABS plastic yellowing in the first place?
👨🏫 In a nutshell, the color change is due to the oxidation of the polymers that make up the plastic. There are several processes involved like UV degradation, photo-degradation, bio-degradation, mechanical degradation and so on. You can read more about the study of de-yellowing ABS plastic in David Flood article and find out more life hacks:
As mentioned before, the yellowish touch is adding extra points to the overall impression and look of this keyboard. I would love to get even more of this retro-feel and next time when I go to the beach I’ll be sure to take the case and the spacebar with me! 🌞
ADB to PC/Modern Mac? Solving a connector riddle with a Teensy 2.0 and USB-C adapter
After the cleaning part, there was another huge challenge on the horizon. My keyboard was using the ADB (Apple Desktop Bus) connector. For an untrained eye, it may look like a good-old PS2 adapter, but technically there are four pins (instead of six) so let’s call it the “Apple approach”.
There are several ways to resolve ADB to USB Hub issue:
- Hasu ADB converter (most-known hub),
- Wombat ADB-to-USB (working bidirectional),
- Tinker BOY ADB (external solution),
- The griffin ADB-USB adapter (extinct in our local market),
I was surprised how many true-blue enthusiasts, fighting for the good cause, I’ve found out on my way here. Listed adapters are internal & external solutions, mostly plug-and-play, but I’m thinking — If I went to such trouble, let’s not follow the simplest resistance line — WHERE’S MY SOLDERING IRON?! 👨🎨
Which microcontroller should be suitable?
Before I’ve ordered a Teensy board, I’ve tried my luck with two cheap Arduino Pro Micro (Atmega32u4) copies. Both had similar issues with insufficient input voltage. In the end, I’ve dropped this idea and went straight to the legit Teensy 2.0 board. It worked perfectly!
For the first set-up, I recommend uploading generated keymap just before soldering. We can test if all the keys are working properly in the pre-soldered phase.
Connection is pretty straight forward. Here’s a schema (remember 1k/10k Ω resistor is required [I went with 1k]):
Generating keymap and programming microcontroller
To upload the firmware, we should generate a keymap first. Below instructions are for Mac OS, but no worries you can simply replicate it on Windows 10 using some different Atmel microcontrollers compatible tools.
- For starters, we may need to download this repository:
(Huge shout out to TMK contributors)
2. Download and install CrossPack
3. Open up the Terminal app (we’ll need root credentials to run following scripts)
4. Depending on the layout of your keyboard you can end up with ISO, ANSI or a Custom keymap. In the end, I went with pre-defined “keymap_hasu.c” file with several adjustments regarding ISO-PL compatibility. It got bound second layer keys and several cool features such as “mouse replacement” on Numpad or dedicated calculator launch key. Compile:
cd Desktop/tmk_keyboard-master/converter/adb_usb/
sudo make -f Makefile.teensy clean
sudo make -f Makefile.teensy KEYMAP=hasu
5. Hex file should pop-up in the /adb_usb directory
*AEK2 has a mechanical push-lock switch for the Caps Lock key. To enable this feature we need some tweaks in config.h
file and we may use KC_LCAP
in keymap file for locking Caps Lock instead of normal KC_CAPS
. Add these two following macros in config.h
, change respective keymap file before computing and we’re good to go!
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
In case of any outstanding issues — you may check this thread
Bootloader, programming our board
Here’s the tricky part. I’ve pulled my hair out why the current Teensy loader didn’t recognize my microcontroller… It took me some time to find that present versions somehow aren’t compatible with my current OS. But since I’ve figured it out, you can get a working Teensy 2.0 loader for Mac (Mojave 10.14.5 and lower) and Win10 on my GitHub page.
From now on, it’s pretty straightforward:
- open up the app,
- connect Teensy to your Mac via USB,
- click button on Teensy to enter programmable mode,
- choose “Open HEX File”,
- find our fresh, compiled .hex file,
- hit the program button on the app,
- reboot, re-plug your keyboard and test, test, test…
Finishing touches
The main goal was to use this keyboard simultaneously on Macbook Pro‘s USB Type-C and Windows PC with a standard USB Type-A. I wanted the transition to be as seamless as possible.
When it comes to cables, there was really no other choice for me than to go with Syncwire (and no, this is not a sponsored post — sadly). I’m using their wiring almost exclusively and I’m more than satisfied with their quality. 🥇
Connection goes:
- First the 2m Syncwire USB-C UNBREAKcabel.
- Then USB Type-C (Female) to USB Type-A (Male) Adapter — found on eBay.
- Lastly, USB Type-A (Female) to mini-USB Type-A (Male) cable plugged to Teensy board and voilà!
I’m really satisfied with the end result. It may sound ridiculous, but since typing is our every-day reality now, the keyboard is in fact an extension of our hands… and maybe, just maybe, we should pay more attention to the experience after all?