GithubHelp home page GithubHelp logo

ataradov / usb-sniffer-lite Goto Github PK

View Code? Open in Web Editor NEW
234.0 234.0 33.0 1.55 MB

A simple USB sniffer based on Raspberry Pi RP2040

License: BSD 3-Clause "New" or "Revised" License

C 99.93% Makefile 0.07%

usb-sniffer-lite's People

Contributors

ataradov avatar telix001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

usb-sniffer-lite's Issues

Linker error

Hello, I keep getting the following error when I try to build the project as is. I have made no changes to any of the source or linker files yet.

"/usb-sniffer-lite-main/firmware/linker/rp2040.ld:21 cannot move location counter backwards (from 000000001000014c to 00000000100000fc)"

I have read up a bit and this hints at an application that is too large(?) to fit in memory. I cannot figure out why though. Any help here would be greatly appreciated. I am also unable to understand the purpose of linking to the address 0x10000000. Could you explain that as well?

Thanks.

Nice, it would be interesting to add other protocols - Alternative for the Saleae Logic Analyzer

Hi,

Very cool this project with RP2040, it would be interesting to add other protocols.

As the Saleae analyzer also has an interface application for Windows, Linux and MAC, maybe it could be interesting to choose to add protocols not supported by Saleae to the RP2040.

Here is a list of protocols that Saleae's logic analyzer supports:

The Saleae Logic software includes the following protocol analyzers:

  • 1-Wire
  • Asynchronous Serial
  • Atmel SWI (Single Wire Interface)
  • BISS-C
  • CAN (Controller Area Network)
  • DMX512
  • HD44780 Parallel LCD
  • HDLC (High-Level Data Link Control)
  • HDMI-CEC
  • I2C
  • I2S Audio / PCM
  • I3C (see section below)
  • JTAG
  • LIN (Local Interconnect Network)
  • MDIO (Management Data Input/Output)
  • MIDI
  • Manchester (Differential, Bi-Phase Space, and Bi-Phase Mark)
  • Modbus RTU & ASCII
  • PS2 Keyboard & Mouse
  • SMBus (includes PMBus and Smart Battery)
  • SPI (Serial Peripheral Interface)
  • SWD (ARM Serial Wire Debug)
  • Synchronous Parallel
  • USB Low Speed and Full Speed
  • I3C Protocol Support

https://support.saleae.com/protocol-analyzers/supported-protocols

protocol-decoders

Pokken Tournament DX Controller Spewing Errors

So I am trying to sniff the communication between a Nintendo Switch and a Pokken Tournament DX controller and am just seeing it spew errors. The controller is working fine on the switch and I have sniffed other controllers hooked up to the switch with no problems, but I am stumped as to why this controller is having issues. I have attached a pretty typical capture of the controller. Any advice would be appreciated.
teraterm.log

Synchronization issue

Hi,
I have to say, this is really handy tool for USB FS debugging!
It already helped me to analyze some issues and improve bandwidth of device I am working on.
Now, I am trying to capture high load conditions. Unfortunately, I get:

Capture started
Capture stopped
Synchronization error. Check your speed setting.

I read though #4 and understood, that synchronization is problematic under load.
In my case, I have to open connection and then provide some data to load the bus. When I start capture and then open connection, packet buffer fills up before I manage to push some data.

Using trigger does not help, because it synchronizes on trigger.

Would it be possible to synchronize on start (s) and stay synced until capture is triggered?
Trigger input would serve only as a trigger for capture (storing into memory)

Here is an udev rule

Hi,
this set of udev rules does:

  • Puts device into group plugdev
  • Create symlink /dev/usbsniffer
  • Ensure the ModemManager does not touch our device

Reasons:

If the user is member of group plugdev, there is no need for sudo.
/dev/ttyACMx is volatile and the x can change from boot to boot. The symlink stays constant.
(You could also use the /dev/serial/by-id/xxxxxx, but that is not too easy to remember.
The Modem Manager tries to talk to ttyACMx devices for about 20 seconds after plugin. That can disturb communication.

70-UsbSniffer.rules.txt

Remove the .txt from the name and copy to /etc&udev/rules.d.

Feel free to add it to the repo.

Contents:

# CDC-ACM interface for USB Sniffer
# Create symlinks for CDC-ACM
# Put device into group plugdev
# Ensure the ModemManager does not touch our device

ATTRS{idVendor}=="6666", SUBSYSTEM=="tty", SYMLINK+="usbsniffer", MODE="660", GROUP="plugdev"

ATTRS{idVendor}=="6666", SUBSYSTEM=="tty", \
	ENV{ID_MM_PORT_IGNORE}="1", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_CANDIDATE}="0"

When I connect both the D+ and D- wires to the board, the connection between the testing Cool Disk with the computer is lost!

Hello
Thanks for your interesting design.

I made the circuit and I saw its menu with the Putty terminal program and the LED was blinking and I used a cool disk for testing, but there was a problem.

When I disconnect one of the wires connected to GPIO 10 or GPIO 11 from the pico board, Cool Disk works and is recognized by the computer.

But when I connect both the D+ (Green) and D- (White) wires to the board, the connection between the Cool Disk and the computer is disconnected.

Please advise.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.