๐ฅ BLACK FRIDAY SALE: Get 15% OFF all source codes with code
BLACKFRIDAY. Click here to apply discount automatically
Stop struggling with raw Hex dumps. A production-ready CAN Bus Sniffer that automatically decodes J1939 PGNs (e.g., Engine Speed, Oil Temp) into human-readable text. Built with Python & Tkinter.
Professional tools like Vector CANalyzer are expensive. Simple Python scripts often lack a GUI.
This project bridges the gap. It provides a Clean GUI that connects to your hardware (Vector, PCAN, Kvaser, SocketCAN) and translates 29-bit J1939 IDs instantly.
Perfect for:
- ๐ Automotive Engineers: Debugging Truck/Bus ECUs.
- ๐ค Robotics Developers: Monitoring CAN-based actuators.
- ๐ Students/Researchers: Learning the J1939 protocol structure.
- ๐ Native J1939 Parsing: Automatically parses Priority, PGN, and Source Address.
- Example:
18F00400โ EEC1 - Engine Speed (RPM)
- Example:
- ๐ฎ Built-in Simulation: No hardware? No problem. The "Demo Mode" generates realistic traffic so you can test the UI logic immediately.
- ๐ Universal Support: Works with any interface supported by
python-can(slcan, socketcan, vector, pcan, ixxat, etc.). - ๐ Live Monitor: Real-time scrolling table with Timestamp, DLC, and Hex Data view.
pip install python-can๐ฅ Download Full Source Code Get the complete, fully commented source code (main.py). You can use it as a standalone tool or integrate the J1939 parsing logic into your own projects.
๐ Download on Gumroad ($9.9): Link
(Includes: main.py, requirements.txt, and Setup Guide)
๐ Code Sneak Peek (J1939 Logic) The code includes a helper function to extract PGNs from 29-bit Extended IDs:
Python
def parse_j1939_id(self, can_id):
"""Extract PGN and Source Address from 29-bit ID"""
pgn = (can_id >> 8) & 0x3FFFF
sa = can_id & 0xFF
priority = (can_id >> 26) & 0x7
return pgn, sa, priority
๐จโ๐ป About the Author Phil Yeh - Senior Automation Engineer
My Gumroad Store (More Engineering Tools)
Keywords: Python, CAN Bus, J1939, SAE J1939, PGN Decoder, ECU, OBD2, Sniffer, GUI, Tkinter, Automation, Vector, PCAN
