geekhack Community > Input Devices

Razer Orbweaver Chroma MCU mod

(1/4) > >>

a_marmot:
Hey all, I just completed a mod of a Razer Orbweaver Chroma, replacing the stock controller with a RP2040 and QMK.  It allows the device to have multiple programmable key layers with permanent OS-independent on-board memory (no Razer software needed to control the keymap or RGB). New switches and keycaps as well. The following posts break down the mod into sections, with step by step instructions, a component buylist, and QMK resources to program the controller. Continuously updated as I tinker with the best way to do the mod. Enjoy.

suicidal_orange:
This is the perfect place to post the instructions - great mod!  :thumb:

a_marmot:
1) First, why the mod? 

There are basically two issues.  The first is that the Orbweaver (as well as other Razer products) lack on-board memory.  So you are dependent on Razer's software to operate the device. This is particularly challenging when working across multiple platforms (PC, mac, linux), all of which need their own system extensions, and a connection to Razer cloud for keyboard profiles.  The second (and maybe more serious) problem is that Razer does not reliably support their products. The software is generally buggy, they do not update the software for older products, and they have essentially abandoned macOS, making the device useless except for PC.

In contrast, I have had great experience with Logitech G502 and Wooting 60HE, both of which have onboard memories, allowing the devices to operate without system extensions.  Of course these devices still have software to program them.  But once they are programmed (in any OS), they can work across platforms without ongoing need of software support or a cloud connection.

So basically my objective with this mod was to replace the stock Razer MCU with my own Raspberry Elite-Pi RP2040 microcontroller running QMK.

a_marmot:
2) What makes the mod possible?

Most companies use custom integrated PCBs with proprietary OEM components.  Had Razer done that in this case, the mod would be impossible, since access to the key matrix and RGB LEDs would require tapping into traces on the PCB.  Maybe that's possible, but certainly beyond my limited abilities! 

However, in the case of the Orbweaver Chroma, Razer (luckily) didn't do that.  Instead they used 3 separate PCBs, one for the proprietary MCU, another hosting the keyboard and RGB diode matrixes, and a third with the thumb pad key matrix. They also used a stock RGB LED matrix controller (IS31FL3731) for the LEDs, which they placed on the same PCB as the keyboard. These satellite boards communicate with the MCU through an 18-pin ribbon connector and an 8-pin JST connector.  In other words, all the components we would need for a hand-wired keyboard, thumb pad, and RGB matrix are conveniently provided by Razer!  All we have to do is tap into them with our own MCU. 

The image below summarizes the wiring on the two satellite boards (which I traced using a Fluke multimeter and/or oscilloscope). The keyboard PCB has a 18-pin ribbon connector (R1~R18), which provides direct access to the 4 rows (R17, R16, R15, R14) and 5 columns (R13, R12, R11, R10, R9) of the keyboard diode matrix.  This ribbon also hosts a I2C serial interface (R2, R3 = SDA, SCL) for communication with the IS31 RGB matrix controller (which independently controls the RGB LED matrix). The keyboard also requires 5V, GND (R4, R1) and 3.3V (R8) for the I2C pull-up resistors (which are also conveniently provided on the PCB!). The thumb pad PCB has a 8-pin JST connector (J1~J8), providing access to two additional rows of dioded keys: J2 (ALT, LEFT, RIGHT, DOWN, UP) and J3 (Spacebar, null, null, null, null). These keys share the same columns as the main keyboard on lines J4, J5, J6, J7, and J8. Thus it is possible to add up to 4 additional buttons without adding additional rows or columns to the overall 6 row x 5 column key matrix.

a_marmot:
3) What will you need.

Tools:

Fine screwdrivers and spudger for disassembly/reassembly of the Orbweaver.
Soldering iron
Solder sucker (probably a desoldering gun if you plan to replace the key switches!).
Scroll saw or other means to cut out a section of a standard PCB breadboard.
Cutting tools for plastic (razor blade, x-acto knife, wire dykes).
Fine file for smoothing/rounding edges of PCBs.
Epoxy, ideally Scotch Weld 2216.

Parts:

Raspberry Elite-Pi RP2040. I got one from Keebio (https://keeb.io/collections/diy-parts/products/elite-pi-usb-c-pro-micro-replacement-rp2040). This version of the RP2040 has the perfect form factor for this mod, as it is short enough to fit sideways below the keyboard with USB-C port aligned with the existing hole for a USB cable.
18-pin 0.5 mm ribbon breakout board: (https://www.amazon.com/dp/B09VPKGF7L)
8-pin JST connector and wire leads. You can make up your own, or buy pre-crimped (https://www.amazon.com/dp/B09F3TMG52). Alternatively you can just tap the appropriate wires from the 14 pin JST running from the thumb assembly to the main unit.
8 rows x 4 terminal section of solder breadboard (https://www.amazon.com/dp/B081MSKJJX). I used a scroll saw to cut out the 8x4 section.  But you could probably also score and break the board as needed. Space is tight, so you want to remove as much unused board as possible. 
Optional: new MX-style switches. Get ones with alignment pins since the switches are soldered directly to the keyboard PCB (there is no plate). I prefer linear switches like the Gateron yellows (https://www.amazon.com/dp/B0BBPPP7HD)
Optional: supply of 4-pin R-C-B-G common-anode diodes (https://www.ebay.com/itm/323454847919). To replace the key switches you must first desolder the LEDs. It is easier to replace them than to resolder used LEDs.  In principle you could use R-C-G-B (the more common configuration), but would need to switch blue and green in QMK software.
Optional. I added an extra switch to the side of the Orbweaver for cycling keyboard profiles. As shown below I used an arcade microswitch and diode: (https://www.amazon.com/dp/B074868HZV, https://keeb.io/collections/diy-parts/products/1n4148-diodes). To actuate the switch I used a black plastic button removed from a PCB tactile switch (https://www.amazon.com/dp/B0722LBKV7).
Optional: If you can get a hold of an original monochrome green Orbweaver, it shares the same frame as the Chroma, but the top piece is made of black molded plastic instead of white plastic with black paint.  This makes it much easier to remove webbing for a keycap replacement.  It's also a great source of spare parts in case you lose any from your Chroma. 

Navigation

[0] Message Index

[#] Next page

Go to full version