RAW USB data over IP even through WiFi

arduinoNetworkusb

For very special project I need to transfer data from a USB device to another system remotely as RAW "commands".

The source device is something like a security dongle (not exactly but is a good example to explain the problem) with its own protocol based on USB with is own device driver both on windows and linux and with a medium transfer rate (about 50% of USB2 specification ~200Mbit/s).

The destination system, is reachable only from a specific WiFi network that is isolated from the wired network.

So, without using another PC, I need a way to "Emulate" the source USB device on the destination device without possibility to connect physically to the destination system.

My idea is to build something like a "repeater" using two Arduino as Source and destination. So I will have two Arduino devices with wifi shield, one with the original dongle connected and another one connected to destination device as HID Host.

Now, I've three questions:

  1. Already exists some solution (DIY with schematics is preferable) that solve my problem?

  2. If nothing exists, do you think that this solution will work?

  3. What is the best way to accomplish this task at software level? like some library for Arduino that will simplify my work, something like "Read/Write Raw data from USB and send it over the wifi shield attached to Arduino.

Best Answer

protocol based on USB with is own device driver both on windows and linux and with a medium transfer rate (about 50% of USB2 specification ~200Mbit/s).

That would be very hard to acieve on a wifi link. Most WiFi equipment ships with a 100MBps Ethernet port, even 300MBit Wifi cannot saturate it.

My idea is to build something like a "repeater" using two Arduino as Source and destination

Arduino only supports 12 MBit/s USB Full speed. If your original data rate estimate is correct, you need beefier equipment that actually supports USB2.0 High Speed.