Keyboard lossage, mouse lossage, everything is terrible

Well, I'm in the market for a new keyboard again.

Earlier this year I got a Matias Ergo Pro that seems like an improvement over the Kinesis Freestyle2, but it has this horrible problem that if you replace the connecting cable between the two halves of the keyboard with any cable longer than the 18" TRRS cable that comes with it, the left side of the keyboard starts malfunctioning randomly.

It's infuriating. I've tried cables from 4 different manufacturers, and built my own out of Cat5, and none of them work. I've exchanged quite a few emails with the manufacturer, and their responses ranged from, "Huh, that's funny" to "Why would you want a cable that long anyhow?" So, you know, not helping.

(Suspecting that it was maybe a USB power issue, I also tried plugging it directly into the Mac, and also into a powered hub of which it was the only member, which was itself plugged directly into the Mac. No perceptible change in the frequency of failures.)

So now out of frustration I'm back to the Kinesis, which feels just so mushy and awful now after the much better keyswitches in the Matias. But my characters show up without me having to power cycle it every few hours.

So I'm open to suggestions for any two-piece split keyboard where the halves can be placed 24" apart and still work. And that aren't mush. And that is an actual product for which someone will take my money, not vapor and dreams.

And speaking of USB....

Also recently -- possibly shortly after I upgraded to MacOS 10.11, but maybe unrelated to that, who can tell -- my mouse pointer began stuttering. Moving it slowly, sometimes it will suddenly warp to 200 pixels farther along in the direction of travel then resume normal speed. Tried a different mouse, same thing; tried direct USB connection, same thing.

Is it related to system load? Disk activity? Network activity? I can't tell, because the "Activity Monitor" program is a categorical piece of shit that simply stops updating as soon as anything of interest is happening anywhere, and likes to show "kernel_task" or "WindowServer" as the culprits for everything anyway, which is pretty unhelpful. I don't see anything particularly obvious in system.log, but that's an incredibly noisy cesspool, so who knows.

You know, when I first switched to MacOS from Linux, the fact that I was finally using an operating system that understood that tracking the mouse was the highest priority thing and that you could never, ever let that fall behind was one of the most refreshing things. I guess those days are gone.

Previously, previously, previously, previously, previously.

Tags: , , , ,

50 Responses:

  1. _Mark_ says:

    Jesse's designed his keyboard to handle long cables, http://blog.keyboard.io/ but that's not shipping until next year (I've personally used prototypes, though.) I'm pretty sure he has an explanation for why it doesn't work on the Kinesis, but not one that led to an obvious workaround...

  2. Eric says:

    Also not shipping until next year (July 2016?), the "Ultimate Hacking Keyboard" seems to be specifically designed for chair mounting. Demonstration of prototype with 20 meter cable: https://ultimatehackingkeyboard.com/blog/2015/09/17/2-keyboard-halves-20-meters-apart. FAQ shows that each half has 4 threaded inserts for mounting to things: https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard#faq.

    There's also the "ErgoDox EZ" that looks like it's shipping very soon (but I can't figure out how long the cable between the halves can be): https://www.indiegogo.com/projects/ergodox-ez-an-incredible-mechanical-keyboard

    And there's some build-your-own options for ErgoDox, but you either need really good 3-d printing (and pcb printing), or to buy a keyboard construction kit.

  3. Benjy says:

    Buy 2 of them, and mount them on the two sides of your chair with the half you want mounted to be used and the other half taped out of the way?

    • jwz says:

      You have not considered the chording keys.

      • Benjy says:

        I hadn't, although I just plugged 2 USB keyboards into my PC and pressing (for example) Shift on one, and A on the other does indeed produce capitals. However, pressing (again for example) Alt+F across the 2 keyboards to bring up the file menu in Firefox works, but you have to release it quickly as otherwise it gets confused and the menu vanishes. Control appears to work fine. Ctrl+Alt+Del works fine split across the keyboards. CapsLock etc are also replicated across the two keyboards. Would this work on a Mac? No idea!

        • jwz says:

          Macs don't work that way; the chord state is associated with each keyboard.

          • crtxc says:

            I am not sure what kind of malfunctions are happening with the left hand side of the keyboard, but my guess is that matias uses a different trrs configuration. For example Nokia and apple have different trrs conductor configurations. See http://www.head-fi.org/t/689100/3-5-mm-jacks-4-vs-3-conductors. So it may be the cables you bought are not configured the way matias has decided to design their trrs cables.

            I am guessing the mac dip switch under the right side alt key (I think that is where it is)does not help.

            You may have known these things already but it may help someone else.

            • PDP says:

              All TRRS wires are the same, it's only what function is assigned to which connection that's different. So a TRRS male-male lead is always connected T-R1-R2-S on both ends no matter whose standard it plugs in to.

              The combined facts that other people have used the ergo pro with longer cables (source) and that power cycling the entire computer is required to fix it when wedged, I'm actually leaning towards the computer itself being mildly fucked. Also the mouse weirdness. Could be some hardware bit of the usb controller going bad, could be power supply, could be something else.

              Hardware problems happen no matter what OS you switch to.

            • jwz says:

              The left side of the keyboard is the side that is downstream from USB via the TRRS cable. TRRS extension cable conductors are straight through. Which of those conductors your phone chooses to use for left audio is irrelevant. I also have no idea what dip switch you're talking about but I'm sure it's also irrelevant.

          • Jacob says:

            Installing Karabiner will, among other things, allow keyboard chords to be split across multiple keyboards on OS X.

            I've used this feature to build my own modifier-key-typing USB foot pedals that actually work as you'd expect.

          • mhoye says:

            At least if you have Karabiner installed, that's not the case. I can have two USB or BT keyboards on my desk and chording works across any combination of them. If you can stand the way the keys feel, two Apple BT keyboards will work as you expect, and a more expensive solution would be any matching set of smallish mechanical keyboards will work too.

  4. Sam Kington says:

    Regarding a replacement for Activity Monitor, I've been very happy with iPulse.

  5. derp says:

    Jamie,

    A debian developer recently made some informative posts about split keyboards he was evaluating. They are quite pricey but perhaps a few will be to your liking:

    https://asylum.madhouse-project.org/blog/2015/11/20/looking-for-a-keyboard/
    https://asylum.madhouse-project.org/blog/2015/11/23/keyboard-updates/

    For convenience, I've extracted some links:

    http://ultimatehackingkeyboard.com/
    http://ergodox.org/
    http://shop.keyboard.io/

    • jwz says:

      All of those are either "not two-piece keyboards" or "do not actually exist."

      • This really sounds like an electrical noise issue with the protocol Matias is talking over the inter-hand interconnect, rather than ANYTHING to do with the USB side of the equation.

        That's something our current prototypes are nominally susceptible to, though I haven't actually been able to make them fail. We're in the middle of a circuit redesign to make 100% sure that this isn't a problem when we go to production early next year.

        All that being said: We're just over in Oakland. If you want to "borrow" a prototype until we ship or you decide to defenestrate it, I'd be happy to drop it off in the city. Having spent enough of my early career in Lucid Emacs and Netscape, I certainly owe you one.

        • nooj says:

          We're in the middle of a circuit redesign

          While you're at it, do a mild hardware redesign and put the 6 on both sides.

          • Jesse says:

            @nooj - The Model 01 actually has a spare key to the left of the six and another to the right of the 5. You'll be able to map them to whatever you want. So, that at least, is done. ;)

            • jwz says:

              That is awesome news! Even more than the 6, though, I'd really love to have both Cmd and Opt on the right side as well.

              • Jesse says:

                Understood. We made the decision to limit ourselves to four keys in the thumb arc. After a fair amount of user testing, it's about the maximum that most folks can comfortably reach.

                The default layout has Ctrl-Del-Cmd-Shift on the left hand and Ctrl-Space-Opt-Shift on the right. If you only want Control on the left, this is all a non-issue.

                However, I _think_ one of the changes we're making for production can do what you need without ditching dual Control keys.

                https://twitter.com/keyboardio/status/665371769142833152 shows off the Kickstarter prototype layout on the right and the new layout on the left. We've lengthened the key right above the thumb arc to make it easier to hit with your thumb (unless you have incredibly stubby fingers). As of now, the right-hand key is reserved for a user mapping.

                This is, of course, all predicated on you being comfortable learning our nutty columnar key layout ;)

        • Mark Crane says:

          I just stopped by to commend you for your use of "defenestrate."

  6. Patrick says:

    Are you running anything in the middle of the USB subsystem? USB Overdrive, Logitech Command Center, etc? And have you punted your USB hubs and devices to the curb one by one? I had to uninstall LCC after discovering it was stealing _all_ HID communications and doing unpredictable things to them. And usually when I get the USB glitchiness it's because something decided to spam the bus on its way to death, usually a hub, occasionally a drive.

    • jwz says:

      I am running USB Overdrive, but I always have been. I have tried using only the built-in USB ports with all other devices unplugged.

      How does one discover that something is fucking with HID? How does one discover that something is spamming the USB bus? I prefer evidence over ritual sacrifice.

      • Patrick says:

        Oh for me it was that Unity wasn't seeing my HID-compliant joystick until I did an A-B comparison between a system which worked and one which didn't. Nothing useful showed up in the (unity/OSX) logs, of course. And frustratingly, other joystick driver intermediaries like Enjoyable _did_ see the joystick, so I thought it was a Unity bug. (Might still be one, but the tools I have available didn't show anything visibly useful like LCC renaming the device as some non-joystick HID class for example.)

        And the problem I've always had finding bus spammers was that it was happening at a layer the OS wasn't privy to, I suspect - the USB controller was just rejecting malformed packets and there's no usbtool -S to see stats like ethtool -S provides when a network device is misbehaving. Or at least none that I'm aware of. If you're lucky you'll see the device flooding the console log with stuff like attach/detach events, but clearly you aren't seeing those.

        But yeah, it's 99% voodoo, frustratingly enough. At least the tarp doesn't have to be very big if you're sacrificing mice?

      • Shasta McNasty says:

        You discover that something is spamming USB by using a hardware USB protocol analyzer. For example this one, which I have actually used: http://www.ellisys.com/products/usbex200/

        Looks like it needs a Windows PC for the user interface. Maybe there is one which does not. Or you could go completely crazy and get a scope with this function built it. That's way more expensive than just buying a keyboard that works...but way cheaper than buying a nightclub.

        • Jeremy Leader says:

          ...but way cheaper than buying a nightclub

          But would debugging USB protocols at the hardware level be more fun than buying a nightclub?

          I see a clear need for a masochistic-headaches-per-dollar efficiency metric here.

  7. Just out of curiosity, did any of these cables have shielding in place? If not, radio interference could have been leaking into the keyboard and becoming severe enough to push it over the edge.

    Better shielding could be as simple as some aluminum foil wrapped around any of the cable, the keyboard's electronics module and ultimately connected to a ground. It's ugly, though certainly cheap enough to try and might fix the problem.

    • Ewen McNeill says:

      This was also my thought -- that either the longer TRRS cables were picking up more electrical noise, leaving the signal/noise ratio more marginal, or probably as likely the voltage drop across the longer cable is high enough to make the signal more marginal. Adding more shielding would help if it's interference, but less so if it's voltage drop. It wouldn't surprise me if it shipped with the longest cable they'd tested to be reliably stable.

      Depending on how the TRRS lines are being used, it might be possible to create some sort of line driver hack that boosted the signal level a bit more to let it reliably run a longer distance (and/or run over fibre with opto-isolators rather than just TRRS). But that would at minimum require figuring out how they're using the TRRS lines between the two halves, and possibly also running a power link out to the remote half.

      Ewen

      • Russ says:

        I would guess it's a signal integrity issue, but I'm doubtful it's from picking up noise. It's much more likely that the line has a powerful driver and it's ringing all over the place. The datarate is probably really low since it's a keyboard, but the edges are probably still really fast and it could be double clocking or what not. If it were my keyboard, I'd be trying first series termination on the transmitter side (maybe 30 ohms), then caps to ground to slow the edges (maybe 0.1uF), then parallel termination on the receiver side (if vcc is available, otherwise maybe just to ground).

        Of course, it'd be super useful to take a look on a scope fist.

    • jwz says:

      The one I built myself was from cat5, so yes.

      • Carlos says:

        You used shielded CAT-5 cable to build your own? Shielded CAT-{5,5e,6,6a} is available, but it's not common. "Normal" twisted-pair wiring has no shielding and simply relies on the twisted-pair nature of the cable to reject (cancel-out, actually) common-mode noise.

        If the problem is actually EMI being picked up by the cable, properly shielding the cable (with a metal braid connected to ground at one end) may actually fix the problem for you.

        If that doesn't actually do it, I'd suspect signal levels that just aren't high enough to make it through more than 18" of wire. You just might be able to extend the cable a bit by using thicker conductors (so there's less impedance to cause signal loss), but it would have to be a pretty marginal thing for that to make a big enough difference.

        If the signal loss is due to cable length but is bad enough that merely using 20AWG instead of the 26AWG in your standard cable doesn't do the trick, adding an electronic buffer could probably fix the problem, but that's a little more complicated than just hacking up a new cable.

        C.

        • jwz says:

          Look, all of those are very plausible -- and obvious -- theories, but like I thought I made clear up at the top, I've already reached the conclusion of: "this keyboard doesn't work and the manufacturer doesn't care", so continuing to try and figure out precisely what poor design decision they made isn't really interesting to me.

          I need a different keyboard.

          I do not want to build a keyboard myself. I want someone to take my fucking money.

          • Carlos says:

            Sorry, I was trying to suggest a specific course of action (trying adding a buffer); I didn't know whether that was within your comfort zone or not. I'd offer to try doing it for you, but shipping to me involves crossing an international border so it's kind of a pain.

            I apologize that I didn't get that across as clearly as I might have.

            C.

      • someguy says:

        CAT5 isn't necessarily shielded though. STP is, but that's not common. The more common UTP isn't. In fact, depending on how the keyboard's signaling works and which pins/pairs you connected to T/R/R/S, it could have made any interference problems worse.

        Might want to try a prebuilt shielded TRRS cable, or scrounge up some shielded 4-conductor wire for your DIY cable tests? Also try different combinations of having the cable shield connected to the plug "shield" on either end, you may get different results.

        Doesn't excuse the manufacturer for not knowing this or helping you though, that's not cool.

        • someguy says:

          And Carlos's post above wasn't showing when I wrote this, nor was your reply. Sorry about that.

          That prebuilt shielded cable (or something like it, you probably have better sources of audio equipment than I) might be worth a try for a "take my money" solution though.

        • ssl-3 says:

          Your TRRS cable isn't; it's a cross-pinned TRS to TRRS adapter.

  8. Edgar Matias says:

    Hi Jamie,

    Jesse passed your link along to me -- I'm the lead design on the Ergo Pro project. Sorry you're having problems with the longer cable...

    It's probably because your replacement cables don't have the data lines as a twisted pair. The RR the of TRRS cable are the data lines.

    We're doing a production run now, so I can get a longer sample made for you to try. Might take a week or two, but should fix the problem.

    Another possibility that probably would also work is to plug two of the official cables together with a female-to-female TRRS adapter -- doubling the cable length.

    I'll check tonight about getting a longer sample made. Is 1m long enough?

    • jwz says:

      That's awesome, thanks! 1m would be more than enough. I can't remember which of the pins I put on which wire, but I guess I'll open it up and check.

      • Edgar Matias says:

        Okay great, I've already asked my PM to arrange the 1m cable (plus a few extras, in case someone else asks).

        Part of the original motivation for going with TRRS connectors was to make life easier for users wanting to source replacement cables -- which has worked well for short cables, but long cables (not designed for data) are clearly problematic.

        Anyway, will let you know when the new cable is ready...

        • jwz says:

          It turns out, the cable I made used T,R1 as one pair and R2,S as the other. So I rebuilt it using T,S and R1,R2. I've only been using it that way for about an hour, and it's maaaayybe failing less, but still failing.

          Like, I'll be holding down Ctrl and typing N, and then it forgets that Ctrl is down for a few seconds, then remembers again.

          • Edgar Matias says:

            Okay, thanks for trying...

            Since your cable was made by hand (not from tooling) could be any number of things causing it to fail.

            In any case, the 1m cables are done. Just waiting to receive them.

  9. jwz says:

    About the mouse stutter, maybe this gets syslogged shortly after it is stuttering? There's so much random noise in there, it's hard to tell.

    WindowServer[210]: _CGXRemoveWindowFromWindowMovementGroup: window 0x2747 is not attached to window 0x2749
    --- last message repeated 2 times ---

    Disabling USB Overdrive (via its "enabled" checkboxes) doesn't seem to fix matters.

    • Patrick says:

      FWIW (not much) that seems to be normal spam, it's all over my syslog in El Cap too.

  10. jwz says:

    Ugh, I think the mouse stuttering problem was USB Overdrive after all! Un-checking every device in the preferences panel didn't fix it, but uninstalling 320 and re-installing 310 seems to have fixed it. Sigh.

    • jwz says:

      No, that didn't fix it. Now the mouse-stuttering problem comes back after a few days, and rebooting fixes it. So maybe downgrading made the problem take longer to manifest? Or maybe I only thought that downgrading helped, because that necessitated a reboot. Double sigh.

  11. Edgar Matias says:

    Okay, the 1 metre cable is ready. Will send it as soon as I hear back from you by email...

    • crtxc says:

      Did the one meter cables work? If so, what was the problem?

      • jwz says:

        Sadly, no; the 1M cable exhibits the same behavior as my latest hand-made cable. BUT, I now have an alternate (or additional) theory, which is that I actually have at least one intermittently-flaky key-switch. Mattias are graciously sending me a replacement for the left half of the keyboard, so we'll see...

  • Previously