The Apple M0110 Today

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
* meaning the cursor keys are on a second Fn-activated layer.

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:
Image

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

Made in USA:
Image

The dust bunny's natural enemy:
Image

Old-school Alps:
Image

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:
Image

1N4148, as recommended by Dave Dribin:
Image

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:
Image

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

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

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:
Image

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

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:
Image

A round piece of POM will press the reset button:
Image

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

The complete Teensy assembly:
Image

And this is how it looks in the keyboard:
Image

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):
Image

Aluminum part other view:
Image

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

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:
Image

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

Controller glued into place with isolation layer:
Image

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:
Image

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:
Image

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:
Image

Finished:
Image

Another pic:
Image

And another one:
Image

Comparison with the not retr0brited 'board, which initially was the lighter of the two:
Image

Sound sample modded vs. unmodified:
Image

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. :)

Still have to try the Mousekeys feature which wouldn't work immediately. MouseKeys are working 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!
Last edited by lowpoly on 16 Aug 2011, 08:15, edited 6 times in total.
lowpoly
User avatar

Unread post11 Aug 2011, 12:34

User avatar
X
lowpoly
 
Posts: 163
Joined: 30 Jan 2011, 20:35
Location: Hamburg, Germany
Main keyboard: Miniguru
 
:o Awesome mod!
Findecanor

Unread post11 Aug 2011, 13:31

X
Findecanor
 
Posts: 1398
Joined: 01 Mar 2011, 21:43
Location: Stockholm, Sweden
Main keyboard: Changes from day to day
Main mouse: Wowpen Joy (modified)
Favorite switch: I have yet to find it...
 
 
Fuck you Google for ruining YouTube!
very clean work, awesome!
CeeSA
User avatar

Unread post11 Aug 2011, 14:14

User avatar
X
CeeSA
 
Posts: 1302
Joined: 30 Jan 2011, 14:19
Location: Bonn, Germany
Main keyboard: Deck 82 modded
Main mouse: Logitech G400
Favorite switch: Cherry MX Blue
 
You're insane ! Very good work.
Gunny

Unread post11 Aug 2011, 14:28

X
Gunny
 
Posts: 51
Joined: 25 Mar 2011, 11:14
Location: Lille, France
Main keyboard: Filco tenkeyless brown
Main mouse: Razer Diamondback
Favorite switch: Buckling spring
 
Cleanest hand wiring job I've seen.
webwit
User avatar
Wild Duck

Unread post11 Aug 2011, 16:22

User avatar
X
webwit
Wild Duck
 
Posts: 6627
Joined: 28 Jan 2011, 00:27
Location: The Netherlands
Main keyboard: DataHand Pro II
Favorite switch: Buckling spring
 
 
Lowpoly, how is it possible *everything* you do comes out spectacular? Including the presentation. I'm astonished by the amount of handicraft skills and sense of esthetics every time.
lal
User avatar

Unread post11 Aug 2011, 17:46

User avatar
X
lal
 
Posts: 181
Joined: 11 Jun 2011, 13:03
Main keyboard: Poker
Main mouse: TrackMan
Favorite switch: BS
 
awesome! You got skills!
xbb

Unread post11 Aug 2011, 18:23

X
xbb
 
Posts: 908
Joined: 11 Mar 2011, 21:27
Location: Italy
Main keyboard: Filco Tenkeyless MX Blue
Main mouse: Zowie EC2 eVo / CST L-TracX
Favorite switch: MX Brown / MX Blue
 
Great mod. Using ribbon cable was clever, haven't seen that trick before.
ripster

Unread post11 Aug 2011, 18:42

X
ripster
 
Posts: 4080
Joined: 09 Feb 2011, 07:04
Location: Ugly American
Main keyboard: As Long As It is Helvetica
Main mouse: Mickey
Favorite switch: Wanna Switch? Well, I Certainly Did!
 
Awesome mod! Real clever to use only the diodes to connect the rows. Very clean!
intealls

Unread post11 Aug 2011, 18:59

X
intealls
 
Posts: 122
Joined: 05 Feb 2011, 19:10
Main keyboard: Tipro split
Favorite switch: Cherry MX Blue
 
Very clean mod! Thanks for sharing.
Jim66
User avatar

Unread post12 Aug 2011, 17:30

User avatar
X
Jim66
 
Posts: 761
Joined: 10 May 2011, 15:35
Location: Bristol, UK
Main keyboard: MacBook Pro
Favorite switch: Topre
 
Ye gods, those diodes... how neat is that?
nathanscribe
User avatar

Unread post12 Aug 2011, 18:31

User avatar
X
nathanscribe
 
Posts: 498
Joined: 13 Mar 2011, 13:03
Location: Yorkshire, UK.
Main keyboard: Filco tenkeyless w/blues
Main mouse: Kensington Expert
Favorite switch: MX Blue
 
beautiful simplicity!
good old lowpoly; dremel saves the day :D
msiegel

Unread post12 Aug 2011, 20:57

X
msiegel
 
Posts: 5
Joined: 12 Aug 2011, 20:19
Main keyboard: Filco Tenkeyless brown
Main mouse: MX310
Favorite switch: IBM F
 
Thanks for the comments.
msiegel wrote:dremel saves the day :D

Actually, I tried to mill that keycap but it wouldn't stay in the vise. So, Dremel FTW! :lol:
lowpoly
User avatar

Unread post12 Aug 2011, 21:22

User avatar
X
lowpoly
 
Posts: 163
Joined: 30 Jan 2011, 20:35
Location: Hamburg, Germany
Main keyboard: Miniguru
 
Was the condition very bad before you got them fixed up? I have a set of dampened complicated white alps which are very used and dirty, and the plastic appears to be a bit brittle so I'm not sure if I'll use them.

You have to try the mousekeys, it's very smart. I'm using Hasu's code now on a HHKBified Minitouch.

Very nicely done!
Minskleip
User avatar

Unread post12 Aug 2011, 22:58

User avatar
X
Minskleip
 
Posts: 808
Joined: 31 Jan 2011, 18:29
Location: Norway
Main keyboard: HHKB Pro 2
Main mouse: CM Sentinel Storm
Favorite switch: Buckling spring
 
Brilliant! The elegant execution of this.. I hope you don't mind terminally lazy modders copying these techniques...
nanu
User avatar

Unread post13 Aug 2011, 00:40

User avatar
X
nanu
 
Posts: 84
Joined: 30 Jan 2011, 02:28
Location: USA
Main keyboard: FKBN87M/NPEK
Main mouse: Steelseries Kinzu v1
Favorite switch: ?????
 
Nice, just realised this was on hack a day too!
gore
User avatar

Unread post15 Aug 2011, 03:38

User avatar
X
gore
 
Posts: 155
Joined: 06 Feb 2011, 23:46
Location: UK Birmingham
Main keyboard: KBC Poker
Main mouse: Razer Deathadder
Favorite switch: MX Brown
 
Minskleip wrote:Was the condition very bad before you got them fixed up? I have a set of dampened complicated white alps which are very used and dirty, and the plastic appears to be a bit brittle so I'm not sure if I'll use them.

I broke the first switch I tried to remove. Don't know why, no problems after that. Overall they were in good condition.
Minskleip wrote:You have to try the mousekeys, it's very smart. I'm using Hasu's code now on a HHKBified Minitouch.

Done. No idea why it wouldn't work before. This time I changed the Product ID, maybe that. Changed it back afterwards, still works. Very nice feature.
nanu wrote:I hope you don't mind terminally lazy modders copying these techniques...

Not at all. :)

I also added sound files to the first post, here they are again:

old: http://www.lowpoly.com/keyboard/m0110/m0110old.mp3
new: http://www.lowpoly.com/keyboard/m0110/m0110new.mp3

Edit: and a pic with visuals of the two sounds.
lowpoly
User avatar

Unread post15 Aug 2011, 19:08

User avatar
X
lowpoly
 
Posts: 163
Joined: 30 Jan 2011, 20:35
Location: Hamburg, Germany
Main keyboard: Miniguru
 
Does this mod add CTRL key capability to the M0110? Is there a way to input the CONTROL command into a classic macintosh?
jonnymacuser
User avatar

Unread post15 Nov 2011, 21:36

User avatar
X
jonnymacuser
 
Posts: 2
Joined: 15 Nov 2011, 21:07
 
Impressive!

The layout almost looks like HHKB.

Image
I love the aestetics of this. Why do we need a PCB for the Phantom?
7bit
User avatar

Unread post15 Nov 2011, 22:31

User avatar
X
7bit
 
Posts: 9205
Joined: 01 Feb 2011, 00:37
Location: Berlin, DE
Main keyboard: Tipro / IBM 3270 emulator
Main mouse: Logitech granite for SGI
Favorite switch: MX Lock
 
7bit wrote:I love the aestetics of this. Why do we need a PCB for the Phantom?

Because there is only one lowpoly is why.
ripster

Unread post16 Nov 2011, 00:08

X
ripster
 
Posts: 4080
Joined: 09 Feb 2011, 07:04
Location: Ugly American
Main keyboard: As Long As It is Helvetica
Main mouse: Mickey
Favorite switch: Wanna Switch? Well, I Certainly Did!
 
lowpoly, this is great mod no doubt!
It made up-to-date full-fledged keyboard from decades old.

I've finally got a M0110 the other day too. This mod is very tempting to me in particular full switch matrix with diodes. But M0110 is very rare here in Japan, I decided to retain taste of the keyboard to the utmost.
In my case it result in a M0110 protocol converter, switch lub and silence mod. Not retr0brite'd, of course:)

Keyboard protocol converter on Teensy. If you are a collector and want to retain the keyboard intact, try this. This converts your M0110 into USB keyboard. https://github.com/tmk/tmk_keyboard/tree/master/m0110_usb
Image

Rubber sheets on both side of PCB and acoustic absorb filling.
Image
hasu
User avatar

Unread post14 Dec 2011, 06:20

User avatar
X
hasu
 
Posts: 158
Joined: 02 Sep 2011, 14:47
Location: Japan
Main keyboard: HHKB
Main mouse: HHKB
Favorite switch: Topre
 
hasu wrote:I've finally got a M0110 the other day too. This mod is very tempting to me in particular full switch matrix with diodes. But M0110 is very rare here in Japan, I decided to retain taste of the keyboard to the utmost.
In my case it result in a M0110 protocol converter, switch lub and silence mod. Not retr0brite'd, of course:)

Sooo good, hasu. Would have saved me a lot of work. :) I should add dampening materials too.

The 'boards I started with were both defective, so no harm done.

I still use this as my regular 'board in the office.

The only thing I need now is a matching M0100 mouse with Magic Mouse technology inside.
lowpoly
User avatar

Unread post29 Dec 2011, 02:45

User avatar
X
lowpoly
 
Posts: 163
Joined: 30 Jan 2011, 20:35
Location: Hamburg, Germany
Main keyboard: Miniguru
 
How hard would it be to make the adapter support M0110A also? It has a numeric keypad and cursor keys, but no right Option key. Is it the same protocol?
Findecanor

Unread post29 Dec 2011, 03:45

X
Findecanor
 
Posts: 1398
Joined: 01 Mar 2011, 21:43
Location: Stockholm, Sweden
Main keyboard: Changes from day to day
Main mouse: Wowpen Joy (modified)
Favorite switch: I have yet to find it...
 
 
Fuck you Google for ruining YouTube!
I think it has the same protocol, but just extended scan codes for its extra keys. Not so hard.
hasu
User avatar

Unread post30 Dec 2011, 15:08

User avatar
X
hasu
 
Posts: 158
Joined: 02 Sep 2011, 14:47
Location: Japan
Main keyboard: HHKB
Main mouse: HHKB
Favorite switch: Topre
 
Where did you get your TAED for retrobriting from?
gore
User avatar

Unread post01 Jan 2012, 19:42

User avatar
X
gore
 
Posts: 155
Joined: 06 Feb 2011, 23:46
Location: UK Birmingham
Main keyboard: KBC Poker
Main mouse: Razer Deathadder
Favorite switch: MX Brown
 
It's not TAED, it's H2O2. Got it from a friend.
lowpoly
User avatar

Unread post01 Jan 2012, 22:21

User avatar
X
lowpoly
 
Posts: 163
Joined: 30 Jan 2011, 20:35
Location: Hamburg, Germany
Main keyboard: Miniguru
 
Has someone here tried something else for retr0briting? Another reducing agent, perhaps? Any chemists here? I just found some old decolouriser (30% sodium dithionite) for clothes as I was searching for some old dental cleaner-like thingies to clean some key caps, and I wonder if this worked as well. After all, H2O2 isn't even a proper reducing agent, it's more like the opposite, isn't it? :geek:
Lustique
User avatar

Unread post01 Jan 2012, 23:32

User avatar
X
Lustique
 
Posts: 155
Joined: 30 Nov 2011, 17:53
Location: Germany
Main keyboard: G80-1851LUCDE-2
Main mouse: Kensington Orbit Scroll Ring Trackball
Favorite switch: Buckling Cherry MY bruewck
 
 
My mechanicals: G81-3004 HAD / 10, G80-3000LSMDE-0, G80-1851LUCDE-2, G80-1851LUCDE-0, G80-11800LPADE-0, IBM Model M 1391403
For underlying theory click here:

http://retr0bright.wikispaces.com/

Then, in the left column, "The Science Bit".
lowpoly
User avatar

Unread post02 Jan 2012, 11:42

User avatar
X
lowpoly
 
Posts: 163
Joined: 30 Jan 2011, 20:35
Location: Hamburg, Germany
Main keyboard: Miniguru
 
lowpoly wrote:For underlying theory click here:

http://retr0bright.wikispaces.com/

Then, in the left column, "The Science Bit".

Yeah, I already read this (thanks for the link though), but I still don't really get why they didn't use another reducing agent. :?

Oh, as I have just found out, H2O2 is (probably) in fact an oxidizing agent, not a reducing agent, since it is used for oxidative bleaching in the textile industry. (So either I didn't read everything properly or they were a little bit sloppy in their explanations (probably the first bit).)
I then read, that the most effective bleaching effect could be achieved by using both an oxidative and a reductive step ("chemistry of the textiles industry" via google books, page 56, right at the top). Maybe someone should try this for extra whiteness. :mrgreen:

I don't know if anyone is interested in this, but I thought I'd post it anyway. :)
Lustique
User avatar

Unread post02 Jan 2012, 12:40

User avatar
X
Lustique
 
Posts: 155
Joined: 30 Nov 2011, 17:53
Location: Germany
Main keyboard: G80-1851LUCDE-2
Main mouse: Kensington Orbit Scroll Ring Trackball
Favorite switch: Buckling Cherry MY bruewck
 
 
My mechanicals: G81-3004 HAD / 10, G80-3000LSMDE-0, G80-1851LUCDE-2, G80-1851LUCDE-0, G80-11800LPADE-0, IBM Model M 1391403
gore wrote:Where did you get your TAED for retrobriting from?

It's in this Oxy laundry booster in the original Retr0bright recipe.
Lustique
User avatar

Unread post02 Jan 2012, 12:47

User avatar
X
Lustique
 
Posts: 155
Joined: 30 Nov 2011, 17:53
Location: Germany
Main keyboard: G80-1851LUCDE-2
Main mouse: Kensington Orbit Scroll Ring Trackball
Favorite switch: Buckling Cherry MY bruewck
 
 
My mechanicals: G81-3004 HAD / 10, G80-3000LSMDE-0, G80-1851LUCDE-2, G80-1851LUCDE-0, G80-11800LPADE-0, IBM Model M 1391403
Next

Who is online

Users browsing this forum: bhtooefr, keiwop, vsev and 18 guests