User Manual & Installation Guide
📦 Installation Requirements
Software Dependencies
- Python 3.8 or higher - Download from python.org
- Arduino IDE - For flashing ESP32 firmware (version 1.8.19 or later)
- ESP32 Board Support - Install ESP32 board package in Arduino IDE
- ESP32 USB Drivers - CP210x or CH340 drivers (usually auto-installed on Windows 10+)
💡 Quick Tip: If using the pre-built executable, you don't need Python or Arduino IDE installed - just run .exe!
Python Packages (if running from source)
pip install -r requirements.txt
Key packages include:
- PyQt5 - GUI framework
- pyserial - Serial communication
- pyqtgraph - Real-time plotting
- numpy, pandas - Data processing
- psutil - System information
Hardware Requirements
- ESP32 Development Board (ESP32 DevKit recommended)
- MCP2515 CAN Controller Module or SN65HVD230 CAN Transceiver
- USB Cable (for Serial connection) or WiFi capability
- Jumper Wires (for connecting ESP32 to MCP2515)
- 120Ω Resistor (for loopback testing without a car)
🚀 Quick Start Guide
1. First Launch
- Start the application (double-click
ESP32_CAN_Sniffer_OneFile.exe or run python main.py)
- Ensure your ESP32 is powered and connected
- Select connection type (Serial or WiFi)
- Click "Connect" to establish communication
2. Connection Setup
Serial Connection (USB)
- Connect ESP32 to your computer via USB cable
- Click "Refresh" to scan for available ports
- Select your ESP32 port (e.g., "COM3" on Windows)
- Set baudrate (default: 115200)
- Click "Connect"
WiFi Connection
- Connect your computer to the ESP32 WiFi network
- Network name: Usually "ESP32_CAN_Sniffer"
- Enter IP address (default: 192.168.4.1)
- Enter port (default: 82)
- Click "Connect"
3. Viewing Messages
- Raw Messages Tab: View all captured CAN messages in real-time
- Decoded Messages Tab: See decoded signals and values
- Statistics: Monitor message rates, buffer usage, and performance
📋 Most Used Features
Message Filtering
- Filter by CAN ID: Enter ID in the filter box
- Filter by data: Use hex or decimal format
- Clear filter: Click "Clear" button
Saving Sessions
- Click "Save Session" to save current capture
- Sessions are saved in JSON format
- Load sessions later for analysis or replay
Exporting Data
- Export to CSV: File → Export → CSV
- Choose raw or decoded messages
- Select date range if needed
Custom Labels
- Right-click on a CAN ID to add/edit label
- Labels help identify messages quickly
- Labels are saved in settings
🔧 Hardware Setup (ESP32 + MCP2515)
Pin Connections
| ESP32 Pin |
MCP2515 Pin |
Description |
| 3V3 |
VCC |
Power (⚠️ MUST be 3.3V, NOT 5V!) |
| GND |
GND |
Ground |
| GPIO18 |
SCK |
SPI Clock |
| GPIO19 |
SO (MISO) |
Master In Slave Out |
| GPIO23 |
SI (MOSI) |
Master Out Slave In |
| GPIO5 |
CS |
Chip Select |
| GPIO4 |
INT |
Interrupt (optional) |
⚠️ Critical Warning: MCP2515 must be powered with 3.3V, NOT 5V! Using 5V will damage the module.
Flashing ESP32 Firmware
- Open Arduino IDE
- Install ESP32 board support (File → Preferences → Additional Board Manager URLs)
- Install "esp32" by Espressif Systems
- Select board: Tools → Board → ESP32 Dev Module
- Open the CAN sniffer sketch:
arduino/can_sniffer/MCP2515/MCP2515.ino
- Select correct COM port
- Click "Upload"
⚙️ Performance Tuning
- Buffer Size: Increase for longer captures (default: 10,000 messages)
- Update Rate: Adjust GUI refresh rate (default: 100ms)
- Baudrate: Increase serial speed for higher throughput (up to 1,000,000 bps)
🆘 Getting Help