It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
clarry: rubber domes with NKRO.. but usually cheap keyboards aren't NKRO because you need a diode for each key.

I don't see an issue with gaming on clicky switches. And I'm not a fan of linear switches myself.
avatar
idbeholdME: There are but they are very few and far between and the usual ones you see everywhere are not. And if you are going to invest into a better keyboard, you might as well get a mechanical. The key for NKRO is using the PS/2 connector. USB is simply incapable of that.

And If you are OK with the clicking (most likely by using headphones) and live alone, then by all means. But I feel deeply sorry for anyone that has to share a room with someone using clicky keys. Tactile by all means, but the clicking is absolutely distracting from the game.
I keep seeing the same thing spoken here as if it is true.
Mechanical keyboard does NOT always mean noisy. I have a razor which clocks loudly, and then the one I posted before which is silent.
The only real difference is longevity of the keyboard, response time of presses, and the ability to press several keys at the same time. Some of these features are available in normal keyboards, but if you doing gaming (well FPS and key heavy games) I would always suggest a mechanical keyboard, no comparison.
avatar
dtgreene: Do they still make keyboards and motherboards with PS/2 connectors?

(I was actually surprised that my current computer's motherboard had a PS/2 connection, but since it does, I am definitely using it.)
With motherboards, it depends but you can easily find those that have one. For keyboards, there are always USB to PS/2 adapters if needed (which I have to use for my keyboard to be NKRO).

avatar
nightcraw1er.488: snip
I was talking only about clicky switches, not in general. I use linear ones which are basically noiseless if I don't bottom out.
Post edited January 24, 2020 by idbeholdME
avatar
idbeholdME: OK. This leaves me wondering though, why the keyboard I have only supports NKRO over PS/2 and not over USB.
Could be any number of reasons. The myth that USB can only support 6 keys has lived long, and USB NKRO has a history of being unreliable due to buggy drivers. The current state of affairs is pretty good, and any unreliability with legacy systems could always be worked around by giving a switch to toggle NKRO off, so I'd blame it on lazy programming and/or cost cutting.
avatar
clarry: Could be any number of reasons. The myth that USB can only support 6 keys has lived long, and USB NKRO has a history of being unreliable due to buggy drivers. The current state of affairs is pretty good, and any unreliability with legacy systems could always be worked around by giving a switch to toggle NKRO off, so I'd blame it on lazy programming and/or cost cutting.
It's this one:

https://www.mechanical-keyboard.org/steelseries-6gv2/

It even specifically says NKRO (over PS/2). I bought mine like 2 years back but it was first made almost 10 years ago so maybe back then, it was not so widespread yet.

EDIT:
Also thanks for the effort put into your answers and explanations.
Post edited January 24, 2020 by idbeholdME
Speaking of mechanical keyboards, when was the first one made?

(By the way, the keyboard I'm using definitely doesn't have NKRO; I believe pressing a combination of up, either left or right (forgot which), and spacebar doesn't work; I have a laptop that has the same issue, except that the direction (left or right) that causes the problem is different. Haven't tested the Raspberry Pi keyboard, but I wouldn't expect something like NKRO on a keyboard that's sold for $17 and has a built-in USB hub.)
avatar
dtgreene: Speaking of mechanical keyboards, when was the first one made?
I don't have a complete picture of the history, but I suspect mechanical keyboards predate membrane keyboards. Computing has a history of starting with big, clunky, clanky things, and then companies start producing cheaper & simpler designs for the mass market. Also, the keyboard derives from typewriters which were mechanical devices initially (although those things have nothing to do with what we call mechanical keyboards..).

Alps and topre mechanical switches date back to the 80s, as does the IBM Model M with its buckling spring switches. If I wanted to know more, I would probably look into the history of the buckling spring.

Optical switches were a thing in the 60s, the Space-Cadet (and maybe Knight) in 70s used hall effect switches. Reed switches were also used back then.
Post edited January 24, 2020 by clarry
avatar
dtgreene: 3. Does there exist any x86 desktop-class hardware that has a device side USB port? (A device side USB port is the type you'd ordinarily find in a device like a keyboard, mouse, flash drive, or printer; this is different from the host side ports normally found on computers.)
Probably the Raspi can do it trough GPIO pins, with enough programming and google (or equivalent) skills.
Arduino defenitely can do it and there are some SBC computers with built in Arduino compatible microcontrollers, such as the LattePanda, Uddo Bolt and maybe the Atomic Pi..

Would be very easy to add a Arduino board to your current pc,such as a Leonardo
it even works on the Raspberry and I am currently programming a Pro Mini version on the 3b+...
avatar
dtgreene: 3. Does there exist any x86 desktop-class hardware that has a device side USB port? (A device side USB port is the type you'd ordinarily find in a device like a keyboard, mouse, flash drive, or printer; this is different from the host side ports normally found on computers.)
avatar
Dark_art_: Probably the Raspi can do it trough GPIO pins, with enough programming and google (or equivalent) skills.
Actually, I know that some models of the Raspberry Pi can do this, but it's not really anywhere near the power of, say, an intel Core-i9 based PC with 32 GB RAM.

The Raspberry Pi Zero and Zero W can do this; I have done this personally, so I know this for a fact. (Got a simple buildroot system running that can be controlled via USB serial.) You just need the dwc2 overlay (which is apparently now default on the Zero and Zero W), the dwc module, and, of course, the corresponding USB Gadget module. (You can compile the Gadget module into the kernel, but then you're locked into using only that gadget module, and the parameters have to be supplied on the kernel command line, so devices that require configuration (like loop and zram devices) can't be shared over USB (unless you make it mimic a removable disk).)

Supposedly, the Model A Raspberry Pis can do this, provided that you have a USB A-to-A cable (which violates the spec, and can be dangerous to use in other situations, but it happens to work in this case). This does not work for the Model B versions because they have a built-in USB hub between the USB controller and the ports.

Also, from what I've read, the Raspberry Pi 4's USB-C port actually uses the same USB controller used in previous models, and is configured to be usable in device mode, but I haven't tried it, and there's also the issue of powering the Pi (since the same port is used for power). Note that the power port isn't usable for data on other Pi models, though on the Zero and Zero W, the USB data port can be used to power the device.

(Of course, my question was asking about desktop-class hardware, not SBC or microcontroller-grade hardware.)
The LattePanda Alpha and the Uddo Bolt, while not being i9 level, are much more powerfull than the Raspberry. Let's call them laptop level :D

You can power your pi through the GPIO pins or some board points wich requires solder. Nothing but a hacked USB cable shoud be enough.
Your desktop computer power supply happens to be just perfect for that, I have several laying around and the one I use, can power any pi even turned off.
Desktop power supplys are very good and have 12v, 3.3v and 5v rails. But there is a 5v rail, called "stand by" that is allways on, wich in my case shuts down at 3.3 amps, more than enough.
I did a desktop mod for a friend, quite some time ago, to power his electronic projects. Was simply a external connector with 3.3, 5 and 12v on the back of computer case powered from the ATX power supply. Very simple amd low cost.

Well, I mean USB through the GPIO pins but you were much smarter than me :D

Now that I think about it, is the parallel port on many older pc's fast enough to turn it a USB device?
It surelly can be programmed with Python.
Post edited January 25, 2020 by Dark_art_
avatar
idbeholdME: OK. This leaves me wondering though, why the keyboard I have only supports NKRO over PS/2 and not over USB.
I could be wrong on this, but from my limited knowledge on the subject, I remember that the USB NKRO keyboards will add something like 5-6 HID devices. Open Device Manager, then disconnect and reconnect the keyboard and see how many HID devices it adds. Maybe you're missing some drivers.

Did you test it with a program or on one of those "keyboard testing" sites? I just used Aqua Key Test and mine works just fine. Apparently, the well known keyboard test page from Microsoft is gone.
Another thing I'm wondering: Is there a cheap programmable device that simultaneously supports USB host and USB device?

To be more explicit, this device must:
* Be programmable by the end user.
* Have a USB host port.
* Have a USB device port.
* The two USB ports mentioned above must be different; that is, a device with a single USB OTG port will not suffice.
* Be able to run on just the power provided by a USB port.

Example uses of such a device:
* A keylogger; record keypresses that could later be dumped to a PC.
* Hardware key remapping; user presses 'a', but 'b' comes out. This could be used to remap controls in video games that don't support it, including on certain consoles that don't support it but do use USB.
* Recording inputs, then playing them back later, like a macro (except that this is done in hardware and the device can be moved to a different computer without having to install software).
* Compress or encrypt the data sent to a USB flash drive on the fly, and vice versa.

So, is there such a device?

(Related: How about a device that can intercept and change Bluetooth in a similar way? Again, such a device might be useful for remapping controls in video games.)
avatar
dtgreene: Another thing I'm wondering: Is there a cheap programmable device that simultaneously supports USB host and USB device?

To be more explicit, this device must:
* Be programmable by the end user.
* Have a USB host port.
* Have a USB device port.
* The two USB ports mentioned above must be different; that is, a device with a single USB OTG port will not suffice.
* Be able to run on just the power provided by a USB port.
If you know electronics, VHDL/VeriLog, and C you can make anything yourself, and or start with a FPGA card like the Digilent/Xilinx Basys 3 f.ex. You can split the USB cable (separate signal and power) and make the card act as a middle between what ever you want, or just interpret the signals, even with BT (on-board or via expansion card), and still be powered by a single USB cable (many programmable FPGA ICs runs on 5v for convenience).

https://store.digilentinc.com/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/

I imagine even the Arduino could do the same...
Post edited January 25, 2020 by sanscript
avatar
dtgreene: Another thing I'm wondering: Is there a cheap programmable device that simultaneously supports USB host and USB device?

To be more explicit, this device must:
* Be programmable by the end user.
* Have a USB host port.
* Have a USB device port.
* The two USB ports mentioned above must be different; that is, a device with a single USB OTG port will not suffice.
* Be able to run on just the power provided by a USB port.

Example uses of such a device:
* A keylogger; record keypresses that could later be dumped to a PC.
* Hardware key remapping; user presses 'a', but 'b' comes out. This could be used to remap controls in video games that don't support it, including on certain consoles that don't support it but do use USB.
* Recording inputs, then playing them back later, like a macro (except that this is done in hardware and the device can be moved to a different computer without having to install software).
* Compress or encrypt the data sent to a USB flash drive on the fly, and vice versa.

So, is there such a device?

(Related: How about a device that can intercept and change Bluetooth in a similar way? Again, such a device might be useful for remapping controls in video games.)
Check out the RockPro64. Disclaimer: I don't actually have the board and I have not looked into what it takes to run it as a device, but in principle it should be very much like Pi Zero with the right kernel config.

https://www.pine64.org/rockpro64/

https://wiki.pine64.org/index.php/ROCKPro64#OTG_mode

This also happens to be one of the more powerful ARM SoCs you can find in a SBC.. (Chromebooks have also used Rockchip SoCs for instance). Of course it's not super cheap, but I guess that's the price you pay for having more connectivity.

EDIT: doesn't run on USB power, unfortunately.

USB Type C is interesting because it should deprecate OTG as a concept (replaced with Dual Role USB), but I don't know if the spec requires all controllers to support it. It might be the case that we'll have to dig through datasheets (or drivers) for each chip..

Bitbanging low-speed USB is possible with an arduino but that doesn't leave much processing power for doing anything with the data. I suppose you could use another microcontroller for the additional processing and sending it out. I'm not sure if it supports powering downstream devices out of the box so there's that...
Post edited January 25, 2020 by clarry
avatar
clarry: USB Type C is interesting because it should deprecate OTG as a concept (replaced with Dual Role USB), but I don't know if the spec requires all controllers to support it. It might be the case that we'll have to dig through datasheets (or drivers) for each chip..

Bitbanging low-speed USB is possible with an arduino but that doesn't leave much processing power for doing anything with the data. I suppose you could use another microcontroller for the additional processing and sending it out. I'm not sure if it supports powering downstream devices out of the box so there's that...
I'm pretty sure that USB-C doesn't have to support both roles with every device.

I don't have many devices with USB-C support at the moment. Here is what I do have:
* An 8bitdo controller, which I believe only supports device side USB-C. (I don't see how USB-Host support could be useful for this type of device, except maybe for firmware updates.) It uses the USB-C to chargd.
* A Raspberry Pi 4. Apparently, the USB-C port there is configured as a device side port, but the problem is that the port is needed top power the Pi, which has no battery and needs more power than a typical USB port can provide. (For my next computer, as I mentioned in another topic, it would be nice if it had a USB-C port that could power the Pi.)
* A power supply for the Pi, a car adaptor (that also has a USB-A port that can be used to charge older USB devices with a suitable cable), and the USB-A to C cable that came with the 8bitdo.

(By the way, I actually did recently see a couple 8bitdo controllers in a brick-and-mortar store, which I found interesting. The store also had some Raspberry Pi 4 kils (2GB moded) as well.)

Edit:
Actually, according to a forum post over at
https://www.raspberrypi.org/forums/viewtopic.php?t=246348
it's possible to force the Raspberry Pi 4B's USB-C port into host mode. The usefulness of this is rather questionable, as the Pi 4 has 4 USB-A ports that work fine as host ports, and there's the problem of powering the Pi (since power would normally come through that port).
Unfortunately, the port can't do dual role, apparently.
Post edited January 25, 2020 by dtgreene
avatar
dtgreene: What exactly is a mechanical keyboard, and why would I (not) want one?
How would such a keyboard compare to the one I'm using now, which I believe I got in 2003 or so?
I use a mechanical keyboard with my desktop PC.
Bought it after my old keyboard died.

Main difference to your usual rubbermembrane keyboards: it has that really nice *clack* to it, when you press the keys.
Can be a little nervewrecking, if you're not used to it.
I don't mind it...but I'm an old geezer, who used to write with typewriters back in the day, so...take that with a grain of salt.