Making a cheap keyboard from China better

I picked up this keyboard for about $30, + $10 or so for shipping. This is pretty cheap for a mechanical board. 
After feeling the switches for a bit I can see why. 

They’re inconsistent, some of them just don’t register sometimes, and the only option i had was tactile clicky blue. 

Luckily they’re imitating cherry mx switches, so I can replace them!
This begins the adventure of desoldering 87leds and switches!

After about 45 minutes of desoldering and emptying the solder pump, I had managed to replace 13 switches!

Also worth noting, the controller is discrete from the PCB, and has the rows and columns labeled!

It could easily be removed and replaced for a full custom firmware board!

I plan to do the top row next and work my way down the board from there. 

I’ll update this post or make a new one when I’ve made more progress!

Keyboard protector alarm

It has come to my attention that the biggest risk at a keyboard meetup is having your keyboard stolen. For this I propose a precaution that can be taken to protect your board.  
The case and the ground pin in a mini / micro USB connector are not always shorted together. In cases where they are an open circuit until you connect them,a custom device can be made. 

You create a cable where it uses the ground pin and the plug casing as a switch. When it is plugged into a keyboard, it will close the circuit. When I bugged the circuit will then open. You can use the circuit opening event to trigger a loud audible alarm, along with anything else like flashing lights or whatever you want. 

This way you could make it a requirement to speak to an event staff or enter a pin to remove your keyboard. 

Therefore only the owner of the board is able to disconnect it without drawing everyone’s attention to the act. 

As an added bonus you can feed in +5v on the appropriate pin to power the board for lights and sounds and whatnot. 

This same method can likely be adapted to different connector types providing the ground pin is not already connected to the connector casing. 
And with some trickery that requirement can probably be worked around. 
I might make a prototype soon when I get a mini USB connector. 

Opal system bug update

Looks like with the latest version of the Opal App, you can replicate this yourself!

A ticket checker told me that the bug is fixed in the portable readers but I’m yet to verify this myself.

Here’s a short clip showing how easy it is to replicate.

First scan shows that I’m not tapped on, I then tap on, then again and the tap point shows “already tapped on”

Then I scan again and sure enough tap on failed!

Lightroom Macro Board

I’m designing and building a little 4×4 mechanical keyboard for quick access to some Adobe Lightroom adjustments I often make.

I don’t even know if Lightroom can be controlled entirely with keyboard shortcuts!
If it cannot, i’ll get creative.

I am using some metal plate I found on ebay with 4×4 mounts for mechanical switches, the MX style Gatreon browns fit pretty well!

This is the key map i would like:

keyboard-layout (3)

Exposure +, Exposure -, Auto Tone, Export
Contrast +, Contrast -, Vibrance +, Vibrance –
Highlights +, Highlights -, Saturation +, Saturation –
Clarity +, Clarity -, Vignette +, Vignette –

I have since found this to be impossible 🙁

I created a new layout that is very possible:


Heres some photos of where i’m at at the moment:

View post on

View post on


Someone amazing over on r/mk (/u/iandr0idos) made this website:
t’s a TMK firmware generator!
If you dump the file ‘layout (2).json‘ into it then you’ll get the layout for how i’ve wired this board.

You can find the full firmware files here:

The firmware can be compiled on:

Or you can download the pre-compiled hex from:

At the moment it is configured for whatever the keycaps show, I will figure out the Lightroom keymap soon and replace the caps when I get them!

It is configured for the keymap, with two layers and macros programmed.


I am using an Arduino Pro Micro for the firmware because its much cheaper and easier to obtain here in Australia.
To flash the hex you will need this modified version of XLoader configured for the Atmega32u4

Additionally, You will need to reset the board by shorting RST and GND right before clicking the upload button.
Make sure you have selected the correct serial port as it will be different in bootloader mode.

The Pro Micro pinout is as follows:
wMNx2u6as found here:

Bug in portable opal checkers

Hey all, I identified a bug in the portable tap on detectors transit officers use.

If a user taps on but isn’t sure if they have, so they tap again and get the “already tapped on” message, it will update the opal with the last tap event being “tap on error”

Therefore you are tapped on but if your card is scanned it will show as not tapped on because it only checks the last event.

You still have to tap off or you get max fare or whatever the penalty is for not tapping off, even though the transit officer tells youuuuu the opal is not tapped on.


I tapped on at central light rail, the tap point said “try again” so I tried again and it said “already tapped on”

Fast forward, ticket checking guy checks my opal “you didn’t tap on”
I assure him I did, he scans and gets tap on fail error.
I scan with my phone and get the same thing.

When I alight at the star, I tap off and am charged my usual fare

I scan my opal again with my phone and my last event is tapped off.

I smell a bug D:< Update: I was able to confirm this bug this morning with a ticket checker on the tram.