I've been working on a custom J2534 Pass-Thru driver and firmware for the **WiCAN Pro** device. Wanted to share what I've built and get some feedback from the community.
### **What is it?**
A fully wireless J2534-1 compliant Pass-Thru interface using the WiCAN Pro hardware. No USB cables needed - connects over WiFi to your laptop while plugged into the OBD-II port.
### **Hardware**
- **WiCAN Pro** - ESP32-S3 based with 8MB PSRAM
- Built-in STN OBD chip for legacy protocol support
- WiFi AP mode (creates its own network) or Station mode (connects to your network)
### **Supported Protocols**
| Protocol | Status |
|----------|--------|
| CAN (ISO 15765) |
| ISO 15765 (UDS) |
| J1850 VPW (GM) |
| J1850 PWM (Ford) |
| ISO9141 (K-line) |
| ISO14230 (KWP2000) |
### **Key Features**
**Performance Optimizations:**
- **PSRAM buffers** - 128 message RX queue, 8KB ISO-TP buffer (vs typical 32 msg / 4KB)
- **TCP_NODELAY** - Disables Nagle's algorithm for lower latency
- **64KB socket buffers** - Handles WiFi latency variations without blocking
- **Write batching** - Consecutive frames sent as single TCP packet (critical for ECU reprogramming)
**J2534-2 Extended Protocol Support:**
- CAN_PS, SW_CAN_PS, CAN_CH1, CAN_CH2
- ISO15765_PS, SW_ISO15765_PS
- All mapped to base protocols automatically
**Other Features:**
- Periodic message support (TesterPresent, etc.)
- Flow control filter support
- Functional addressing (0x7DF broadcast with response collection)
- TX echo with proper RxStatus flags for subnet discovery
### **Current Status**
- Basic diagnostics:
- Reading DTCs:
- ECU identification:
- Flashing/reprogramming:
### **Known Limitations**
j1850 vpw 1x only
### **Download / Source**
GitHub: https://github.com/nightjoker7/wican-fw ... a-04-j2534
Includes:
- Custom firmware (.bin)
- Windows DLL (32-bit and 64-bit)
- Install script and registry entries
### **Why Wireless?**
For those wondering - being able to sit in the car with laptop on your lap, no cables running to the OBD port, is genuinely useful. Especially for testing while driving or when the OBD port location makes cables awkward.
Let me know if you have questions or want to try it out!