q2686 as an USB sniffer


Hi Guys!
I am very very new in wavecom devices an I am trying to use Q2686 GPIOs to work as an USB BUS sniffer. From one side of USB connection there is PC and from the other side there is USB HID device(keyboard, barcode reader). Between these two devices I want to plug in device with q2686 on board to sniff data which flow through the bus. Did anyone try this?
My idea is to plug in parallel with lines D+ and D- via 74HC244 or 74LVC244 chips. Then plug in these lines to one of the GPIOs and read data flow.
As far as I noticed q2686 is able to take max. 3.2 [V] on GPIO so it’s mean that I have to lower the voltage taken from the D+ (max 3.6 [V]).

I am using Development Kit with Q2686 device.

Do You think that I can handle this job with q2686?


Very much not!


Can You explain me why not?


If you need to ask that question, then you are really not in a position to do it on any platform - let alone the Q26!

USB is a very complex interface indeed - not the kind of thing that you can just “sniff” like RS232!


the q2686 (or any wavecom module ) can’t capture fast enough to follow the usb protocol (1.5 MBit/sec for mice and keyboards).
(you don’t have low-level access to the gpio pins)
and the granularity of the OS is only 18.5 ms

i suggest you use a microcontroller to capture, then use the wavecom module to sent the data.
and even then you can stille forget about capturing full-speed and hi-speed (15Mbit/sec and 480Mbit/sec resp.)


Yes, a suitable microcontroller should have the hardware capability to capture the signal level transitions - but what will you do with that information? :open_mouth:

Again, USB is a very complex protocol: you would effectively have to implement a complete USB protocol stack to be able to decode the data! :open_mouth:


I haven’t even dreamed about 15Mbit/sec just “keyboard alike” devices working with 1.5MBit. I have checked documentation and You are right saying that granularity is to big to capture USB BUS data flow.
Currently I am looking for a microcontroller which will handle this usb capturing and I leave q2686 only for gsm stuff in my project.

That information I would like to send via gprs - it will be packet of few characters.

Honestly I was not afraid implementing USB protocol from the scratch - I am not so bad programmer.

Thanks for reply.