Author Topic: Replacing the Das Keyboard Controller  (Read 3760 times)

0 Members and 1 Guest are viewing this topic.

Offline StrikeEagleCC

  • Thread Starter
  • Posts: 31
  • Location: Pyeongtaek, ROK
Replacing the Das Keyboard Controller
« on: Sun, 25 August 2013, 07:05:09 »
Hi everyone, I’m new here. This seems like a great community, and I’ve been lurking/searching intensively for about a week. I recently purchased a Das Keyboard Pro, and while I won’t do a full review, I’ll say that I’m quite disappointed. I’ll  add details at the end of the post for anyone who is interested, but that’s not what this post is about. I will be keeping the keyboard for the modding potential it has, and that brings me to my actual point: I’m looking for resources to help me make some modifications.
My primary goal is to change the layout in hardware from QWERTY to COLEMAK. I’ve tried this before and liked it, but I do more typing at work that I do at home, and *I cannot install software on my work computer*. That means that if I want to use a COLEMAK keyboard, it has to be hardware based. There are several potential solutions:

1.    Buy a COLEMAK keyboard. I haven’t spent much time looking for one, but they seem uncommon. Does anyone have any recommendations? Besides, what fun is there in that?

2.    Modify the existing switch PCB to change the matrix addresses of specific keys. This is doable, but would be tedious and inflexible. It would require 14 row changes, and 14 column changes. Many of the connection points are in large copper fills that would be serious pain to isolate. The thing about this option that I like is that it's totally in my wheelhouse. If I can do one thing well, it's soldering (maybe the only thing I do well!). But like I said, it's inflexible, and I think there are better options.

3.    Design a new PCB.  This is not at all practical, and would be much more tedious and expensive than option #2. Building a matrix with key positions that are no longer arbitrary would likely be extremely complicated, plus the cost of fabrication and the hassle of desoldering every single component to swap the board out. That being said, I’d be pretty pleased with myself by the end.

4.    Replace the controller. This one seems the most viable, but it’s not in my skillset. Slaving in a new controller is easily reversible and flexible. I could even add new functionality if I could figure it out. The existing controller cannot be re-programmed; it’s a Cyprus CY7C63413C, and can only be programmed once. I’m looking for other options.

The most obvious seems to be one of the Teensy’s, but to put it mildly, I’m having a hard time understanding the code on the PJRC site (http://www.pjrc.com/teensy/usb_keyboard.html). The only background I have in programming is two introductory classes in college 10 years ago, one in Java, and one in FORTRAN. I’ve forgotten almost all of it. Many hours of pouring through these forums have not yielded the results I had hoped for. Does anyone know of any resources or projects that go into detail about using the teensy for this? Is it feasible for me to make some sense of the code without spending months learning it? The ErgoDox thread looked promising, but I’ll admit, after looking through 95 pages, I may have missed something essential. There also isn’t a lot info in the wiki. The two questions that seem most obvious to me at the moment are, how does the teensy learn which keys are associated with specific positions in the matrix, and how do I add functionality for the FN button and media keys? I’d love to hear your suggestions!

An added bonus of learning to use the Teensy is that once I know how, I could modify any keyboard I could fit it into. It would also be really cool to be able to toggle between layouts with a switch or a button.

EDIT: I found hasu's stuff on github, and it looks like exactly what I want. Still above my head, but I'm working on it. My hat's off to those of you that create this stuff!

Here are my thoughts on my new DasKeyboard:

I got the blue switches, and they’re much louder than I thought they would be. I do like the soft click of the switch action, but I will always bottom out when I type and THAT is too loud. I have some o-rings on the way that should soften the bang somewhat. The travel distance is longer than I like; hopefully the o-rings will help with that also.

The quality is lacking. The top panel is not in perfect alignment with the keys; the escape key almost touches one side of the cutout, with a decent gap on the other side. Other cutouts are misaligned too, but not as badly. When I took it out of the box, the “G” key would stay down when depressed, and had to be tapped firmly and quickly to release itself. This issue seems to have resolved itself with use. The spacebar is now doing something similar. It will spring back up, but it is sluggish, and sometimes doesn’t come up before I need to use it again. It’s an issue with the stabilizer. I’m not sure of the name, but the stabilizer it uses has the bar attached to faux switch tops that are clipped onto the keyboard frame, onto which the space bar is pressed.  The stabilizer bar does not clip into the space bar. It seems to be binding somewhere.  Also, the “I” key has a distinctly different sound than all of the other keys, and has a much less distinct tactile bump when pressed.

The frame is not cut in such a way that allows removal of switch tops for maintenance or modification.

The switch PCB is no longer silkscreened like they used to be (http://obvious.pro/keyboardmod/dasmod.php; http://www.geoffbreach.com/hacks/das-keyboard-hack/), making it a little harder to decipher the matrix.

Here’s a little random info on my keyboard that some modders may find helpful:

Model  Number: DASK3MKPROCLI-3G7
Part Number: KBA-D4006A-USW1-E1-RC
Switch PCB revision: HY-D4006-2-02-02, 2010-12.27
Matrix: 8X18 (visual representation and cable pinout available if anyone is interested)
Controller PCB revision: HY-D4006-2-01-02, 2011.01.14
Controller IC: CY7C63413C-PVXC
USB Hub Controller IC: μPD720114
« Last Edit: Tue, 27 August 2013, 03:33:10 by StrikeEagleCC »
A better example of how your keyboard works:
More
It's expandable and ~25 seconds long.



Offline Tranquilite

  • Posts: 144
Re: Replacing the Das Keyboard Controller
« Reply #1 on: Wed, 28 August 2013, 02:33:01 »
The only keyboard I can think of off the top of my head with hardware colemak is the wasd V2 which supports qwerty colemak and dvorak. Like you said it's no fun. No tearing your hair out resoldering your Das's matrix or scratching your head as you try to repurpose the matrix scanning (and LED) code using hasu's firmware. Not. One. Bit. Fun.

On a more serious note, goodluck with whatever you decide to do. I think there was also a hardware dongle out there that did hardware remapping from qwerty to devorak, but I'm not sure if a colemak version was ever created.

Offline StrikeEagleCC

  • Thread Starter
  • Posts: 31
  • Location: Pyeongtaek, ROK
Re: Replacing the Das Keyboard Controller
« Reply #2 on: Wed, 28 August 2013, 08:09:53 »
Thanks for the input. I had never fully read that keyboard's description.

I already have a teensy on the way, and I'll tinker with that for a while, perhaps letting some magic smoke out in the process. If that fails, I'm fortunate to have access to some good SMD rework equipment that will make it easier to re-wire the matrix. We'll see. I'll keep studying hasu's stuff, along with LUFA and PJRC's, trying to make more sense of it.
A better example of how your keyboard works:
More
It's expandable and ~25 seconds long.



Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Re: Replacing the Das Keyboard Controller
« Reply #3 on: Wed, 28 August 2013, 08:26:15 »
Another good thread on this subject.
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens