Car Scanner ELM OBD2 Setup
Car Scanner ELM OBD2 is one of the most popular and versatile diagnostic apps available for iOS and Android. It is an excellent tool for reading and clearing Check Engine Lights (DTCs), viewing live sensor data, and checking emissions readiness.
The WiCAN Pro acts as a high-speed wireless ELM327 adapter, making it fully compatible with the Car Scanner app via Wi-Fi or Bluetooth Low Energy (BLE).
Part 1: WiCAN Pro Setup
Before using Car Scanner, you must configure the WiCAN Pro's internal firmware to broadcast the correct protocol (ELM327) and activate the correct radio (Wi-Fi or BLE).
Accessing the Web UI
- Plug the WiCAN Pro into the Equinox EV's OBD2 port.
- On your phone or laptop, connect to the WiCAN's default Wi-Fi network (usually named
WiCAN-XXXX). - Open a web browser and go to
http://192.168.0.10(orhttp://wican.local).
Setting the Protocol
- In the WiCAN Web UI, navigate to the Settings tab.
- Look for the Protocol dropdown menu.
- Ensure it is set to ELM327 (Do not leave it on RealDash CAN or SocketCAN, or Car Scanner will fail to connect).
Configuring Radio Mode (Wi-Fi vs BLE)
- For Wi-Fi (Default/Recommended): Go to the Network tab. Leave the mode as AP (Access Point) or AP+Station. Ensure the TCP server is active on Port 35000.
- For BLE (Bluetooth Low Energy): Go to the Network tab. You must explicitly change the mode to enable BLE (e.g., changing from "AP" to a BLE-enabled mode, depending on your firmware version). Save and reboot the adapter.
Power Management (Crucial for Reverse Engineering)
- Go to the Settings tab and look for Power or Sleep settings.
- Temporarily increase or disable the Sleep After timer. You do not want the adapter going to sleep based on voltage drops while you are sitting parked trying to capture data logs. (Remember to set this back to a short time when you finish so you don't drain the EV's 12V battery!)
!NOTE If you prefer to use Bluetooth instead of Wi-Fi, ensure BLE Status is enabled in the Settings > BLE tab. Note that when a BLE connection is active, the WiCAN's Wi-Fi Access Point is temporarily disabled.
Phase 2: App Setup
- Download and open Car Scanner ELM OBD2 on your iOS or Android device.
- Tap the Settings (gear) icon in the top or bottom corner of the screen.
- Tap on Connection.
Part 2: Car Scanner Setup (Wi-Fi & BLE)
Critical Pre-Requisite: The Global B Gateway
Many vehicles have an electrical architecture which isolates the OBD2 port for cybersecurity. You may not be able to read CAN bus data while the car is off or in remote start. Before attempting any connection, you maybe required to physically enter the car with the key/fob and start the vehicle.
Option A: Wi-Fi Setup (Recommended for speed and stability)
- Connect your phone to the
WiCAN-XXXXWi-Fi network. (Note: Ensure your phone does not drop the connection because of "No Internet access." You may need to temporarily turn off cellular data or use Airplane Mode). - Open Car Scanner and tap the Gear Icon (Settings).
- Go to Connection -> Choose connection type.
- Select Wi-Fi.
- Set the IP address to
192.168.0.10and the Port to35000.
Option B: BLE Setup (Bluetooth Low Energy)
- Ensure your phone's Bluetooth is turned ON. (Do not try to pair the WiCAN Pro in your phone's standard Bluetooth menu; it must be paired directly inside the app).
- Open Car Scanner and tap the Gear Icon (Settings).
- Go to Connection -> Choose connection type.
- Select Bluetooth LE (4.0+).
- Tap Select device and choose the WiCAN Pro from the list of available BLE devices.
ECU Protocol Configuration (For Both Wi-Fi & BLE)
- In Car Scanner Settings, go to Adapter OBDII ELM327 -> Advanced Settings.
- Find the ECU Protocol dropdown.
- Change it to your vehicles Protocol, a common one is ISO 15765-4 CAN (11 bit ID, 500 Kbaud) (Protocol 6).
- Fallback: If connection fails, try ISO 15765-4 CAN (29 bit ID, 500 Kbaud) (Protocol 7), or set to Automatic.
- Go back to Settings -> Connection Profile and select your vehicle profile.
Phase 1: Connecting to Your Vehicle
- Ensure your vehicle's ignition is turned ON (engine running is preferred for live data).
- Return to the main dashboard of the Car Scanner app.
- Tap the large Connect button at the bottom of the screen.
- If this is your first time connecting, the app will prompt you to select your vehicle make and model profile. Choose the one that matches your vehicle to ensure custom sensors load correctly.
- The app will run through an initialization sequence. The connection icons at the top of the screen (Phone to ELM, ELM to ECU) should turn green.
Part 3: Extracting PIDs & Expressions (The 5-Phase Process)
Because Car Scanner hides its proprietary formulas, you must use the app's diagnostic trace log to capture the raw CAN traffic, reverse-engineer the math, and format it for the WiCAN Pro's standalone Automate (MQTT) tab.
Optional Alternative: Using Linux & socat (Wi-Fi Only)
When using Wi-Fi, instead of relying on the Car Scanner app's internal trace logs (Phases 1 & 2), you can use a Linux system as an intermediary between Car Scanner and the WiCAN Pro device. This allows you to view the traffic in real-time.
- Set up
socatrouting: On your Linux machine, run the following command to listen on port35000and forward the traffic to the WiCAN Pro's IP address (e.g.,192.168.30.162):socat -v TCP-LISTEN:35000,fork,reuseaddr TCP:192.168.30.162:35000 - Connect the App:* In the Car Scanner app's Wi-Fi connection settings, set the IP address to your Linux machine's IP address (leave the port as 35000).
- Read the Output: Once you connect, the -v flag in the command prints the raw ELM327 hex payloads directly to your Linux terminal. When you see your targeted sensor data, you can skip directly to Phase 3 without needing to export log files.
Phase 1: Isolate and Capture the Data
If you let Car Scanner run its default dashboard, the log will contain hundreds of different PIDs firing every second, making it impossible to read. You must force the app to ask the car only one question.
- Enable Trace Logging: * Open Car Scanner -> Settings -> Advanced Settings.
- Check Save ELM327 communication log. (Clear the old log if prompted).
- Connect to the Vehicle:
- Ensure the vehicle is running. Connect the app to the WiCAN Pro.
- Isolate the Sensor:
- Go to All Sensors on the main menu.
- Tap the Pause icon immediately so data stops polling.
- Tap the Filter/Gear icon at the top. Select Uncheck All.
- Search for your target sensor (e.g., HV Battery State of Charge or High Voltage Level) and check only that box.
- Record the Value:
- Unpause the data stream. Let it run for 5 to 10 seconds.
- Write down the exact number on the screen. (e.g., 82.4%).
- Disconnect:
- Hit pause, back out, and tap Disconnect so the app stops writing to the log.
Phase 2: Extract and Parse the Log
You will now pull the text file and find the exact ELM327 conversation between the app and the vehicle.
- Export the Log:
- Go to Settings -> Advanced Settings -> Send ELM327 communication log.
- Export it to a text editor on your phone or computer.
- Locate the Polling Loop:
- Scroll past the initial startup handshake (
AT Z, protocol selection, etc.). - Look for a repeating pattern. This is the app asking for your single sensor over and over.
Example Log Snippet:> AT SH 7E4 > 22 80 1E < 62 80 1E 20 30 - Scroll past the initial startup handshake (
Phase 3: Identify the AT Commands, PID, and Response
Break down the log snippet to get the variables you need.
- The Header (Target Module):
AT SH 7E4- The app is sending an "AT Set Header" command to target module
7E4(GM's typical EV Powertrain/Energy module).
- The app is sending an "AT Set Header" command to target module
- The Extended PID:
22 80 1E22is the UDS Service (Read Data).80 1Eis the specific DID (Data Identifier).
- The Response Data:
62 80 1E 20 3062means success.80 1Eechoes the PID.20 30is your raw hex data payload! (Byte A is20, Byte B is30).
Phase 4: Determine the Expression
You now have your raw hex data (20 30) and your reported display value (82.4). You need to find the mathematical bridge between them.
- Convert Hex to Decimal:
- Byte A (
20hex) = 32 (decimal) - Byte B (
30hex) = 48 (decimal)
- Byte A (
- Combine the Bytes (16-bit math):
- Standard OBD2 formula to combine two bytes:
(A * 256) + B. (32 * 256) + 48 = 8240
- Standard OBD2 formula to combine two bytes:
- Solve the Algebra:
- You know the raw decimal value is 8240, and the app displayed 82.4.
- The expression is simply dividing by 100.
- Formula:
((A * 256) + B) / 100
Phase 5: Translate to WiCAN for Home Assistant
Now that you have successfully cracked the sensor, format it for the WiCAN Web UI's Automate tab using zero-indexed byte arrays.
In WiCAN's byte array, the data bytes (A and B from Car Scanner) are typically found at positions B4 and B5.
In the WiCAN Automate -> Vehicle Groups menu, enter the following:
- Name:
hv_soc(This becomes your MQTT/Home Assistant entity ID) - Cycle (ms):
5000(Polls every 5 seconds) - Init:
ATSH7E4;(Must include the ATSH prefix and end with a semicolon) - PID:
22801E - Expression:
((B4*256)+B5)/100(Or using WiCAN's shorthand:[B4:B5]/100) - MQTT Dest: /homeassistant/wican/vehicle/pid_hv_soc (This becomes your MQTT/Home Assistant MQTT dest)*
Save the PID, ensure the Automate toggle is enabled, and the WiCAN will begin querying the vehicle independently and publishing the decoded data directly to your Home Assistant MQTT broker. You will need to create the coreesponding HA entity using the same MQTT Dest as in the Wican Pro.