Rick Astley Macro Pad
Rickpad, for short. It's small, cheap, glorious, and only kinda cursed.
It is a 1*1 ortholinear, 3D printed macro pad with QMK support, designed to do one thing. To launch a Never Gonna
Give You Up music video by Rick Astley.
Story behind
So the other day I was drinking some coffee, you know, chilling in the morning, at the beginning of a big day. Then sudenly I got a message from a friend. He got into a habbit of sending me several memes almost every day. No complaints from me, it makes me kinda happy. Anyway he sent me this video of a guy who had a 1 key programmable macropad, that he used to play Never Gonna Give You Up video. The pad in the video was unusual, in the sense that it needed several seconds to boot. I thought I could do better and jokingly replied "I COULD BUILD THAT KEYBOARD". And my friend said "GO FOR IT MY MAN". I started the research, completely forgoting about all the things I wanted to do that morning.
Motivation behind the project
As I started my research, I realized that there next to no open source macro pads with only 1 key. The ones I was able to find used some kind of special PCB, and since I didn't want to spend too much money building this I just ended up designing the whole thing myself. I decided to put my 3D printer to a good use, as I wanted it to be somewhat sturdy.
Design
Since this is a joke, there was not much thought put behind the design and firmware of the device. As I am still
very new to 3D modelling, I made the printable files very simple. There is a flat bottom piece, and somewhat
rounded top piece that functions as the housing of the device. On top there is a hole for cherry style mechanical
switch. In the front of the macro pad is a hole for Micro USB connector, that I made unnecesairly complicated and
only later realized that this was a bad idea, after an incident with a soldering iron. The pieces are held
together by 4 M3 screws, that somewhat acts as a legs of the device, but since it is so lightweight the weight of
the micro USB cable drags it around so it could use some rubber feet.
The pad is powered by SparkFun Pro Micro, with the switch soldered to pins B5 and D1. The device runs on QMK and
therefore is very easy to reprogram to do literally anything else than rickrolling. What are you gonna do with it
depends completely on your imagination. Though I can't imagine many people rushing to build a single key macro pad.
I also decided to recreate the case in OpenSCAD, the files are in the project's repositroy. So far I made simpler
version of the case, saving some filament by making it easier to print without supports. Later Id like to add some
quality of life features, such as sunken screws.
Bill of materials
- 1× Cherry MX style mechanical switch
- 1× keycap
- 1× Sparkfun Pro Micro
- 4 cm of wire
- 4 M3 screws, 6 mm long
- Micro USB cable
- Less than 5m of 3D printer filament, I used PLA
- Something to short ground and reset pins on the Pro Micro when flashing the firmware
Requirements
If you decide to use the rickroll firmware, you have to check for following requirements
- OS: Windows 10/11 or Linux with Gnome 40+
- System language set to English
- Latest version of Mozilla Firefox
Note: Since the macro pad was designed to work with my system, you may find the timing of the coded macro off, to fix it you have to change the SS_DELAYs in keymap.c and compile the whole firmware.
Assembly guide
- Print both the 3D files
- Place the Cherry switch to the hole in the bigger 3D piece, switch facing up
- Solder the switch to the Pro Micro pins B5 and D1, do not screw the pieces together yet, as you will have to reset the microcontroller
- Download the rickroll firmware, or build your own
- Flash the firmware, I use QMK Toolbox
- Before flashing, connect the controller to your computer, short RST and GND pins and THEN press the Flash button
- Once you check everything is working, screw the pieces together
- I messed up the design, so the pieces fit together in one way only, you may have to fidget with it before finding the right orientation
- Put on a keycap and enjoy your majestic new macro pad
Custom firmware
If you want to customize the functionality of the button, you have to write your own firmware, as Vial is not supported (yet). To make your own firmware you have to have QMK Environment installed on your computer. All the files you will need are on my Github repo. All you have to do is to edit the keymap.c file located in /Firmware/keymaps/default/ . If you decide to not use macro, you can delete the whole switch case, and simply replece ROLL in
[0] = LAYOUT_ortho_1x1(
ROLL
)
If you want to write your own macro, you have to edit the SEND_STRING function in the aforementioned switch case.
if (record->event.pressed) {
SEND_STRING("your macro here");
} else {
Please refer to the QMK documentation in case you want to change things.
There is also Vial support comming soon™️