Torque is an engine diagnostics application for Android that allows you to directly monitor your car engine control unit (ECU) and retrieve various information from the sensors connected to it as well as use your phones internal GPS and accelerometer sensors to graph other information such as acceleration
Torque can be used to view any stored fault codes on your vehicles ECU, then, after a mechanic fixing the fault, it also can clear the fault codes allowing you to clear the ‘Check Engine’ light warning on your dashboard
Torque can use a multitude of OBD adapters, ranging from the cheap (and slightly buggy) adapters you can find on ebay, to the more reliable
Scantool.net’s OBDLink series of adapters, PLX Devices Kiwi Bluetooth, ScanTool.net’s bluetooth adapter andOBDKey which are the amongst the most reliable.
The adapters are used to interface your Android device to the vehicle engine control unit (ECU).
OBDLink MX, pictured above – one of the fastest and most compact adapters from scantool.net
Kiwi Bluetooth, pictured above – a good adapter from PLX devices
Generic bluetooth adapter from ebay, generally alright but some can suffer from build quality issues affecting reliability, and causing strange things to happen like engines refusing to start. Try to avoid if you can
PLX devices kiwi Wi-Fi OBD, good but you have to hack your phone for root access, the recently announced PLX Kiwi Bluetooth adapter is preferred as no modifications are required.
Torque can be downloaded from the Android market ad free, or you can try the ad-supported version. Torque works on android 1.5/1.6/2.0/2.1 or above!
The change log and version history for Torque can be viewed by clicking here.
Any car manufacturered from 2000 onwards (and quite a few from the mid ’90s) should have an OBD2 compliant diagnostics port installed. Check your manual or google if you are unsure if yours has one or where it is – some ports are hidden quite well under ashtrays, etc.
Torque can also upload in realtime data to the Torque viewer website so that you can view your recorded OBD data online
Some screenshots from Torque for Android are shown below (Click the image for full size view)
There is now a forum available to discuss Torque!
57 Responses to "Torque OBD 2 engine diagnostics"
That will be why I cant find it – am on a lowly HTC Hero running 1.5. Damn you HTC, where’s my update?!
Works great! I am using a Sprint Hero running a ported version of the Legend ROM. I am mostly just excited that it polls the sensors correctly, but I would love to see you expand this app to be all encompassing… like the IPhone REV app. =)
The program seems great however when using the GPS speedo on my Nexus One, it seems to jump quite frequently from the actual speed to something far more outrageous like 219mph for about 2 seconds… then come back to normal (60mph). I just purchased the bluetooth sensor and once it arrives I will try out the rest and should be purchasing it instead of running the ad supported app.
Also can I suggest perhaps a “medium” size for the gauges? When I flip it to landscape view, Large of course takes up the entire window, but I would like to have 2 gauges display and take it up.
The Best App in the market place
Always getting better win the updates
I just got the Pro today. Its awesome. Is there anyway you can get a more standard rpm gauge like to 8 or 9000. and is there way to add a rev limiter indicator like those blinking light once it hit a certain rpm. It would be awesome if you could. Maybe like a user alterable function or something. Even better would be like a knight rider dashboard. anyway keep up the good work.AWESOME AWESOME WORK
Sorry i mean 6 or 7000.. rpm
I’m driving a toyota tundra. I am not ablehnen to Gerti the faulte in the ECU. There is a known error of the rear wheel sensor, which stopps the fourwheel drive….
I do not find any listing of this error on my milestone
Just bought this app the other day. It’s now working for me. Motorola Droid, CyanognMod version 5.0.5.x, 1999 corvette, and OBDII from http://www.dealextreme.com/details.dx/sku.16921 (Mines the original clear/orange version – new one is blue).
I sent off some logs from my phone, via my gmail account. Hopefully they help debug my problem.
I meant to say not* working
Ian,
After seeing how great the support from you was (implementing the medium size displays as well as fixing the speedo) I went ahead and bought the app to support you. I have the bluetooth adapter you suggested and all is working. Im not getting correct readings on my boost levels (2008 mitsubishi lancer evolution) but im sure its something i will have to find a conversion for somewhere…. all in all great app!
Just a couple bugs to note:
When phone is in landscape mode and you press/hold to display options on a display (in order to move, delete or whatnot) you only get the option to “add display” and cannot move or delete. Once you rotate back to portrait mode it allows you to perform those features.
Also when you have it in landscape mode and scroll up (which is to the right on portrait) from the home screen (middle page) it will leave some visual issues on the side of the screen that has the dots to show what page you are on. For instance it will show the ODB connected icons but smeared all the way up and down the side of the screen.
Thanks again for the great app Ian!
Oh and just in case you might have a suggestion for the boost issue…. it displays at idle about -10 psi. At full boost I should be registering about 20+psi (a dyno here had it at peak 23psi) but it seems to stop on the gauge at around 10-14psi so I am guessing it just isnt calibrated properly for the car. Is there a way to adjust that?
I can’t seem to get it to connect to the OBD adapter. I bought the one pictured above (the bluetooth one). The top light lights up when I plug it into the OBD port on my 1998 Subaru Impreza. My phone is a Motorola Droid. It detects that the device is there but won’t connect. Please help, this seems like a great app.
@Corey The boost under-reading is more than likely an issue that the MAP sensor in the vehicle does not read high enough (the OBD max it can ever read is about 28psi), it is entirely possible that the map sensor itself stops earlier. I will have to have a look to see if there is another sensor in an extended part of the OBD spec that will give me a better value. I’ve got a bugfixed version coming out this week soon with some other issues fixed (mpg, drawing problems, etc)
@alex If you can use the ‘Send Comms Debug’ option after reproducing the problem then I can have a look to see what is going on
Thanks!
@alex. i have the same problem as you in the begining. I had to connect to the bluetooth using password 1234 in order to create a bind. Then i choosed it inside the setting inside the program.
Good to hear Ian… thanks again for looking into it. If you need any vehicle specific info let me know and I will do whatever I can to help. Also on the boost gauge it is defaulted to -10.8 even when its not connected to anything, is that how its supposed to be?
@alex… Wil is correct in that you must pair the device with your droid. So open your bluetooth settings and it should find the device (I believe it should be called “CBT” as that is what mine is called). Once you attempt to connect/pair it should ask for the 4 digit code and it is 1234. Once the device is paired, open Torque and go to settings. Down more than halfway is the setting “Device” and you will choose the CBT device. From there as long as your bluetooth is active and the OBD device is plugged into the car and the car is ON, it should connect and you will get readings. You may want to play around with the other settings like “Monitor mode”, “Faster Communication” and “Disable ELM327″…. till you find one that works best for your car.
@ian… sent comms debug.
i tried every combination of “faster communication”, “use monitor mode”, and “disable ELM327…”, and here’s what I got: with “disable…” on and the others off, it told me “cannot connect, check settings”; this also happened with all three off. Every other combination yielded “identifying ECU(s) in system” then a window appears and says something to the effect of “OBD adapter cannot talk to ECU despite being initialized correctly”
@alex Got the comms debug, thanks.
Turn Monitor Mode off, it’s an advanced option that should only be turned on once you know it works with your vehicle, also, make sure your vehicles ignition is turned ‘on’ when trying to connect as some ECUs power down when the ignition is off so a full connection cannot be made (it’s a security feature of the vehicle) – the engine does not have to be running, just the ignition ‘on’.
From the debug, Torque is able to see the adapter and can communicate with it, but when the adapter tries to talk to your ECU, it is not receiving a response. This is most likely due to the vehicles ignition being off, or the vehicle not having an OBD II capable bus, or the adapter not being able to autodetect the data bus type automatically.
I’m sorry it’s not working for you, however you have a similar problem to one other user that has contacted me recently. Could you let me know the year of manufacture of your vehicle and what type it is as this will help me pin down what is going wrong, Thanks!
@alex. @ian.
while i was using the program, i also notice that if you press back or home out of the program or improper exiting, the bluetooth connection will fail when you try to get back into the program. In which case, i found the simplest way is to press menu and exit which i think refresh the app. Dunno. just putting it out there. Also if you are using the Google dock. Connect before you put it in the dock or else it connects to the dock bluetooth in which case it wont allow you to connect either.
@ian
Great app! i would love to see some blinking light.
Since this is a great app, i am also planning to buy a 7 inch tablet to mount to car for data info. but all these tablets are on Android 1.6. @Ian, does this app support 1.6 at the moment or in the near future?
Unfortunately bluetooth isn’t exposed to developers in Android 1.6 – there is a back port available but it is hardware dependant so there will probably be problems with tablete. Having said that, 2.0+ has been out a while for various devices for some time and hopefully you should not have long at all to wait until the tablets catch up!
When that happens I fully intend to support tablets (and to also embed one in my dash)
@Alex Also if you can, try to connect with the engine actually running. I know on mine it wont connect to the ECU if I just have it to “on” and I actually had to kick over the engine for it to read the ECU.
@Ian I found another “bug”. The Raw Data display does not get live data. It seems to retrieve data as the device is loaded, but after that it does not poll for data. Other displays poll correctly.
Also I was wondering if the MPG estimate is using the correct calculation. I have the device displaying in MPH but the MPG it seems could be reading and calculating off kilometers per hour instead. Same also goes for the log outputs (csv format). The OBD Speed data isnt listed in MPH.
As a suggestion (and if you want I can assist in any way), If you added the ability to skin it with different gauge skins or a night feature (where it dims the screen a little and the guages have a darker background instead of the red), that would really be neat. Other than that possibly the ability to have a screen that has checkboxes of what parameters you want the log to contain including turbo boost would be nice.
THanks again Ian!
BTW… id be happy to donate more if possible to help make your development more worth your time. This app really has potential in the auto community to do very well. I know in the evo community we have been trying and waiting for other apps like Rev from Devtoaster on the Iphone, but it requires more expensive hardware and it costs a lot. Plus with more people using android now, the market it definately there.
@Corey Can you send me a comms debug after it has not ‘retrieved’ data for about 30 seconds? That’ll help me see what is going on…
MPG should be accurate for MAF based cars, the MAP based calculation was off by a lot but that was fixed this morning and will be out in an update this week if all goes well. It will ‘appear’ to over-read but it should be accurate, I will go over it once more just to check though.
Skins will be added, I was thinking about this but I need to get some time to develop it, my priorities at the moment are to get all the bugs out and make it reliable with the current feature base, then start adding /lots/ more features.
The biggest problem at the moment is that I’ve been waiting for a gearbox for my roadster for the last 3 months which is stuck at a mechanics after gaining an intermittent fault, and that I’ve been ‘borrowing’ my girlfriends car to do my testing on…. once I have my smart back, then expect a lot to happen on the app! Hopefully it will be back end of next week.
Hopefully the forums are working, so you can post your ideas there (or email me) then I can collate them and get coding!
@Ian, Ill definately ship you a log this afternoon on my drive home from work. Thanks!
@Ian, One more thing to note about the raw data not “retrieving”…. the OBDII adapter’s LED lights dont show anything but power while on that display. Once I swap to another display… they all light up and show its transmitting data.
@Ian… All the results I posted were with the engine on. I will play with it alittle more with the monitor mode deactivated. As far as the OBDII bus, I’m not sure what this is but I’m willing to help look up the OBDII specs for my car (1998 Subaru 2.5RS Impreza). What am I looking for, what protocols does it need to be compatible with?
@alex OBD-II is the standard used to talk to the ECU in your car, it is fairly common. I’ve done a bit of research on Subarus and it appears that some alarms can block communication with the ECU (you need to enter your PIN if you have one) before it will allow access, and unfortunately there also appear to be Subarus out there that do not support OBD-II even though they have the same plug. In these cars the protocol is called SSM-I or SSM-II, and unfortunately won’t work with the adapter. I’m no subaru expert however so you may get better explanations on a proper subaru forum
@corey I may have already fixed the data not retrieving problem then, once I’ve put the new version online have another look and see how it goes – I tried the latest test version last night on the data readout display and it seemed to go alright with no ‘hanging’.
Just uploaded a new version (1.0.48), hopefully it all works and I havent missed any blindingly obvious bugs!
@ian… “it appears that some alarms can block communication with the ECU (you need to enter your PIN if you have one) before it will allow access”. By PIN you don’t mean the PIN for the adapter, do you? What do you mean by alarms? I’ve posted my problem on a Subaru forum, so let’s see what we come up with.
Motorola Droid 2.1 on 2009 Hyundai Santa Fe.
I just got my bluetooth OBD module today. I can successfully pair my Droid with the module and successfully connects. But I don’t get any data displayed with the ignition on. I verified that I can get date using the PC software that came with the device so I know it’s working.
Can you explain what the lights on the device mean? I got zero documentation with it.
I mean Torque doesn’t display any data.
One more thing: I don’t see any Monitor Mode under the settings. This is all with the free version.
Hi, does the PC version allow you to save a raw data log file of everything from the start of connecting to the car to receiving data from it? I’m having real trouble trying to find out what is causing this as I can’t reproduce it at my end. The log file from the PC would be invaluable in helping find out what is going on as it would show me what initializations are being sent to the adapter, thanks!
Hm, actually, thinking about it I may have the PC software lying around somewhere on a CD (I havent actually looked at what came with my adapter yet). Which sofware did you use when it worked?
The lights are 1 for power(usually red), 2 for transmit and receive to the car OBD bus, and 2 for transmit and receive to the computer/phone you are connecting with
I got 5 different pieces of software on the CD. I tried ScanTool.net for Windows and wOBDCRAZY. Both of which get data just fine with the ignition on but not running. I don’t know about saving a log. I’ll can look more into that if you need.
The lights are somewhat less than helpful for me since they face the pedals. :^(
Good news! It appears that the ‘Unable to connect’ problem is indicative of the ELM chip not being able to automatically find the correct protocol, so it needs a little help. Hopefully there will be an update (after I have managed to test it) in the next few days that solves that, then I can move onto adding more features.
FWIW I sent you a connection log from this morning.
After sending the log I left Torque running on my way to meet my carpool. My Droid rebooted along the way. While I was waiting there I restarted Torque and very shortly after connecting the phone reset again.
Stock Droid 2.1 with free version of Torque.
Another thing:the text on the pop up dialogs is so small that I need a magnifying glass to read it.
After last nights update… Raw data is showing perfect. Thanks Ian!
Hi! a new update is up – hopefully this fixes the connectivity problems. Let me know (and send me some debug again) if it doesn’t work!
Thank Ian for this great OBD-II Android App. I got my Legend last week and bought bluetooth OBD-II connect to my Mazda 5. It works fine except getting Fuel Status and Fuel Pressure Data. I will buy ad free version when Taiwan Android paid market open. I would suggest can set use KiloMeter per litre in the preference. I also posted article in Taiwan’s famous Community , it’s traditional chinese.
New version works much better. Drove several times after work and it connected and displayed data every time. Upgraded to pay version.
One minor nit: Many of the digital displays show a value of “xx.y” except when y is a zero. Then it just displays “xx” . It’s a bit distracting to see the whole number jumping back and forth when the tenths digit goes between zero and some other value.
Cool! Sorted the displays out for you now too, you’ll get it in the next update that will be released in about a week(ish).
I really want to buy this app, buy cannot get the free one working. Obd device is paired, but connection fails (see below). I have Droid 2.1 on HTC Desire. All works ok on WinMo device with other software.
Log:
1272123035651 **** OBD Comms thread starting ****
1272123035651 **** Connecting to OBD via bluetooth ****
1272123035653 **** Connecting to OBD via bluetooth (1) ****
1272123041684 *** EXCEPTION:Service discovery failed ***
Service discovery failed android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:377)_ android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:201)_ org.prowl.torquefree.comms.OBD$CommsThread.run(OBD.java:353)_
I’m afraid I need the full logs sent direct via the email part of Torque to be able to do anything, also are you using the manufacturers firmware for the device or are you using a hacked from from somewhere?
I have just emailed you 2 * log files as suggested. I have not (yet) hacked my phone or bluetooth OBD. The phone is a UK Orange OEM ROM, and OBDroid manages to connect to the OBD dongle, so I think all is well with the hardware. I have rebooted both phone and car, but still no joy. FYI… The little lights on the OBD dongle do not light up when Torque tries to connect (the power one is lit though). I have tried with the engine on, just the ignition, and no ignition at all.
Please help – I really want this App! Everything on it looks awesome, and is just what I have been looking for.
Let me know if there is any other debug or info you need.
….do I need to change the Port in the settings? This is as default 35000?
Thanks for taking the time to send the debugs!
No the port settings and IP settings are for the WiFi adapters, which you won’t be using without a hacked rom so you’ll be only needing to set the correct device up in the bluetooth section of the settings and thats all the setting up you should need to do.
It looks like the bluetooth device is either not setup correctly, already connected to another device, isn’t the correct device selected in the settings as Torque can’t complete the initial connection to the interface device over bluetooth.
I would troubleshoot by deleting any paired instance from your phone completely, then resetting the bluetooth device by removing and reseating it in the diagnostic socket.
Then without using any other device or software with the adapter(make sure ‘voyager’ is disabled if you have it installed) I would re-pair it with the android phone. After that, restart Torque, go into the settings and re-select the device in there even if it is already selected.
Torque at this point will probably be trying to reconnect to the car anyway, but if it is not, just hit ‘connect’ from the menu. Hopefully things should start working.
In the unlikely event it doesnt then I’ll need to add some more debugging and send out an update to see what is happening with your adapter
Thanks for the tips. I will try tomorrow, and let you know what happens. I will also confirm which protocol my OBD bit actually uses, in case that helps.
I am also having the unable to connect issue, using the free version. I would like to see it work before buying it. From other posts, it sounds like, you were working a fix for this already. The Elm device is paired, but will not connect. I am going to try it with a laptop next.
I would be nice if you could add data for the o2 sensors.
Sorry, wanted to say, it would be nice if you could add data for the o2 sensors….
Great app. I like it a lot. Thought id share a few suggestions.
Make it so we can adjust the scale on the dials. 14000 rpm is irrelevant to me…
Add a setting to keep the notification bar.
Make it so we can switch to other apps, then switch bake to torque and still be connected.
I feel like this is more of a problem with the droid bluetooth stack, but oftentimes after torque connects, if the app is restarted, it will not reconnect until the obdii reader has been unpaired and repaired.
Moto droid 2.1, elm327 obdii from dealsextreme, 2003 subaru outback.
Hi!, An RPM ‘scale’ setting has been added, and the app is now marked for being persistent to solve the background running issue, I just need to complete testing before releasing those features. I may move to the main notification bar in a later release.
No joy! Sent you the logs about 10 minutes ago. I deleted all BT devices and rebooted phone. Started the car with OBD bit connected and paired with the phone. Started app, reselected the OBD device, but it still could not connect. Tried restarting everything and changed the Fast options, but still no go. Interestingly though…. after I had finished, and quited the app, my phone would not turn BT off – I had to power the phone off and on again???
Ian, I love your app, it works, and I appreciate your dedication. However, I have a big wish-list suggestion that would add many capabilities for lots of sensors on lots of cars.
I wish we could enter meta-data for make- and model- specific codes, with time intervals and with scaling factors like you provided today for the tachometer. For example, I want to monitor the Toyota Prius Motor Generators (MG1 and MG2) RPM, variable valve timing advance, Hybrid battery amperes, etc. This would also address other peoples wishes, like O2 sensors, etc.
I am using a Motorola Droid 2.1, with an elm327 Bluetooth dongle.
Thanks!
Craig
@BigMat Okay, thats a bit strange – the debug is basically saying that the android phone cannot see the device you’ve told it to connect to, which shouldn’t happen, and it’s an OS thing outside of Torque (I merely connect using the bluetooth stack). I’ve added the extra debug I need to see exactly what is going on in, and it’ll be in the next release, I’m afraid there’s nothing I can do until I’ve finished testing this release and put the update on the market.
@Craig Looks like I’ll have to think of something to let people add their own then – can you point me to some model specific codes if you are able, so I can better understand what yourself (and others) are likely to want so I can get it right when I put it in? Thanks!
My ELM327 is on the way. I will buy the donate$ version amd rate it after i have tested the functionality. I would gladly pay more if it works like it says. I have A Google N1 (rooted) /w Android 2.1.1 running a Custom Desire rom with fully funtional hardware. I will test it on this and Cyan’s 5.0.6 ROM. update l8tr.
Hey all, comments are getting a bit big for this article now so if you could use the forums instead that would be great and probably more useful for everyone! Thanks!
The forums are at:
http://torque-bhp.com/forums/?wpforumaction=viewforum&f=1.0