With an application such as Rev for iPhone and a ELM327, you can wirelessly obtain a lot of information from your car. The App Store also has Rev Lite which lacks a lot of feature but can be useful to just test the connectivity before paying for a more expensive app.
Due to limitations in the iOS Bluetooth stack, make sure you buy the Wi-Fi version of it on eBay and not the Bluetooth one, unless you have jailbroken your phone and really know what you’re doing.
ELM327 can be ordered on eBay, most of them ship directly from Asia and should cost under $50 with shipping.
Connect the ELM327 to your car.
On your iOS device, in the Settings, chose to connect to a Wi-Fi network. My ELM327 is called “CLKDevices” but your mileage may vary. It should be relatively easy to find out which one it is unless you’re in a very Wi-Fi heavy area, in which case you can just drive a bit down the road and see what name hasn’t disappeared.
Once connected to that Wi-Fi network, click the small blue arrow to go to the advanced settings for it. Set the IP Address to Static. Configure the IP address to 192.168.0.123 and the Subnet Mask to 255.255.255.0. Then, go back and exit the settings. Other guides/videos might tell you to configure an IP as a “router”. That is not only useless but annoying as it would mean your iPhone would attempt to join the Internet through your ELM327 and any data would not come through as it’s connected to your car. Don’t set a router.
Start your car. The OBD-II port was providing power to the ELM327 but in some cases you will not be able to retrieve any data from it if the car is not started.
In your App, configure the connection to use a custom TCP connection with IP 192.168.0.10 and TCP Port 35000.
Enjoy reading all this information on your car better and cheaper than by using the crappy scanners they sell in stores.