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.