Aug 24, 201853744 views

How to Configure your CTRL Keyboard!

Hey everybody!
Thank you for purchasing your Massdrop CTRL Mechanical Keyboard. We hope you’re enjoying it so far. If you’ve landed here, you probably want to take full advantage of the keyboard’s features so you’ve come to the right place.
We’ll start with the basics, then we’ll move on to complete custom configuration.

THE BASICS Default Hot Keys Hold FN + listed keys to activate
LED Keys
Fn + A: LED Pattern Select Previous Fn + D: LED Pattern Select Next Fn + W: LED Brightness Increase Fn + S: LED Brightness Decrease Fn + Q: LED Scrolling Pattern Speed Decrease Fn + E: LED Scrolling Pattern Speed Increase Fn + Tab: LED Toggle Breathe Effect Fn + Caps Lock: LED Toggle Scrolling Pattern Direction Fn + X: LED Toggle On/Off Fn + Z: LED Toggle Mode (Keys+Edge, Keys Only, Edge Only, Only modifiers)
Media Keys
Fn + Page Up: Volume Up Fn + Page Down: Volume Down Fn + Print: Mute Fn + Insert: Play/Pause Fn + Home: Stop Fn + Delete: Previous Fn + End: Next
Keyboard Option Keys
Fn + N: Toggle keyboard 6KRO/NKRO (Default state 6KRO)

CUSTOM CONFIGURATION How do I configure my keyboard?
Note: You will currently need a second keyboard to complete the 3rd step of this process.
1. Create your configuration. 2. Compile the firmware with your configuration.
Use our web-based configurator tool to handle both steps at once: . See below for more information about our configurator.
If you are comfortable with programming and want to use QMK functionality that our configurator does not support, you can manually create and compile your configuration by checking out the official QMK repository: . CTRL Keyboard is in the folder "massdrop/ctrl". QMK setup instructions are here:
3. Load the firmware onto your keyboard.
To load the firmware onto your CTRL keyboard, download the appropriate loader application for your computer's OS here: Then follow the instructions here: .
We are working with Jack and the other QMK contributors to get the loader application integrated into the next version of QMK Toolbox to simplify this loading process.

When you first go to the configurator, you will be prompted to choose your keyboard (only CTRL Keyboard available for now). After choosing, you will see a top-down view of the keyboard and a layer selector on the right side.
By clicking on a key, you can customize its behavior by selecting another key or function in the panel that appears below the keyboard. The currently available behaviors are:
- Keys - Individual keys such as letters, numbers, media keys, and function keys. - Layer - Activate and deactivate layers. The CTRL Keyboard ships with a keymap where the Fn key activates layer 1. - Modifier - Send multiple modifiers with a single key press or allow a key to be a modifier when held and another key when tapped. - Special - Behaviors specific to the keyboard. For the CTRL Keyboard, these control the LEDs.
After you have configured the behaviors to your liking, click the "Compile & Download" button in the top right to download the compiled firmware for your configuration. This typically takes around 30 seconds. You will need to load this compiled firmware onto your keyboard. See step (3) above for instructions.
If you are logged in to Massdrop, you will see a "Save as a New Copy" button next to the "Compile & Download" button. Clicking this button will save your configuration, allowing you to revisit it and modify it. The next time you go to the configurator, you will see your saved configurations above the list of keyboards.
About Layers
Layers allow you to configure your keyboard with more behaviors than its number of physical keys. For example with the CTRL Keyboard, by default, when you hold Fn + A to change the LED pattern, the keyboard is actually activating Layer 1 and sending the code for switching to the previous LED pattern. The physical key that is mapped to the letter A on Layer 0 is mapped to changing LED patterns on Layer 1.
For each key, its behavior is determined by the highest active layer. For the highest active layer, if the key's behavior is "transparent" (denoted by a grayed-out "(trns)" on the keyboard display), then it falls back to the next-highest layer where its behavior is not transparent.
The QMK documentation has some tips for working with layers:
Configurator Development Roadmap
Our configurator tool is still a work-in-progress. Here is what you can expect to be added to the tool in the future: 1. Merge our QMK changes back into the main QMK repository 2. Macros support 3. Support for changing some QMK settings 4. Support for more keyboards

Having any issues or generally need some help?
Let us know in the discussion and we’ll give you a hand.
MarcoRispoli, Patrick Jonas, and 61 others

Hi all, we have new updates to mdloader, our keyboard configurator, and our fork of QMK. If you have previously downloaded the mdloader tool. Please download the latest version at: This new version of mdloader adds a new "--first" option that auto-detects the first available keyboard to flash over the next 60 seconds. Using --first, you can submit the flashing command with your CTRL keyboard and then press the reset button---no second keyboard needed. It also adds .hex file support. In a few weeks, we will be switching the keyboard configurator to output .hex files instead of .bin files, so it's important that you download this new version of mdloader. Our keyboard configurator has been updated with the following: - New keycode MD_BOOT: hold for a second and then release to reset the keyboard. No more needing to keep a pin handy to flash your CTRL keyboard! - Support for the ALT Keyboard We have updated our fork of QMK with the latest from the main QMK repository. This includes MD_BOOT support and other changes. We are working on getting changes on our fork back into the main QMK repository.
If you're trying to load firmware onto your CTRL Keyboard and wondering where the reset button is: reset button is in the hole on the left side bottom of the keyboard. Use a pin or something thin to press it.
Load 14 more comments
Hey, pick up the new version of mdloader which has a new command option that auto-detects your keyboard for the following 60 seconds so you don't need a second keyboard.
See updated readme here:
🙇‍♂️ thank you so much for adding that feature.
However, "you should lead with that next time" 😉
(then again, maybe I'm the only person that was bothered by the 1.0 approach. 😆)
Thanks again!
The online configurator allows for the binding of F13-F24 keys, however they do not work. There is a fix listed online on Github: Seems like the online configurator needs this fix.
how can I unload the firmware I configured and return everything to default? thanks!
Hello everybody. Apologies for the silly question, I am a very basic user ... :-) I purchased a CTRL Keyboard to replace my original MAC keyboard ... everything seems to be working fine, besides the COMMAND key, that is not recognized by my Mac ... hence I lost the Copy/Paste functionality using the COMMAND Key. I imagine I need to programme the keyboard to convert the "LEFT GUI" key to be recognized as the COMMAND one ... but really have no clue. Can anybody please help ? Thank you in advance Marco
I've got a mac and tried to use macloader to upload the firmware with the .bin file and got this: Opening port '/dev/cu.usbmodem1411201'... Success! Found MCU: SAMD51J18A Bootloader version: v2.18Sep 4 2018 16:48:28 Applet file: applet-flash-samd51j18a.bin Applet Version: 1 ERROR: Parser: Could not open file for read! Error: Could not parse file! Closing port... Success! 192-168-1-118:CTRL benpang1$ ./mdloader_mac --first --download /ctrl/massdrop_ctrl_config_ctrl__default_3217 --restart Massdrop Loader 1.03 Why the ERROR parse?
You need to actually give the full file name (ending in .bin, and it helps to have that file in the same dir as mdloader_mac)
Thanks a lot ... got it working!
is there a breathing affect where everytime it breathes it changes colors? noobie at this type of stuff
Sorry for the super late reply on this. I haven't had to the time to mess with keyboards lately. QMK recently did a RGB overhaul of quite a few things (and broke some of the stuff I was working on! Well their stuff is better anyhow). If you build from QMK there are A LOT more effects you can mess with, and all of them have ways to change colors on the fly (you'll still need to do some coding to get your settings to be saved whenever you restart your keyboard).
okay but seriously, are we ever getting macro support? has this been abandoned?
i guess so
I'd be interested to see if anything gets added when they start shipping that 1800 keyboard (Shift?) they've been working on.
Will this allow me to set the color of the LEDs to whatever I want, instead of just one of the 9 preset colors that I don't want? Why isn't ORANGE available??? There should be a way to set 16 levels of EACH RGB channel so we can make any color we want...just like every other RGB LED keyboard out there. :-p
Sure, any color or effect, but you should train your programming skills to do this :)
So I suddenly started having issues with the keyboard inputting double-key presses, like the word I type would randomly have duplicate letters in them. Anyone else have the same issue?
Load 14 more comments
He said supplies were low, but i am getting a new one. Ill update once its done.
replacement showed and its 150 (serial) less than what i originally recieved. I bought more switches just to be sure too and hope the issue doesnt return. Drop made good to me and it makes me happy to be loyal (Great customer service reps too)
How to change the default lighting? I don't know how to use the QMK,I just want white LED.
You can do that via the configurator. You don't need QMK. Just select all of the keys and backlight LED's and set them to white for all layers.
That being said, the GUI is pretty limited
I started getting compiler errors after I updated some of the items in the compiler tool-chain (MacOs) . Pulling down the newest version of QMK fixed the issue, but they key-by-key code stuff isn't in there yet. I figured "I'll just use Docker" and that worked too, but "ugh" slow. So I made my own version. To keep compatibility with QMK master, I moved all of the key-by-key code into files that only the keymap "lastcontinue" can access (this also gives you map-by-map capslock settings) If you want to make your own keymap from this, it's trivial by just copy-pasting. Of course I have some of my own personal settings in there, but those are easy enough to edit around (I have my brightness turned way down by default), but pay attention to the comment at the bottom about commenting code out if you don't want key-by-key and for some reason are using that map. Numbers at the bottom come from "light math", see and or for tools to help you build those out Also, I already linked to it, but you might have noticed, I finally updated my wiki to include a more reasonable and up-to-date version of how to do key-by-key color setting via QMK
Has anyone else been having trouble with being able to compile&download from the online configurator? Mine seems to be hanging permanently despite no configuration inputs that I can see that have issue (see attached screenshots)

Load 2 more comments
I'm having the same issue with CTRL keyboard
It should work again!! :)
Hi I do have the applet-flash file in the same folder as the mdloader_mac; however, I'm still receiving the error that the applet file cannot be open.
Move your working directory (cd) to the location of the executable/bin file
I can't flash the keyboard with the new .bin from the configurator and the new version of mdloader in Mojave 10.14.3 on my Mac. Keeps getting "command not found" error. applet.bin and mdloader_mac.dms downloaded and saved to ~/Desktop/mdloader-master/. Saved configurator .bin to same location. Ran make. Tried mdloader_mac.dms —first —download massdrop_ctrl_md_configurator_1550014602)_994398888.bin, yields "no command found". What am I missing?
resolved! had to use ./ prefix: ./mdloader_mac.dms —first —download massdrop/file/path.bin —restart
For some reason, the software is unable to detect my keyboard and it just times out after scanning for 60 seconds. Anyone else having the same issue?
Load 1 more comment
Thanks! That did the trick.
After you've flashed it with (just about any) firmware than the one that came on the board, you can just do "fn+b" for a couple of seconds, then let off. Beats having to flip the board over if you're doing a bunch of programming.
Great keyboard, but the LED settings are very poor. I would really like to be able to adjust fade effect in the default firmware, for example.
Hi, is there any way to save the LED setting for the CTRL keyboard? I want to use the 2nd LED setting but everytime I restart my PC it went back to the first setting.
I'm having this same issue. CTRL will not default to my previous LED setting after a PC reboot or shutdown.
Is it possible to turn off the keyboard lights when my screen is off? Thanks
Load 1 more comment
I really wanted it to be automated . I'm currently using the Fn+X function but I wanted it automatic.
This is going to be more dependent on your OS than it is the keyboard. I'd look into searches like "cutting usb power on sleep" or something along those lines.
So I found Massdrop's fork of qmk. Its so old and outdated I dont know if i want to use it. Seems like a few of the commits have not been merged into qmk and they are extremely behind (216 commits behind qmk). Any idea when this will be synced with a way to create led programs in my user folder for the ctrl?
realistically, are we ever getting macro support?
Hi, I may have missed it, but can you change colors to be a solid color. Thanks.
So, can we assume that development (the missing points on the roadmap) is discontinued then, I mean specifically 2 and 3.
Load 6 more comments
Holy crap this is great. Will pull soon and start fiddling
If you get anything cool, put a link here! Valen's stuff is too much for me both in effect and in code (Almost 1000 loc? WOW) for me to casually look through, but I'd suppose there's some bits and pieces that could be taken out for a more simplified effect, and for nothing else, than to have more links to stuff for my wiki project 😉
How would I go about adding a breathing effect to a single key? I'm trying to have my space bar, escape key, and backspace key breathing.
I've been working to make my own version of this, but his is way nicer! Watch that demo video:
How can people afford this keyboard? 😯

Load 1 more comment
You have to make sure the applet flash file is in the same folder as mdloader_windows.exe. It is the first file in the github link with the mdloader exe.
I'm able to flash the firmware and everything... The F13-24 keys are not working. I've reflashed multiple times, but when I set F13-24 keys, they don't do anything. The layer that's with those keys still works properly, and I'm able to hit all the other F1-12 keys (all of these are on the same layer). Is this a problem with the QMK Configurator? QMK mdloader? I've been wanting to get this fixed, but nobody to help, since massdrop support just tells me to discuss it here.
I've also faced the same issue and it was solved in qmk_firmware. If you'd like to use f13-24, it would work by using qmk_firmware instead of massdrop configurator.
hm... I was fairly certain massdrop configurator is just a repackaging of the qmk_firmware, but I could be wrong. Last time I tried was like several months ago, so it's possible that they're just outdated. I was also considering looking into the code myself, but I never got the time. Thanks for letting me know, i'll try sometime this week.
ctrl-info Repo Update: As there are even more holidays approaching, I decided to finally get off my butt and package a release for some of the stuff I changed in the repo awhile back. So if you're using the drag and drop loaders, here's a new version for you! There's some brief instructions there so I won't repeat myself here. The biggest change is that everything uses mdloader 1.0.3. The for Macs/Linux also handles all of the mdloader dependency fetching now (I found that really convenient for myself. The less I have to mess with Automator, the better) Powershell versions are more or less the same besides fetching and using mdloader 1.0.3 Like all of my other versions, all of the code can be found in the repo itself. I encourage you to look around as there's some more helpful stuff in there (like the python script I use to make light codes, or a script that builds QMK and then loads it with minimal input) Also, as usual, the Windows stuff probably works*. Everything is properly in Git now** so PRs welcome if you want to help me out. *I don't have access to the Windows machine I used the first time I wrote them, but the overall changes have been minimal. **for some reason I called that commit "MVC" when I meant "VCS" 🤔 😆, but I already tagged so I'm not force pushing to fix it! Edit: went back to find the original release post which has pictures
I can't seem to run mdloader_windows.exe on windows 10. The moment I launch it, the cmd box looks like it just closes instantly.
You need to run it from powershell or cmd. Or you can download a drag and drop version (drop your .bin onto the shortcut) from here