# How can I view USB traffic on an oscilloscope?

I'm trying to examine the communication of a USB mouse with an oscilloscope (PicoScope 3204). When I connect the scope's ground to one of the two data signal lines (Data+ or Data-) the mouse shuts down. The mouse is the 1995 Microsoft Home device, so it must be using USB 1.1, not some fancy high-speed version. I also tried the same on a USB memory stick and experienced the same problem. Is there an simple circuit I can build to overcome this problem?

I'm aware there are sophisticated USB test fixtures for this purpose, but I'm trying this as a demonstration/experiment, so I'm looking for a minimal home-brew solution.

• Could you write the model number of your oscilloscope? – pipe Dec 13 '15 at 10:54
• PicoScope 3204; I'm adding this to the question. – Diomidis Spinellis Dec 13 '15 at 12:10
• 70MHz is not much bandwidth to be looking at USB signals either. – Matt Young Dec 13 '15 at 14:00
• @MattYoung -- it's ample for a low-speed device... – ThreePhaseEel Dec 13 '15 at 14:28
• – JYelton Dec 17 '15 at 19:28

Don't ground the data lines. They are above ground. Beyond Logic says

USB uses a differential transmission pair for data. This is encoded using NRZI and is bit stuffed to ensure adequate transitions in the data stream. On low and full speed devices, a differential ‘1’ is transmitted by pulling D+ over 2.8V with a 15K ohm resistor pulled to ground and D- under 0.3V with a 1.5K ohm resistor pulled to 3.6V. A differential ‘0’ on the other hand is a D- greater than 2.8V and a D+ less than 0.3V with the same appropriate pull down/up resistors.

You need to connect scope ground to USB ground. Otherwise you're killing one of the signals and the differential receiver will not detect the required phase reversal.

With scope connected to ground a single channel scope can monitor either D+ or D-. A dual channel scope can monitor both and you should see the phase inversion when data is transmitted.

• Note that I tried monitoring the data lines with respect to USB ground, but I did not obtain a signal that looked digital (or that the oscilloscope could decode as USB). – Diomidis Spinellis Dec 13 '15 at 9:30
• Did you select DC coupling for the 'scope? – Chu Dec 13 '15 at 10:03

Please see this very useful explanation why USB D- is not a GND. If you want to probe USB data pairs; you need to connect your scope between GND and USB D- and/or D+.

Also remember that in most PCs the "GND" is earthed; and so is your scope GND lead. This is likely the behaviour of shutting down because you are effectively connecting USB D- to GND (via earth) via your oscilloscope.

• That explains it! I thought the scope's inputs were differential, rather than ground-referenced. – Diomidis Spinellis Dec 13 '15 at 9:28
• Well they are in that they're measuring the difference between the probe and ground. See edit to my answer. – Transistor Dec 13 '15 at 9:37
• Sorry, Hans, I edited your answer instead of my own! The Internet moves too fast! – Transistor Dec 13 '15 at 10:22

To add a little bit more of information and references, related to the safety operation of your equipment during testing.

You must be always very careful before connecting the ground or chassis of your test equipment to your DUT (Device Under Test).

Some very bad things can happen, including:

• Putting you or other persons under risk of death.
• Damaging permanently your test equipment.
• Damaging permanently your tested circuit or DUT.

Some interesting references about floating vs. grounded test equipment and safety. I cannot summarize them here as the topic is hugely broad:

• How not to blow up your oscilloscope,
• Oscilloscope measurements safety,
• Why on earth are o-scopes earth referenced?

scope ground goes to usb 0V [try the white wire. test with a DC multimeter to the computer chassis that it is 0V and low ohms which you connect to]

if your scope allows two channel difference A-B then use A for usb +data and B for usb -data.

Always test traffic between PC and an appliance such as a printer or webcam. You need the appliance because usb employs a handshake before it gets going. Scrape insulation off to expose wires and try a high impedance (10 Meg) scope probe. It might self-adjust in order to work with ugly exposed cables. Do not expect anything > 10MHz to work like this as scope probes are ugly and 240 ohm terminated probes would conflict with the handshake from the proper termination at the appliance.

USB-C is unknown to me; it might have a whole lot of extra switches in your way to decide the direction. I do not know what the 100 Watt power lines might do. Avoid USB-C

You need a 2-channel oscilloscope. Then you connect one channel to D+ and the other one to D-. The ground clips of the two probes you connect to each other. Then you subtract the two channels: X-Y, because it is a differential signal.