Wireless USB interface

RFusbwireless

I have been developing code for this open source flight controller, and the one thing that I would like to improve with my workflow is to be able to flash the firmware wirelessly.

I am able to perform all debug and I/O interfacing with the device wirelessly via WiFi-networked Raspberry Pi's, however the one missing link is that I must plug the board in physically via USB in order to flash the firmware that I build.

Option 1: Push code from laptop to desktop computer through the network. This computer is plugged in to the controller and can do the flashing. Indeed I could probably use a third Raspberry Pi to perform this task as well, but the performance cost of running the firmware build toolchain on such a slow device is unappealing.

Option 2: Wireless USB hardware

I will be using Option 1 because there is clearly not enough support for Option 2, and it also happens to be the case that I need a reliable and robust data link.

However I would like to explore the possibilities of Option 2 because I think there is some potential in it. It seems to me that this should be possible to make USB wireless in a transparent way at the hardware level, by e.g. using RF. What would be some of the challenges in realizing this?

Terribly practical this will not be, and neither will USB 3 (or maybe even 2) rates be likely attainable practically, but considering just the sheer volume of USB devices out there, such a gadget would come in handy.

I'm not very familiar with USB protocol, but maybe some aspect of it will become difficult when the physical layer introduces latency. My hope is that this can be done transparently with hardware so that the wireless USB cable will appear to the host devices as nothing more than a somewhat long cable. Now it does appear that USB is limited in this regard as USB 2.0 has a limit of 5 meters of cable so the latency requirement alone may rule out the ability to do this. Surprisingly to me, USB 1.0, 1.1 and 3.0 also limit cable length at 5 meters or even shorter.

Best Answer

I don't think that you should write off your option 2 yet. There are a few good wireless USB hubs out there, if you can find a way to power them and if you can tolerate their size/weight. We have used the Silex hubs for our USB devices and we have been very pleased.

http://www.silexamerica.com/products/connectivity-solutions/device-networking/usb-parallel-connectivity/sx-ds-3000wn/

One thing that you need to be very careful of is that your target board is probably a USB DEVICE, not a host. So when you are looking for USB-over-wireless solutions, be sure that they are servers/hubs/bridges and not just dongles. If the device has a USB-A plug or a USB-B receptacle, it probably isn't what you want. You'll want a USB-A receptacle or a USB-B plug.