Jump to content

Land Rover OBDII PID Codes?


simonr

Recommended Posts

It's a long shot - but do any of you have a list of the diagnostic PID's for Land Rover vehicles? Most of the standard ones work - except Oil Temperature which should be 01 5C but it returns "NO DATA". Maybe the RRS does not measure it!

What I'd really like are the codes for the controls on the steering wheel. I'd like to build an interface between those and my iPod.

Any ideas?

Si

Link to comment
Share on other sites

I don't think the steering wheel controls will be exposed over the OBD interface? The best way to find out is to just log the messages, tap the controls a few times, and look for that in the log. It's how I did the CD changer stuff.

Link to comment
Share on other sites

Good plan. I think the controls are brought out as I have one of the IIDTool diagnostic boxes which uses the steering wheel controls for it's user interface. It also uses the LCD in the binnacle - so it might even be possible to write to that!

Si

Link to comment
Share on other sites

Could it be the actual CANbus is exposed in the diagnostics plug as well? Not sure how it is on the RRS, but that would allow you to interface with much more than the diagnostics interface does IIRC.

If you have the tools to do so, you could always do some sniffing of the IIDTool communication and reverse engineer how they send things to the screen :)

Link to comment
Share on other sites

The OBD port appears to have one connection to OBD and another to CAN. I'm using an ELM 327 based device to interrogate - but I've only used the auto protocol detection so far but I think it defaults to the OBD connection as if you ask it to dump all data - you get nothing.

It will respond to specific requests for PID's.

I don't (yet) know if the ELM is configured to only allow you to poll for data - or maybe the node it's connecting to only works that way. My experience of OBD is somewhat limited at the moment.

I have a plan to see if I can sniff the IIDTool - and my RovaCom box for that matter. I've had some success just using a storage scope - but think I need to invest in a logic analyser of some sort! It's very labourious calculating values by hand from traces of 1's & 0's.

Si

  • Haha 1
Link to comment
Share on other sites

I found a some software that basically compares two data dumps... Basically plug in an arduino plus canbus sheild turn the key wait a few minutes and turn it off,

Do the same again this time press a button (for example your steering), shut down and compare the two dumps, and with any luck you've found your button press

...that's the theory... You could probably do other bits the same way comparing dumps to work out engine temp oil pressure throttle position etc slowly working through

... I'll look for it again later if you want it

Rob

Link to comment
Share on other sites

The OBD port appears to have one connection to OBD and another to CAN. I'm using an ELM 327 based device to interrogate - but I've only used the auto protocol detection so far but I think it defaults to the OBD connection as if you ask it to dump all data - you get nothing.

It will respond to specific requests for PID's.

I don't (yet) know if the ELM is configured to only allow you to poll for data - or maybe the node it's connecting to only works that way. My experience of OBD is somewhat limited at the moment.

I have a plan to see if I can sniff the IIDTool - and my RovaCom box for that matter. I've had some success just using a storage scope - but think I need to invest in a logic analyser of some sort! It's very labourious calculating values by hand from traces of 1's & 0's.

Si

Yeah, that's what I was getting at. The ELM327 adapter won't let you do much outside normal diagnostics capabilities, as far as I know. It probably won't even have a connection to the CAN pins. The OBD line uses the CAN protocol as well (or K-Line in older vehicles), but a different bus usually.

I bought a CANBerry for a future project, but haven't tried it out yet. Seems like a pretty nice (and cheap!) solution for messing with CANbus. I'm sure you've got a Raspberry Pi or two kicking about :)

Link to comment
Share on other sites

The ELM seems happiest using CAN 500kb/s 11bit - though I'm not sure which pins it's using. However, you are probably right that it's on the OBD rather than 'proper' CAN bus and thus is going through an unhelpful Gateway Node.

I have a Sparkfun CAN Interface which seems to be supported by one or two of the sniffers - though getting it to work has largely defeated me!

I'm getting tempted to just build a hardware interface (differential / level conversion to hardware pins on the uController) and write my own 'UART' for it - at least then, I'm in control of exactly what it's up to. I hate 'Black boxes'!

I do have one RPI - but didn't really get on with it. (perhaps surprisingly) I'm not a fan of Linux (or Raspian) - it's too obfuscated and adds a layer of abstraction between you and what you are trying to achieve. Much prefer just writing in Assembler or C and compiling for the chip it's going to run on. Having said that, I've grown to like Arduino which doesn't add too much overhead but makes most stuff dead easy. When I have something really difficult to write - I'll look at it again! I'd like to write a Software Defined Radio for it one day for example.

Robert - that sounds good! Have a look for me!

Si

Link to comment
Share on other sites

I have a Sparkfun CAN Interface which seems to be supported by one or two of the sniffers - though getting it to work has largely defeated me!

I'm getting tempted to just build a hardware interface (differential / level conversion to hardware pins on the uController) and write my own 'UART' for it - at least then, I'm in control of exactly what it's up to. I hate 'Black boxes'!

I can understand that reasoning. I prefer to have the hardware side done by a "black box" mostly because I'm quite useless at the electronics bit. Software I get! :P

I do have one RPI - but didn't really get on with it. (perhaps surprisingly) I'm not a fan of Linux (or Raspian) - it's too obfuscated and adds a layer of abstraction between you and what you are trying to achieve. Much prefer just writing in Assembler or C and compiling for the chip it's going to run on. Having said that, I've grown to like Arduino which doesn't add too much overhead but makes most stuff dead easy. When I have something really difficult to write - I'll look at it again! I'd like to write a Software Defined Radio for it one day for example.

Yeah, fair enough. The Linux bit is the annoying bit, but also quite useful, as it allows you to use already existing software. For example, for my CD changer project, I could just interface with another program to do the actual music playing. I can't imagine having to do MP3/WMA decoding manually. And with GPIO you can do a little bit of hardware I/O. An Arduino is already getting a tad too low-level to my liking, too much useless stuff to do that should be handled by a library. Although I should really give it another go.

Link to comment
Share on other sites

  • 5 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We use cookies to ensure you get the best experience. By using our website you agree to our Cookie Policy