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.

  1. Access the WiCAN Pro Web UI.
  2. Navigate to Settings > CAN.
  3. Configure the following fields:
    • CAN Bitrate: Set this to match your vehicle's bus speed (e.g., 500K).
    • CAN Mode: Choose Normal if you plan to send data (cansend), or Silent if you only want to passively sniff.
    • Port Type: TCP (Recommended for reliable serial-over-network streaming).
    • TCP/UDP Port: 3333 (Default).
    • Protocol: Select slcan.
  4. 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.