Close
0%
0%

Codename: Project Plapple

Simple project, creating a replacement pcb for the Apple Keyboard II

Similar projects worth following
221 views
An Apple Keyboard II retrofit. Fitting a new Mechanical Keyboard PCB inside the old case.

The apple keyboard II was the cheaper option for late 80s early 90s option macintosh computers, It used some interesting switches with rubber dome and a membrane sheet. I had an old one sitting around that had some broken keys (the rubber had broken) and with some keyboards under my belt I decided to take a stab at seeing if i could replace the internals with a proper pcb based, modern mech switch board.

This has been an ongoing project for a while with several iterations. The current version just needs minor tweaks I consider mostly complete. there is room for 2 pcbs, the keyboard and peripheral board. the peripheral board is unnecessary and leaves room for some modular design ideas.

Currently I have a successful Nrf52840 based Bluetooth keyboard that runs ZMK. The fit is decent and functional. With much of the work done in the past I'll use project logs to try to recount the progress. I will open source the board eventually once I've cleaned them up.

Project bits:

* Keyboard PCB

* Daughtercard adaptors for usb C and power switch

* Firmware with ZMK

  • Backlog #3

    Martin01/10/2023 at 16:55 0 comments

    Backlog 3 brings us to the current revision of the board. I learned of the ZMK firmware which adopted a bluetooth first (but not bluetooth only!) approach to open keyboard firmware, they use Zephyr RTOS as the base for the firmware and i was delighted in how easy it was to make a custom board for it. It's also easy to maintain custom builds with their github actions fork that will build firmware for you when you change your keyboard files and push the changes. One of the most well supported bluetooth soc's in the maker ecosystem is the nordic NRF52840, this has been very popular for reasons of arduino support (and other firmware as well such as Zephyr Rtos), dev boards and modules available, and the fact it also has a usb peripheral making it a perfect match for a keyboard project.

    I had a nice grab of about 20 modules from the free table of my old workplace. These were Rigado BMD-340 modules. (which were acquired in the past few years by ublox and rebranded ublox BMD-340 iirc). Since I had some I decided to take the dive and redesign the plapple board around this module, as well as why I didn't opt for the cheaper more common raytac modules.

    Design was simple, the biggest changes was needed to add a LIPO charger and a cut out zone for the bluetooth.

    As you can see I also switched to surface mount diode arrays to lower parts count and to make it more smd friendly.

    Outside of that and my many failed secondary pcb designs (the ones that fit where the old controller board would go) It was relatively painless. I improvised a simpler usb-c adapter for usb connection that relied on a 3D printed housing to make it line up where with the spots for the old mini-din connectors went along with a cobbled together a internal usb cable from an old pc case. I just need to adjust the 3d printed part to center the connector better otherwise, I'm really happy with that fit. For the battery connection I added an in between board for the battery with a switch to disconnect the load if the keyboard is going in storage. The circuitry on board only has a LIPO charger IC and no cell protection so the added safety of a switch as well as the mental reassurance that something is off when switched off felt like a good enough reason to add it. I had to splice 2 jst battery cables together to make a male/male cable to go between kebyoard and power switch board. For the display I used a little i2c SSD1306 oled and 3dprinted a (accidentally) press fit mounting bracket that slips around supports for the old apple power switch.

    Not ideal but it works.

    An important note, These little adapters for the power switch only work with the SMK version of the apple keyboard II case. This is because the SMK version actually had screw mounts for the old controller board, which allowed me to reuse them. The mitsumi case lacks the screws and it's controller board is a simple pres fit and held in place with some plastic supports.

    So that leaves me with some things I still want to do before I call the project finished:

    • Re-examine Power draw
    • Re-design power rail/management
    • Add lipo cell protection IC (maybe add to switch daughter board)
    • design a succesful/functional full size daughter board
    • Change power switch to pushbutton on switch daughterboard
    • Hatch the ground planes

  • Backlog 2

    Martin11/15/2022 at 15:57 0 comments

    Fast forward a little bit and it was time to take another swing at it, arm support had gotten better with qmk and i figured i should be able to make it work. Revision 2 moved to a more common keyboard pcb design and forgoes the need for the peripheral board. I decided to try out some kailh hot swap sockets, breakout the i2c connections and the MCU chosen was an stm32F405.

    This version had a more accurate fit in the case (not perfect) as well as the ability to be used outside of any case if you wanted to. Programming was done over dfu and the reset button was a bit awkward and as you can see in the above picture i had botched a diode connection which i just bodge wired to the vbus breakout which was luckily the only electrical oopsie. A friend had helped laser cut me an acrylic 60% switch plate which I think I reused a couple times (hence why it looks a little broken in the below picture).

    A note is that this design needs 2 separate switch plates, one for the 60% area and one for the numpad, the case bar between the two prevents from using a single custom switchplate. I happily found that generic easy to find 60% switchplates fit the case and design leaving me only need worry about the numpad plate which I could get from a laser cutting service eventually.

    Not much else huge in this update, a caveat to the board design is the right most pcb stabilizer holes are cut off and still present in the modern design, I'm worried extending it would prevent a snug fit so I've just dealt with it as is. Most progress was in me futzing around and learning qmk, this was before more boards with relateable mcu's were common in qmk so it was slightly more challenging but still relatively easy to cobble something together.

    A note on the cases, I originally just had one apple keyboard II but for the purpose of testing different cases and having some complete keyboards to test I acquired a few more through ebay (purchased ones with known issues/not working so i wouldn't be gutting a good board).

  • Backlog: 1

    Martin11/15/2022 at 00:50 0 comments

    Most of these will be backlogs, I'm trying to muster up strength to write out these old backlogs and give the project a more flushed out context.


    For a good view into the apple keyboard II check out this desk authority wiki listing:

    https://deskthority.net/wiki/Apple_Keyboard_II

    There were 2 manufactures of this keyboard, smk and mitsumi. The cases have small differences and from my very small sample it looks like the smk ones were of a little higher quality.

    The internals of both include: 

    • Controller PCB - printed circuit board with controller mcu as well as ADB connectors/reset switch
    • Metal backing Plate - this is curved, all the keys are same height, it's the physical shape of the board that is stepped
    • plastic printed circuit sheets - contains the keyboard matrix and connects to the controller board via fpc like connection
    • plastic molded layer- determines the key layout and holds the barrels as well as locks the printed circuit sheets in place
    • top and bottom case

    My first attempt at building the board i wanted to mimic the separate controller and keyboard matrix, with the idea that you could make the controller modular and reuse the same matrix.

    A breakdown of revision 1 as follows:

    • Separate Controller PCB and Keyboard matrix
    • Controller had a teensy ++, adafruit bluefruit, adafruit powerboost, slide switch for power and reused the mini din connectors from the old controller boards
    • A forbidden cable of USB -> Mini Din connector was made for the external connection then a weird spliced open hand wired mini usb internally. I wanted to reuse the old cable and it's hard to beat that coiled cable fun. It was electrically passing the 4 usb connections just wired to the mini-din
    • Three separate 2x10 1.27mm pitch cables were used to connect the matrix to the controller board. This ended up not working so great as the heads of the connectors were rather large and prevented the case from closing. I ended up breaking the plastic seperation bar (the one between numpad and rest of the keyboard) of the top case so it could close.
    • The slide switch was positioned in the approximate area were the reset button would be so you could reach in and toggle battery power

    Below you can see revision one pictured:

    Breadboard version:

    Made a protoboard controller:

    assembled:

    It was functional! however the case fit wasn't perfect and even after breaking off the plastic the case wore down on those 1.27mm connecting cables. I Should note this proto comes long before my confidence in SMD soldering took place hence using available through hole parts. Theoretically would make it easier to hand solder everything and make an easier diy project but I was on the fence about the practicality of it.

    Also to note you can assume that in-between revisions there's a kinda constant tweaking and remeasuring so i could get the case fit better, some compromises were also made when designing controller boards to make them fit in both styles of cases vs one.

    I'd consider revision 1 a clunky diy quasi success but it was nowhere near as clean as I wanted it which leads to r.2 which I'll cover in the next backlog

View all 3 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates