geekhack Community > Input Devices

Razer Orbweaver Chroma MCU mod

<< < (3/6) > >>

a_marmot:
#8) Optional keycap mod. 

Others have discussed this previously (in particular Tuffrabit on Youtube). But the Orbweaver uses nonstandard keycaps with shallow shells.  In order to swap to normal keycaps, you must remove the plastic webbing and rim that surrounds the switches in the plastic top piece.  The photo below shows what it needs to look like after you are done. 

The the top piece is made of a very hard plastic that is difficult to carve, so you'll need to be patient and take care not to cut yourself, or break the piece. I found the best tool for this is 45 degree angle knips of the kind used for flush cutting soldered components. See photo.  It's best to remove the vertical pieces extending downward below the piece, then work you way around the rim removing plastic all the back to the edge of the key basin.

The plastic itself is bright white, so try not to scratch the black paint. (Tip: if you do scratch the black coating, india ink does a pretty good job of masking it.) Another option is to get the same part from an original Razer Orbweaver (not Chroma) Model RZ07-0074.  The top piece from this model is from the same mold, but made of black colored plastic.

Note the webbing hosts two of the screw mounts anchoring it to the base tray.  So the device loses some structural integrity by doing this (you can feel the added flexibility if you lift up on the top piece after reassembly). I have not it found this to be an issue in practice, but... I'm currently investigating ways to anchor the top piece to the tray more securely, especially in the upper right area of the keyboard. 

a_marmot:
9) QMK

The RP2040 microcontroller is supported by QMK firmware.  However, a modded Orbweaver is essentially a handwired custom board, and thus is not configurable using the QMK online configurator tool or VIA. If you want full control over the keymaps and RGB color, You'll need to get a copy of the QMK programming environment and compile the firmware yourself. 

The good news is you don't have to start from scratch.  I have created a folder on the QMK Github repository which contains generic source code to define the key layers and set static colors for the keys in each layer (https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/orbweaver). That's as far as I have taken it.  But QMK is incredibly powerful, so if you want to do additional things like dynamic RGB effects and RGB animation, you probably can. If you decide you want to build new features, the QMK folks are very helpful and respond quickly on the QMK discord channel.

To use QMK, you'll first need to download the QMK programming environment.  Follow instructions at https://docs.qmk.fm/#/newbs (exact procedure depends on your OS).  This will create a local copy of the QMK compiler and all the files you'll need (including the orbweaver-specific files).

Then, under keyboards/handwired/orbweaver/keymaps/default, you'll find a file entitled keymap.c.  This is the file you need to edit or replace to set your keymaps and key colors.  The default keymap just has two layers (0, 1).  But you can add more (I currently use 4).  The default layer 0 is set to the Razer default keys.  Here's what it looks like in the code:

[Layer 0] = LAYOUT_keypad(
        KC_ESC, KC_1, KC_2, KC_3, KC_4,
        KC_TAB, KC_Q, KC_W, KC_E, KC_R,
        KC_CAPS, KC_A, KC_S, KC_D, KC_F,
        KC_LSFT, KC_Z, KC_X, KC_C, KC_V,
        KC_LALT, KC_LEFT, KC_RIGHT, KC_DOWN, KC_UP,
        KC_SPACE, TO(1)

Here TO(1) is assigned to the optional extra side button described above. This button toggles to layer 1, which has a key to toggle back to layer 0, etc. The key nomenclature can be found at https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md.

They colors for each key layer are defined in the section below the key maps, and look like this:

         {
      {0x00, 0x00, 0xFF},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},
      {0xFF, 0x70, 0x00},{0x00, 0xFF, 0xFF},{0x80, 0x00, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},
      {0xFF, 0x70, 0x00},{0x80, 0x00, 0xFF},{0x80, 0x00, 0xFF},{0x80, 0x00, 0xFF},{0x00, 0xFF, 0xFF},
      {0xFF, 0x70, 0x00},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF}
   },


These are the RGB levels in hexidecimal (0~255) for {R, G, B} for each key (top view).  The color maps are listed in order for layers 0, 1 (more if you add them).  Note that if you replaced the Razer R-C-B-G diodes with more standard R-C-G-B diodes, this is where you would need to switch green and blue.

Once you have the keys and colors defined, you can open a shell in the QMK programming environment, and type the command:

$ qmk compile -kb /handwired/orbweaver -km default

This will create a firmware file entitled orbweaver_default.uf2 in the qmk_firmware folder in your user folder.  Plug the PR2040 into a USB and put it into bootloader mode (how depends on platform), and copy the firmware to the MCU.  It should immediately appear as an available input device with RGB lighting corresponding to the default keymap.

Maybe if one of you is a programming whiz you can come up with more sophisticated firmware with an app to control it (like wooting or logitech). This is beyond my limited programming abilities.


a_marmot:
10) Reassembly

Carefully reassemble the Orbweaver, placing the boards where they need to be.  I found it helpful to use heatshrink tubing around bundles of wires to keep them tidy. I also used a few drops of Scotch Weld 2216 to secure the boards in place. The OP shows a picture of the final product in operation!

Any questions, please do not hesitate!

a_marmot:
I decided to embrace the RGB...

With QMK, calls to rgb matrix effects are built in. So it's actually a convenient way to manage key-layer specific color maps.  But it also provides a programming environment for custom animations (in this case based on the key-layer specific color maps). 

anawilliam850:
Hi! thank you for the information

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version