serialusb – a cheap USB proxy for input devices

In recent weeks, I have been working on serialusb, a cheap USB proxy for input devices.
This tool can act as a USB proxy using the well-known DIY USB adapter.
Combined with usbmon and wireshark, it allows to generate and inspect USB captures.
Read the github project page to learn about the capabilities, the limitations, and the usage instructions of serialusb.

I’ve tested it successfully with the following hosts and devices:

  • PC + Logitech G502 gaming mouse
  • PC + Dell USB keyboard
  • PC + Logitech Driving Force GT
  • PC + Logitech RumblePad 2
  • PS3 + Logitech Driving Force GT
  • PC or PS3 + Dualshock 3
  • PC or PS4 + Hori Pad Fps plus
  • PC or Xbox 360 + Xbox 360 controller
  • PC or Xbox One + Xbox One controller

If you have a DIY USB adapter and any of the following host + device combination, please consider making a USB capture and send it to me:

  • Xbox One + Logitech G920
  • Xbox One + Xbox One controller with 3.5mm stereo headset jack (USB PID = 0x02dd)

A Beagleboard xM-based USB sniffer

I bought a Beagleboard xM more than 2 years ago, as I wanted to make it work as a USB sniffer, based on the work of Nicolas Boichat. But at this time I didn’t manage to make it work, as my knowledge on embedded systems was quite limited.

I have lately been working back on this, and last week during a hacking session in my local hackerspace (Hacknowledge, Rennes, France), I finally managed to make it work 🙂 It produces capture files that can be opened with Wireshark!

The following picture shows my beagleboard xM sniffing USB traffic between my Xbox 360 and a controller:

My beagleboard xM working as a USB sniffer.

Instructions are available in my git repository.

Cheapest usb 2.0 high-speed sniffer?

beagleboard-xmThe beagleboard-xm

Some weeks ago I discovered that the beagleboard has both usb 2.0 high-speed host and OTG functionalities.

This board can run Linux, so that it’s possible to capture the usb traffic and to visualize it with wireshark.

The following idea came to my mind: using a usb port as a host, and the usb OTG port as a device, the beagleboard may be used as a usb proxy/sniffer.

I then started looking for a usb sniffer running on the beagleboard.

After some researches I found the following project: blog /wiki.

It was written by Nicolas Boichat as a Google Summer of Code 2010 Project.

I bought a beagleboard-xm, and I’m on the way to test this great tool…