Jailhouse Gateron Greens

Jailhouse Greens (and blues) are a popular switch modification that makes significant changes to clicky MX-style switches. These mods can be performed on both Cherry and Gateron switches.

The effect of the mod is to remove any pretravel between the stem and click mechanism by adding a rubber spacer between the two. By adding this spacer several things are accomplished:

  • No click
  • Switch is silenced
  • Switch becomes highly tactile
  • Tactile pressure point is moved right up to the top of the switch

The jailhouse mod creates a very quiet, highly tactile switch. The feel is akin to heavier tactile switches like 78g Zealios.

For this mod I used JSpacers from TheVanKeyboards. They are available for purchase here.

Typed on Git2Go

Kinesis Reloaded: Day 3

Modification Log - Kinesis Contoured Model 110

Previously: Kinesis Reloaded: Day 2

Once again welcome back, loyal readers. This will be the final post in the Kinesis Reloaded series. After ages of dreaming of a Kinesis of my own, and year of acquiring parts - the Kinesis Contoured is finally complete!

Above is the video build log for this board. In it I go through the build from start-to-finish.

All the work on this board was performed in marathon build and mod sessions - 3 different days across 3 weeks. The last session was prep for the RGBs and final assembly.

In previous posts, I detailed the prep work that happened before this final assembly:

  • Desoldered all switches and diodes on the Kinesis Contoured
  • Desoldered all switches and diodes on the Kinesis Advantage donor board
  • Installed Otemu Ice switches + Advantage PCBs on the Contoured keywells.
  • Assembled and flashed the Stapelberg controller PCB
  • Tested and verified RGB was working in the firmware.

Day 3

With all the prep work for the Kinesis’ various parts in order, the last steps before assembly were to install some sound dampening and wire up the RGB strips.


I noticed early on that typing on the Kinesis boards (both the Contoured and Advantage) yielded a very ‘pingy’ experience. Specifically because of the case’s somewhat resonant design, typing causes the switches’ springs to resonate and ‘ping’. To alleviate this, I installed some level of sound dampening.

I’ve got a ton of old mousepads hanging around the house, so I went through for the top and bottom parts of the case and cut out mousepads and adhered them to the case. The mousepads aren’t able to completely fill the space inside the case, so there is still some ping left, but it’s largely been reduced in the final assembled board.


In previous testing on the board, I verified that the firmware was working, and that I’d properly wired a test RGB strip. The task before assembly was to wire up 6 separate strips and get them going.

In previous builds I’ve used RGBs, and have even ran them in parallel before (like my ErgoDox test board). With the Kinesis I used more RGBs than I’ve ever used before. 6 strips, with a total of 40 LEDs.

Prep for this went well. I wired up the 6 strips, running leads from each for 5V, GND, and Data. I was genuinely surprised when they all worked the first time I fired the strip up. Once I knew the strips were working, I placed and adhered them down in the case.


With all the parts ready, I installed them and got the board assembled.

I’d expected that after assembly I might need to do a bit of tweaking with the RGBs, but I was pleasantly surprised by how well the light shines through the switches. There are a lot of LEDs in this case, but I still didn’t expect this much light.

Now completed, the board looks great, and feels amazing to type on. Outwardly, with its factory case and keycaps, the Kinesis Contoured would appear to be completely unmodified (as long as the LEDs are off of course). I achieved the ‘sleeper’ look that I was shooting for. This board looks exactly as I wanted it to.

Typing on the Contoured feels fantastic. I’m a big fan of tactile mechanical switches, and these Otemu Ice switches (75g) do not disappoint. They’re a significant improvement over the Cherry Browns that were in this board previously - heavier, smoother, more tactile.

Naturally, this entire process could have been simpler if I’d just installed new switches in my Advantage donor board and called it done. That said, I’m rarely one to take the easy and simple way on personal projects. After I bought the Contoured a year ago in nonworking condition, I really fell in love with the white case and keycaps. Most Kinesis boards are just a simple black, so I loved the look of the white - it was important that any finished Kinsis board I have use the white case. Without all this work, I simply couldn’t have a board that looks and works like this.

It was also important to me that I have programmability. The default layout on Kinesis boards is excellent - probably the best keymap and built-in function layers that I’ve seen on a production keyboard. Despite how great these boards are from the factory, it’s important to me that I be able to customize a keyboard’s layout (and function layers) to best fit how I like to use a keyboard.

For those that are interested in seeing my keymap, or how RGB was set up on this board - my keymap is here, and my copy of the firmware is on Github here.

This build has been a long time coming, and I’m so glad to see it finished, and to reap the rewards.

Typed on Kinesis Contoured

Kinesis Reloaded: Day 2

Modification Log - Kinesis Contoured Model 110

Previously: Kinesis Reloaded: Day 1

Welcome back, loyal readers. In the previous part of this adventure in Kinesis modifications, I had completed all the preliminary prep work on the Kinesis’ left and right keywells, and thumb clusters. The keywells and thumb clusters had new Otemu Ice switches soldered in, and I had verified (using the stock control electronics) that the PCBs and thumb clusters were working as expected.

This past Sunday I spent my day working on the Stapelberg Controller, validating that I could upload a firmware to the controller, sorting out the pin configuration for the thumb clusters, and adding RGB lighting to the board.

As stated in previous posts, this project is a total overhaul of my Kinesis Contoured Model 110. From it, the case will be the only original part left.

Project Goals
  • Replace factory Cherry MX Brown switches with tactile Otemu Ice switches. - DONE
  • Replace period keywell and thumb cluster PCBs with modern (Stapelberg compatible) PCBs. DONE
  • Replace factory control electronics with Stapelberg controller. DONE
  • Add RGB underglow. DONE

There is also a new project goal that I will explain in more depth later in this post.

  • Get Fkey row of non-mechanical switches working with the Stapelberg controller.

Day 2

Day 2 was largely test and validation day. With all the hard work on the keywells and thumb clusters complete, I knew that the majority of the work remaining would be testing and troubleshooting issues with the build.


The first order of business was to prep the Stapelberg Controller itself. For this, headers must be soldered to the circuit board, followed by the Teensy controller. The standard build instructions for this are to use white vertical-insertion headers for the keywells and Fkey rows, and to solder thumb cluster wires direct to the controller. I opted for a couple changes to fit this board.

1 - Instead of wiring the thumb clusters direct to the controller, I instead opted to wire sockets to the controller, and headers to the thumb clusters. This allows me to then use jumper wires to connect the two. In hindsight this wasn’t really needed, since the thumb cluster wire arrangement is pretty straightforward, but I made the choice so that if I had to do some tweaking all I would need to do is move jumper wires - rather than resolder.

2 - Instead of using the white vertical-insertion ribbon headers for the Fkey row, I again opted for sockets. I chose this because I wanted to use the original Kinesis Contoured’s white Fkeys and circuit board. This older Contoured Fkey circuit board uses header pins instead of a ribbon. By using sockets on the Fkeys pins on the Stapelberg controller, I’d give myself room to play with the wire arrangement. I figured that it was likely the wiring was different between the Contoured Fkeys and the Advantage Fkeys that the Stapelberg controller was designed for.

With all the headers and sockets on the controller, next I added the Teensy. Unlike most keyboards that use a Teensy - this one has the teensy face-down. With this arrangement, it’s not possible to access the Teensy’s hardware reset button - something to be mindful of if you undertake a mod like this. Given that I wouldn’t have access to the reset button, I opted to add some headers to the GND and RST pins on the teensy - that way I could jump those two pins to reset it when need be.

I also added headers to the A port pins on the teensy, so that I could use one of them for data to my RGB strip. And also to the 5V pin, for power to the RGB strip.

Flashing & Testing

With all the prep work done on the Stapelberg controller, it was time to flash a firmware and get to testing things.

Oh boy, this part took me forever. It was a big change for me to adjust to when the make commands got changed in QMK back in October. With those changes, I always feel a lack of confidence anytime I try to flash a new QMK board. I won’t lie, I spent a good hour or two fighting with QMK trying to get a firmware flashed.

With this particular keyboard in QMK, there are two projects under the /Kinesis directory: /avicstep, and /stapelberg. Anytime I tried to even compile the Stapelberg firmware I got a rules error. As it turns out, I’m a moron that was typing stapleberg, rather than the correct stapelberg.

Once the controller was flashed, I was able to test and verify that the keywells and thumb clusters were working with the new controller.


Next up was RGB. In the past RGB was always something I found too intimidating to add to a board of my own. Anytime I used RGB it was limited to boards where someone else had already added the RGB functionality to the firmware (like DZ60 or Iris). In the past couple years though QMK has made the process for adding RGB much much easier.

First I took care of the hardware side - I soldered three jumper wires (for 5V, ground, and data) to an RGB strip. Then I connected jumper wires to 5V, GND, and A3 pins on the teensy. The A3 pin serves to transmit data to the RGB strip.

Adding RGB functionality to the firmware was a BREEZE. Far easier than I thought it would be. As it turns out, all the RGB functionality is now in QMK by default, and for the firmware it’s just a matter of adding the right lines to the keyboard’s project files.

Inside the config.h file at ~/Kinesis/Stapelberg/config.h I added these lines:

/* ws2812 RGB LED */
#define RGB_DI_PIN A3
#define RGBLED_NUM 40

In my keymap’s rules.mk file at ~/Kinesis/keymaps/default/rules.mk I added:


With that, RGB was enabled and functioning in my firmware. The last step was to add actual keycodes to my keymap to control the RGB. In my keymap I have a keycode for RGB_TOGto allow the strip to be turned on and off.

I then flashed the Stapelberg controller and validated RGB was working. Awesome!


As stated above, one of the last goals before I got to final assembly of the Kinesis was getting the non-mechanical Fkey row working with the Stapelberg. When I was prepping the Stapelberg I added sockets so that I could use jumpers from my original Kinesis Contoured Fkeys to the controller. As it turns out, this was a mistake.

I had anticipated that the Contoured Fkey circuit boards would have a different layout than the Advantage Fkeys, but I had no idea how different it would be. In short, the Controured’s Fkeys use a wiring matrix like I’ve never seen in a keyboard before.

Before I started trying to make the Fkeys work, I had assumed (incorrectly) that it would be a 1:1 pin mapping. 9 keys, 10 pins - I figured one pin for each button and another to complete the circuit. Boy howdy was I wrong. Though the Fkeys are just one row, the wiring goes all over the place. Esc is wired to F1 and F2, F2 is also wired to F5 and F6, F6 is also wired to F3 and F4, it’s just a mess.

I tried and tried for a couple hours to find the right combination and arrangement of pins from the Fkeys to the Stapelberg, but I never could sort it out.

After a wasted couple hours trying to make them work, I feel back on my parts board and harvested the Fkey ribbon cables from my Advantage donor board, installed the correct ribbon headers in the Stapelberg. It took a bit of finessing to get the ribbon cables situtated in the case, behind the rubber buttons, but eventually I got it all installed.

While I did fail at getting the original Controured Fkey PCBs to work, I did at least reuse the original rubber buttons themselves, so the Fkey row appears to be factory an unmodified from the outside.

Ready To Assemble

With the Fkey rows sorted out, all parts of the build were validated and I knew they were working properly. Most of the testing thus far had actually taken place with raw components outside of the case - I had wiring everywhere and the case was a mess. The day was getting late, but I knew it was ready for the last part - assembly, which I’ll save for the last part of this series.

Stay tuned!

Next: Kinesis Reloaded: Day 3

Typed on Blue Alps64

Gruber on HomePod

John Gruber on HomePod:

I’ve been testing Apple’s new HomePod for the last week or so, and this is the first product review I’ve written that could be accurately summarized in the length of a tweet, and an old-school 140-character tweet at that: HomePod does exactly what Apple says it does, doesn’t do anything more than what Apple says it does, and costs $349. There.

Click through to read the full review.

Gruber’s impressions line up with most of the other reviews. For primary objectives Apple appears to have nailed it.

  • An amazing small speaker - Done
  • Siri as primary interaction model for HomePod - Done
  • Amazing wireless interface for said speaker - mostly done

Some notes: for now HomePod only supports AirPlay 1. It’s successor, AirPlay 2 is coming in a software update. This will enable multi-room audio and less latency.

Siri’s functionality is limited for now, but HomePod is billed primarily as a speaker, not an assistant. I would expect more Siri functions with future software updates.

Typed on Git2Go

Kinesis Reloaded: Day 1

Modification Log - Kinesis Contoured Model 110

Previously: The Stapleberg Controller

It was roughly a year ago that I acquired a ~1995 Kinesis Contoured Model 110 keyboard. Like many people, my first time seeing a Kinesis was in Men and Black. With its crazy design and sculpted keywells, I was really interested in this keyboard even then, long before I turned into a keyboard wonk. When I got this white Kinesis Contoured a year ago it wasn’t fully functional, but I was happy just to have it. Even if I never did anything with it, the Kinesis is a fun board to put on the wall.

After a year of making small plans and acquiring parts (namely a Stapleberg controller), I was ready to start modifications to the Kinesis. Last Sunday was Day 1 of a multi-part project. These modifications will completely rebuild the Kinesis from the ground up. When I’m done, the only thing that will remain from the original board is the case.

Project Goals
  • Replace factory Cherry MX Brown switches with tactile Otemu Ice switches.
  • Replace period keywell and thumb cluster PCBs with modern (Stapleberg compatible) PCBs.
  • Replace factory control electronics with Stapleberg controller.
  • Add RGB underglow.

Day 1

On Sunday I was at my workbench for nearly 8 hours - I only completed my two goals. Of course, desoldering two complete boards, then soldering in ~80 some switches does take quite a bit of time. Now that I’m halfway done, I’m hoping the remaining half can also be done in a day.

The first order of business on Sunday was extracting the modern PCBs from a Kinesis Advantage. My white Kinesis Contoured is old enough that its internal design and circuitry is entirely different from the modern-day Advantage boards. As a result of these differences, the programmable Stapleberg controller is not compatible with the Contoured’s circuitry. I could’ve alleviated myself all the headache of desoldering by just buying raw PCBs directly from Kinesis, but in the end the cost difference between raw parts and a used Kinesis Advantage was negligible. The route I chose was a lot more work, but I have the benefit of an entire spare Kinesis case for future projects.

To extract the PCBs, I first disassembled the Kinesis, whipped out my trusty desoldering iron, then got to the business of desoldering the switches. I’ve desoldered quite a few keyboards in my time, but this was definitely the most difficult yet. For one, the Kinesis’ matrix diodes are inside the switches - so there’s double the desoldering work to do just to remove a switch; secondly, the curved keywells make it very difficult to actually desolder the pins without damaging anything. It took me quite a long time just to get the solder out, then the same amount of time to actually get the keywell PCBs off without totally wrecking them. Despite all my caution, I did still damage the PCBs in several places, so patch wires were needed when I got to reassembly. I can’t say that I’m too desperately surprised that the PCBs took some damage - unlike any other keyboard PCBs, these are flexible, so quite a bit thinner than anything else out there.

After removing the switches from the Advantage’s keywells, I repeated the same process on the white Contoured’s keywells. With the contoured I threw caution to the wind, knowing that I wouldn’t be able to reuse the PCBs. Without care about the PCBs (since they’d be trashed anyway) the desoldering was much faster and smoother.

With the white Contoured’s keywell bare, I installed the 75g Otemu Ice switches that I’ll be using in this build. Otemu has come a long way in the past few years. Just 3 years ago every Otemu switch I tried was absolutely terrible; these new Ice switches are very nice, and make a great budget alternative to Zealios. The Ice switches are pretty smooth, and very tactile. Not as good as Zealios, but still pretty good (considering they’re half the price).

Next, were diodes. I’ve got a lot of experience working with diodes, many previous builds (Alps64, ErgoDox, Iris) have used them. Typically with diodes there is a dedicated through-hole space for them next to the switch, with the Kinesis PCBs, the diode holes are right under the switch. I decided that unlike Kinesis, I wouldn’t put diodes inside my switches; if I ever wanted to change the switch type the desoldering work would be hell. I opted instead to put the diodes on the opposite side of the PCB and have them poke through. It took a bit to verify that my diode orientation was correct, but soldering them in was mostly painless. I did need to cut the soldered legs on the switch side of the PCB down totally flush, so the switches wouldn’t be interfered with by the diode legs poking out from the PCB.

With diodes soldered and the PCBs prepped, I started the task of soldering the PCB on to the switches. Funny…typically I think of soldering switches to the PCB, but for this build it’s quite the opposite. The switches are first installed in the keywell plate, then the PCB is bent over the switches and soldered into place. This soldering work is complicated and time consuming, but after some creative work (holding the flexible PCB down as I soldered) I was able to get it done.

As stated above, I did a decent amount of damage to the donor PCBs when I removed them from the Advantage. I needed a total of 9 patch wires to get the PCBs functional again. It’s been ages since I’ve needed to patch a circuit board - I think the last time was my very first keyboard, an Alps64. This patch work proved to be quite challenging. The matrix on the Kinesis aren’t laid out like any other keyboard I’ve worked with, and with no reference material or spare PCBs to inspect, it took a lot of trial and error to get the first keywell functional. The second keywell was a lot easier as I took photos of both sides of the PCB before I soldered it into place. The lesson learned is that I shouldn’t try to wing repairs when I know they’ll be necessary. Any future projects that I go into know I’ll need to perform repairs - I’ll document prior to soldering anything in place.

The last step in this process was to solder in new switches on the thumb clusters. These little PCBs are just like standard PCBs, so the process was quick and painless.

Going into the work on Sunday, I’d really hoped to get the project complete, alas - complex tasks always take longer than you think. I won’t have time for another marathon 8 hour soldering session this week, so I imagine completion will need to wait until next weekend. In the interim I’ll be working on getting RGB LED functionality up and running in the Stapleberg’s QMK firmware.

Once the project is complete, I’ll have a video up on my YouTube channel as well. Stay tuned for more on this!

Next: Kinesis Reloaded: Day 2

Typed on Blue Alps64