Adding RGB to FC660C with HASU controller

This Easter, when the Norbauer U&O sale went up, I finally bit the bullet and ordered one for my FC660C. That could have been the end, but product photos of the case with RGB caught my eye, and lead me to @r4bbl3d4bbl3’s MX PCB for the Heavy-6. While I love the idea, I am not looking to return to MX any time soon, and the post inspired me to see if I could add RGB functionality to my FC660C. If for no other reason than to say I could. The short answer is, yes, it can be done.

The first task was determining a spare pin that could be used for controlling the RGB. Initially, I determined there were several spare pins on the MCU that I could repurpose, but getting that signal from the HASU to the PCB seemed like an unnecessary complication. Fortunately for me, the pin-out for the 20-pin cable is plainly detailed in the readme. I decided to repurpose the Insert LED, pin 19, as an RGB output. I grabbed 5v here as well. Originally I grabbed the GND pin here, but found it on another pad on the PCB which alleviated some of the cable cluster here.

From here it was a matter of sticking & soldering LEDs. For this process, I used a Sparkfun RGB strip with 60 LEDs/meter. What followed was 48 jumper wires / 96 solder joints (Note the circled pad where I picked up the ground connection).

Editorial Note

Because of the density of the LED strip I had on hand, I had to solder each LED individually. If I were to source LEDs to do this again, I would seek out a strip with about half the density and try to get away with a single long strip on top and bottom, reducing my solder work to 15 jumpers / 30 joints.

Finally it is just a matter of updating the firmware to drive them. Changes made include:

  • Disabling the Insert LED indicator in matrix.c
  • Adding RGB to config.h, adding RGB to rules.mk
  • Disabling Command_Enable in rules.mk (firmware was too big when including via)
  • Adding a rules.mk to the default keymap to retain the Command_Enable functionality in non-VIA keymaps
  • Modifying VIA json for RGB support

I’ve uploaded the modified keyboard firmware to it’s own repo. Downloading and dropping the fc660c folder into your QMK folder (rename the existing fc660 folder first) should allow you to get up and running in short order. I’ve also included the updated VIA json that you can import to VIA to enable lighting control.

I think that covers the bases. I’m counting the days until my PC Heavy-6 arrives and I can take some proper photos. In the meantime, I hope some of you find this useful.

Cheers!

13 Likes

Admiring what you did–it’s a bit out of my current skill base, but amazing. Possibly derp question, does it have a breathing mode (changing colors slowly?) that’s about the only RGB mode that doesn’t trigger migraines. I’d like to have lights but I can’t handle strobing and pulsing effects.

1 Like

Yes! It is capable of any and all RGB modes supported by QMK. Right now I have a static gradient enabled, but I think I plan to use a single, static color in the heavy 6.

1 Like

Great guide!

1 Like

That’s super nice!

1 Like

Thanks, guys! I’m curious to see if any PC heavy-6s show up with RGB before mine arrives. Also curious to see how the mounting hole in the plate plays with the light. Might end up having to cover it with electrical tape.

1 Like

When my polycarbonate case gets here man, this is absolutely happening. I can hardly wait. Both for the case and the glorious excess of RGB lighting.

1 Like

This is a really cool mod, I’m considering trying this mod out with my own U&B lol.
I do wonder if you think if the RGB mod is doable with the YDKB 660C BLE controller. To add, I was also wondering if the firmware changes are done to only change the RGB lighting/behaviors or if it is actually necessary for the RGB to light up at all?

1 Like

Hey, thanks for the interest!

The firmware changes are absolutely necessary. You’re taking a simple on/off indicator and repurposing it to output a value the RGB leds can read. It’s a relatively simple change in QMK. I don’t know much about the TDKB controller, but it looks like it uses YMDK.io to program it. Based on what I saw, I don’t know that there is a way to repurpose the insert pin as an RGB driver. Without being able to download the firmware and make edits to it, I’m not sure how I would go about adding support for the YMDK 660 BLE.

I welcome other folks chiming in - I’m sure there’s some firmware wizard that knows more about it than I do.

This project is awesome!

I ordered a heavy-6 in polycarb (hopefully it will arrive around the end of the year). Am debating Topre vs making an MX version like the 660c-x. I think I am leaning Topre with this mod and maybe the deskey sliders later on. Looking into the LEDs there are quite a few different options. I like your idea of going with less density to reduce the number of jumpers.

There are quite a few different LED strips:
What model led did you go with? (WS2812B/C & APA102/4 etc)
Related question does it have to be one of the QMK compatible ones?

1 Like

Thank you for the kind words!

This is the specific LED strip purchased (for a different project) and wound up using here. It utilizes SK6812 led, with a density of 60/meter

If I were to do it again, I’d probably go with something like this strip from digikey, or this strip (if you prefer a bezos link). If you wind up searching for your own, searching for a “5050 led strip” and “30 led per meter” will generally get you pretty close. Just be aware that many / most of the strips available appear to come with a waterproof coating, which really isn’t needed (and may even be a negative, if you have clearance issues).

And I would definitely stick to qmk compatible.

I, too, am hoping for my heavy-6 by year’s end, and am contemplating some des sliders once they roll out the 2u sliders. :smiley:

2 Likes

Thanks for getting back to me.

I think I am committed to trying the Topre route now. Managed to snag a Hasu controller from 1upkeyboards yesterday. They come in stock every once and a while but sold out in like 2 hours. Tracking down a lead on a used FC660c next.

The Amazon link had some nifty look right angle connectors. That might work if stars alight on the spacing to use. Even if it doesn’t I might still get this kit because it also has some 3 wire roll that is bound together. That should keep everything tight and clean like you have it.

Connector kit that seems promising: https://www.amazon.com/dp/B09195XCXR/

1 Like

Ooh, I hadn’t considered the connectors - that could make it really clean.

Whenever you get the job done, don’t forget to update line 52 in config.h
#define RGBLED_NUM 16
My install used 16 LEDs, just adjust that number for yours and you will be set to go. I should probably also make sure the firmware repo is up to date with the latest version of QMK. :sweat_smile:

2 Likes

Oh man, I totally wish I’d have known about these connectors. They would save so much hassle.

2 Likes