Is there anyway of making the Keyrah v3 act as a single-interface HID?

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser. Please create an account and log in to see all content by default. This is a limitation of the forum software.


Also users that are not logged in can not create new threads. This is a, unfortunately needed, counter measure against spam. Please create an account and log in to start new threads.

Don't Panic. Please wash hands.
  • Hi!


    I tried connecting my Keyrah v3 and C64 keyboard to a Nexus A7 100T in order to try the Mega65 core, but the keyboard is not detected. The C64 keyboard led just blinks for a couple of seconds and goes black. I gather this is because the Keyrah v3 acts like a multi-interface HID, essentially a usb hub, and the Nexus only supports single-interface HID. Is there any way of making the Keyrah v3 act as a single-interface HID?


    I take it the Keyra v2 implements a single-interface HID, as it has been reported to work on a Nexus with the Mega65 core. The v2, however, is hard to come by these days.

  • Reporting more than one keyboard is required in order to support more than six keys pressed at a time, which is the limit for a single USB keyboard. So no, this would not be possible without work on the USB code. Please understand that what you're asking for is a reduction of functionality (removal of n-key rollover), causing more work for testing, in order to support a system that isn't fully USB-compliant.


    My guess is that the cost for this code change is in the 2000-2500 EUR range. If you find enough people who would be willing to chip in some money, we could of course do that. However, if you're paying over 400,- EUR for an FPGA board that has a plain description of "USB supports HIDs", and it turns out later that keyboards with n-key rollover don't work, it feels more like false advertising than the fault of the keyboard. If you provide a USB port, call it "USB Host" and hide the fact that it does not have hub support on page 10 of the manual instead of mentioning it with the online product description, there's something wrong. Many keyboards that support n-key rollover use this trick of pretending to be a USB hub with two keyboards connected.


    The good news is that the Nexus A7 100T USB interface is driven by a flash-based microcontroller, so the hardware does support an upgrade path (just like Keyrah V3 does). Granted, implementing hub support (even for just two ports, knowing that there's two identical keyboards connected and no further hub) is more complex than the Boot HID interface protocol only, but it's not prohibitive, as current and not-so-new PC BIOS implementations show.


    You are right that "one of the two sides" needs to move. Both involve code changes. My guess is that Digilent has a much higher margin on their boards to cover such code changes. Keyrah V3 is a low-cost product with a lot of functionality, but low margins. I just have no budget to put someone on such a code change that effectively reduces functionality.


    Jens

  • Thankyou for the detailed and informative answer. I understand completely that you don't want to reduce the functionality of the product, I just wanted to know if there was any workaround or quick fix to magically make it work.


    The Keyrah v2 has been reported to work with the Nexus, though. Does that mean the v2 was implemented in another way? I've just payed through the nose for a used one, so I sure hope it works!

  • Does that mean the v2 was implemented in another way?

    Yes, fundamentally different. It had the six-key-limit, and there was quite some cross-effests with joysticks, especially if you use diagonal directions on two-player games. Back when I developed the first Keyrah (17 years ago), I just never thought that this would be used for anything more than an office prank. Then came the RPi, and Keyrah sales exploded :-)


    V2 isn't that much different from V1 - it only introduced the ACPI switch and added jumpers for the different keyboards. This reduced stock-holding complexity (only 1 version instead of 3). A few updated connector components made it scale better at higher quantities. V2 and V3 use mostly the same connectors.


    V3 addresses all requests that we've ever had with Keyrah. I did prepare for quite some extensions with the DB25 connector being very flexible, but wouldn't have expected that an up-to-date-product fails on implementing something that's been standard for many years in PC Bios routines. You might want to drop that bit of information (the comparison to a PC Bios) with some product support/manager at Digilent. They should really update the PIC formware, as Keyrah V3 is not the only thing that will have trouble on their "USB host".


    Jens