Dygmalab / Bazecor

Graphical configurator for Dygma Products
https://dygma.com/
GNU General Public License v3.0
393 stars 85 forks source link

Raise does not work with KVM #157

Open Nuru opened 3 years ago

Nuru commented 3 years ago

Describe the bug (First reported by email a year ago, Dec 31, 2019)

I am using an IOGEAR GCS1644 KVM, and the Raise is not compatible with it as the controlling keyboard. This is a big problem for me.

The controlling keyboard on the KVM is special in that the KVM intercepts certain keystrokes used to control the KVM itself. For example, to switch from monitoring port 1 to port 4, I can type ctrl ctrl 4 enter. It is also special in that when control is switched away from a computer, the KVM continues to supply an emulated keyboard to the computer, so the computer does not think the keyboard is being unplugged. It is the only satisfactory way I have of using a keyboard with my set of computers.

I do not expect Bazecor to be able to do a firmware update in this configuration, but I do expect that I can use the Raise as a normal keyboard.

To Reproduce Plug the Raise into the keyboard port of the KVM

Expected behavior The keyboard works like an ordinary keyboard

Actual behavior The Neuron flickers on for a flash every few seconds and the keyboard never lights up or is recognized

Desktop (please complete the following information):

Additional context The keyboard works as expected when connected directly to a computer.

On January 2, 2020, I received email from Dygma with this explanation

It's a 6KRO vs NKRO issue. Most KVM switches only recognize 6KRO, but do not do what the USB spec would require them to do: ask the keyboard to go 6KRO. They just assume it will be. There's no reliable way to automatically switch to 6KRO, unless the host (in this case, the KVM) asks us to do so.

With the next firmware update, there will be the 6KRO<->NKRO toggle, which will help with this issue. Press the combo, the keyboard goes 6KRO, KVM switch will recognize it, all's well!

That was several releases ago (I think even before Bazecor 0.2.0), but I have yet to see this toggle feature announced or documented. Has it been implemented? Was it tried and found not to be a solution?

AlexDygma commented 3 years ago

Hey there @Nuru

I'm sorry to hear you have had this problem for so long.

If the raise flickers this maybe due to lack of current being driven through the USB, the rase needs nearly 1 amp to work with all leds lit up, try to plug just half of the raise first (neuron and left side for example) if it work there is a chance that just by dimming the LED's you can use it, in extreme cases you can switch them off completely.

test it and lets see how it goes!

Nuru commented 3 years ago

@AlexDygma wrote

If the raise flickers this maybe due to lack of current being driven through the USB, the rase needs nearly 1 amp to work with all leds lit up, try to plug just half of the raise first (neuron and left side for example) if it work there is a chance that just by dimming the LED's you can use it, in extreme cases you can switch them off completely.

Not a bad conjecture, but it does not seem to be correct. The KVM has a USB 2.0 auxiliary port. I happen to have a USB ammeter, and when I connect half the board to the auxiliary port, it works fine, and the ammeter reports that it is drawing 0.24 to 0.27 amps. When I plug that into to the keyboard port, the neuron flickers and the half-keyboard never lights up.

I am inclined to believe that the KVM goes through some kind of initial discovery and configuration process, does not like the response it gets from the keyboard, and so resets the connection/keyboard and tries again. While I have a USB ammeter, I do not have a USB protocol analyzer so I cannot give you much more on this.

Nuru commented 3 years ago

Any progress on this?

AlexDygma commented 3 years ago

We have now a list of compatible KMV's and are investigating the root cause for these issues, maybe it has something to do with packet segmentation on the usb HID peripheral, which is badly implemented on this version, or power packages which are completely lacking.

we will have to dig on this 😞.

Nuru commented 3 years ago

@AlexDygma Have you ruled out that it is a 6KRO vs NKRO issue?

AlexDygma commented 3 years ago

@Nuru Not really, but it doesn't seem so, as i don't have a KMV that fails the way yours does, i cannot test it, but i could make a branch with a modified version of the FW that only launches in 6KRO to clear this out.

jordaaash commented 3 years ago

@AlexDygma I would love to test that out to see if it resolves my issues too

AlexDygma commented 3 years ago

Ok!

I'll keep you posted!

jordaaash commented 3 years ago

Any update on this?

Nuru commented 3 years ago

@AlexDygma I would like to have some update on this before buying the tenting kit for a keyboard I still cannot use

dmjeffmoore commented 3 years ago

Any update on this? I also am having this issue but with the IOGEAR GUS4C2. Also, do you have a link to the compatible KVM list? Ty.

Nuru commented 2 years ago

@AlexDygma Last update on this was over a year ago. My brick is now 2 years old. Are you ever going to make it usable for me?

jordaaash commented 2 years ago

Also still waiting on this.

gaborbernat commented 2 years ago

I'd love this to be fixed too!

mitchdz commented 1 year ago

I'm seeing an issue with the TESmart B07D2ZMF5B 16x1 HDMI KVM, which I believe may be the same underlying issue as this thread. The situation is that the keyboard behaves as this post mentions when it's plugged into the controlling Mouse/Keyboard USB-A port, but works just fine when plugged into the generic USB2.0-A port. I have an ammeter as well and saw the same thing Nuru mentions.

This leads me to believe this issue occurs with KVMs which have keyboard shortcuts to control the KVM (e.g. change the channel, turn on auto-discovery, ect...) and when plugged into the controlling port.

lorantfecske-bud commented 1 year ago

In my case the problem wold be solved if I could switch to 6kro. It seems that the 1.0.9beta has some problems with switching nkro -> 6kro. I try to use the left ctrl - left shift - left alt + 6 press twice combination. The leds for those keys starts to blink, then no matter what I press, nothing seems to be going through or sometimes it's just sending 6 forever, however if I do the keycombo twice again, it just blinks again and then everything works again.

herrbischoff commented 1 year ago

left ctrl - left shift - left alt + 6 press twice combination

Interesting, I've never heard or read about this combination. Also I'm on the same firmware but the combination does absolutely nothing for me. Customer support has been unresponsive for some time now, seemingly ever since Pedro is no longer a member of the Dygma team. Also not a good look that it's been ~20 months now since we heard from anyone from the development team.

I concur that all I'd need is a permanent 6KRO setting, as I don't need NKRO at all.

windowsrefund commented 1 year ago

I was seriously thinking about buying this hardware until I read this thread.

dmjeffmoore commented 1 year ago

Instead of a KVM, I ended up using a USB switcher which works well - that may help some folk's use cases.

mitchdz commented 1 year ago

Yeah it works just fine with a regular USB switcher for me. Now I have a wireless keyboard (K830) plugged into my KVM controller port which I found out actually works better for my workflow anyways.

AlexDygma commented 1 year ago

Hey There people! sorry it took so long to get back to you all.

So referring to the 6KRO vs NKRO, firmware 0.3.5 solves that issue by fixing the switch command between the two modes, which is pressing the combo (all physical keys in their original positions)(LEFT CTRL+ LEFT ALT+ LEFT SHIFT+6) to switch back and forth, newer versions of the FW do not solve this issue due to lack of support of the superkeys on that FW. but if you can live without superkeys, it's much better.

In fact, we will be adding a way to use the v0.3.5 of the FW for the Raise with the latest version of Bazecor pretty soon, working on that right now (as the superkeys are still on beta and until after the launch of the Defy that won't change).

KVM switchers nowadays are crap!! as @dmjeffmoore and @mitchdz have suggested, it's way better to use a USB switch that is designed just with that in mind, either way, version 0.3.5 also addresses all of the issues that could affect KVM's stability like power signals and better package segmentation on the USB messaging, so give it a shot.

@windowsrefund, Im sorry to hear that but if you really need a KVM in your life, then custom or composite USB devices are not a thing for you 😞, it's a matter of poor implementation on the FW of those devices more than the keyboard itself, either way, using a USB Switch will solve those issues as they work as expected.

Best wishes!

herrbischoff commented 1 year ago

@AlexDygma Thanks for the update. My main issue is not necessarily a KVM switch but the macOS boot sequence. The early login screen when using File Vault does not respond to my Dygma Raise with firmware version 0.3.5, either in default state or after applying the key combination you mentioned. I notice that the combo appears to indeed modify its state but the computer still does not detect the Raise as a keyboard.

Additionally, when using newer firmware versions, my 11" iPad Pro does not properly recognise the Raise as a keyboard. With 0.3.5 it does.

So clearly, the "superkey" feature breaks lots of stuff all over the place. As nice as "superkeys" sound, I haven't found a use for them yet. In my opinion they're more trouble than they're worth. Gamers may see this differently. I'd be interested in hearing about what kind of feedback you've gotten — and whether a clear majority actually likes them.

For the longest time now, I have to attach a cheapo keyboard to even enter my password when restarting my machine. It's my only major gripe with the Raise but I find it to be quite unacceptable at this price point and overall build quality that a $3 keyboard works when a $300 one doesn't.

Let me stress this point: instead of an involved solution that is likely to take years (or never arrive at all), given your track record, I'd be fine with a permanent 6KRO setting that also gets detected by macOS, like on said $3 keyboard. Software is hard, I know. This however shouldn't be.

Nuru commented 1 year ago

@AlexDygma Thank you for the update. Unfortunately, I do not fully understand it. Are you saying it is too hard to make the latest firmware (with Super Key support) switch to 6KRO that you are putting it off indefinitely? That sounds hard to believe. Why can't this be a firmware setting managed by Bazecor?

@herrbischoff I use Super Keys because I have not found a better way to deal with the Raise's lack of an Escape key.

More specifically, it comes with a key cap labeled "esc" but that key cap is on the key that normally types ` ~ on an ANSI keyboard. The normal Escape key is separated from the rest of the keys because it can be problematic if accidentally typed. I both need the Escape key and need to keep from accidentally hitting it, plus I need the ` key on a regular basis (10 times so far in this comment alone). So I use the key under the "esc" key cap for its ANSI use, but then where to I put Escape?

Like I said, I want Escape to be accessible, but hard to type accidentally. The best I have been able to come up with is to use Caps Lock as a Super Key, so that tapping it twice functions as "Escape". Everything else I have tried has an unacceptable error rate.

GazHank commented 1 year ago

@Nuru if the only aspect of superkeys that you are using is for the Escape key, I wonder if just moving Escape to a second layer would be an easy way to allow you to revert to the stable firmware. That is of course assuming that there aren't other features of the beta that you need, and that the stable firmware actually enables the 6KRO mode switching that you need.

That is to say use the escape key on the default layer to be ` and then Escape on layer 2? much like I assume you would be using layers to access the Function Keys?

@AlexDygma are you able to share an more info on the specific plugin or settings that make 6KRO incompatible with the beta firmware? I'd be keen to take a look, but don't want to repeat any investigations you have already completed. I had initially thought that it could be an incompatability between the magicCombo and the DynamicSuperKeys plugins, but the magic combo does appear to be detected, it just doesn't switch the modes correctly... so I'm wondering if it is an issue with some of the clock frequency changes in the beta firmware creating an issue with the operation of USB-quicks plugin. Perhaps the toggleKeyboardProtocol() "just" needs to be updated to account for the changes?

herrbischoff commented 1 year ago

@Nuru I have Escape mapped to Caps Lock and never type it accidentally. Its a largely useless key anyway and right on the home row. I'm also an advanced Vim user. My second layer is reserved for mapping HJKL to arrow keys and function keys. Very convenient.

GazHank commented 1 year ago

@herrbischoff Do you know if it is 6kro or something else that is causing you issue on your iPad? I've just checked my keyboard with the v1.0.9beta firmware on an iPad Pro running IPadOS 16.5 and it works without issues

herrbischoff commented 1 year ago

@GazHank Using the 6KRO key combo doesn't do anything for me. The only reliable way to use it with my iPad Pro (2018) is to use firmware 0.3.5. Otherwise, the Raise won't even get detected as a keyboard. Side effects include non-working keys (like Space) and persistent on-screen software keyboard. With 0.3.5 it works like with any other keyboard.

What still doesn't work in any configuration is entering my account password on my Mac at boot time when using File Vault WDE. It just won't react, 6KRO key combo or not. Every single USB keyboard I've tried does. So this is unlikely to be some weird Apple-exclusive special case.

If I can provide you with more data, let me know what you need.

erikbelusic commented 1 year ago

We have now a list of compatible KMV's and are investigating the root cause for these issues, maybe it has something to do with packet segmentation on the usb HID peripheral, which is badly implemented on this version, or power packages which are completely lacking.

I just got my raise, and was wondering where this list of compatible KVMs is - I tried plugging mine in and i end up hearing a high pitched noise and the keyboard is not responsive (but it IS lit up) - I assume the KVM I have doesn't provide enough power, and would like to switch to something that will work.

alexpargon commented 8 months ago

I am going to update this issue with some hardware that we know it works due to other users reporting the fact, in some cases and weird configurations it might not do so, but that should be rare.

mitchdz commented 8 months ago

@alexpargon FYI the second last item you linked https://www.amazon.com/Sabrent-Computers-Peripherals-Indicators-USB-SW30/dp/B074TYDJK2%5B:%5D(https://www.amazon.com/Sabrent-Computers-Peripherals-Indicators-USB-SW30/dp/B074TYDJK2:) link is broken because it has :) at the end

alexpargon commented 8 months ago

@alexpargon FYI the second last item you linked https://www.amazon.com/Sabrent-Computers-Peripherals-Indicators-USB-SW30/dp/B074TYDJK2%5B:%5D(https://www.amazon.com/Sabrent-Computers-Peripherals-Indicators-USB-SW30/dp/B074TYDJK2:) link is broken because it has :) at the end

Links fixed! thanks for the tip 😄, just copy-pasted them from document 😓

Nuru commented 7 months ago

@AlexDygma @alexpargon With the release of Bazecor 1.4.0 announced, do you have an update on this issue?

@AlexDygma said almost a year ago now "we will be adding a way to use the v0.3.5 of the FW for the Raise with the latest version of Bazecor pretty soon, working on that right now (as the superkeys are still on beta and until after the launch of the Defy that won't change)."

So has there been progress made on this front? I have not seen anything related to it in the release notes or on this issue.

Regarding "KVM switchers nowadays are crap!!", certainly some (many?) are, but I have been very happy with the IOGEAR KVMs with this one exception. I confess their logo does not inspire confidence in me, but think I've been using their KVMs for about 20 years now and have been quite happy with them. That is part of why I do not want to give up on my IOGEAR KVM just to use the Raise.

@herrbischoff Mapping the "caps lock" key to send "escape" was about the first thing I tried. I hit it by mistake several times a day, with significant consequences. (Most other keys, you hit them by mistake, you can just backspace your way out of it, but with "escape" you tend to lose a lot of work with no "undo".)

alexpargon commented 7 months ago

@AlexDygma @alexpargon With the release of Bazecor 1.4.0 announced, do you have an update on this issue?

@AlexDygma said almost a year ago now "we will be adding a way to use the v0.3.5 of the FW for the Raise with the latest version of Bazecor pretty soon, working on that right now (as the superkeys are still on beta and until after the launch of the Defy that won't change)."

So has there been progress made on this front? I have not seen anything related to it in the release notes or on this issue.

Regarding "KVM switchers nowadays are crap!!", certainly some (many?) are, but I have been very happy with the IOGEAR KVMs with this one exception. I confess their logo does not inspire confidence in me, but think I've been using their KVMs for about 20 years now and have been quite happy with them. That is part of why I do not want to give up on my IOGEAR KVM just to use the Raise.

@herrbischoff Mapping the "caps lock" key to send "escape" was about the first thing I tried. I hit it by mistake several times a day, with significant consequences. (Most other keys, you hit them by mistake, you can just backspace your way out of it, but with "escape" you tend to lose a lot of work with no "undo".)

Hey there @Nuru!

This is a FW Issue and as far as I know there is a specific version of the Defy firmware that solves it, the Raise has the v0.3.7 FW in which the swap works as expected.

Unfortunately, the Superkeys FW is still in beta and it doesn't have this issue addressed.

I'm really sorry for the inconvenience with this topic but there are alternatives, if you need further help I can try to push this issue to the FW team to see if they can replicate your exact issue.

JayBusch commented 7 months ago

I am also having great difficulty using the Raise as I would like. I have it working with my Tessmart KVM via the USB port, which I can live with. However I have a second workstation connected to the KVM via a wireless KVM extender. That device will not recognize the Raise but has no issue recognizing my old Kinesis Freestyle 2. I have tried flashing the firmware to 0.37 and using the 6KRO key combo. When I execute the combo the keyboard flickers for a moment but never begins to work.

I know Dygma is focused on its next generation products, and in fact I've already signed up to reserve a Raise 2 (before I encountered this issue), but it seems these lingering issues with the Raise 1 are not being addressed. We all payed a very heavy premium for a product for power users. To be told we cannot use this keyboard in various scenarios when other much cheaper keyboards work just fine is pretty unacceptable. I dont want multiple brands of keyboards in my workststations so my muscle memory has to.constantly adjust. I want 2 Dygma Raises ideally, but I can't see myself buying the second if I'm told the first will simply not be supported, which will leave me to sell my Raise and buy two models of another brand.

Is there anything you can do to provide firmware that allows the keyboard to output the same signal as a typical, cheap, keyboard? Am I to expect that if I buy a Raise 2 and there are some issues that I will be told the same thing and not be able to use it like all other keyboards on the market?

Very frustrated here. I love the hardware, but these firmware issues are intolerable frankly. Please help keep me a Dygma fan and customer.

JayBusch commented 7 months ago

Seems like the UHK team has a handle on this.

https://github.com/UltimateHackingKeyboard/firmware/issues/536

wez commented 6 months ago

FWIW, I have Defy and am intensely disappointed that it does not function at all when connected to my expensive but totally excellent Level1 KVM. The Defy is the only device I own that does not work with this KVM. I've built my own custom keyboards with varying levels of sketchy firmware and those all work with the KVM.

I think it is disingenuous to blame this incompatibility on KVMs being crap when it is only Dyma's devices that have this issue.

herrbischoff commented 6 months ago

@JayBusch and @wez, at this point in time – after years of deflection, silence and close to zero firmware updates – I'm forced to come to the conclusion that Dygma does not have a single C++/embedded developer on staff, much less one that actually understands how to fix the issue. There are JavaScript developers working on Bazecor though.

From the outside looking in, it appears that they have taken some FOSS firmware, hacked about it a bit, managed to work themselves into a cul de sac and finally called it a day. Either that or the team has decided simply not to care. This may not be accurate but in any case, they're doing a bad job communicating their priorities by not communicating in any meaningful way.

While the build quality is still great, a $400+ keyboard which cannot do the basic tasks a $5 keyboard can is unacceptable, period. That it cannot do it because of a firmware issue is almost ridiculous. As things stand now, I will actively recommend against Dygma’s products when asked and certainly not buy anything from them again.

Starting to sell follow-up products to ones whose issues are numerous and unresolved is a move that erodes trust. To call me disappointed is an understatement.

jordaaash commented 6 months ago

Starting to sell follow-up products to ones whose issues are numerous and unresolved is a move that erodes trust. To call me disappointed is an understatement.

Agreed, I'm also extremely disappointed by the lack of action on this over the course of years while Dyma has launched, and is still launching, multiple new products. I'm unable to use the Raise with my PS5 because of this, and I will not purchase another Dygma product until it's fixed.

phming commented 5 months ago

I'm not sure if I would have bought a Defy had I seen this discussion earlier. This discussion is missing updates from Dygma. Is Dygma at all working on this issue? What is the current status?

Anyhow, I recently got my Defy in the mail and started playing around with Bazecor on Windows, even though I use FreeBSD as my main OS (I expected Bazecor wouldn't be readily available on there, so far so good). What I didn't expect was that the keyboard wouldn't work at all; well, funnily enough it works in the boot loader stage but not after login is available. So after I found this discussion I was about to get quite mad and was almost ready to get ready to refund the whole thing. (spoiler I am now typing this on my Defy connected to my FreeBSD PC connected over my monitor's USB3 hub indeed).

While I cannot speak to the KVM issue, PS5 and MacOS have one thing in common (afaik) and that is that they are both based on or rather use parts of (Free)BSD.

Now thankfully, before getting really mad that my shiny new 550 CHF keyboard could not be used with my main operating system, I discovered a fix: simply add hw.usb.usbhid.enable=1 to /boot/loader.conf and reboot. After that it's now working as expected. I really hope Bazecor will eventually be available on this OS as well, but thankfully that is not my main concern.

How does one implement this fix on MacOS or PS5? I don't know but it's probably easier on the Mac than on PS5 and it's not certain that it will work. But I figured that maybe this could help give devs a hint. Regarding Dygma I expected to see better, after all the product design convinced me. Now I'd like to see at least better communication. Is it being worked on or are customers left standing in the rain?

greetings from switzerland

MGousseff commented 3 months ago

Hello @AlexDygma : Is there a fix yet ? It seems the issue is 4 year old. I have a Dygma Raise that I don't use on a KVM, but was contemplating buying a raise 2 for a KVM setup ?

herrbischoff commented 3 months ago

@MGousseff FWIW, I've had a written exchange with support some time ago. The Dygma team has decided that solving this issue is not a priority for them. There is now a 6KRO firmware variant to flash in Bazecor but it didn't solve any of my issues. In fact, it contains bugs that freeze the keyboard on wake.

Like I'd written before, Dygma clearly has no experienced embedded developer on staff who understands in depth the free firmware they've forked and hacked on.

I am considering returning my Raise for a refund since it's been defective in this regard since its initial purchase.

mccore commented 2 months ago

Just wanted to lend my voice and say that I have been perfectly happy for years with my Raise until I also bought a level1techs KM switch. This was a major upgrade for me from a previous USB 3.0 switch that didn't provide enough power to the raise (causing the LEDs to subtly flicker) and that was extremely slow to switch between PCs (link for the curious). I am honestly shocked to read this issue and see the current state of it. It has certainly warned me off the Raise 2. L1T has the nicest KM switch I have ever seen, and I certainly did my research. To see that the Raise can't function as a proper HID device with it is extremely disappointing. I am hoping for an update from @alexpargon or @AlexDygma but I'm not holding my breath.