Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opel Vivaro 2013 (like Renault Trafic 2 PH3) - CAN line issue for ELM327 Bluetooth (K line works ok) #415

Closed
djsweat opened this issue Jul 14, 2020 · 6 comments

Comments

@djsweat
Copy link

djsweat commented Jul 14, 2020

Hello,
I have an error connecting the CAN network on the car: Opel Vivaro 2013, similar to Renault Trafic 2,

I have 2 devices elm327, both interfaces on Bluetooth, with STN1170 chip and with PIC18F25K80 chip, both devices works well for OBD2 but only on the K line modules on my car, so I can see and edit the SRS airbag module and UCH module, tried on Android and PC. For example I could activate 'Follow me Home' option in UCH and I could see the resistance of the airbags in the SRS airbag module, and also other information like keys code etc...

Unfortunately no CAN line modules are available, the CAN line is working because the OBD2 diagnostic is working in the Torque app, ScanTool and other OBD2 app. I tried on PC and Android,

In DDT4ALL the CAN line generates the same result on searching: CAN error and 0 modules. I tried to increase the response time, 200, 400, 600, 800 and 1000 ms but it doesn't work, Also I open the ecu data base individual without results. I also search the forum for other topics and I didn't find the same error I have,

I think the issue is DDT4ALL can not communicate with my CAN line network and I guess the CAN initialization string is the reason but I do not know how to check, and please if you can help me with an idea what could i do?

The OBD2 connector have next PINs wired: 3,4,5,6,7, 11,12,13,14, 16.

Regards,

@Marianpol
Copy link

Marianpol commented Jul 14, 2020

I know what the issue is because I faced it myself on my Lagnua 2 PH 2.

Your car have CAN 250 kbps not CAN 500 kbps like most of the cars equipped with CAN.
CAN 250 kbps is set up by ELM command AT SP 8 and CAN 500 kbps is set up by AT SP 6.

In DDT4ALL, CAN protocol baudrate is determined by this line in the module file (CAN 500 kbps):
<CAN BaudRate="500000" Multipoint="1">

CAN 250 kbps:
<CAN BaudRate="250000" Multipoint="1">

But not all files, that are for CAN 250 kbps modules, have this exact line. In some files, like in files for your modules, this line is a little bit different:
<CAN BaudRate="10400" Multipoint="1">

DDT4ALL code checks, if baudrate in this line is 250000, which is not true, so it selects wrong CAN protocol CAN 500 kbps with ELM command AT SP 6.

And thats the problem. DDT4ALL code has no exception for this type of baudrate description.

You can try to use DDT mode in PyRen instead of DDT4ALL.

@Marianpol
Copy link

Marianpol commented Jul 14, 2020

I dived a little deeper into this problem and I solved it.

In ecu.py change this line:
if self.baudrate == 250000 to if self.baudrate == 250000 or self.baudrate == 10400:

And a line below:
ecu_conf['brp'] = 1 to ecu_conf['brp'] = "1"

@djsweat
Copy link
Author

djsweat commented Jul 14, 2020

Thanks for the idea, I tried the changes, but the CAN line didn't work.
Your answer was good for me because I tried to change the CAN speed in the "elm.py" file and I replaced all the values like "AT SP 6" with "AT SP 8", so now ELM works with the speed of 250000, with this change, I managed to see 3 ecu-s in the automatic search and others in the manual selection.
:)
Greetings

@KarelSvo
Copy link
Contributor

KarelSvo commented Aug 30, 2020

I dived a little deeper into this problem and I solved it.

In ecu.py change this line:
if self.baudrate == 250000 to if self.baudrate == 250000 or self.baudrate == 10400:

And a line below:
ecu_conf['brp'] = 1 to ecu_conf['brp'] = "1"

Hi @Marianpol
In pyren, tcom 155 clio 4 shows MFD ecu is 500kbps brp 0.
The ddt4all MFD file shows CAN BaudRate = "10400" Multipoint = "1" 250kbps brp1 and selects SP8.
How does pyren choose in ddt mode?
How can ddt4all select the correct SP6 protocol in this example?

@Marianpol
Copy link

Hi @Marianpol
In pyren, tcom 155 clio 4 shows MFD ecu is 500kbps brp 0.
The ddt4all MFD file shows CAN BaudRate = "10400" Multipoint = "1" 250kbps brp1 and selects SP8.
How does pyren choose in ddt mode?
How can ddt4all select the correct SP6 protocol in this example?

I didn't know about that.
So in this example DDT4ALL cannot distinguish if it is CAN250kbps or CAN500kbps module.

Pyren can choose correct protocol, because it is looking into the addresing.xml file of the choosen car that can be found in the DDT2000data/Vehicles folder.
DDT4ALL uses only DDT2000data/ecus folder, so in this example, it will not choose correct protocol.

@Furtif
Copy link
Collaborator

Furtif commented Jun 2, 2023

#836

@Furtif Furtif closed this as completed Jun 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants