How to add LEDs to your CannonKeys Keyboard!

Step by step guide on adding LEDs to your CannonKeys Keyboard

So, a little different piece of content because of my recent obsession with keyboards. I just went through a hell of adventure figuring out how to do this after building my new Rekt 1800 keyboard because (CannonKeys)CK does not provide the most noob friendly guide on how it all works.

Rekt1800 with White LEDS

Below are the basic steps and I will explain all of them expect building the keyboard since that is better explained by others that have way more experience than myself.

BASIC STEPS

  1. Build keyboard
  2. Insert and Solder LEDs
  3. Grab JSON From here and Modify JSON Lighting Property
  4. Load JSON into VIA and Add Supported Controls

STEP 1: Build Your Keyboard!

This is the one step I am not going to explain fully but you know get your Case, PCB, Plate, Stabilizers, Switches, and Keycaps. Put it together solder and test make sure it fully works before adding LEDs

Here are some general build guides and YouTube videos for those unfamiliar.

Official Build Guide for the Brutalist Series (The Rekt1800 is part of this collection)

Beginners Video from Kristofer Yee

Build Video of a Rekt1800 by Tap Tap Tien

STEP 2: Buy and Install LEDs

For the Rekt 1800 and all brutalist keyboards (AFAIK) it supports two kinds of LEDs 1.8 MM round LEDs or 2x3x4 LEDs. I ordered 2x3x4 white LEDs by CHANZON which worked great and were quick to ship.

IMPORTANT THING TO KNOW
LEDs need to be wired in the correct way so make sure you know which side of your LEDs are positive and which is negative and match it to your PCB. For the CK boards their PCB looks like this:

Pulled from the CannonKey documentation

Red spots are where the LEDs get soldered into. The square side is the negative, circle is positive in most cases. This is very obvious from the back side of the PCB. On the LEDs I bought; the longer wire was the positive side. For my build I needed to put the longer wire into the circle side and shorter wire in the square side.

To install these, you go through the switch and with the correct polarity aka positive to positive and negative to negative.

With LEDs Installed

Once you get 1 or more through make sure it is fully seated where you want it. Bend the wires to keep the LED in place so you can solder a bunch of them at a time.

OK now you have a bunch of LEDs inserted, time to solder them up and make sure not to bridge the two pads. After this step clip the excess wire from the LED. Rinse and repeat until you have every LED soldered in.

Once you have this done, double check your work and plug in your keyboard. Make sure all the lights turn on and work correctly.

STEP 3: Download and Modify JSON

Time to grab your JSON for those of you with a Rekt 1800 you will get your JSON from HERE. if you have a different CannonKeys Keyboard go up the directory to the CannonKeys part and then click to the keyboard you have and go to its JSON. Open the JSON in a text editor like VS Code or Notepad++ locate the line that says "lighting": "none" and change it to "lighting": "qmk_backlight".

{
    "name": "Rekt1800",
    "vendorId": "0xCA04",
    "productId": "0x2377",
    "lighting": "qmk_backlight",
    "matrix": {
      "rows": 6,
      "cols": 19
    },
    "layouts": {
      "keymap": [
        [
            {
              "c": "#777777"
            },
            "0,0",
            {
              "x": 0.25,
              "c": "#aaaaaa"
            },
            "0,1",
            "0,2",
            "0,3",
            "0,4",
            {
              "x": 0.25,
              "c": "#777777"
            },
            "0,5",
            "0,6",
            "0,7",
            "0,8",
            {
              "x": 0.25,
              "c": "#aaaaaa"
            },
            "0,9",
            "0,10",
            "0,11",
            "0,12",
            {
              "x": 0.25
            },
            "0,14",
            {
              "x": 0.5
            },
            "0,15",
            "0,16",
            "0,17",
            "0,18"
          ],
          [
            {
              "y": 0.25,
              "c": "#cccccc"
            },
            "1,0",
            "1,1",
            "1,2",
            "1,3",
            "1,4",
            "1,5",
            "1,6",
            "1,7",
            "1,8",
            "1,9",
            "1,10",
            "1,11",
            "1,12",
            {
              "c": "#aaaaaa"
            },
            "1,13",
            "1,14",
            {
              "x": 0.5
            },
            "1,15",
            "1,16",
            "1,17",
            "1,18"
          ],
          [
            {
              "w": 1.5
            },
            "2,0",
            {
              "c": "#cccccc"
            },
            "2,1",
            "2,2",
            "2,3",
            "2,4",
            "2,5",
            "2,6",
            "2,7",
            "2,8",
            "2,9",
            "2,10",
            "2,11",
            "2,12",
            {
              "w": 1.5
            },
            "2,14",
            {
              "x": 0.5,
              "c": "#aaaaaa"
            },
            "2,15",
            "2,16",
            "2,17",
            "2,18"
          ],
          [
            {
              "w": 1.75
            },
            "3,0",
            {
              "c": "#cccccc"
            },
            "3,1",
            "3,2",
            "3,3",
            "3,4",
            "3,5",
            "3,6",
            "3,7",
            "3,8",
            "3,9",
            "3,10",
            "3,11",
            "3,12",
            {
              "c": "#777777",
              "w": 1.25
            },
            "3,14",
            {
              "x": 0.5,
              "c": "#aaaaaa"
            },
            "3,15",
            "3,16",
            "3,17",
            "3,18"
          ],
          [
            {
              "w": 1.25
            },
            "4,0",
            {
              "c": "#cccccc"
            },
            "4,1",
            "4,2",
            "4,3",
            "4,4",
            "4,5",
            "4,6",
            "4,7",
            "4,8",
            "4,9",
            "4,10",
            "4,11",
            {
              "c": "#aaaaaa",
              "w": 1.75
            },
            "4,12",
            {
              "x": 1.5
            },
            "4,15",
            "4,16",
            "4,17",
            {
              "c": "#777777",
              "h": 2
            },
            "4,18"
          ],
          [
            {
              "y": -0.75,
              "x": 14.25
            },
            "4,14"
          ],
          [
            {
              "y": -0.25,
              "c": "#aaaaaa",
              "w": 1.25
            },
            "5,0",
            {
              "w": 1.25
            },
            "5,1",
            {
              "w": 1.25
            },
            "5,2",
            {
              "c": "#cccccc",
              "a": 7,
              "w": 6.25
            },
            "5,6",
            {
              "c": "#aaaaaa",
              "w": 1.5
            },
            "5,10",
            {
              "w": 1.5
            },
            "5,11",
            {
              "x": 3.5
            },
            "5,16",
            "5,17"
          ],
          [
            {
              "y": -0.75,
              "x": 13.25,
              "c": "#777777"
            },
            "5,12",
            "5,14",
            "5,15"
          ]
    ]
  
    }
  }
Rekt1800 with Code setup for per key LEDs

This is what this keyboard supports and will allow you control some basic functions from your keyboard or the VIA software.

Save these changes and you will be ready for this next step

STEP 4: Load JSON and Add Supported Controls

OK now you have some JSON to load so first step open VIA and go to the settings page and enable the DESIGN tab.

Click on the DESIGN tab, click Load and select your JSON file you saved with the changes to the lighting property.

Now click the CONFIGURE tab, select another layer and click in the bottom half of the screen QMK LIGHTING Now bind the following functions BL Toggle, BL- BL+ BR Toggle. BL Toggle Turns the Lighting on and off if the keyboard is not in breathing mode. BL + and BL- increase and decrease brightness. BR Cycle enables and disables the breathing lighting function.

On the configure tab as well you can control the lighting in the upper left by clicking LIGHTING. Effect is the breathing mode that was on by default for me and there is a Brightness slider.

YOU SHOULD NOW HAVE LEDs WORKING AND CONFIGURABLE!

I hope this little guide helped some people out there and let me know if you would like any help and if you liked this guide feel free to check out my social media or stream. If you really enjoyed this guide you can support my coffee and camera addiction here I even accept anonymous ways like Monero.

Shout out to ApiaryKeyboards who inspired me to do this build and her Discord community that helped me figure out how to get the JSON file.

Loading comments...
You've successfully subscribed to Rubysea Rambles
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.