Mavsniff enables you to capture and replay MAVLink communication over serial line or network
Project description
mavsniff
Capture and replay MAVLink packets from your drone or GCS. Works on Linux and Windows.
You can read from a serial line (/dev/ttyXXX or COMx) or even from network (TCP and UDP). Mavsniff stores packets in pcapng format so you can analyse them with Wireshark.
Instalation
$ pip install mavsniff
Mavsniff is distributed via PYPI and an entrypoint mavsniff
should be available in your $PATH
after installation.
Usage
$ mavsniff capture --device udp://localhost:5467 --file recording --mavlink-dialect path-to-custom/my-dialect.xml
$ mavsniff replay -f recording -d /dev/ttyS0 -m my-dialect --baud=57600 # for serial line, specify baud if different from 115200
$ mavsniff ports # show available serial ports
$ mavsniff wsplugin # install Wireshark MAVlink disector plugin for reading Mavlink packets
Devices
-d /dev/ttyS0
- standard serial port on UNIX systems-d COMx
- from COM1 to COM8 - standard serial ports on Windows systems-d udp://<host>:<port>
ortcp://<host>:<port>
- receive or send packets over network (TCP or UDP)- currently, there is no option how to send MAVLink packets over the network.
Dialects
Default dialect is arduinomega and version is 2.0. You can specify your custom dialect in form
of mavlink's XML definition via --mavlink-dialect/-m
flag. Mavsniff will copy your XML into internal
pymavlink folder and compile it on the first run. All subsequent runs won't update nor recompile your
dialect. Once your custom dialect was imported and compiled, you can reference by its name (XML filename
without extension).
Using with network
mavsniff uses compatible format of UDP packets with QGroundControl. That means if you capture packets
emitted (mirrored) by QGroundControl with Wireshark then you will be able to replay those to any serial
device. Those packets have minimal ethernet header 02 00 00 00
and uses 20 bytes long IP header and
only 8 bytes for a UDP header. Any other packets will not be replayable by mavsniff.
Developement
Start developing by cloning the repo and installing tha application locally
$ git clone git@github.com:katomaso/mavsniff.git && cd mavsniff
$ python -m venv .venv && source $VENV
$ pip install poetry
$ poetry install -E dev
$ poetry run pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mavsniff-1.0.0.tar.gz
.
File metadata
- Download URL: mavsniff-1.0.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ba9817ae43af0ce25097c70858aefb119505729782b46f609c4b3fc95e1b724 |
|
MD5 | e11a7354bb86c39899dc814bd2953f6a |
|
BLAKE2b-256 | 3a3f1bccb5e950149e4c5673516aecefaa14193102dd5c41ca5aafe6f9ef8560 |
File details
Details for the file mavsniff-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: mavsniff-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92ce3c5cb415ffe9bab7fcc8e1eba91ab26dd8a7bad6bd41dba18a29da24c862 |
|
MD5 | 05698ac75736c02c2e8952acced159a3 |
|
BLAKE2b-256 | e9c53cd155ee4b7903a196d3329176f116d28105c2b03e5055e6f2cb87eeaf23 |