[help needed] SAE J1850 - PCI bus

Hardware inside and outside of the ECU
Post Reply
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

SAE J1850 - PCI bus

Post by AndreyB »

The Neon uses SAE J1850 which Chrysler calls PCI bus (not the PCI bus in your desktop), I believe the instrument cluster is driven by this bus.

See http://www.spectroscopyonline.com/spectroscopy/article/articleDetail.jsp?id=668789

So far I've found a number of decoding chips but all of them are not really available new, most are obsolete.
HIP7010 AU5780 MSM6636

AU5780 is obsolete but still available from China for cheap, and it's the same SOIC-8 package us out CAN chips. Need to check if I am really lucky and it uses the same pinout so that I can drop it in place of CAN...

Is anyone aware of a current SAE J1850 chip?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: SAE J1850 - PCI bus

Post by puff »

you are not lucky. the pinout is different ;-(

quick goggling:
https://www.google.ru/search?client=safari&rls=en&q=sae+j1850+transceiver&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=STliVNuXNOeWwAO25IDoDw&gws_rd=ssl
returns
AU5783, HIP7020, MSM6636
oh. there's one 'sweet' chip - check this: https://www.sparkfun.com/datasheets/Widgets/stn1110-ds.pdf
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Tomin
Posts: 39
Joined: Fri Oct 18, 2013 8:03 pm

Re: SAE J1850 - PCI bus

Post by Tomin »

You could use ELM327, STN1100, no ?
There is a simple chip or you can bye whole product of OBD interface (with RS232).
It has simple AT commands for driving.
Last edited by Tomin on Fri Dec 12, 2014 9:47 pm, edited 1 time in total.
Tomas
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

Tomin wrote:You could use ELM327, STN1100, no ?
There are simple chip or whole product of OBD interface (with RS232).
I am not sure if that's an option
a) OBD is a protocol one level above PCI. In order to control the gauge cluster I need to send some kind of custom message, not sure if this is possible within OBD or ELM327
b) the real chips are pretty expensive (~$20+). 99% the eBay devices use fake chips with firmware of questionable legality. I guess this is not a huge issue after all.

So I guess maybe getting in touch with these companies and inquiring what my options are is an option. For now I've decided to ignore PCI, it simply seems to be too much effort for a dead (?) technology.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Tomin
Posts: 39
Joined: Fri Oct 18, 2013 8:03 pm

Re: SAE J1850 - PCI bus

Post by Tomin »

I think there are no licence fee in j1850, so there should not be any trouble. Chinese fakes are worst, but Vpw is not such critical like Ford's pwm and it could woks.
Elm can send lower layer packets with no relation to OBD protocol. It will autom. calculate crc on every packet, but whole packet could be under your control. See ATSH command. ATR0 turns off receiving of answers, so it switches elm to simple transciever.

Tomin
Tomas
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

Tomin wrote:Elm can send lower layer packets with no relation to OBD protocol. It will autom. calculate crc on every packet, but whole packet could be under your control. See ATSH command. ATR0 turns off receiving of answers, so it switches elm to simple transciever.
Good to know! Sounds like I should do some googling and learn more about this. I actually have a ELM clone I have not unpacked yet, I guess I might unpack it tonight :)

Any change you would be available to help with finding anything specific to my 2003 neon? I guess my 1st step would be receiving RPM just to confirm everything works, and once I do that my second step would be to send out fake RPM packet and see if my tachometer would react.

just a random page with some links for me to read:
https://www.scantool.net/forum/index.php?topic=1087.0
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Tomin
Posts: 39
Joined: Fri Oct 18, 2013 8:03 pm

Re: SAE J1850 - PCI bus

Post by Tomin »

You found very nice start page for you. I do not have any skills in vpw bus, but i do have knowledge in obd, can, ford pwm and Elm chip. I can help with it.
You should study Elm327's pdf. There are very usufull and simple basic informations. What info is not on such page is you should first set approp. comm.protocol. See on ATSPx. For monitoring packets is ATH1 and then ATMA

Tomin
Tomas
Tomin
Posts: 39
Joined: Fri Oct 18, 2013 8:03 pm

Re: SAE J1850 - PCI bus

Post by Tomin »

Michael created AVR firmware compatible with ELM command set
and it is for j1850/vpw. It is open source.
http://www.mictronics.de/projects/j1850-vpw-interface/
Tomas
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

Tomin wrote:Michael created AVR firmware compatible with ELM command set
and it is for j1850/vpw. It is open source.
http://www.mictronics.de/projects/j1850-vpw-interface/
This might be pretty cool, thank you for the link!

I have http://www.ebay.com/itm/290941249230 - it says "V1.5 ELM327 OBD2 Bluetooth Car Wireless Scanner"

I've unpacked it, plugged it into the car, got a virtual COM port with "OBDII" name. Opened putty, sent "@1" for "display the device description" according to http://elmelectronics.com/ELM327/AT_Commands.pdf and got nothing or ">1" in response.

Will play with this more tomorrow hopefully, I am trying to do too many things simultaneously and do not get much done :( I would appreciate any little help, from some free/trial software I can use to see anything OBD or switch it to non-OBD mode to the full command sequence to sniff on PCI level.

Sorry I am so bad with time management, I've made some progress soldering the board with on-board chip in the meantime :)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Tomin
Posts: 39
Joined: Fri Oct 18, 2013 8:03 pm

Re: SAE J1850 - PCI bus

Post by Tomin »

set protocol to VPW:
ATSP2 + enter

get ident string:
AT@1 + enter

monitor vpw bus
ATH1 +enter (to see header +crc bytes, else only data from bytes will be shown)
ATMA +enter (to start monitoring)

...wait for incomming messages ...

stop monitor mode simply by press ENTER or send any other character
Tomas
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

Tomin wrote:set protocol to VPW:
ATSP2 + enter

get ident string:
AT@1 + enter

monitor vpw bus
ATH1 +enter (to see header +crc bytes, else only data from bytes will be shown)
ATMA +enter (to start monitoring)

...wait for incomming messages ...
Ohh, so I was missing the mandatory "AT" prefix.

These commands are HUGE help, thank you! You've saved at least an hour of time here.

I've recorded the data flow with my 1.5 and Nikita's 1.4
Mine:

Code: Select all

0A 01 61 <DATA ERROR
2D 58 08 A8 
A5 3E 3F 57 
10 11 3D 00 00 26 8F 
F0 0E 35 36 30 38 DE 
5D 00 04 6D 00 E5 BB 
10 11 52 00 00 24 03 
B1 00 FA <DATA ERROR
D1 01 02 00 00 00 19 
2D 28 02 51 
10 11 12 00 00 23 C4 
5A 80 40 08 91 
60 FF 84 B2 
1A 00 00 00 6B 06 
10 10 7F 00 00 23 3F 
35 01 88 D2 
10 10 3E 00 00 23 36 
5D 00 03 5A 00 AD 16 
Full file

and Nikita's

Code: Select all

0A007C<DATA ERROR
2D580040
B100FA<DATA ERROR
100CD00000254A
1A00000064BD
100CCD00002520
350188D2
100CCC000025BD
5D000273007FFA
100CCD00002520
100CD1000025D7
CD523531
1A00000064BD
Full file

Note the difference with spaces/no spaces, but that's minor.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

So, Nikita has some commercial Android app which was showing some gauges in real time - RPM, MAP etc. Do I understand right that the live data is NOT part of ODB, they are actually parsing vehicle-specific messages? Or do I get this wrong?

Does any software capable of gauge display come with source code? I am interested in decoding the messages obviously. Once I know which packet is RPM, I would like to try sending a fake RPM packet out.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Tomin
Posts: 39
Joined: Fri Oct 18, 2013 8:03 pm

Re: SAE J1850 - PCI bus

Post by Tomin »

Yes, such packets are broadcasts and are not part of OBD. OBD was created mainly for monitor of polution system only. There are some types of cars where is some bus for broadcasts and for profi diag, but is NOT conform to OBD protocol.
Try download J2178 pdfs (hope i am right in this number)

There is one thing what could be a problem - in-frame response. If some device will need data in IFR, you will not be able to send such packets with ELM327. Try to find on the net some specific info about format of packets for gauges or similar in your car.

Tomin
Last edited by Tomin on Sun Dec 21, 2014 10:30 pm, edited 2 times in total.
Tomas
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: SAE J1850 - PCI bus

Post by AndreyB »

I've found the packet info, this matches my logs:

http://www.kolumbus.fi/juha.niinikoski/J1850/Jeep_Cherokee_PCI_bus_protocol.rtf
Message 0x10 Transmission RPM & MAP
10 1C D3 17 D3 3A B9
[0] = message type
[1],[2] = engine RPM, example 1C D3 = 7379, 7379/4 = 1844,75 RPM
[3],[4] = transmission output RPM, example 17 D3, scaling as above
[5] = MAP, example 0x3A = 58 kPa
[6] = CRC
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Post Reply