Posted On 07/05/2015 By In How-To

HOW-TO: Programming the KC60

9/12/15 – Currently editing this post to reflect the most recent information, and to try to answer all the questions I can in a public spot. Any edits will be marked in red. Thanks for checking back, and don’t hesitate to email/pm me on the forums if you have questions!

Also, check the comments at the end of the review, as some very helpful users have been posting solutions to issues there as well!

I took this section out of my original KC60 review after finding out that the manufacturer didn’t get permission from the creators of the TKG Toolkit to make it the “official” firmware updater. The manufacturer has created their own firmware updater and is currently in the process of translating it. I will be adding instructions on how to use the manufacturers software as well as other programs such as Easy AVR (if it works) in the near future. I also have a KC60 of my own and will start playing around with possibilities  that I didn’t want to try on a sample keyboard that needed to be returned, just in case something went wrong.  Anything I find  in terms of programming will be updated here. When the KC60’s start shipping out I will bump this post back up to the front page for easy access. 

 Programming with the TKG Toolkit

The first thing you will need to do is download the TKG Toolkit. After you have that downloaded and saved to your hard drive you will need to navigate to the manufacturer’s GUI to program the new layout. At the time of this review there is not a version of the GUI translated into English, so I will include as many pictures as I can to explain the process.

After navigating to the GUI website you should be prompted with this page:



To make a change to the layout simply click on any key to be prompted with a new screen where you will select the new replacement character or macro:



I would highly suggest making changes to layer 1 or 2 (as seen at the top of the GUI to the left of the Green/Red “+ &-“, instead of modifying the base layer. If you wanted to change the keyboard to an alternate layout like Colemak or Dvorak you would modify the base layer, or even program a separate layer for that particular layout in. From the GUI it appears that you can add up to 9 layers for a grand total of 10.


Once you have a layout that you are happy with, click the blue button with the floppy drive icon at the bottom of the screen to save the file. After that click the green button beside it to download the .hex file and save it to your computer’s hard drive.

EDIT 9/12/15 – Thanks to on vppl Massdrop!

To switch between layers, set a key to be the Fn key. Then, pick an option from the drop down menu.
The options are:
空操作     –               No operation
瞬时开启层   –       Instantaneous open layer
开启层     –               Open layer
关闭层     –               Close Layer
开关层     –               Switch layer
瞬时开启、 按键Momentary open , button
修饰键     –       Modifier keys
组合键     –       Key combination
单击修饰键   –       Click modifier keys
开关修饰键   –       Switch modifier keys
清除层状态   –       Clear layer status
宏       –       Macros

After that is complete you will need to open up the TKG Toolkit setup tool. To do this navigate to the TKG-Toolkit_Master folder and then to the Windows folder. Click the “setup” batch file to run it. You should now be prompted with this screen in a command prompt window:



Proceed to follow the steps by selecting the options shown in the picture below:

Select GHPad -> Default Firmware -> atmel_dfu Bootloader



The final step is to open up the same folder containing the “setup” file. You should see a “reflash” batch file:





All you need to do is drag the .hex file you saved earlier onto the “reflash” file and a new window should prompt you asking if you want to reflash the firmware:


Simply press “y” to continue and load the new firmware onto your KC60.

Tags : , ,

18 Responses

  1. Avatar

    Is the toolkit setup tool and reflash tool available for Mac?

  2. livingspeedbump

    The toolkit setup definitely is, it is web based, the reflash tool I’m not sure about. My iMac actually died while making this review so I still need to check a Mac out from the library to finish that part of the review. I’m know there is a multi-platform version of Easy AVR, so once I confirm it works with that I would say yes.

  3. Avatar

    Sorry if this is a duplicate post, but I can’t seem to find the other one, so here goes. I just got my KC60 and am having trouble figuring out how to navigate between layers. Do you know how to do that? Thanks.

  4. Avatar

    To switch between layers, set a key to be the Fn key. Then, pick an option from the drop down menu.
    The options are:
    空操作 – No operation
    瞬时开启层 – Instantaneous open layer
    开启层 – Open layer
    关闭层 – Close Layer
    开关层 – Switch layer
    瞬时开启、 按键Momentary open , button
    修饰键 – Modifier keys
    组合键 – Key combination
    单击修饰键 – Click modifier keys
    开关修饰键 – Switch modifier keys
    清除层状态 – Clear layer status
    宏 – Macros

  5. Avatar

    Anyone who is having problems flashing and is getting the “did you remember to press the reset button?” message: it’s simply a matter of holding the button down for a very long time. It takes about a full minute of holding the reset button before the chip restarts. Just keep holding even after the error message comes up, and eventually it will flash! Good luck and have fun!

  6. Avatar

    One more thing: If it still doesn’t work, you may need to install some drivers. Go into the “tkg-toolkit-master\windows\tool” folder, and run zadig_2.1.2.exe. Once it comes up, hold down the reset button until the chip restarts. This could take up to a minute, and you’ll know it happens, because the leds suddenly dim. At this point “ATm32U4DFU” will appear in the drop down box. When that happens, click “install WCID driver” and it will install the USB driver for the atmel chip. After that, restart your computer just to be safe, then attempt to flash the firmware. (drag drop the .hex file onto reflash.bat, hit ‘y’es, then immediately hold down the reset button until you see the firmware install script running, which could take up to 60 seconds)

  7. Avatar

    Thanks Nick!

  8. Avatar

    Thank you for writing this how-to. I’m the author of TKG and tkg-toolkit.
    I was wondering with KC60. But I have to say they haven’t contacted me at all.
    And regarding the question about Mac, tkg-toolkit probably can support Mac but is not well-tested on Mac. It will be my pleasure if someone can test it on Mac.

  9. Avatar

    Thanks for the guide. For a total newcomer to the world of programmable keyboards, even the Google Translate menu items leave unanswered questions.

    -What difference is there between “Open layer” and “Instantaneous open layer”?

    -What is the difference between a modifier key and a function key?

    -What is the difference between switching to a layer, and using a modifier (is the fn key actually a modifier)?

    -“Click modifier keys”? What does that mean? Choose them? To do what? Does that mean
    they live inside that specific layer, so that you can go to a layer, and then have modifiers within that layer?

    Specifically, the idea of “layers”. Does this mean pressing the fn key switches they keys to a new layer, and the keys remain there until they are switched back to the default layer? If so, what is the menu function one needs to choose to revert back to default?

    I’m posting this here, since this has more information than has been provided by Massdrop themselves.

  10. Avatar

    Hi Livingspeedbump, any update on this ?

    I really want to create a firmware for a KC60 based on EasyAVR, as it is easier to use.

  11. Avatar

    And by easier to use, I mean for me, since I haven’t config a text-based firmware before.

    Sorry for duplicating post 🙁

  12. Avatar

    Hi lumogas,

    It’s pretty a coincidence that their tool have the same translate with mine.
    So you can go to my site and see what does the Chinese really mean without waiting for more information.

    1. Go to , choose a “Keyboard” (e.g. GH60 RevCHN).
    2. Input “[‘fn’]” (without quotation marks) into “Layer0”.
    3. Then you can see “Fn” appears at the “Fn” section. Open the dropdown you can see all of the options.
    4. Click on the “Language” in the menu bar at upper right of screen and click on “中文(简体)” will change the UI to Chinese, and off course click on “English” will change it back to English.
    5. Then you can know what’s the Chinese words really stand for by comparing with the English version.
    6. Also mouse over on an option of Fn can show a short description for it.

    Actually the Fn options are corresponded to the Fn actions of tmk_keyboard. So you can find more details by reading this document:

  13. Avatar

    Hi samhwang,

    I even asked them that do they need support of TKG since someone has trouble with reprogramming it. But I haven’t get any response yet.

  14. Avatar

    …Thanks a lot, Kai! I am now trying to dig into actually programming the keys using
    some of the templates available, since I can’t seem to find any special characters,
    like letters with accents, etc using the GUI. Sounds like programming it “by hand”
    shouldn’t be excessively hard, since there are plenty of premade layouts to start
    from (famous last words).

  15. Avatar

    The translations for the function drop down are helpful and a good, but it would be great if someone could take it all the way and explain what the options mean in simple terms. I’m game to work through all the options using trial and error for the ones that are a bit ambiguous, but maybe someone could save me some time if they’ve already worked through it? This is a great keyboard, but it’s kind of a shame the programming end is so little mysterious for the n00b perspective.

    FYI – the link posted by Kai is dead. I think this is the one he’s referring to (correct me if I’m wrong)

Leave a Reply