Pages: [1]   Go Down
Author Topic: Using Arduino as an OBD-II convertor  (Read 2014 times)
0 Members and 1 Guest are viewing this topic.
Maidstone, UK
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, first post, so I apologise that it's a question.

I'm currently studying for my third year Computer Science degree (in England), and have elected to create an application to create a virtual dashboard for a car on a phone/tablet. Of course this was before I found out that Microsoft has removed virtual serial devices from the WP8 SDK and from the Metro/Modern UI app SDK. This has somewhat scuppered my initial plan to simply use one of the many Bluetooth ELM327 OBD-II adapters out there, then communicate serially over Bluetooth.

What I would like to do is create a device which can take calls from the phone for information, and convert those into OBD-II commands, then pass the information back (or, better, monitor on the device, then send information directly when polled). This is to get around the lack of serial programming support limitation. For example:

Phone -> Request engine RPM -> device -> send 010C (OBD-II Engine RPM PID) -> OBD-II interface -> send RPM data -> device -> send back to phone -> Phone -> display

However, I'm not familiar with hardware design, so am not too sure where to start. Is this feasible (essentially to convert serial into some API for the phone to use over bluetooth or USB to poll the OBD data)? Unfortunately (to make it harder), as many European cars are not sold in the US, the CAN bus is not suitable, and it will have to be ISO9141 compatible, so I'm guessing the ELM327 chip would be the best option.

Any pointers (or something that'll do what I need it to do already)? I'm all ears!

Thanks in advance,
Simon
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 37
Posts: 1547
Pretending you know everything then you will learn nothing.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

See this shield
http://www.arduinodev.com/connect-arduino-to-a-car-through-obd-ii-port/
Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48556
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If you are in the car, why would you want to have to call the car to get information? If you are not in the car, why would you care?
Logged

the land of sun+snow
Offline Offline
Faraday Member
**
Karma: 159
Posts: 2895
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I found out that Microsoft has removed virtual serial devices from the WP8 SDK and from the Metro/Modern UI app SDK.

Certainly M$ hasn't disabled the ability of computers to run BT devices, or to plug in FTDI USB-to-RS232
chips, and access them via terminal emulator software [????]. I don't know about BT, but you should be
able to use some pre-existing tools to access RS232 serial ports, such as Visual C# or Visual Basic.
Logged

Maidstone, UK
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I found out that Microsoft has removed virtual serial devices from the WP8 SDK and from the Metro/Modern UI app SDK.

Certainly M$ hasn't disabled the ability of computers to run BT devices, or to plug in FTDI USB-to-RS232
chips, and access them via terminal emulator software [????]. I don't know about BT, but you should be
able to use some pre-existing tools to access RS232 serial ports, such as Visual C# or Visual Basic.

Hmm, according to the SDK, the System.IO.Ports (C#) is not available (missing assembly reference, but the System.dll reference is not available when adding references) when developing for Windows Phone, Windows RT or for Metro apps - normal desktop programs (outside the Modern UI environment) are unaffected, and Microsoft still allows serial connections on Windows 8. Just not within the app environment forced upon RT and WP8. Serial connections aren't supported at all, whether that's a real one, over Bluetooth, or a virtual one - the functionality is not included. Unless of course I'm very wrong and there's another way around this apparant limitation, in which case please enlighten me smiley.

If you are in the car, why would you want to have to call the car to get information? If you are not in the car, why would you care?

Call as in poll the OBD-II interface - not all vehicles display all that is monitored. One can garner a decent amount of additional information from the interface, including fuel consumption, engine load and so on, which could be pretty useful for cars without a trip computer.


Those are the kind of thing I'm after, but they only implement the CAN-bus, and so are not compatible with many Europe-only vehicles, including mine.
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48556
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Call as in poll the OBD-II interface
Ah. OK. Sorry to have misinterpreted.
Logged

the land of sun+snow
Offline Offline
Faraday Member
**
Karma: 159
Posts: 2895
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Hmm, according to the SDK, the System.IO.Ports (C#) is not available (missing assembly reference, but the System.dll reference is not available when adding references) when developing for Windows Phone, Windows RT or for Metro apps - normal desktop programs (outside the Modern UI environment) are unaffected, and Microsoft still allows serial connections on Windows 8. Just not within the app environment forced upon RT and WP8. Serial connections aren't supported at all, whether that's a real one, over Bluetooth, or a virtual one - the functionality is not included. Unless of course I'm very wrong and there's another way around this apparant limitation, in which case please enlighten me .

I guess the first thing to answer is, can you plug in an Arduino to a USB port and access it using the Terminal
window of the IDE. If you can, then W8 still supports serial devices, I would assume.

Logged

Pages: [1]   Go Up
Jump to: