You guys are awesome, I can't believe how much interest and support you have.
I will attempt to answer your questions.
Robin - is the first byte alway 0x80? This first byte is the MID (message identifier) which is node specific. If this was a large vehicle with many distributed functions and ECUs then the answer to your question is no - many other nodes would be present each with a unique MID. In my case this is a stand alone engine in a boat - it only has the one ECU which I'm wanting to connect to. I haven't done so yet but I rather assume that it will carry the MID of 0x80. I intend to connect to the engine using the SAM325 interpreter connected to my mac next visit - assuming the connection works I should know a lot more about how Volvo Penta have interpreted the J1587 standard.
Robin - can other bytes in the message carry the value 0x80? I would say yes it can. The PID byte that follows the MID byte identifies which engine parameter is coming next may also have a value of 0x80, I see no reason why the data bytes also should contain 0x80 - the engine load for example is ranged 0-200 which equates to 0-100%, so when the engine load is 64% the data byte for engine load will also be 0x80.
J-M-L
The SAE J1587 is indeed more complex than I described, you are correct. I had simplified my interpretation of it as I'm only after 3 bits of data from my ECU and intend to ignore the rest. I'm after RPM, Engine load and turbo boost pressure. I may, in time, try and pull one or two other bits of data, but for now that's it.
The PID for those three values should be 0x5C engine load - with 1 byte of data ranged 0-200 to represent 0-100% load. 0xBE engine RPM - with two bytes of data least significant byte first. The byte contains the engine rpm in terms of 0.25 rpm per count. So if the data bytes are E0 2E, the actual value is 0x2EE0 which is 12000 (decimal), multiply by 0.25 = 300rpm. Finally I want engine turbo boost, and this I will have to find by trial and error. It may be PID 0x66 with a single data byte or it might be the extended range boost pressure which is a page two parameter FF B7. I will scan for that with my laptop to see which.
There are some "special" parameters that permit multiple parameter transmissions potential constructed using very many messages. Given the very old and simple nature of my engine ECU I'm betting these will not be used - even so I'm checking for the special PID value 0xC0 following the MID and discard any messages with that PID.
More will become apparent after my next visit to the boat where I hope to connect my laptop and scan and log the data messages.
sterretje - I have attached the SAM325 data sheet on an earlier post, that contains some useful explanations and examples. This publication is also good http://publications.lib.chalmers.se/records/fulltext/153343.pdf from 2011, it's a much later engine than mine as this one does indeed have more than 1 ECU (more than 0x80). I did manage to find a copy of the SAE J1587 protocol but to be honest JML has pulled out most of the salient bits.
Someone asked if this is for 'professional capacity' - no not all, it's for my boat and I thought of the project having seen a volvo penta engineer plug a hand held scanner in and reading some useful bits of data that I don't have gauges for - e.g. boost.
Regards all
Tim