BackBackMenuClosePlusPlusSearchUluleUluleUluleChatFacebookInstagramLinkedInTwitterYouTubefacebooktwitterB Corporation

USB Protocol Analyzer

DIY USB Protocol Analyzer [FPGA platform|Ethernet loopback]

About the project

Objective of this project is to create a hardware solution that sniffs USB packets and posts them back to PC using Ethernet.

With this tool, using Ethereal (free linux software), you can record USB packets in order to explore them, without time limit.


            (USB device to scan)

This USB Protocol Analyser will be DIY, and explained on Tetalab Toulouse Hackspace blog.

1.5Mb USB will be encapsuled into 10Mb Ethernet packets. 12Mb will be encapsuled into 100Mb Ethernet packets. An option will permit to slow down devices running at 12Mb into 1.5Mb during record, reaching then more types of FPGAs.

Sources code will be written in VHDL language. Platform will be a classic FPGA starter-kit from Diligent Inc.

What are the funds for?

I need for this project a hardware set :

NEXYS2 FPGA starter kit

Ethernet pmodsimple pmod

Project plan to :

  • send logical information from FPGA to PC using Ethernet
  • update my current limited implementation of USB analyser, replacing RAM record by Ethernet transmission, passing then from 10 second of record to unlimited time record.
  • write all documentation, DIY story, publish source code

About the project owner

Author of FPGAmstrad.

Basically computer developer, I program FPGA chips. I love retro-gaming.

Last year, I realized FPGAmstrad, a Amstrad implemented on FPGA, here you can see the FPGA starter kit in action.

A FPGA starter kit contains a FPGA chip in middle, and several gadgets around : button, switches... For programming a FPGA, you draw a numeric schematic on PC, as ones of electronic books, and you press a button. You currently use components available on library, or download some (Z80 processor is downloadable at opencores)

A part of FPGAmstrad consist on learning USB, in order to plug 2 modern joysticks that are more robust than old ones and 1 keyboard without key timeout (PS/2 keyboard has hardware key timeout, causing problem while playing).

At this state I succeed at plugging one USB joystick on FPGA. I wanna to go further : I want to plug two joysticks and one keyboard at the same time ! For this I need to create a better USB sniffer, without time limit.

Making a USB Protocol Analyser is a reusable part of FPGAmstrad project, certainly needed by some curious, and will be a low-cost solution using FPGA platform : three times cheaper than professional ones, and reusable.


  • Sample use of this tool

    -making an "USB master", adding somes usb devices to Minimig : modern joystick, keyboard... -helping debug home-made USB devices -plug 2 USB joystick and 1 USB keyboard on FPGAmstrad

    Last updated: 5 years, 4 months ago

  • Targets of this project

    -Educational purpose -Low-cost USB sniffer for experiments -Myself : go further with FPGAmstrad

    Last updated: 5 years, 4 months ago

Ask your question Report this project