Introduction: Use Your IPhone to Scan Vehicle Codes and Read Sensor Data

With the use of a very cheap (10$!) adapter you can use your iPhone as a diagnostic tool to figure out your vehicle's check engine light, clear the codes, or view sensors (such as temperatures, oxygen sensor readings, and vehicle speed). In this I will be demonstrating the use of 'FourStroke' iPhone App to pull data from a vehicle.

Prerequisites:

  • Your car must be 'OBD2' compatible. All cars sold in North America after 1996 should support this.
  • An OBD2 Wifi Adapter (either from eBay or use ones on Amazon linked in FourStroke's website). Most OBD2 Bluetooth adapters will not work with iPhone apps unless they specifically confirm compatibility.
  • An iPhone with iOS 7.1 or later and the free app FourStroke downloaded.

Note: There are other OBD iPhone solutions available so while this guide is limited to FourStroke the same basic steps are followed for most OBD mobile related applications. Also note that the cheaper adapters will generally work well but may have a choppy refresh rate when viewing sensor data. Other apps I suggest looking into: DashCommand and Rev

Step 1: Find Your Vehicles OBD Port

Once you have an adapter and iPhone ready to go you have to track down the OBD2 port. This port is almost always located within the driver's or front passenger's footwell, under the front dash. It is often black and is roughly 2 inches by 3/4 inch. A quick Google image search for OBD2 Port Location {Vehicle} will help, such as this: OBD2 Port Location Civic 2007

When located, plug in your adapter; whether the car is on or off should not matter.

Note: The OBD Port always has power provided so it may power up immediately. Some OBD2 Adapters will remain on which can drain your battery if left for days. Some of the more expensive adapters have an auto power off built in.

Step 2: Start the Vehicle and Connect to the Wifi Access Point

While the adapter is plugged in and powered it will start up a Wifi signal. Start the vehicle and then head over to your iPhone to get connected. Your iPhone needs to connect to the Wifi provided by the adapter. Check the wireless settings page and look for signals that are strong, unsecured, and have a name related to the device you purchased, or have keywords such as 'ELM', 'OBD2' or 'CLKDevices'. If you have trouble finding the wireless, try waiting a bit longer - some adapters may take longer to start up but generally most devices will have a signal in less than 10 seconds.

Step 3: Connect to the Vehicle Through FourStroke

Now that you are connected to the adapter's WiFi signal and the car is running, we are ready to work with the FourStroke app.

Open the app, it's default settings are common among most adapters. The connection icon will flash yellow if it's communicating with your adapter as part of its initialization. It should turn green within 10 seconds. If it refuses to turn green (fully connected) read the troubleshooting tips below.

If the WiFi icon turns green you are already connected and do not need to set up the connection settings.

Troubleshooting Tips: Adapters may have specific IP and PORT networking settings. In most cases these should be supplied with the purchase. If you have trouble connecting click the connection icon, then the wireless information symbol. Ensure that the port and IP address listed match your device. You can try to test the connection to get a better idea of what may be happening.

Step 4: Read Codes

Now that we have connected, it's straight forward to figure out what codes your vehicle is throwing.

To check codes:

  1. Tap Diagnostics
  2. Open Trouble Codes
  3. Wait for the vehicle to respond.
  4. Codes will be provided with an identifier and name, if any

Once you have codes, if you are not familiar with cars, you can Google the code (often in format P####) along with your vehicle make and keywords such as cost to get a general idea of what others may have been charged to fix the issue. You might come across an easy fix that can be done (such as a bad gas cap).

Stored Codes: Stored codes are active (current) codes within your system. Your check engine light will be illuminated if there are any stored codes.

Pending Codes: Pending codes are not yet confirmed and will not set off your check engine light. Your vehicle monitors for repeated errors, once past a set threshold it may either become a stored code or be removed from pending should the errors cease.

To clear codes:

You must have an existing code for the Clear codes button to enable, which will appear at the upper right corner. Tap Clear codes and then confirm that you wish to clear codes. You may want to do this if you want to see if the code goes away or if you recently had the car fixed for a certain issue.

Note: Emissions related data is reset when clearing codes, if you immediately go for an emissions test where they use the OBD system (rather than a tail pipe test) you may not pass. If you clear codes you should allow for a couple days of regular driving to reset the sensor states. The ability to check on these states is coming with the next version of the app.

Other:

OBD-Codes.com is a great resource for getting extra information out of codes if the app doesn't have much.

Step 5: Using Sensor Data (advanced)

Displaying sensor data as part of a visual gauge:

From the main page you can open Dashboard which will present an empty gauge. Tap the gauge to get a listing of available sensors. Support for certain sensors varies by vehicle, the sensors your vehicle supports will be in green. Select vehicle speed and tap back to the previous page. This will show you the vehicle's speed in an analog gauge, it should be the same as what is shown on your dash. This is great as an example to show that you get immediate response with the app and can be handy when trying to get a better idea of why a code is coming up.

For example, a code may be thrown due to low engine temperature. You could use the Coolant Temperature Sensor data to see if it adjusts at all. If it does not move at all after a cold start, it could tell you that the issue is a bad connection to the sensor or the sensor itself.

If you have a code related to an oxygen sensor, you could watch the output of the oxygen sensor to see if it fluctuates after the car is warm, between 0.1-0.9 volts which denotes a good sensor. This is a simplified example but shows that sensor readings can be used if you have an understanding of how a system works.

Freeze Frames:

If you have a code, Freeze Frames (located under Diagnostics) show the sensor readings within the car at the time the diagnostic code was thrown.