π ModbusSniffer β Free Modbus RTU Analyzer with GUI (Python / PyQt6)¶
A lightweight and user-friendly Modbus RTU sniffer tool with a graphical interface.
Easily analyze and debug communication between PLCs, HMIs, and other Modbus RTU devices via serial ports.
Live preview of ModbusSniffer GUI in action
π Why ModbusSniffer (This Fork)?¶
π General Highlights¶
- π§° Sniffs raw Modbus RTU frames from serial ports (RS-485, USB)
- π₯οΈ Graphical User Interface (PyQt6) β no terminal needed
- π Frame table: Real-time view with decoded address, function code, and data
- π Live Logging: Color-coded requestβresponse pairs, unmatched requests highlighted
- πͺ Cross-platform: Windows & Linux
- π Free & Open Source (MIT license)
π οΈ Why This Fork (What's New)¶
- π» Modular code refactor β clear separation into modules and classes
- π§ Rewritten Modbus parser (
ModbusParserclass) with clean structure - π₯οΈ Fully integrated GUI (previously only CLI)
- π All command-line functionality preserved and upgraded into the GUI
π Whatβs New¶
See the full CHANGELOG.md for details.
π§ ToDo¶
- Improve GUI with:
- Add frame filtering
- Add posibility to set log files path
πΊοΈ Roadmap¶
- Support for Modbus TCP
- Custom function code decoding
- Advanced filtering and analysis tools
- Plugin system for extensions
π Documentation & Support¶
- Detailed documentation will be available in the
docs/folder soon. - Questions or issues? Open an issue or join the Discussions.
π§ͺ Testing¶
Run tests with pytest:
pip install -e .[dev]
pytest
Coverage report:
pytest --cov=modbus_sniffer
π€ Contributing¶
Contributions are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature-name) - Commit your changes (
git commit -m "Add feature") - Push to branch (
git push origin feature-name) - Open a Pull Request
After cloning the repository and setting up a virtual environment, you can install all development tools (used in CI/CD pipeline and for local testing, linting, and packaging) with:
pip install -e .[dev]
π€ Acknowledgments¶
Thanks to the original author BADAndrea for the initial ModbusSniffer implementation.
Special thanks to all contributors and the open-source community for feedback and improvements.
π License¶
This project is licensed under the MIT License β see the LICENSE file.
This project is a fork of BADAndrea ModbusSniffer
Fork maintained by niwciu with enhancements described above.
β€οΈ Thank you for using this version of ModbusSniffer!