USBTap is a tool that taps into the USB buses on your Mac in order to log the transactions occurring over them. This is also known as sniffing or snooping the bus.

USBTap is intended to help developers of Mac USB software to debug their code, and to analyse (or document) the protocols used with various devices.

There are quite a few USB sniffing tools out there for Windows that I have tried, such as usbsnoop, Snoopy Pro, USBTrace and others. But none so far have captured all the data for devices I have been developing with. And of course they don't run on Mac OS X.

USBTap is designed to capture all the data it possibly can, even if it thinks it might not be relevant, allowing the user to decide what to do with it. It also records timestamps (to the nanosecond) and assigns transaction IDs, revealing time-sensitive and concurrency aspects.

It may not solve all your USB development problems — it cannot replicate the bus tracing features of hardware USB bus analysers — but for most purposes I believe it will be sufficient. And hopefully it will be easier to use and better than other 'software' USB bus analysers.

And yes, USBTap works great with Parallels, so you can easily capture the communications of drivers running on foreign operating systems right from your Mac. And then ideally go on to develop the missing Mac driver!!

14/5/2008