Read USB Communication without interferring

Hey everyone,

we have an idea that basically needs to read out the USB communication of an arcade-stick (or a simple Playstation 3 Controller) while playing. We are willing to read out the pressed buttons/directions and send them to a computer that visualizes the collected data. Is this possible in any way? As far as I found out by now, USB Signals are not easily splitted. Is it possible to use an Arduino with an USB-Host Shield to read the incoming signal, send the necessary data to the computer AND the unmodified signal to the Playstation? We do not want to tinker around inside the controllers as we would like to have some kind of "Plug&Play" Solution in the end where you just plug in your cable into some "box" and connect the box to the PS3 and the visualizing computer.

Thanks for the help!

Im not 100% about reading the data from a PS3 controller, but there is a library and sample code to read a PS2 controller, which I've used myself. You may need a USB shield and a modified code for the PS3. Again not sure though.

Just reading the inputs from the PS3 Controller or the arcade stick should not be the big deal here. The problem I am trying to solve is if I can use it while it is used on the PS3. I just want to read out what input is beeing pressed while someone is playing on the Console.

I dont think that is possible then.

Hm.. really? I've seen some hardware usb-analyzers on the internet that unfortunately cost over 300$. But at least this shows that there must be some way to do something similar to the thing I want to do. Doesn't anyone have a clue for a workaround or a way to make the project possible?

reading the data should be pretty easy :P just hook up a host shield and ur good to go, other than that, to connect the usb to the computer AND the ps3 u should build ur own spliter :P to do this just grab 3 usb inputs and solder their cords together, i have done this plenty of times with usb's, aux's etc....

I suspect that if you use an Arduino with a USB host port then somebody familiar with USB could program the Arduino to act as a ‘man in the middle’ and simply pass all the USB traffic through both ways. This would give you visibility of the traffic. You would still need to make sense of it, and I expect that would need considerable knowledge of USB protocols too.

Another approach to consider might be to intercept the data stream in software once it's already on the PC, particularly since that's where you want it to end up anyway.

Search for "usb sniffing" and you may find something that fits into your project. I found this one, for example, that looked promising: