Recently, I’ve developed an odd obsession. As most enthusiasts will know, hobbies are an effective way to find joy outside the daily grind of the workweek. At times it can be expensive, but the money is well spent; as this is what makes you happy, etc. Mechanical keyboards have been my guilty pleasure for the past few years, but now I’ve fallen down a new rabbit hole…
While not an Apple fan, I can appreciate their impact on the personal computer market, and how it shaped our perception of interaction with computers (and will likely continue to shape our perceptions for decades to come). I’ve seen people use raspberry pi’s to convert these old machines, into modern, vintage projects. This seemed like the perfect project to feed my curiosity.
Section 1: Getting the ingredients
I started off my journey by researching past people’s attempts and what steps they deemed necessary. Naturally, as popular as creating these Apple Pi’s were, the quality of these projects would fluctuate from professional-level mods, all the way to half-assed, sloppy attempts. After finding a couple that I thought were respectable, I start searching eBay for my canvas.
Right off the bat, I knew I wouldn’t want to disassemble a machine as I saw in my initial search. So an empty, gutted Macintosh was on my radar.
After weeks (no exaggeration, these are tough to find gutted!), I came across the basis of my project. In hindsight, I may have paid too much for just the housing, but this one was pristine. No yellowing, as old computers are known to do, because of vintage plastics. I understand that some would like the challenge of disassembling the old machines, but to me, I was willing to pay the convenience fee to avoid this.
Section 2: Baking the Apple Pi
Finding the empty case was the second hardest part (more on that later on). After finding the case, I moved on to finding internals. Luckily, this was rather easy, as there are loads of raspberry pi kits that include all the components needed to create a functional minicomputer (link in the description of the second photo). After deciding on all the components, it only took a few days before I had them all sitting on my kitchen table (thanks Amazon!). A quick install of Rasbian and I was ready to go!
Now, I mentioned above that the case was the second hardest part. The hardest part was to find a screen that would fit where the original CRT resided. Apparently, 4:3 aspect ratio monitors weren’t all the rage back in 2018, so there was a VERY limited amount of options there. Thankfully, I stumbled upon such a screen that I noticed someone in the customer reviews was using for this very project.
Mounting seemed simple enough; I initially planned on 3D printing a screen mount but realized the case wouldn’t close with this attached (The above photo below has the mount attached to the holes where the original Torx screws would have gone to secure the two parts of the housing together) so back to the drawing board I went. Eventually, I settled on cutting a piece of cardboard with an 8in square and fastening it with screws ( so much for trying to be fancy). Eventually, I would like to 3D print this same exact mount design for some added panache points. However, for right now, it does the job.
As you will notice, a couple of photos up, the screen isn’t a perfect fit. The original CRT’s were a 9in size rather than this 8in one I found. At this point, however, I was so exhausted trying to find one, I figured this was an acceptable compromise.
Section 3: Modest M0100
At this point, Apple Pi is more or less complete. I successfully installed Rasbian and even managed to install some 3D software mainly for a cool photo opportunity. However, the peripherals have left something to be desired. I figured I might as well commit to preserving the 80’s aesthetic while modernizing the internals.
First up, the mouse. Since I had a 512k model (which was essentially identical to the 128k), this was an easy choice. The m0100 shipped with the 128k way back in 1984. With the mouse selected, I started to search eBay in search of said mouse.
After looking for ages, I was finally able to track one down for a reasonable price. One might notice that this mouse isn’t the original beige and brown color, and doesn’t match the case. This color is known as “platinum”, and didn’t come out until 1987, a year after the Mac Plus debuted. I personally think the brown and beige that came with the original is hideous, and this “platinum” is far more appealing.
My overall end game for this project was to create an early Macintosh that I felt should have been revealed to the public (aesthetically speaking, not technically). This would mean ditching the beige color and going with the “platinum” that was shown on this mouse. Now with that explanation out of the way, let's get back into the mouse section of this project.
This is where I had to start getting creative. During my research of m0100 mouse mods, I only found one blog post of someone who had taken wireless mouse internals and retrofitted them to fit inside the m0100 chassis. I was fascinated by this idea and quite excited about the retro 80’s peripherals being used wirelessly. The post I saw, however, was rather messy, and not as elegant as I was imagining. This led me to my design for a wireless m0100 mouse.
From the above photos, you can see that I essentially took the guts out of a modern wireless mouse, and transplanted them into the m0100. Now it’s kinda hard to see in the first photo, but this wasn’t as straightforward as it first seems. The circuit board had an irregular shape and this irregular shape wouldn’t allow the laser to line up with the bottom cut out where the old rubber ball would go. I had to cut a notch into one of the sides of the bottom of the mouse so everything lined up correctly. This would be a tough task under normal conditions. Thankfully, I have access to heavy machinery and someone who knows a thing or two about machining and manufacturing; my father.
Having access to my dad’s mill allowed me to accomplish my goal of modding the interior of the mouse, without having to take either a hacksaw or Dremel to it (and possibly ruining it). The mill allows for precise, calculated movement. The bottom also had old mounting hardware that had to be shaved away to allow the wireless circuit board to fit. Now, with the manufacturing out of the way, it was time to wire everything up
Wiring and soldering were fairly straightforward. All I had to do was clip the old battery leads, and attach new wire leads for the battery housing that I 3D printed. The larger orange tip switch was actually the original one, with the old 1985 electronics, so I was pleased I could still incorporate that into the new design. A few screws, and a bent piece of copper later, the switch was mounted; the mouse was ready to test drive.
Now, I’m aware that some people may be offended by the sacrilege of me cutting the cord of the mouse. But in the name of science, it had to go, to fit the wireless aesthetic. I’m aware that purists may not appreciate this mod, but personally, I’m super pleased with how it turned out.
I had a slight concern, since the laser is a little further off the surface, compared to regular modern mouses… but to my delight, it worked flawlessly! One thing that didn’t age well, was the ergonomics of using this mouse. Within a couple of minutes, my hand started cramping. But despite this, it was fully functional, so I couldn’t be happier.
Section 4: M0110 Makeover
The only piece of the puzzle left in preserving the 80’s aesthetic for this project was the m0110 keyboard. This was the original keyboard that shipped with the 128k and 512k. It was surprisingly small and compact with nice, chunking bezels and very reminiscent of 60% keyboards that are popular today. Notice the lack of any arrow keys. This was intentional as Steve Jobs purposely wanted them omitted to encourage software developers to highlight the use of the mouse.
There was no numpad either but did, in fact, have a numpad (m0120) which was sold separately. Once jobs left Apple and the Macintosh plus was released, this model was ditched and replaced with the m0110a which had both a numpad and cursor arrow keys (albeit in a very confusing layout). Alright, enough history; back to the project!
Since I wasn’t looking for a pristine one (which I’ll go into more details about the plan momentarily) Finding one was easier than trying to search for one that was in factory mint condition. I eventually found one for an unbelievable price so I jumped on it buttttt……
I was outbid with less than 1 minute to go (Those are the breaks I guess). Luckily though, After many hours of further searching, I saw another one that looked to be in the condition I was looking for. A few days later, and it had arrived!
It’s incredibly cool to have a piece of personal computer history sitting right in front of you. This particular board is from 1984 and as you can see from the photos, it’s a little banged up but in pretty good shape regardless and should serve perfectly for what I have planned. But Before I talk about my plan, I had to disassemble the keyboard and isolate the case.
Speaking of my plans for the keyboard, I had two thoughts that came to mind.
- Buy a converter online that would allow me to use the keyboard as-is with the vintage hardware. Definitely the easier of the two.
- Disassemble and use the empty case as a start for a custom keyboard build.
I ultimately chose option 2 based on the fact that I already committed to updating the internals while keeping the retro aesthetic with the mouse so I figured I might as well keep that consistent with the keyboard. The seller was listing it in “as-is” condition as well, so I had no idea if it even worked. I wasn’t about to spend the money on a converter without knowing that information.
Plus this gave me the perfect opportunity to build my first keyboard — a project I’ve been wanting to do for a very long time (Any mechanical keyboard enthusiast should have at least one build!) I’m actually quite ashamed that it has taken me as long as I have after claiming to be an “enthusiast” but regardless, this would also allow me to give it features that Steve Jobs could only dream of in 1984.
Section 4a: The components
First up, a quick rundown on the components I planned on using.
For the PCB, I went with the DZ60 from kbdfans as the fine folks on the subreddit (r/mechanicalkeyboards) spoke extremely highly of it based on its flexibility and range of features. I also went with the official mount for the DZ60 since I was going for a non-traditional layout on the bottom row.
For the Switches, I decided to go with the NovelKeys kalih box heavy burnt orange. Switches are largely personal preferences but I mainly decided to go with this particular one as I was looking for a tactile switch with a high actuation force. I love clicky switches but for this build, I wanted to take the opportunity to try another tactile switch as I’ve only used MX browns up to this point.
And finally, the keycaps. THIS took the longest by far mainly because I was being super particular on which ones I wanted. I came across this Reddit thread which was exactly what I was looking for…but I missed the group buy. Unfortunately, if you’re looking for a certain design in a custom niche product (like mechanical keyboard keycaps), you have to be lucky enough to stumble upon a group buy opportunity when it’s active otherwise you’re out of luck.
But after many, many hours of searching, I was able to track down these keycaps from kbdfans. what I loved about these is that emulates the font that was used on the m0116 keyboard, the colors looked like they would match perfectly and it came with a bunch of different keycaps including a 7U spacebar which is necessary to emulate the m0110 look.
About a week a half later, the parts had arrived and I was ready to start building!…or so I thought. Once they arrived, I immediately tested out how the PCB would fit inside the body. While the board did fit snuggly inside, There were multiple problems I noticed.
For one, since the board was so close to the edges of the case, I wouldn’t be able to put any keycaps on. Furthermore, once I put the mounting plate on, it was clear that I had to make some modifications to both the interior of the front case panel as well as the exterior.
I would then have to do the same for the exterior of the top panel. I mocked up an example of how much of the bezel I would have to remove to allow the modifier keys to move freely and not contact the case. Later on, you’ll see what I’m talking about. This, however, looked like another trip to my parent's house was in order so I could enlist my father's help, along with his machinery.
Section 4b: Mounting the PCB
With that plan established, I wanted to get the actual PCB mounted and then worry about the top shell last. After some brainstorming and some measurements, I mocked up a quick prototype in Fusion 360 which you can see below to see how things fit.
I used a mounting plate model(shown in pink) for a 60% keyboard as a reference on where I should but the mounting standoffs. From there, I needed to create the screw holes so the original hardware could still assemble the two plastic body shells together, and then finally, there are some cutouts for both cable management and reduction in weight.
I also had to cut the model into 3 pieces for printing since my printer has a relatively small build volume. However, everything looked to be in order (at least for a prototype) so I figured let’s go ahead and test out my measurements.
I pleased to see that after diligently measuring and making sure I was accurate, that everything seems to fit perfectly. I screwed in the board to the standoffs with some standard m.2 screws that you pick up at your local hardware store. I was a little concerned about the amount of deck flex that would occur but thankfully, it was within my margin of error. Now that the board was properly installed I could focus my attention on the next stage of the keyboard build.
Section 4c: Improving the stabilizers
I would venture to wager that the vast majority of the people that will be reading this blog, probably have never thought twice about how much work goes into making a custom board. Especially since loads of people (myself included) just buy a mass-manufactured model for the first introduction.
However, if you browse the mechanical keyboard subreddit, you’ll find lots of dedicated and diehard enthusiasts that painstakingly go over every detail of a build to make sure it is perfect. Since this was my first ever mech keyboard build, I figured that in the spirit of r/mk, I would indulge in some of these enthusiast's practices. One such of these details includes making sure that there is little to no rattle in the stabilizers; so let’s tackle that one first.
I’m not going to go into every little detail about this process since there are various videos going into more detail. However, the general steps are such:
- disassemble the stabilizer.
- coat the interior housing of the stabilizer's feet, metal bar, and any other place where plastic contacts plastic with a thin-ish layer of dielectric grease or equivalent lubricate to get rid of some friction and reduce noise.
- Rinse and repeat for as many stabilizers as you’d like.
If your thinking that this is tedious and time-consuming…you’d be correct! in all actuality, though, I managed to get all of the stabilizers in the above picture is done in about 30 mins which wasn’t too bad considering that this is my first foray. I was skeptical that this could make a noticeable difference after the effort that was required…but boy was I wrong.
Instead of telling you, let me show you. In the below video, the space bar was lubed with the steps above and the enter key stabilizers were left stock.
I was blown away by how much of a difference this actually makes. If I could make a comparison, it’s similar to using a 60hz display for many years, switching to a high refresh rate such as 120hz, and then going back to 60hz. Once you noticed what you were missing, you may never want to go back.
You could take this even further and perform what’s called a “band-aid” mod which essentially, attempts to dampen the sound even more by reducing the sound of bottoming out of the stabilizer with the bottom of the PCB.
Another extra that many do is to actually disassemble each key switch and apply more lubricate to achieve even more smoothness and reduction in noise. This is a rite of passage apparently for any custom build in the keyboard community so I was pumped to give this a shot.
However, in my case though, I learned that it’s recommended that you avoid this with kailh box switches(which my burnt oranges are) as they’re prone to leaking which could damage the pcb. They are also extremely difficult to open compared to cherry and other clones I also read. This could just be hearsay but since I was satisfied with how they sounded unlubed, I decided that lubing switches will have to wait for another custom build I guess ¯\_(ツ)_/¯.
Section 4d: Flashing the firmware
One step that I didn’t mention back when I got all the components, is that it's good practice to test your components before you start building. That means for the PCB, making sure that it’s not faulty and the keystrokes register. Very simple to do luckily, I just grabbed a pair of tweezers to short out the pin where a key switch would. This would be similar to soldering in a switch and testing that way but this is way quicker. I remembered to do this but didn’t check all the aspects of the functionally when I did.
I’m glad I decided to test this again because after googling “keyboard tester” and giving this a second test, I noticed that where I wanted my right shift key was actually being picked up as the up arrow. Little problematic but thankfully, the dz60 is easy to configure thanks to its use of QMK firmware.
Like the stabilizers, I’m not going to go into much detail with this but essentially, I just had to follow the steps from this video from MechMerlin and I was ready to roll.
Section 4e: Modifying the top shell
Alright, now that everything appears to line up correctly and working as intended, I wanted to switch my attention back to milling out the top section of the case so the left and right modifier keys could sit snuggly.
As I mentioned above during the beginning of this section (and the above photo shows), some modifications to the top shell of the case had to be made to make room for the modifier keys. Only a very small amount had to be removed which hopefully won’t be too obvious. I would rather have the case unmodified, but I guess this is the compromise I had to make since I didn’t have a custom PCB for this case. The original plan was to have my dad help since he has a machine shop but covid-19 had different plans so it was on to plan B which involved just using a Dremel.
I first started off my marking how far into the top shell the modifier keys protruded.
From there, it was as simple as using the Dremel to carve out the areas that I marked, making sure to pay close attention to not over cut.
I’m happy (for the most part. More on that in a second) how this turned out given that I was doing this by hand and not a machine as I wanted. I did make a mistake on the left-hand side, however. I managed to get the cuts no problem but trying to get the corners to be rounded enough required a smaller Dremel tool that I didn’t have.
As a result of my impatience, I decided to try and attack these small corners with too big of a sanding head and as a result, dug into the bottom of the case right above the apple logo. I had to sand down the rest of that section to make it level and not obvious that I made a mistake. If you compare the left side vs. the right (underneath the shifts keys) there is a little bit of a size discrepancy with the gaps. I could live with this mistake though as it could easily be fixed with some Bondo or putty. Let this be a lesson kids…make sure you have the right tools for the job.
From there, I just finished off the sides with some files (which I ordered immediately after encountering the mistake I just listed above) to finish the final touches.
Section 4f: Wiring and Soldering
Pheww…this has been quite the section but I wanted to break it down since there was so much to do. All that’s left now is to solder the switches plan how to connect the keyboard to the computer.
I first tackled the problem of having the little extension cable hook up from the pcb to the outside of the case. Once again, I opened up fusion 360 and quickly mocked up a little plug that would fit where the original telephone cable would have plugged into. You can find that here.
I was very happy with how this turned out. With other parts I created, some glue was needed to keep it in place. For this, however, I was able to design it so it could be pressure fitted with no additional gluing needed. You’ll notice that in the third picture, the housing for the female portion of the extender cable was a little too fat so I had to take a Dremel to it so it could fit in the slot. Since you wouldn’t see this, it didn’t bother me.
Alright with that problem solved, all that was left to do was to hook up the extender plug to the mainboard and see how everything fit together.
I routed the cable up through one of the slots in the mounting frame and hooked it up to the pcb. I wish I could say I knew the dimensions of the cable connector head before I ordered it but I didn’t. This was straight luck that it fits as snuggly as it does (seriously, with only a couple mm to spare). I couldn’t be happier that everything is coming together. All that was left to do is to solder everything up and do an initial typing test.
I got my solder station set up and began to tackle the last remaining portion. I’ve soldered before, I’m definitely not an expert. However, I managed to get this done in about 20–30 mins which I think is pretty respectable.
All wired up and ready to go, I decided to take the keyboard on its maiden voyage. I fired up an online typing test and tried a few rounds with it. To my surprise, it was shockingly easy to type on. There was a slight learning curve (mainly with the shape of the frame, not the fact that it was a 60% board) but eventually, I was able to type as fast on this as I was with my main full-size board. Everything sounded great as well. I threw in some damping foam to help out the ping from the case since it was essentially empty which seemed to help. Below you can find an audio sample of said typing test.
Section 5: platinum-itize me captain
If you recall, the main goal of this project was to combine the aesthetics of the newer Mac Plus and that more pleasing color scheme with the old hardware such as the 512k housing. Having the mouse as the “golden copy” so to speak for the colors was a big help as I didn’t have to guess in the dark. I did post some discussion on Reddit, asking what color the “platinum” would be.
I had moderate success. I uncovered a Pantone equivalent color that wasn’t identical, but it was so close that you’d be nitpicking to find the difference. You can find that thread here. Despite that find, the only way I could get the exact color was to go online and request a custom batch, which would be way too expensive. So I had to go with plan B.
Plan B involved traveling down to my local Home Depot and see if they could color match. Which, spoiler, they did….with freakin’ lasers!
In all seriousness though, since I don’t have that much experience with painting, and since walking into a home improvement store makes me feel like a fish out of water…this was cool to find out.
Now that I had the right paint, it was time to start painting the body and keyboard to match the color scheme of the mouse. I’ll admit, if there was ever a time for life to have a ctrl+shift+S function (to save a new version in case you mess up), it would be now. Despite that, I masked off important areas (such as the logo, serial number, and other important information) on the front and back, to make sure excess paint didn’t cover them up. After about half an hour, I was finished and just had to wait for the paint to dry.
At first, I was struggling to see a difference between the two colors. After the paint had time to dry, however, the difference was very clear. One step closer to my end goal! The minimal branding that the 128k/512k models had, compared to the Mac Plus branding (which had “Macintosh Plus” written on the front panel), is definitely more appealing to me, especially now with the fresh coat of platinum, looks even better.
I did the same with the keyboard body now that it was completed and just had to wait for that to dry as well.
Now, for the elephant in the room. “Why did you spend so much time and money looking for a pristine color case if you were just going to paint over it?” you may be asking. To that, I would say, that criticism is welcome. I realized that I’m contradicting my earlier statements of why I chose the case I did, but I had no plans of painting the case until I got the m0100 mouse many months later.
Section 6: But there’s one more thing…
There were a couple of housecleaning things that I wanted to document before I signed off for this post. This mainly revolves around how I cable managed everything and set up power delivery. Let’s talk about the latter first.
I could have just used the back slots of the case to route the power supply from the pi and called it a day. However, I wanted to recreate the aesthetics and functionality of the original machine so this involved a little creative problem-solving.
Amazon for the win once again. I actually got the idea for these components after stumbling across kevdoy’s page from thingiverse.com. You can check out his page here. I noticed that he already had the 3D printed parts I needed for my conversion; an AC port adapter and a power switch adapter with convenient buying links for each. They were designed for use in a Mac Plus case but thankfully, they would be fully compatible with my 512k case.
After a quick 3D print later, I had both parts and was able to begin assembling. Below you can see how much tidier the setup is now. I was able to consolidate all the wires from this:
From here, I simply inserted the simple rocker switch into the power switch adapter. I also soldered two wire leads with a female pin adapter to each (more on that in a second). Now for the last piece of the puzzle for the power delivery.
As most well know, the Raspberry Pi doesn’t come with an official power switch. Sure, you could just get a power adapter with a switch and turn off the power that way but by doing this, you run the risk of corrupting your data. Soooo…I landed on the power block accessory to help with shutting down and booting up the Pi for two reasons.
- It integrates nicely with the Pi by just utilizing the General Purpose Input Output (GPIO) pins so everything is nice and compact.
- The second reason is the simplicity of adding a rocker switch as well as an optional LED.
I then took leads from the switch I mentioned earlier and plugged them into the slot on the power block and did the same with the LED. From there it was as simple as plugging in the power supply, inserting the power switch adapter into the original slot, installing a driver for the power block and my power delivery solution was complete.
Well…almost. I wanted to utilize the LED in a way that made sense and not just keep it inside where no one could see it. You can see that there is a big void on the left-hand side where the old brightness control knob used to be right underneath the apple logo.
Since I didn’t need that anymore, I wanted to create some kind of plug that would house the LED since this now would act as the raspberry Pi boot light. I quickly mocked something up in Fusion 360 and ended up with a design I was satisfied with. You can find the part here.
Now, a keen-eyed viewer might have noticed in one of the earlier pictures, that the slot above the power switch was filled with another 3D printed part (This time of my creation!). This was my idea for utilizing the USB ports of the Pi without having to open the housing every time to access them. The part allows for 3 USB extension cables to be pressure fitted into each of 3 slots. I did have to use a little super glue to keep them in place.
I figured the simplest way would be to use the old battery compartment. To my knowledge, this was for the internal clock that needed to keep running in order to keep some system settings working properly once the power was turned off. Since I didn’t need this, seemed like the perfect opportunity.
Section 7: Future improvements
Anddddd here is the final result!
In the above photo, you can see that I found an emulation software that gives this project a little bit more pizzazz in terms of polish. I don’t think it’s quite accurate to the period and what software the 512K would have been running, but it works well enough for my purposes. I’m not going into the details of getting this running in the interest of time, but you can learn more about that from this video. You just have to be sure to grab the Linux ARM build from the download website.
One last thing I forgot to mention was the addition of a plug similar to the one I added to the m0110 keyboard to fit a USB c female adapter so I could plug in the keyboard to the front side, just like the original keyboard.
Pheww! Alright, this project has been quite the journey (As well as this blog post! 😛). I realize that this might be more information that is digestible in one sitting, but I wanted to document my entire voyage in as much detail as I could. Of course, like any project, there are always things I could improve/build upon. I’m going to list a few down below:
- mount the raspberry pi in a more organized way instead of just thrown it into the case (maybe 3D print a stand for it and mount it on the interior side of the case?).
- Convert the m0110 keyboard to Bluetooth to match the aesthetics of the mouse.
- Add a micro sd to SD card extension cable and mount it to the original floppy disk drive area.
- Improve the gaps for the m0110 keyboard between the bottom row of keys.
I worked on this for about 2.5 years on and off and I learned so much and am quite pleased with the end result and hope that someone reading this could find this helpful if they plan on tackling a project like this.
Cheers and thanks for reading😃.