Skip to main content

GH60 keyboard

This project was a custom keyboard that I put together with bluetooth and RGB lights. It features a GH60 PCB and an Adafruit bluefruit board for the bluetooth and lighting effects. The switches are Kailh brown switches, and they're quite clicky and bottom out when typing. I used the NeoPixel LEDs built into the Adafruit board for RGB backlighting, and bit-banged UART to communicate from the atmega32 microcontroller built into the GH60 board. The keyboard firmware itself is running QMK with a customized keymap.c file.

This is a video of me testing out the keyboard in a mode that changes the colour of the lights every time a key is pressed. There are various different lighting modes, and you can easily modify it from the Python code.

Describing the entire build is a bit beyond the scope of this, but you can buy a GH60 board here and follow any tutorial to choose your preferred switches and solder everything together and flash the firmware. I also used lubricant on the stabilizers that I got for my switches which helps with noise and makes them feel more fluid.

Here is the code for the adafruit chip in circuitpython (Adafruit's fork of micropython). It works by reading keycodes over UART, as well as special bytes that signify which mode it should be in (bluetooth or regular mode) and RGB lighting modes.

And here is the custom keymap.c for QMK. It uses a bit-banged UART protocol since there were no extra pins available on the board that would allow me to use the built in UART. It does surprisingly well even though it is a very simple implementation that simply waits a certain number of microseconds after transmitting each bit.