Author Topic: The Apple M0110 Today  (Read 6612 times)

Defect and 1 Guest are viewing this topic.

Offline lowpoly

  • Thread Starter
  • Posts: 2496
The Apple M0110 Today
« on: Thu, 11 August 2011, 06:47:52 »
Finished my M0110 mod. This is the keyboard that came with the original Macintosh 128k.

Features:

    [*]NKRO (6KRO right now)
    [*]Hand wired matrix with diodes
    [*]Spring switch replacement: 61g --> 40g
    [*]Mini-USB connection with Teensy controller
    [*]Case and keys retr0brited.
    [*]Colemak and Qwerty switchable
    [*]2nd Miniguru-like layer
    [*]Much quieter because of pcb removal and lighter switch springs
    [*]MouseKeys[/list]

    This makes the keyboard fully usable, I'm writing on it right now.

    One of the main points of this mod was to establish easy and repeatable hand wiring. The hand wiring mods I've seen so far all had a lot of unordered wires going, which makes hand wiring look more complicated than it actually is. Using 1N4148 diodes makes the wiring more simple because it can be done in an ordered way. It also simplifies the code. The diodes were even cheaper than the wire I had to buy for the columns.

    Now the pics, first the "before" state. Both 'boards were defective when I bought them. I retr0brited the upper one, so in case the retr0brite failed, I'd still have the lighter one:


    Pcb removed. The switches are much quieter without the pcb:


    Made in USA:


    The dust bunny's natural enemy:


    Old-school Alps:


    Replacement springs from a Dell AT. I measured 60grams to fully press the switch before the spring mod, 41grams after. I used the coins I had in my pocket, then put them on a precision scale. Ripster measured 70 something grams. There were different revisions of this keyboard though:


    1N4148, as recommended by Dave Dribin:


    Testing every switch before assembly. I had 2 bouncing switches in the finished keyboard but this can be solved by pressing them several (thousand) times. I guess this is why Cherry uses gold contacts. I also put some Teflon spray on every switch stem:


    Different revisions. I used the top one which was more yellowed and has two drainage channels:


    Using diodes for the rows. Only with longer distances between the switches additional wire will be necessary:


    Wire for the columns. Finer wire would have done but this here has more resistance to occasional bad handling by me. Note how the columns are soldered to the endpoints of the switch contacts. This puts the columns in another layer avoiding shorts:


    Flat ribbon cable soldered to the rows and columns. NKRO matrix finished. Fast and easy.


    The one thing that's not good on the Teensy is that it has no mounting holes. I milled a U-shaped socket from a piece of POM. Added two holes for cable binders:


    A round piece of POM will press the reset button:


    POM doesn't like to be sanded. I'll glue this with double-sided transparent sticky tape to the case:


    The complete Teensy assembly:


    And this is how it looks in the keyboard:


    In the original M0110 the phone jack is held by the pcb. I added a piece of aluminum to replace this holding function, screwed to the plate with the original screws (arrows):


    Aluminum part other view:


    What's this? Key is fully seated on the stem:


    The M0110 has a locking switch for CapsLock which has a shorter stem. It is not even pressed in this pic. I use CapsLock as Control so I had to get rid of the locking switch:


    CapsLock key on the left shows compensation for the shorter stem. A little Dremeling takes care of this:


    Controller glued into place with isolation layer:


    Because the pcb is missing, the plate/switch assembly would be seated 1.5mm too low. While this would be fine for a keyboard that is quite high from the start, I went for the original look here. Rubber washers should add additional dampening:


    The original gray feet were in bad condition. I used black rubber with sticky tape. Original feet are smaller but at that size the rubber feet slid around in the foot cavity. Larger feet work better here. Still have to find some gray stuff for this. The black dot on the right is the Teensy reset button:


    Retr0briting in 10% Peroxide solution. 6 hours for case and keys, 12 hours for the space bar. I'd stir from time to time and remove the bubbles that build on all surfaces:


    Finished:


    Another pic:


    And another one:


    Comparison with the non-retr0brited 'board, which initially was the lighter of the two:


    Sound sample modded vs. unmodified:


    original: http://www.lowpoly.com/keyboard/m0110/m0110old.mp3
    modded: http://www.lowpoly.com/keyboard/m0110/m0110new.mp3

    Programming: Thanks to hasu for help and for making his code available. He's awesome.

    The M0110 code is based on his Macway code. Because of the diodes I had to rewrite for 5 rows and 14 columns.

    The WinAVR environment is very comfortable. Change something, select "Make All" from the menu, select "Program" from the menu and you will be asked to press the Teensy reset button. After pressing it programming will proceed and the Teensy will reboot. Ready for testing.

    hasu's code also allows for permanent switching of layers. Per default I have Colemak. I can press Shift+Shift+1 and will have Qwerty. The Fn-layer will still work. Shift+Shift+0 will switch back to Colemak. Shift+Shift+2 will switch to the Fn-layer. Permanently, if you don't have a 0 or 1 on it. :)

    Edit: MouseKeys are working now on WASD, buttons on Q and E, wheel on R and F.

    It's easy to program something that'll make the Teensy crash. In that case the HID keyboard will vanish from the device manager after about 5 seconds.

    I didn't activate full NKRO (using multiple devices) in hasu's code. I don't need it and without it there will be no compatibility issues.

    No anti-ghosting code necessary because of the diodes.

    One idea I had during building was: with plate mounted keys and hand wiring it would actually be possible to bend the plate like on a Model M. This would allow for the same keycap profile on all keys and still have a cylindrical cross section for the rows!
    The Apple M0110 Today
    Miniguru thread at GH, kit preview site at guru-board.com

    Offline mr_a500

    • Posts: 1148
    • Location: Canada
    The Apple M0110 Today
    « Reply #1 on: Thu, 11 August 2011, 07:04:03 »
    Wow, that's an awesome, professionally done mod.
    « Last Edit: Wed, 17 August 2011, 10:16:35 by mr_a500 »

    Offline Half-Saint

    • Posts: 1008
    The Apple M0110 Today
    « Reply #2 on: Thu, 11 August 2011, 07:06:32 »
    Great job especially the wiring! You are my inspiration, mister!
    IBM Model M (6) - Acer Alcatel 6312-KW - IBM Model M Space Saver - IBM Model M 122-key - Cherry G80-3000 (2) - IBM Model F AT - TG3 BL82A (2)

    [SIGPIC][/SIGPIC]
    _______________________________________________
    My geek blog: http://onlyageek.blogspot.com/
    Flickr: http://www.flickr.com/photos/mr_mayhem/

    Offline mtl

    • Posts: 204
    The Apple M0110 Today
    « Reply #3 on: Thu, 11 August 2011, 07:09:12 »
    Exceptional keyboard, lowpoly.  The ribbon cable is beautiful.

    What are you using as Fn? Enter? Is the teensy recoverable if you permanently switch into a mode (sounds like it would just require reset/reprogramming) or crash it?
    MX13 SpaceSaver | Phantom | Tactoblack Filco -10 | Realforce 103U-UW | Variable Clicky Deck 82 | Deck Legend

    Online kaiserreich

    • HHKB Elite
    • Posts: 1409
    • Location: Malaysia
    The Apple M0110 Today
    « Reply #4 on: Thu, 11 August 2011, 07:17:59 »
    Awesome mod.

    The most remarkable part is probably the very nice Wiring + Diodes that you have done

    Offline lowpoly

    • Thread Starter
    • Posts: 2496
    The Apple M0110 Today
    « Reply #5 on: Thu, 11 August 2011, 13:03:03 »
    Thanks for the comments.

    Quote from: mr_a500;396929
    but why put all that effort into such an ugly keyboard? The size is cute, but the colours are what get me. (I believe the colour is known as "puce".... very similar to "puke".)

    I'd want to at least replace the keycaps with nice doubleshot black ones from a TRS-80 Model III or TI-99/4a. (same switches as M0110)

    I like the first Mac since I've seen it in at a computer fair in the early eighties. There were even cool bags for it to make it portable. The keyboard is the HHKB of the eighties, just compare the (physical) layout. So this had to be done. :) It must look original for this.
     
    Quote from: mtl;396932
    What are you using as Fn? Enter? Is the teensy recoverable if you permanently switch into a mode (sounds like it would just require reset/reprogramming) or crash it?

    Fn is the (Apple ?) key left to space. I use the left thumb for Fn, right thumb for Space. You can do the permanent switch as often as you want. First time I (permanently) switched to the Fn layer I found that I couldn't switch back because there wasn't a 0 or 1 in the Fn layer (number keys are F keys here). I put a 0 on \ and can switch back to Colemak now. Reset would do as well.

    I never had to reset the Teensy from a crash. The software would either run or not. If it doesn't run the Teensy can't be found in the device manager and no reset is necessary to reprogram it. Kind of counter-intuitive but that's how it is.
    The Apple M0110 Today
    Miniguru thread at GH, kit preview site at guru-board.com

    Offline Wibox

    • Posts: 167
    The Apple M0110 Today
    « Reply #6 on: Thu, 11 August 2011, 13:11:10 »
    Wow that's sick.
    !! YKBDS !! - KBC Poker (Ergo Clear Cherry) - Apple M0116 (Pink ALPS) - Apple M0115 (Orange ALPS) - Das Keyboard (Blue Cherry) - IBM Model F - IBM Model M - Dell AT101W (White ALPS) - Cherry POS 8000 (Clear Cherry) - Apple Extended II (Cream ALPS)

    Offline xwhatsit

    • Posts: 273
    • Location: NZ
    The Apple M0110 Today
    « Reply #7 on: Fri, 12 August 2011, 03:36:03 »
    Wow, great job. What an interesting way of wiring a matrix! Very impressed with the attention to detail.
    Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

    Offline hasu

    • Posts: 1016
    • Location: Tokyo, Japan
    • @tmk
      • tmk keyboard firmware project
    The Apple M0110 Today
    « Reply #8 on: Fri, 12 August 2011, 05:44:21 »
    damn nice!

    mmm, beautiful and skillful soldering work...

    ⚠ My Engrish is broken.    tmk keyboard firmware project(ADB,PS/2,X68K,PC98,M0110,HHKB,GH60)

    Offline czarek

    • Posts: 688
    • Location: Poland
    • Keep the momentum going!
    The Apple M0110 Today
    « Reply #9 on: Fri, 12 August 2011, 12:56:58 »
    Truly amazing stuff!

    Current Keyboards:
    ErgoDox (Vintage MX Black), ErgoDox (MX Blue), HHKB Pro 2, Unicomp Spacesaver M, Unicomp Endurapro, IBM Model M (1390120), IBM Model M (1391401), Cherry G81-3000 (MY Switch), Cherry G80-3000 (MX Blue), Cherry G80-2500 (Vintage MX Black), CM Storm QFR (MX Red), Filco AI Fullsize (MX blue), Dell AT101W (Black Alps), Amiga 2000 (White Linear NMB Space Invaders), Amiga 500 (Vintage Yellow Linear NMB Space Invaders), 3x Alcatel Lucent (Clicky Black Acer)
    Past Keyboards:
    Filco Tenkeyless Otaku (MX Brown), IBM Model M (1390131), IBM Model M SSK, IBM Model F Terminal (122), IBM Model F (AT), Realforce 87UB-EK45
    Pointing devices:
    Razer Deathadder 2013, Apple Magic Trackpad, Logitech M570, Kensington Expert Mouse, CH Products DT225 USB
    Running little ErgoDox factory: FalbaTech

    Offline elbowglue

    • Posts: 1110
    The Apple M0110 Today
    « Reply #10 on: Sat, 13 August 2011, 02:15:19 »
    Hot.
    My keyboards: Filco Cherry Blue Tenkeyless(daily home), Compaq MX11800 (modded to blacks), Compaq "MX 84u",  Wellington\'s Dampened Endurapro, Pinkalicious Filco Blue Cherry, Chicony KB-5191, Chicony KB-5181, Desko MOS 5023 UP "elbowglue" spos (modded to blues), Siig Minitouch (monterey blue), SMK-88 (blue cherries), Ricercar SPOS
    Smallest to biggest keyboards in inches (Length X Height) - Length is most important for a midline mouse position

    KBC Poker: 11.6 x 3.9 - HHKB: 11.6 x 4.3 - Siig Minitouch (Geekhack Space Saver): 11.6 x 6 - Deck/Tg3 82: 12 x 6 - Noppoo Choc Mini 12.4 x 5.3 - Compaq "MX 84u": 13.1 x 7.5 - Filco Tenkeyless: 14 x 5.3 - Cherry "ricercar spos" G86-62410EUAGSA: 14 x 7.75 - Topre Realforce 86u: 14.4 x 6.65 - Desko "elbowglue spos" MOS 5023 UP: 14.5 x 8.4 - IBM Model M Spacesaver: 15.3 x 7 - G80-1800: 15.9 x 7.1 - Adesso MKB-125B: 16 x 7.3 - Compaq Mx11800, Cherry G80-11900: 16.25 x 7.5 - Filco Standard: 17.3 x 5.4 - Unicomp Endurapro: 17.9 x 7.1 - Adesso MKB-135B: 18.3 x 6.0 - Cherry G80-3000: 18.5 x 7.6 - IBM Model M, Unicomp Customizer: 19.3 x 8.27

    Offline noxiq

    • Posts: 18
    The Apple M0110 Today
    « Reply #11 on: Mon, 15 August 2011, 04:08:12 »
    Looks really clean. Nice mod!
    Gee Gee Gee Gee Baby Baby Baby.

    Owns: Realforce 87USW

    Sold: Filco tenkeyless w/ browns

    Offline hyperq

    • Posts: 56
    The Apple M0110 Today
    « Reply #12 on: Mon, 15 August 2011, 04:19:04 »
    Outstanding!  Any plans to make it wireless?
    Office: Filco Majestouch 2 Brown (FKBN104M/EB2) | Logitech Wireless Trackball M570
    Home: Thinkpad X200\'s built-in keyboard | Logitech Wireless Laser V550 Nano
    HTPC: Logitech Wireless Keyboard K270 | Logitech Anywhere Mouse MX

    Want to buy: A mechanical keyboard with following features.

    Offline lowpoly

    • Thread Starter
    • Posts: 2496
    The Apple M0110 Today
    « Reply #13 on: Mon, 15 August 2011, 13:13:10 »
    :)

    Quote from: hyperq;399159
    Outstanding!  Any plans to make it wireless?
    Not for now. But there's still a lot of space in the case.

    MouseKeys do work now. I just changed the Product ID. Changed it back afterwards, MouseKeys still work.

    Added sound files to the first post:

    old:  http://www.lowpoly.com/keyboard/m0110/m0110old.mp3
    new: http://www.lowpoly.com/keyboard/m0110/m0110new.mp3
    « Last Edit: Mon, 15 August 2011, 13:15:57 by lowpoly »
    The Apple M0110 Today
    Miniguru thread at GH, kit preview site at guru-board.com

    Offline microsoft windows

    • Blue Troll of Death
    • * Exalted Elder
    • Posts: 6128
    • Location: microsoft windows
    • President of geekhack.org
      • Get Internet Explorer 6
    The Apple M0110 Today
    « Reply #14 on: Wed, 17 August 2011, 09:05:30 »
    Looks like a nice keyboard!

    OFFICIAL PRESIDENT OF GEEKHACK.ORG

    Offline wcass

    • Posts: 477
    • Location: Fort Lauderdale, FL, USA
    The Apple M0110 Today
    « Reply #15 on: Sat, 17 September 2011, 14:28:58 »
    i have only seen hasu's code as an adapter - used between the original controller and a USB cable. you use it as a controller connected directly to the matrix. would you mind posting a reference link - i was thinking of building an Aikon, but i already have a teensy. and i want mouse keys which the Aikon does not do.

    Thanks

    Offline wcass

    • Posts: 477
    • Location: Fort Lauderdale, FL, USA
    The Apple M0110 Today
    « Reply #16 on: Sat, 17 September 2011, 18:18:49 »
    « Last Edit: Sat, 17 September 2011, 21:40:12 by wcass »