Connect your dongle¶
canair reaches the CAN bus through an adapter — a WiCAN dongle, or a generic ELM327 clone — it never talks CAN directly. This page gets your computer talking to the dongle and confirms it's usable.
1. Plug in and power up¶
Plug the WiCAN into the vehicle's OBD-II port and switch the car to ignition/accessory (so the ECUs are awake). The dongle powers from the port.
2. Get on the same network¶
Two options:
- Access-point mode — the WiCAN broadcasts its own
WiCAN_xxxxWiFi network. Join it; the dongle is reachable at192.168.80.1(canair's default when no address is configured). - Your LAN — use the WiCAN web UI to put the dongle on your home WiFi. It then gets a normal LAN IP you point canair at. This is the more convenient setup for repeated sessions.
3. Tell canair the address¶
Edit ~/.config/canair/config.yaml or use canair config set:
Any command takes --wican home|vpn|<ip> to pick which device to use. Each
device can carry its own transport (canair config set devices.vpn.transport
wican-ws), and when the chosen device is unreachable canair auto-falls-back to
the others (disable per-command with --no-fallback) — including canair
status, which therefore reports the device a live command would really use.
Add --wait to any live command to block until the device comes online and then
start — handy for canair monitor @driving --save --wait, which also keeps
reconnecting if the link drops mid-session. config.example.yaml in the repo
documents every key; see also the config reference.
4. Pro vs. classic¶
canair supports both the WiCAN Pro and the regular classic (non-Pro)
WiCAN. The default is pro; if you have a classic, tell canair so it cleanly
refuses Pro-only features instead of failing against the device:
Pro-only features: AutoPID device sync (wican autopid upload/download/
diff), wican mode set, and the wican-ws WebSocket transport. All the core
reverse-engineering — query, scan, discover, decode, DTCs, sniff, and generating
AutoPID JSON — works on both over the default raw-SLCAN transport.
Using a generic ELM327 clone (no WiCAN)¶
Don't have a WiCAN? A generic WiFi ELM327 adapter (Kiwi, vLinker, OBDLink, or
any no-name $10 clone) works over the elm327-tcp transport — a plain TCP
socket to the dongle's ELM327 terminal, no WiCAN required:
canair config set devices.clone.host 192.168.0.10 # the dongle's WiFi IP
canair config set devices.clone.transport elm327-tcp
canair config set devices.clone.port 35000 # most WiFi clones use 35000
canair config set default_wican clone
canair status # confirm it's reachable
Join the dongle's WiFi network first (many clones host their own access point).
The ELM327 protocol engine is shared with wican-ws, so every canair command
works the same — the dongle performs ISO-TP. There's no HTTP config API on a
generic clone, so canair status reports transport reachability by probing the
ELM socket directly (no device/firmware block).
Third-party dongles are best-effort
The WiCAN is the recommended and best-tested adapter for this project. Generic ELM327 clones vary wildly in firmware quality and their reliability cannot be guaranteed — cheap clones are especially likely to struggle with newer vehicles, which lean heavily on long multi-frame ISO-TP responses and extended (29-bit) addressing that many clones handle poorly or not at all. If reads are flaky, truncated, or a clone can't reach an ECU, that's usually the adapter, not canair — try a WiCAN before filing a bug.
Want to try canair with no hardware at all? See Offline testing with ELM327-Emulator.
5. Confirm it's working¶
canair config # config locations, WiCAN model + addresses, resolved transport
canair status # what am I talking to, in what mode, is it reachable?
If canair status reports a reachable device, you're ready. New to the bundled
example car? Go to Read live data. Building a profile for your
own car? Jump to Bring your own car.