Hacker News new | ask | show | jobs
by skywal_l 867 days ago
Something of a tangent but I couldn't find anywhere a way to wirelessly extend usb ports. Allowing you to plug a mouse/keyboard/Yubikey to a computer in another room with minimum latency and without the need of any software or particular drivers.

If one wanted to do something like that one would probably start by reading that article I guess.

Thanks for this very thorough work.

3 comments

I've had the same desire to extend USB HID devices, but I want to take it a step further. Once a USB device <- Wi-Fi ->USB host technology is available, then a wireless USB switch should be possible. The research in this article is critical to understanding the impact of latency on the experience.

Several months ago, I built a project using USB host mode on a Raspberry Pi Pico, which uses a USB numpad to pass messages to an MQTT server. This uses the Rp2040's USB host mode https://gitlab.com/baiyibai/pico-w-usb-host-mqtt-numpad

https://github.com/adafruit/Adafruit_TinyUSB_Arduino

My implementation plugs in much higher into the stack and doesn't read the full USB bit mask output, which indicates how many keys are pressed/released.

From my limited understand ing, it should be possible to pass these USB messages from HID client to HID host and vice-versa. Then it's only a matter of sending this information over a TCP/UDP interface. However, from my research, it seems the TinyUSB library doesn't provide the full bitmask resolution necessary for all devices. The YouTuber Wendell from LevelOneTechs has also talked about the troubles of getting some devices working with his KVM products, so it may not be as simple as I'm suggesting here.

Overall though, a $15/endpoint is very attractive.

> Several months ago, I built a project using USB host mode on a Raspberry Pi Pico, which uses a USB numpad to pass messages to an MQTT server. This uses the Rp2040's USB host mode https://gitlab.com/baiyibai/pico-w-usb-host-mqtt-numpad

Maybe I read the README a little to quickly, but you seem to be using standard WiFi for communication. As stated in other comments in this thread, this solution already exists. USB through Ethernet extension are well established and you can already connect this to a WiFi extender.

What I was thinking was to achieve this with a simple radio connection that do not need configuration or even a WiFi network to function. Just plug it in and it works. Here's a sketch of the high level concept I had in mind: https://ibb.co/VD2d9XM

Is your point that once you can do that with Wi-Fi it is trivial to do it with any type of radio connection?

> From my limited understanding, it should be possible to pass these USB messages from HID client to HID host and vice-versa.

Someone did this here using Etherkey and an ATmega32u4: https://www.sjoerdlangkemper.nl/2022/11/16/running-etherkey-...

> it seems the TinyUSB library doesn't provide the full bitmask resolution necessary

If my understanding is correct, Arduino already provides low level USB controls: https://shorturl.at/joSWZ.

All in all, it seems to me that there is an opportunity here but unfortunately this requires skills in electronic, radio and USB protocol that I do not possesses and seems fairly rare.

USBAnywhere + any WiFi AP

You would need drivers on the computer and I don't know about latency.

WiGig docks were promoted for a short while but the problem they ran into was having an e.g. keyboard in another room wasn't very practical unless the display was as well and that bumped the RF requirements. So it ended up in the 60 GHz range which wouldn't make it to the other room and people basically said "eh, what's the point I'll just plug the dock in and it works".