Keychron K3 Pro ANSI RGB, Hot-swappable Reviewed
My first Keychron was the K7, which I purchased for myself nearly two years ago now as a companion to my Steam Deck. I liked it, and still do, and reviewed it because I thought others would like it to.
The K3 Pro, which – full disclosure – Keychron supplied to me free of charge for this review – is better in almost every respect.
For starters the K3 Pro – with its compact 75% layout – is a slightly larger, more appropriate for my needs sibling of the K7. It adds an extra row (just like the K7’s close sibling the K3) of Function keys over the K7’s 65% layout. This difference alone has plenty of mileage, but it isn’t the real reason why I like the K3 Pro so very, very much more than the K7. In fact no single detail of the K3 Pro particularly stands out, but it represents a set of improvements and refinements that are befitting that Pro moniker.
First up, let’s cover what hasn’t changed much, and what’s been lost from the K7.
Overall Aesthetics
Of course you can look at the product shots and get a pretty good overview of how the K3 Pro looks, but it bears emphasising that – even two years on – there are many, many similarities to the K7. This similarity across the low profile and even other ranges lend Keychron’s boards a strong identity and a compelling feeling that they’re tried, tested and refined rather than reinvented.
The same black lower shell forms the impossibly thin base of the K3. The base is a mixture of aluminium, in the top shell, and grey plastic bottom into which the rubber and fold-out feet are mounted. This aluminium/plastic mixture no doubt keeps the K3 Pro lightweight compared to full aluminium boards. At least the full aluminium boards I’ve tested. There are no deliberate efforts to add weight and, indeed, no real space for any weights.
The transparent tops of the key switches sit proud of the aluminium top shell. It’s a very love it or hate it look that keeps things compact, but doesn’t offer much in the way of protection. With the benefit of hindsight, and a very worn Esc key on my K7, I can recommend picking up one of Keychron’s travel pouches or something similar. One saving grace is that it’s much easier to blow or brush out dust or dirt with no lip around the edge of the board.
On top of the key switches sit the key caps, which should go without saying, but they have changed quite dramatically from the K7 I tested. The key caps are larger, leaving much smaller, more visually appealing gaps between them. Much less of the backlight – now more of an underlight – shines between the caps. The result, a fairly uniform lighting effect that doesn’t glare in your face (unless you look from the back edge of the keyboard) but also doesn’t really serve any real function. Indeed the K3 Pro has dropped the shine-through keycaps that were hit-and-miss on the K7, so the backlight won’t light up the key legends at all. I guess this fixes my complaints with the lack of uniformity on the K7’s backlight… but it has rather thrown the proverbial baby out with the bathwater. Shine-through keycaps were very high up on my list to try on the K7 and swapping the full-sized caps from the EndgameGear KB65HE over led to mixed success. Despite some indication that full-height keycaps would not work on these low profile switches, I found they stopped just a hair short of hitting the surface of the keyboard.
The key profiles are great, with truncated, low, flat tops that have a gentle concave curve to help guide your fingers to their centres. The keys are picked out in a two-tone mix of subtly blue-ish grey and black, with red accents for the esc and enter keys. There’s also a very, very nice white version available which I am very, very torn about.
The key legends are, mostly, fine but lowercase letters on keys like “backspace” and “capslock” suffer from a lack of uniformity in spacing/leading, weight and size. “Backspace” in particular looks like the keycap equivalent of a newspaper cutting ransom note. This issue, I will note, is not at all present on my K7 which has perfectly crisp, uniform text across all of its keys.
I asked Keychron for some insight, and it boils down to injection moulding – these are tough, doubleshot moulded PBT keycaps – and some flaw in that process is causing distortion which is probably just more visible on text than icons. I’d very much take the K7s crisp, small text with the K3 Pro’s larger, more visually appealing keycap shape.
Despite not being fancy smancy optical switches, the brown, low-profile, Gateron switches look and feel great. They’re quite a bit louder than the brown optical switches in my K7, though I suppose that should stand to reason since they need to actuate a physical switch contact in lieu of invoking magic photonic incantations. The K3 Pro tested came with the V1 version of the Gateron switches and not V2. The V2 have a slightly longer pre-travel (1.7mm vs 1.5mm) and better tolerances. This is a shame because that longer pre-travel can (maybe?) help prevent spurious key input. I didn’t particularly find anything wrong with the “old” switches, but new is better, right? The V2 switches are also slightly taller – which may not be ideal in a low profile keyboard so I can’t entirely fault Keychron’s choice here. But they *are* available in the K3 Max, a 2.4Ghz-enabled, tri-mode version of the K3 Pro. Wait, isn’t this Pro/Max business Apple nomenclature!? Anyway, V1 key switches are a brilliant excuse for an upgrade.
The hot swappable version is a very small price bump over the fixed switches. While I would probably recommend going for it, removing the switches is a bit of a challenge. Fortunately they seem to be mostly friction fit with no obvious plastic clips to release. It’s a case of grab firmly and pull directly upwards while gritting your teeth. Doing it across the whole keyboard is a chore, though you might find it a rather cathartic exercise. On the upside those banana switches- and perhaps more options in future- are a tasty cross-grade from the 1.0 brown, with more travel and a slightly higher actuation force. Just… don’t accidentally get optical ones. You want the 2.0 mechanical, here I’ll link them. The K3 Pro does not support optical switches, and I’m not yet certain if that’s a hardware limitation or just a software tweak that would require Keychron juggle another half dozen firmware versions.
Build
The K3 Pro has an aluminium top shell screwed (with about ten screws) into a plastic base. It’s also secured with clips around the edge, which will make disassembly tricky if you need to swap the battery.
The main PCB has a small RF daughter board (Cypress CYW20730), but otherwise seems to use a fairly run of the mill STM32 (L432KB) chip. The USB Type-C port is attached directly to the main PCB, since there’s just no room for (and no need for) it to be anywhere else. Don’t break it! These are a nuisance to solder and prone to ripping traces off the board.
The battery is attached with a standard JST connector, so it’s theoretically replaceable but is glued into place so it might be tricky in practise.
The plastic base is also reinforced (and weighted?) with aluminium, though the top screws screw directly into plastic posts. Avoid overtightening.
Software
It’s difficult to evaluate a QMK-based keyboard for its software, since the manufacturer didn’t write or maintain QMK, or the VIA configuration app. The quality of these products is more a reflection of the wider community efforts than Keychron’s developers. That said, Keychron still have to make configuration changes and maintain some code to support their particular keyboard configuration and their wireless capabilities. As such most of the Bluetooth heavy lifting code is theirs and – at time of writing – still lives only in their fork.
Perhaps the best litmus test for “good QMK software” is whether or not you can get at the source code. For most users this is academic, but a link to the sourcecode is a prerequisite for complying with QMK’s licence. It’s a bad look for a company not to provide this code, even if nobody but us nerds ever looks at or uses it. Fortunately in Keychron’s case they link their firmware and, if you’re sufficiently motivated, you can build it from source and quite easily install it onto your keyboard. I did, while attempting to fix a bug, but I’ve hopped back to Keychron’s 1.0 firmware so I don’t skew my evaluation.
In addition to providing links to their sourcecode, Keychron have “upstreamed’ – that’s developer lingo for contributing something back to the original source of a project – their keyboard definition files to the VIA project. This means that loading the VIA app with the out-of-the-box fresh K3 Pro worked first try- no monkeying about uploading custom JSON files or toggling switches in hidden menus.
There’s a catch to this, though. VIA is moving from version 2.0 to version 3.0 of its protocol and Keychron only has 2.0 definitions available upstream. This means that if you update your firmware – allegedly Keychron support will send you a newer version if you ask – then you will lose easy VIA compatibility and will have to follow these instructions to sideload some version 3.0 definitions. Since VIA is mostly out of Keychron’s hands, they can’t really stop the march of progress. Just because there aren’t quirks now, doesn’t mean none will ever arise.
When VIA/QMK work they’re still a little quirky and rough around the edges. But this is understandable. They are advanced tools for advanced users that exist in a constant state of development and improvement, championed mostly by volunteers. Once you get your head around them, and bump into the common gotchas, you’ll find making macros, remapping keys and much more to be a breeze, and a powerful asset in a lot of gaming and productivity workflows.
Gotchas
I’ve been lurking the VIA Discord and keeping an eye on support issues to see what crops up. There are some quirks I feel I should reiterate here, because going in with at least some knowledge will make your VIA/QMK experience less frustrating.
Of Scancodes & Diacritic Marks
First let’s lay some fundamentals- no matter what you do in your keyboard macro setup or how you rebind keys your keyboard is never sending what you expect to your computer. This isn’t Keychron’s fault, but rather just a fact of keyboard life.
Keyboards are weird beasts, steeped in legacy that the shift to USB and Bluetooth has not shaken off. When you press a key, your OS doesn’t see the letter “h”, for example, but gets a scancode – a number which identifies the key being pressed, but doesn’t strictly identify exactly what letter that key represents. Your operating system, based upon the input language you’ve configured, will then turn that scancode into a letter, number, symbol or special non-printable key (though modifier keys can be handled in a wholly different way, just to be confusing.) This is particularly noticeable when trying to figure out how to send letters with diacritic marks, and a common topic for confusion in the VIA Discord server.
This little factoid trips up users often, because they type some sequence of characters into a macro and expect that exact text string to be transmitted to their computer- kinda like a text message. That’s not at all how it works. Instead the QMK software makes a best effort to convert the macro text, key presses and otherwise, into a sequence of scancodes. It chucks this sequence over USB – itself an incredibly contrived process – and prays to the digital pixies that the operating system manages to decode it into something resembling the intended sequence. Sometimes this works, sometimes it results in puzzlement and confusion- suffice to say, if your macros are doing something weird, or your keys are producing unexpected characters, you’ve probably got a mismatch between what your keyboard is sending and your operating system input language.
A Keychron Is Like An Onion, It Has Layers
Now for something quirkier. The little Windows/macOS switch on the back of the Keychron K3 Pro is a soft switch. It does nothing but select between two active QMK layers. macOS gets layers 0 and 1, and Windows gets layers 2 and 3. This is a great little setup, because you can customise exactly how your keyboard layout changes to accommodate the idiosyncrasies of Macs. It’s also, if you’re a Windows user, incredibly confusing because you’ll edit layer 0, entirely expecting it to make some change to your key bindings, and be baffled at the nothing that happens.
There’s currently no way to label layers in VIA, so it’s not easy to tell this at a glance unless you’re paying particular attention to the modifier keys in the bottom row. I made a small effort to fudge layer names into VIA, but it still needs a lot of groundwork – pulling those names from the JSON file, making the styling not completely bonkers – before it would even be worthy of showing the VIA developers.
The JSON Trap
While my K3 Pro worked out of the box, it’s extremely easy to flash firmware that breaks this. If you compile from source or – allegedly – receive an updated firmware from Keychron then you might find VIA somewhat uncooperative.
In that case you’ll have to grab the VIA JSON files from https://www.keychron.uk/blogs/archived/k3-pro-factory-reset-and-firmware-flash and start delving into VIA’s “Design” tab (enabled in settings) to switch to V2 bindings and sideload the JSON. This is a rather excruciating process and rather dulls the magic of the whole experience.
Swapping Switches
Did I mention that pulling every single one of the 84 switches is a chore? Inserting replacements is too.
Keychron were kind enough to supply some of those aforementioned Gateron 2.0 Low Profile Banana switches to satisfy my curiosity (and desire for bright colourful things). They arrived in a tall-ish, narrow tube (as pictured on their website) with enough to fill the K3 Pro and a couple dozen or so spare. Spares are important, since the switches are loose in the plastic tube and prone to getting bent pins.
It seems almost luck whether a slightly bent pin will catch the hot-swap socket just right to be straightened out, or end up bent flat when the switch is pushed home. I found, if I was careful, that I could feel if a pin was bending versus pushing home. Nonetheless I inspected every switch before inserting and gently used the switch puller tool to bend the pins straight enough to engage. I ended up with – as far as I’m aware – only one flattened pin for my troubles. Not bad going. The whole process took perhaps twenty minutes (with pauses for photos), since I had already removed the brown switches from the K3 Pro and had it ready to go.
The 2.0 Banana switches, as the spec suggests, stand visibly taller than their 1.0 Brown cousins. This extra height does not translate to extra key height, though, but rather the stem just doesn’t connect quite as snugly into the bottom of a key cap. In theory this might cause problems with loose key caps, and Keychron do not claim any of their non low-profile key caps will work with the K3 Pro or any of their low-profile boards. In practice I haven’t found a key cap that doesn’t fit well yet. Albeit they all come very, very close to bottoming out and tapping on the top surface of the keyboard.
So, should you buy hot-swappable? Well yes and no- if you’re confident in your switch preferences and don’t want or need RGB backlighting (it’s of pretty limited utility given the opaque keycaps) then fixed is a good deal cheaper. Though if you’ve plumbed for RGB backlighting then the hot-swappable option is only a little bit more, and might be worth it – just in case.
If you’re new to mechanical keyboards, you’re experimenting with switches and developing a preference one way or another, then you should definitely go hot-swappable. Swapping out switches is not pain-free, but it’s a very achievable and rewarding little task that may begin to drag you into the mech obsession.
Swapping Caps
To round off my K3 Pro, I gave it a makeover with KAM Superuser key caps in an absurd display of keyboard min-maxing. I would not necessarily recommend these to anyone, since they’re eye-wateringly expensive (uh, thank you and sorry Pateron backers) but they do look and work absolutely beautifully on the K3 Pro.
If you’re planning to do a full keycap swap I would recommend something with a flat profile, such as KAM, XDA or even MOA since this fits better with Keychron’s slimline boards and feels less contrived. It’s also much easier to swap keys between rows with a flat profile. The K3 Pro’s vertically arranged page up, page down, home and end keys could also end up super awkward (I know, I tried) with a more top to bottom sculpted profile such as Cherry or OEM.
Key cap swaps are definitely possible, and you don’t have to limit yourself to the low-profile sets that Keychron sell (though some shine through caps would be awesome), but do make absolutely sure you have the right width caps for all the modifier and function keys on the K3. And, uh, something you can chuck on the backlight key (good place for an artisan if you’re feeling especially fancy, but otherwise an appropriate novelty will do).
Overall
I loved my K7, and I love the K3 Pro more since it embodies all the compact grace of its less functional sibling while also being productive for programming tasks- I’ve never really got to grips with having multiple layers worth of functions.
I’ve found it a great companion to my macOS laptop (an M2 MacBook Air) where it sits comfortably over the existing keyboard (for the most part) and makes for a more satisfying mechanical upgrade over Apple’s (admittedly finally not terrible) built-in keyboard. It’s also been great paired with my Linux workstation, where the Superuser keycaps are much more at home.
The open-source (Keychron actually share their source, even if they haven’t got their changes merged into upstream QMK yet) firmware is also a great indicator that Keychron are working somewhat with, rather than wholly against, the FOSS communities they’re borrowing from. VIA configuration works out of the box, and while I haven’t actually used it for anything more than the most silly and trivial of key swaps on the K3, it has enormous potential for everything from fixing key mapping annoyances to full productivity or gaming macros. Like hot-swappable switches it’s another great feature that, even if you don’t plan to use it right away, is a nice-to-have for not a lot of extra cash.
On my main/keep/give away/bin scale, the K3 Pro is a very, very solid main. This is the board I will commute with. Though I’m definitely going to need a protective pouch this time!
Grab a Keychron K3 Pro from their US website or their UK website. Though, in the latter case you might want to try your luck on stock of the UK ISO version.
Stay tuned for a look at the UK ISO K3 Max.