SocketCAN & Linux Integration (slcan)
For advanced reverse engineering, Linux is the ultimate playground. The Linux kernel features a built-in CAN networking stack called SocketCAN.
By putting the WiCAN Pro into slcan mode, you can map its wireless network stream to a virtual network interface (like slcan0) on your Linux machine (Ubuntu, Kali, Raspberry Pi, etc.). This gives you full access to the powerful can-utils suite (candump, cansend, cansniffer).
Phase 1: WiCAN Pro Configuration
Before connecting your Linux machine, you must configure the WiCAN Pro to broadcast the correct protocol.
- Access the WiCAN Pro Web UI.
- Navigate to Settings > CAN.
- Configure the following fields:
- CAN Bitrate: Set this to match your vehicle's bus speed (e.g.,
500K). - CAN Mode: Choose
Normalif you plan to send data (cansend), orSilentif you only want to passively sniff. - Port Type:
TCP(Recommended for reliable serial-over-network streaming). - TCP/UDP Port:
3333(Default). - Protocol: Select
slcan.
- CAN Bitrate: Set this to match your vehicle's bus speed (e.g.,
- Click Submit Changes and allow the device to reboot.
Phase 2: Linux Setup (socat & slcand)
Open a terminal on your Linux machine. You will need the socat and can-utils packages installed. On Debian/Ubuntu-based systems, you can install them via:
sudo apt update
sudo apt install socat can-utils
1. Create the Virtual Serial Port
We use socat to connect to the WiCAN's IP address and map that TCP stream to a fake serial port on your computer (/dev/ttyWiCAN).
Replace 192.168.0.10 with your WiCAN's actual IP address:
sudo socat pty,link=/dev/ttyWiCAN,raw,echo=0 tcp:192.168.0.10:3333 &
2. Attach the slcan Daemon
Now that Linux sees a "serial port" at /dev/ttyWiCAN, we tell the slcand daemon to attach to it and create a CAN network interface named slcan
sudo slcand -o -c -s6 /dev/ttyWiCAN slcan0
(Note: -s6 tells the daemon the speed is 500kbps, -o opens the port, and -c closes it when the daemon stops).
3. Bring the Interface Up
Finally, bring the new CAN network interface online just like you would a standard ethernet or Wi-Fi interface.
sudo ip link set up slcan0
Phase 3: Using can-utils
With slcan0 successfully running, your Linux machine now has direct, low-level access to the vehicle's CAN bus.
Sniffing Traffic (candump) To see a live stream of all raw CAN frames flying across the bus:
candump slcan0
To view a colorized, live-updating screen of CAN traffic (excellent for finding which bytes change when you press a button in the car):
cansniffer -c slcan0
Sending Data (cansend) If your WiCAN Pro is in Normal mode, you can inject raw frames onto the bus.
Example: Sending a standard OBD2 Service 01 PID 0C (Engine RPM) request to the primary ECU:
cansend slcan0 7DF#02010C0000000000
!WARNING Disable Automate: If you are using SocketCAN to reverse-engineer data, make sure you disable the "Automate" engine in the WiCAN Web UI. Having the WiCAN Pro automatically request PIDs in the background while you are simultaneously trying to use candump will result in a chaotic, confusing data stream.