HHKB Modification - Go Wireless!

7 minute read

I have been listening to many people talking about the various benefits of mechanical keyboards for long time. Thus, it shouldn’t be a surprise when purchasing a keyboard become the first thing that came to my mind last year when I decided to buy myself a gift as a reward of my first intern. However, when I was researching the different brands and comparing the different switches, one post grabbed my attention. The post talks about a name “HHKB” that I have never heard of.

After reading the posts, I did some research on the keyboard, and found that it is actually not mechanical, but something called “electrostatic capacity” keyboard. According to somebody in the posts, it is the best keyboard for programmer.

Well, as a newbie who just started coding months ago, I wouldn’t count myself as a programmer. However, the pictures and the words really moved me…

So I bought it. _(:3 」∠ )_

It wasn’t until months later did I realize that I don’t really need a keyboard under normal circumstances. The main computer I was working on is a laptop which already has built-in keyboard (like most of the laptops in the world). Putting HHKB on top of the existed keyboard is very awkward, and I have to deal with the messy wires all the time.

Thus, I put away my keyboard and locked it in my shelf for long time.

Until last November, when I got my Surface. However, as you can see, the wire is still very messy. While one of the main features of Surface is its portability, messing up with the wires is frustrating. It makes me basically unable to work on any place other than a stable desk.

Surface with HHKB

// I forgot to take photo for the keyboard when it was connected by wire. This image is cropped from a message I sent to my friend which isn’t focus on the cable, but you know what I'm talking about, right? ;)

I could give up using HHKB and purchase a Type Cover instead; however, abandoning such an expensive keyboard is definitely not what I want ಠ_ಠ.

This is when I thought about making the keyboard wireless for the first time.

I did some search on Google and found this reddit post, which links to this post on geekhack, where the Thread Starter, hasu, introduces his alternate controller for HHKB. According to him, there are different versions of the alternate controller, and one of them actually SUPPORTS Bluetooth control, which is exactly what I’ve been looking for.

Although hasu provided some instructions (and link to instructions) on how to make a controller on our own, as somebody who has basically no knowledge about hardware at all, I decided not to go this way. To simplify the process (and reduce the risk of damaging anything), I emailed hasu and purchased a controller directly from him.

And that is the beginning of this story.

As I write above, I almost know nothing about hardware. Therefore, this post won’t not contain anything advanced either. Although this might be a reference for somebody who’s also interested in modifying his/her HHKB, it’s important to remember that this is a record of what I’ve done rather than a tutorial. I’m not responsible for anything that might happen after following these steps öㅅö.

Let’s Begin.

Step 0: Install the Alt Controller

// This modification was actually done a week ago, on February 8th. However, since I have been a little bit lazy busy last week, it’s hard for me to find a suitable time to write down this process.

First of all, have your alternative controller and keyboard ready. Hasu shipped the controller on Jan 16th, and it took about 12 days until I received the package (including 8 days in the “sorting facility”).

TMK Alt Controller

You will need a Philips head screwdriver to open the keyboard and remove the old controller. The battery isn’t necessary for testing the controller, but it is better to have it so that you can use it immediately after this modification (after the battery charges up, of course ;D).

Once you are ready, find a safe place to begin your work.


Opening HHKB is actually much simpler than I’ve thought of. There are only three screws on the back of the keyboards, and unscrewing them are quite simple.

Back of HHKB

Ta-da! (๑´ڡ`๑) That is the interior of the keyboard. It is less complicated than I thought. The original controller is fixed on the back cover, and is connected by a 13 pin ribbon cable.

I also remove hasu’s controller at this step. It’s the beautiful blue board on the bottom of the image :).

Interior of HHKB

The keyboard is facing down at this step, as you can see from the other angle.

Interior of HHKB from another angle

To remove the controller, all you need to do is to unscrew the single Phillips screw on the top right corner. After that, you can take out the controller by pushing it a little bit upward.

The screw that holds the controller

Carefully pull out the 13 pin ribbon cable that is used to connect the controller. DO NOT pull by stretching the cable! You might break the wire if you do so. Just hold the tip where the cable connects and slowly apply the force. It might take a while for you to pull it out completely, but please be patient (ง๑ •̀_•́)ง.

13 pin ribbon cable

There is one last step before you can go and test the controller, and that is straightforward: connect the 13 bin ribbon cable that you pulled out from the old controller in the last step to the new controller (≖ᴗ≖๑). This step is very simple, just be sure that you are connecting on the “right” side.

Connect to the new controller

Step 1: Testing the Controller

Upon this point, you should have your controller installed. If everything goes well, you can now connect the controller to some USB charging cable and begin testing the controller.

In my case, I just connected it to the USB port on my laptop, which might not be a good choice… But the signal lights turned on, anyway ;P.

Testing the controller

Since I was about to install the battery as well, I didn’t do much in-depth test on the controller.

I think I should have be a little bit more careful here instead of just assuming everything works find because the light turned on (´・ω・).

The light turns on

If you find everything works find about the controller and feel satisfied about it, you can put it back to the place where the old one lived. The only thing you need to do is to screw back the screw that you just unscrewed (゚ ∀ ゚).

Put the new controller back

Step 3: Install the Battery

Take out your battery (if you haven’t already). The one I’m using is a 1000mAh LIPO battery from Sparkfun.

LIPO Battery

Update: According to Ryder’s comment, the 2000mAh lithium ion battery from adafruit also works.

According to hasu, a 1000mAh battery should be able to sustain for about 12 hours. I haven’t check the exact battery life, but 12 hours is not a problem for me because all I need to do is to charge it up every night and use it during the day (just as I charge my cell phone every night).

If you are interested in using other battery, please be sure that it can fit in the keyboard, as the space is really limited. The battery should be smaller than 54mm x 50mm x 7mm, according to hasu.

Connecting the battery is simple. Just plug in the JST connector into the board and you are done :D. I didn’t fix the battery on the back cover of the keyboard because I thought the space will limit it from moving around anyway (I’m not sure whether this will be a potential danger, to be honest, so you might want to put something in to prevent the battery from colliding with things around it).

Connect the battery

Step 3: Final Test

Put the cover back and now you can turn over the keyboard and enjoy its new appearance!

Did you see the difference?


Okay, I didn’t ( ˘・з・).

The keyboard actually looks basically the same from outside besides the two USB ports, which turns to two holes, one of which shows the signal lights and the other is the power control.

USB ports

And it really works!

I tested it on two laptops and my iPhone, and it works well on all of them just like a regular Bluetooth keyboard.

// Tests it with iPhone

Test it on iPhone

// Tests it with Windows 10 laptop

Successfully connected on Win 10

Step 4: Done!

That’s it!

Special thanks to hasu for his great controller board. Now the only thing you need to do is to enjoy your new wireless HHKB✧。٩(ˊᗜˋ)و✧*。!