I was digging through Github one fine evening because well I don’t remember why and I ended up on QMK, the firmware used in most (decent) mechanical keyboards. I noticed that VIA support was added for the Drop (Massdrop) CTRL, the ALT already had VIA support. Hey, I have a Drop CTRL! So I decided to I wanted to flash the board and get VIA support. Who doesn’t want VIA support? Down the rabbit hole I go, and I tossed in some extras.
Lets try to organize this mess:
What is QMK?
What is VIA? What is QMK? If you are here reading this post then you probably already know what QMK and VIA are but in case you don’t there’s a great quick run down. You can also visit my other post here that I just made. So, someone added support for VIA for the Drop CTRL over at the QMK Github repository, here’s the pull over at Github: Added VIA support for Drop CTRL #17336. As of this writing it was merged and ready to go.
VIA is the software used to visually edit QMK basically, kinda sorta. It is a GUI and it does let you change the configuration of the keys how you want, usually add macros, add and or remove extra layers as well as change and edit the RGB LEDs – sometimes, rarely. Usually you get all the goodies from VIA except the per key and/or underglow RGB LEDs. Some boards have that feature but not many. The community hates RGBs, yet the majority of the boards come with it, but yeah. You are going to need a VIA interface to edit everything. You can use the web app via a browser, sorry Firefox. Or you can download the desktop software. I myself prefer the desktop software, always.
Download the desktop app of VIA
Online QMK layout configurator, this will save a layout for you and compile the file, all you have to do is flash it!
Keeping QMK up to date
You want to make sure you are working with a firmware that is current and up to date. We want to open a terminal window (command prompt in Windows) and navigate to the directory that contains your QMK firmware for QMK MSYS/Toolbox, typically (on Windows) C:\Users\YourName\qmk_firmware . Then use the Git command git pull -recurse-submodules to make sure all the files are up to date. Then we can compile our firmware with up to date files, now isn’t that nice.
Getting started with QMK MSYS
Upgrade/lube the stabs!
How to mod the stabs on the Drop CTRL. If you do absolutely nothing else make sure you lube and replace the stabs! There is a little visual walk through on how to pull em out and lube them, and then slap em back in. Its a pretty quick and easy process actually and it makes such a huge improvement on the board I cant stress that enough! Seriously, if you are reading this and you have a Drop CTRL board and its stock – REPLACE AND MOD THE STABILIZERS!!! It is like a whole entire new keyboard with the stabs lubed wow. The other thing I would recommend is getting some Stupid Fish keyboard foam for the Drop. The Aluminum case makes the keys ping really bad stock. After adding the custom cut foam to the board it sounds so much better. You do have to remove every single key switch to install the foam so I would do it when you are also replacing the horrible stock key switches that also come with the Drop CTRL. After installing something other than browns or blues or reds (I mean unless you really like those switches) the board feels and sounds so much better. Much closer to the price tag.
The stabilizers I bought were Durock screw-ins. I don’t recall if they were v1 or v2s? They did state “These stabilizers also have a flat bottom for the stems, so you don’t need to clip mod them saving you time on your custom build.” So no I didn’t clip them.
I used some standard dielectric grease you can find probably at Walmart or any automotive store, that’s actually where i got it from was my garage. I didn’t have any 205g0 on hand but I did have some 3204 grease so that is what I used instead. From what I understand that is the best route for most beginners to go or, if that’s all you got haha. I did a google and found this post comment on good ole Reddit and it has a break down of the greases for ya that works pretty well.
Dielectric works great on stab wires, but not so much with the stab or switch housings. It’s too thick.
3203 imo is just a hair too thin for tactiles. It is definitely a fast and lightweight lube that preserves just about all tactility, but I find it to be very niche as it doesn’t really seem to quiet leaf noise much. I would stick with 3204 for tactiles in the future.
205g0 works wonders on stabs, linears, and tactiles if you avoid the legs. Personally i’ve found that lubing the legs on extremely “tactile” tactiles makes them super smooth and buttery but in a good way and there is very minimal loss of “tactility”.
If you have nothing, I would buy a cheap tube of dielectric for stabs and a jar of 3204 for everything else. Just paint the switches enough to coat without making a “white” layer.
You can get the greases on almost any mech keyboard website out there and you don’t need a ton. 1-2oz will probably be plenty for a couple of keyboard overhauls I would imagine.
The board (Drop CTRL) came with Gateron browns, which I now hate. I can’t stand the sound. They’re hella loud and in the CTRL they are pingy. The first mech keyboard I got (Keychron K8) I originally tried Gat reds and they were way to soft for me I was activating keys left and right all day accidentally it sucked. So I sent it back and got browns which I thought were decent at the time, so thats what I went with on the second board. I have since learned my lesson.
I would recommend getting a keyswitch tester, but I would look for one that has a bunch of switches that are not your standard Gateron colors. I would get one with a bunch of currently popular switches. Which is hard to know since you are a beginner which is why you are getting a tester in the first place haha. It just sucks you have to spend a chunk on single testing switches to try to attempt and get a feel of which one you would like throughout the whole board. I myself can’t tell if I like a switch by just clicking one key over and over. I need to type on them I have found.
Lube the switches? Film the switches?
I have not yet ventured into this category of keyboard modding. When I do I will update this section.
How to build your own keymap for your board.
I have yet to give this a go, so you are on your own here, for now.https://docs.qmk.fm/#/newbs_building_firmware
How to flash a board and what you need
Go over here and read through this post if you are unfamiliar with setting up the environment for QMK MSYS, and the QMK Toolbox.example: qmk compile -kb massdrop/ctrl -km via (default for well, the default)
How to a Flash Drop CTRL
Follow those instructions on the basics on flashing the board if you want to stick with using the online drop configuration tool. If you want to use QMK and be able to do a whole lot more than the config tool allows then you need to use mdloader via the command line/terminal to flash the board.
To use mdloader it is just as easy, use the online QMK configuration tool to build the keymap and or edit the files by hand, then compile and download the bin file. the bin file is what we ned to flash the board. These boards do not use hex files they use bin files.
Download mdloader for Drop keyboards
In a command prompt/Terminal window type:./mdloader --first filename.bin --restart
You should see something like this:
Scanning for device for 60 seconds
Press Fn+B for four seconds and release (reset), the board will go into flash mode and you should see something like this:
Device port: /dev/cu.usbmodem234431 (SAMD51J18A)
Opening port '/dev/cu.usbmodem234431'... Success!
Found MCU: SAMD51J18A
Bootloader version: v2.18Sep 4 2018 16:48:28
Applet Version: 1
Writing firmware... Complete!
Booting device... Success!
Closing port... Success!
You should see something similar to that and your keyboard should have rebooted with the new firmware loaded.
[crayon-641c15796446e545994346 inline="true" ]mdloader --upload saved_firmware.bin --addr 0x4000 --size 0x10000 --restart
If you drop the –restart the board stays off and you have to unplug it. The –first flag is so the computer uses the first found device port as programming port when flashing, –upload reads from the board –download writes to the board.
So in short:
Fn+B for about 10 seconds and release, the board shoiu;d reboot.
Upload a new firmweare to the keyboard:
mdloader --first --download new_firmware.hex --restart
Save existing firmware from the keyboard:
mdloader --first --upload read_firmware.bin --addr 0x4000 --size 0x10000
Smart EEPROM firmware
Add Smart EEPROM to the board (persistent settings after power loss!)
Above we use the mdloader provided by Massdrop/Drop. this time we need to use a modified mdloader to get smart eeprom working.
git clone https://github.com/ottobonn/mdloader
Now enable smart eeprom with the modified mdloader
./mdloader --first --smarteep --restart
Press Fn+B for four seconds while it searches for devices. You may need to unplug the device and replug it back in if it doesn’t restart. That should be it? The site says to load a keymap?
I also flashed the QMK and got persistence, its baked in now I think. so you can probably just flash a newer version of QM than what comes with the keyboard and be good to go I’d bet.
What the fuck. This was a pain in the ass! I had to enlist the help from the awesome group Mechanical Keyboards USA on Facebook, and I dropped a post over at the r/olkb subreddit. It took a hot minute, because I was doing all of this at my normal operating hours of 4am, and everyone hates the Drop CTRL keyboard and just wants me to sell it. With their help I finally got it working. The problem was that I needed the .json keymap file for the CTRL to load into VIA. So they created support for VIA for the CTRL but then dropped the ball with the .json file.
QMK Firmware Drop CTRL Device Page
Massdrop_CTRL_VIA firmware – from VIA
Massdrops mdloader vs QMK Toolbox?
They both do the same thing, they write firmware to a board. The Drop boards use different chips than most other keyboards out there that uses ATMEL chips, like an Arduino. These boards walk a different path and use a different bootloader so they have a different program that writes to the bootloader. Now that some time has passed QMK Toolbox has been updated and now supports the chips the Drops uses on their boards. So once upon a time you had to use two different firmware loaders now today you do not.
This is written for the Keychron series of keyboards but it is a great visual walk through on how to use VIA to program a keyboard.
QMK Configurator for Drop CTRL
Online keyboard tester from QMK, to test out you keys.
Keyboard layout editor with a TKL preset
For anyone reading this, they didn’t drop the ball on the JSON bit, the requirement for that comes from this not being an official firmware made by DROP, who would then be able to add it to the officially supported list for VIA, and therefore make it not need the JSON file.
I recently picked up a Drop board and after having previously programmed a Keychron board with QMK+Toolbox, I was confused by how separate the Drop suite of tools appears. However, thanks to your section on “Massdrops mdloader vs QMK Toolbox?”, I’m no longer concerned about using Toolbox to flash. Many thanks!