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.