Author Topic: Modified U9BL-S individual LED control (Dashkey)  (Read 15988 times)

0 Members and 1 Guest are viewing this topic.

Offline siberx

  • Thread Starter
  • Posts: 3
Modified U9BL-S individual LED control (Dashkey)
« on: Tue, 21 June 2011, 23:36:29 »
I purchased an X-Armor U9BL-S after deciding to upgrade to a mechanical keyboard from my well-worn and well-loved G15 rev1. I liked the mx brown switches and clean layout, combined with backlighting, audio passthrough and integrated USB hub. I *didn't* like the loss of the G15 features, namely macro support and the LCD.

Stock U9BL-S keyboard:


So, I decided to replace the controller on the U9BL-S with one of my own design and to roll my own macro support, ideally built right in to the keyboard to make it OS-independent. Since I was going to this trouble already, I decided to additionally rewire the keyboard to allow me to individually control each LED (they're normally all linked together in parallel and are only brightness-variable as a group). I'm calling this controller Dashkey and it is general-purpose enough that it could be used as a drop-in replacement for any mechanical keyboard (maybe others too with changes to the debouncing) with up to an 8x16 matrix with only a few code changes for the layout (and anti-ghosting if it's not NKRO). Since it's in-place programmable code updates are easily possible down the road. The keyboard is currently subject to normal 6KRO+modifier limitations of a standard USB keyboard, but could be extended further through a custom USB HID descriptor (which would break boot keyboard support).

My very professional development laboratory (ie: my desk):


The basic hardware for the modification is housed on two PCBs; the mainboard contains an Atmel AVR ATMEGA32U2 usb-enabled microcontroller and an SPI-interfaced STP16CP05 shift register (LED sink) chip. Along with some passive support components, this comprises the basic keyboard portion of the mod and interfaces with the existing key matrix and USB to make the keyboard actually behave like a keyboard. The second board is an LED driver board located on the back of the keyboard's PCB; this is interfaced to the mainboard with some ribbon cable carrying SPI data, and has a couple more STP16CP05 drivers to drive the rewired LED matrix.

Mainboard:


LED Driver:


A clean shot of the PCB just beneath the LED indicators (top right), showing the stock layout:


Desoldering the LEDs to make space for the replacement controller board:


Desoldering the stock controller (and now-useless [strike]MOSFET[/strike] PNP LED driver) to access the keyboard matrix pins: (thanks The Solutor!)


Starting to wire in the replacement controller:


Taping and orienting the key matrix wiring:


Main PCB installation completed:


The whole setup is built on home-etched single-layer PCBs and hand-assembled, then wired in to the keyboard. I programmed the keyboard using WinAVR and Eclipse on my Win7 system, and leveraged the fantastic LUFA library for the low-level USB functions.

A couple copies of the mainboard, etched:


The current state is that the basic keyboard functionality (including media key support) works flawlessly, and the LED lighting is also fully functional and working great as well. I have yet to implement macro support (I'm now deciding between emulating a G15 and using Logitech's existing software or making my own more-limited version run on the keyboard directly) but once that's done the keyboard will be effectively complete.

I'm pretty happy with the result, and am considering making/modifying other keyboards and selling them; if I was to do this, I would likely produce a whole PCB replacement for the keyboard instead, as the labour required to rewire the LED system is very high (takes me 2-3 days of solid work per keyboard).

Cutting traces with a razor. Had to do this roughly 150-200 times.


Starting to rewire the back of the PCB:


LED matrix wiring completed:


LED driver board installed, with even *more* wiring:


If you would be interested in purchasing such a keyboard (U9BL-S with backlight control and macro support) I would probably have to sell them for around $300 including the keyboard fully modified; if this appeals to you please let me know in the thread so I can gauge interest.

I've made a video showcasing the currently supported LED lighting modes; since it's programmable, these can easily be changed/upgraded down the road.

[video=youtube;rk6tVsFcBrE]http://www.youtube.com/watch?v=rk6tVsFcBrE[/video]

Offline Izza

  • Posts: 35
Modified U9BL-S individual LED control (Dashkey)
« Reply #1 on: Wed, 22 June 2011, 06:43:30 »
Very nice. I've wondered when someone would finally do this.

Any chance you'd offer this as a kit?
[SIGPIC][/SIGPIC]

Offline toast

  • Posts: 11
Modified U9BL-S individual LED control (Dashkey)
« Reply #2 on: Wed, 22 June 2011, 16:18:39 »
Professional mod.  Makes the idea of a back-lit keyboard way more appealing to me.

Now I'm jelly.  T.T  Sorry Leopold.

Offline Swede

  • Posts: 97
Modified U9BL-S individual LED control (Dashkey)
« Reply #3 on: Wed, 22 June 2011, 17:05:43 »
That "Touch-Fade" mode is badass, that would be the only reason I would get a backlit keyboard, unless I'm on a LAN, where all your gear must light up the place all by itself ;)
Btw, can you further edit the modes, or is it locked?

Offline The Solutor

  • Posts: 2262
Modified U9BL-S individual LED control (Dashkey)
« Reply #4 on: Wed, 22 June 2011, 18:19:05 »
Great mod Man.

Was already done by someone on Deck legend  but seeing it on a good keyboard is really amazing.

P.S. Just a little correction: the power transistor ( TIP42C )that drives leds on our Xarmors is not a MOSFET but just a classic PNP junction one.
« Last Edit: Wed, 22 June 2011, 18:43:18 by The Solutor »
The problem with quotes on the Internet is you never know if they are true  (Abraham Lincoln)

Offline siberx

  • Thread Starter
  • Posts: 3
Modified U9BL-S individual LED control (Dashkey)
« Reply #5 on: Thu, 23 June 2011, 00:15:49 »
Thanks for the correction Solutor; I just assumed it was a MOSFET but didn't bother checking in to it because I was removing it anyways ;)

The modes can easily be edited by reflashing the firmware with different code; you could have 100 different modes if you felt like it, I'm only using about 7k out of the 32k of flash program space available currently. Which brings me to my other point; if it wasn't clear from the description, there is no supporting software running on the PC at all. Unlike the Deck mod ripster linked, all work is done right inside the keyboard by the microcontroller, meaning it's totally OS-independent. The keyboard also contains a 1MB dataflash chip for storing data, so if I do decide to implement a full in-keyboard macro system (and not just G15 emulation) then the macro support would be OS-independent and carried inside the keyboard too.

About Izza's request for a kit, I'd be more than happy to provide one, but the problem is that as-is the mod is so labour-intensive and requires such a high level of soldering skill that I don't feel very many people would be able to make use of it; if I design a drop-in board replacement (so all you have to do is desolder the switches and solder the new board in place) I could probably sell the board pre-populated for people to install in their existing XArmors (these would cost probably around $100 instead, maybe a bit less). If people are interested in purchasing just the little dashkey mainboard (for adding macro support to other non-backlit keyboards) then I'd consider that too.

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Modified U9BL-S individual LED control (Dashkey)
« Reply #6 on: Tue, 28 June 2011, 16:22:09 »
siberx - you have a PM from me, hopefully you're not just ignoring me :)

Thanks
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline siberx

  • Thread Starter
  • Posts: 3
Modified U9BL-S individual LED control (Dashkey)
« Reply #7 on: Thu, 30 June 2011, 02:12:33 »
Sorry alaricljs; just replied. Been busy and dealing with some things ;)

Offline keyb_gr

  • Posts: 1384
  • Location: Germany
  • Cherrified user
    • My keyboard page (German)
Modified U9BL-S individual LED control (Dashkey)
« Reply #8 on: Thu, 30 June 2011, 07:27:30 »
Nice project. The heatsinking solution for the LED driver transistors certainly is interesting.
Hardware in signatures clutters Google search results. There should be a field in the profile for that (again).

This message was probably typed on a vintage G80-3000 with blues. Double-shots, baby. :D

Offline HeavyArms

  • Posts: 119
  • Location: NoVA
  • "Lit"
Modified U9BL-S individual LED control (Dashkey)
« Reply #9 on: Fri, 03 February 2012, 00:04:33 »
No. Words.

:jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw: :jaw:
Head in the clouds.

Offline Parak

  • Posts: 532
Modified U9BL-S individual LED control (Dashkey)
« Reply #10 on: Wed, 08 February 2012, 11:50:18 »
I'm surprised that this isn't getting more comments as it's definitely the most advanced controller mod that I've found here so far. Incorporating this in custom keyboard designs that have been brewing here would be amazing.

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Modified U9BL-S individual LED control (Dashkey)
« Reply #11 on: Wed, 08 February 2012, 11:53:42 »
Actually, this is the mod that is being discussed as the basis for the next kit-board.  I chatted with siberx when he posted this and recently I pinged him again.  He's working toward open sourcing his work.  I don't know if that means the hardware design as well as the software, but mostly I'm just concerned about the software since I have a hardware design that should work if only I could test it.  Haven't had the chance to put together my own software yet so I'm looking forward to his release.
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline Azure Flash

  • Posts: 20
Modified U9BL-S individual LED control (Dashkey)
« Reply #12 on: Wed, 08 February 2012, 21:42:31 »
That is so badass! Holy grail of LED backlighting, right there. How difficult would it be for someone who has never soldered before but is eager to learn? In fact I've picked up a few basics from watching Youtube videos... not a substitute for real experience, but still something.

Do you think it would be possible to program in a ripple effect, wherein every time you hit a key, it lights up and fades the key itself, every key around it, then every key 2 keys away, then every key 3 keys away, and then stopping? Might be a little too flashy, but wow, would I like to see that... or better yet, one day be seen typing with that effect on...