RhinoPower Ltd

Members Login
Username 
 
Password 
    Remember Me  
Post Info TOPIC: Parameters for connection


Guru

Status: Offline
Posts: 1357
Date:
RE: Parameters for connection
Permalink  
 


I will have to check the software to see where the status flags should be. You can use RV in raw data mode to se which values change when an event occurs.

You can read up to eight addresses at a time, I do this with the Tuner pro definition files and future versions of RV will do this too. If you use more than four bytes then you have to have good data checking and error recovery, the Tech 1 tool suffers from frequent lock ups.

You must insert some delay between messages or the serial link will lock up, the fastest polling speed varies between ECUs which is why I made RV user configurable. You may need to increase the delay to allow for operating conditions where the processor is busier.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Where can I find status registers that keeps information about fuel pump, fan relay, etc?
I can see in RV four 'Status Flags' addresses, but they are zero all the time. I expect at least fuel pump bit to appear somewhere, because pump is turned on for 3 seconds after switching ignition? Maybe immobilised ECU doesn't switch pump on?

Currently I can read all relevant values from ECU and display it on microcontroller's LCD. I fight with data formats and presentation.
In the meantime, I exhausted 8kB flash memory in atmega8 and must switch to better microcontroller - I suspect, that 32kB should be sufficient.

I noticed, that in RV you read all addresses in 4 byte chunks.
Because I have limited space on LCD, I read only six functions choosen by user.
It appeared, that if I query ECU without a small delays, it will not respond. It was necessary to put about 2ms delay before next query.

__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

My Vitara is a late model with a stepper motor EGR, it is the same EGR as fitted to my Baleno.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Baleno has a egr actuated by stepper motor.
I was sure that vitara uses vacum actuated valve like samurai?
I read somewhere in FSM that in Baleno ecu checks pressure change in intake manifold when opening egr valve.
When it's not correlated, fault is raised.

Of course I can be wrong...

__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

EGR should generate a fault it should check the voltage on the EGR to check that it switches correctly. The circuitry is on the board and the code is in the software. When the weather improves I will check it out properly. On the Vitara it generates a fault code at ignition turn on.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

I think that EGR, canister purge valve, idle air valve and egr will not generate fault code, because they're acts only as an output and ecm can not detect malfunction.
Or this is considered as low severity fault and ignored.
Absence of lambda sensor should generate fault.
I'll check it out when finish more portable device than a testing bench.


__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

I'm interested in what fault codes you can get from the ECU. When I was testing my Baleno I unplugged both the EGR and the O2 sensor but I didn't get a Check Engine Light or any fault codes.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

OK - you opened my eyes ;)
I can have only 12 engine fault codes and 4 immo fault codes in 1943 ecu according to FSM.
Thank you.


__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

The file contains fault codes for lots of different vehicles, including diesels, each vehicle has only a subset of those codes. there are also additional adrdresses that contain further codes for immobiliser and ABS faults.

On the Baleno ECU address 0 and 1 are current faults and adress 2 and 4 are stored codes.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

I connect RV and then go to dataviewer.
On page 2 I can see 'Fault flags 1', 'Fault flags 2', 'Fault flags 3', 'Fault flags 4' fields with values 42, 0, 42, 0
If I switch to raw data mode, these values are at addresses 0, 1, 2, 3.

But the question is how to translate 42, 0, 42, 0 to error codes 14, 21, 23 that I can see in faultcode viewer?
42 is binary 00101010, so I assume each bit position is one code - according to numeration in faultcodes.csv?
But I can see place only for 32 faultcodes (4 times 8 bits) and in faultcodes.csv you have 55 positions?

And if I have only three errors, why it's twice (at address 0 and 2)? Current at 0 and history at 2?


__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

When the ECU detects a fault it sets a bit in one of the fault code registers. Each bit or 'fault flag' corresponds to a faut code. The bits are in numerical order and the FSM tell you what fault code so you can get from the ECU so by forcing errors by disconnecting or shorting sensors you can determine all of the addresses. These addresses are defined in the fault code definition file. The value 42 doesn't tally with the fault codes that you are getting, are you looking at that in raw data mode?

 



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Hi,
My work is in slow progress - I can currently connect, read ECUid or set it manually and display battery voltage (it was also hard to find out, that voltage raw data should be multipied by 8 and divided by 100). More gauges to come soon.
I have next question regarding fault codes.

When I connect using RV to my test ecu on the bench, I can read errors 14, 21, 23 (not surprise, because nothing is connected to ecu).
When I read locations of fault codes using my device (addresses 00, 01, 02, 03) I just receive values 42,0,42,0
These values are identical to 'Fault Flags' displayed in RV data viewer.
I'm confused. What are 'Fault Flags' and where can I find the real fault codes?

Regards

__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

The header 14 reset clears all of the RAM area, there isn't a seperate reset for just the fault codes. If you have a fault then the fuel trims probably won't be correct anyway.

I've tested this on a few vehicles but I haven't had consistent results, sometimes it seems like you have to power off and then back on again before the reset takes effect.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

OK - thank you for permission. As I wrote, this is just a hobby and I do it only for my satisfaction.
When ready, I can provide board drawing, diagram and firmware.

I can not find info how to reset checkengine light.
Is it command launched from RV menu 'Command|Reset ECU'?
I'm not sure if this only remove errors and turn off checkengine light or reset all learned parameters (eg. fuel trims).

I found somewhere on the Internet info like below, but I'm not sure if it's correct:

Clear ECU errors:
14 03 83
14 04 01 81
01 - 1 fault code cleared. Works only when engine is ON

__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

That column was default values but its not used anymore. You can use any of my information for private use but not for commercial use, you should verify that those values are correct, sometimes errors occur.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

OK - thank you for clarification. Now it makes sense.
One more question about this file - the section with scaling factors has values for each ECUid and also value before name.
Eg:
2, TPS, , 1, 0.49, 0.49, 0.49, 0.49, 0.49, 1.11, 1.11, 1.11, 1.11, 1, 1.11
I understand that I have to multiply value read from address by 1.11 (in case of ECUid:1943), but what is the meaning of number 2 at the beginning ?

And the most important question:
Can I use these values in my firmware? This is your work and I don't want to violate your rights.


__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

I think that you are reading the file wrongly. Under the 1943 column you should look down until you find the function number for battery voltage (29) and then look to the left to the address column for the address that the battery voltage is at (22). 22 is 0x16 so to get battery voltage you should send 0x13,0x04,0x16,0xD3

I haven't been able to find the address for ignition timing when testing on the vehicle so if you do find it please let me know. I will check the code for that when I find the time but my Baleno is currently off the road with the usual rusty front subframe.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

May I ask for some clarification, please?
To request info for eg battery voltage, I should send sequence:
0x13 0x04 0xaddress 0xchecksum

0x13 is header for data request
0x04 is message length
0xaddress is address where is located value to retrieve

I downloaded RV and connected on the bench to my ECU (id:1943) and I can see real battery voltage.
But when I opened datastream.csv file, function address for my ECU is empty.
How to interpret this null?


__________________


Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Yeah! I did it!

 

As you can see, ECUid  is 19 43.

Is it a well-known model?

As the basic communication is solved, I can write more sophisticated software, to pull realtime data.

Do you have some info available, what can be queried and how? I mean how to send requests for eg battery voltage and interpret it to human readable value from hex.

If you have some useful links, it would be great.



__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

Good work. The information that I have is from bench testing and logging my own Baleno. If you download RV and look in the bin folder there is a configuration file which contains all the data that I have on that model.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Rhinoman wrote:

Can you provide more information on the hardware set up that you are using?


 This is universal development board based on Atmel AVR atmega8 controller (with some peripherials) - nothing fancy, but flexible.

As this is just a hobby, I have not much time to work on it.

Recently I found ftdi based cable (usb<->rs232 ttl) and connected avr to pc, and I'm able to receive 10 03 ED sequence from controller, so Tx at 7812 baud works.

Before I tried with chained usb<->rs232<->max232 and received on pc data was just random.

Next step is to send back some bytes from pc and display on lcd.

My goal is to create something similar to "Scangauge" for SDL. Will let you know about progress.



__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

Thats a good project. I have considered producing something similar but under EU regulations any equipment designed for permanent connection to the vehicle's electrics must be type approved. Type Approval can be very expensive so I haven't pursued this. Personal projects are OK because they can be classed as prototypes.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

Can you provide more information on the hardware set up that you are using?



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

I set baudrate explicity to 7812 on external system.
I will write test program, to continously send 0xAA byte and check bit duration on oscilloscope. Maybe something wrong with crystal osc...
In worst case I'll try to connect from pc using realterm, but it will require to solder some interface ;(
Will let you know about results.

Regarding immo, I have no idea why it works in vehicle. I think, that all is connected according to factory manual. It would be weird, if one can disable immo grounding some wire.

__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

I would expect you to be able to communicate with the ECU even if it is immobilised. Have you checked that the data is being transmitted at the correct baud rate and is of the correct polarity. I wonder if you have an extra wire grounded when in the vehicle that disables the immo.



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Yes, I receive echo, but nothing more from SDL line.
I set transmission parameters to 7812, 8N1.
I connected on the bench E01,E02,E1 to ground, B1 and BB to power supply.
Checkengine lamp (test LED) blinks. It expects immo I believe - it is strange, because when I put ECU it in my car, it worked without immo.

Can I read ECUid without immo?
Maybe I should ground DN pin?

__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

There are no other characters to send., when you send the data you should get an echo because its a one wire interface, do you get that?



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Additional question:

When I send "commands" to ECU, should I add at the end code for 'carriage return' or 'line feed' or both?
I mean
0x10 0x03 0xED
or
0x10 0x03 0xED 0x0D
or
0x10 0x03 0xED 0x0D 0x0A

This same when receiving answer.
Is it ended with additional CR code or not?
I don't use pc terminal but other embedded system, and so far no answer from ECU.

__________________


Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Thank you for quick explanation.
I want to connect using avr microcontroller, so (at least at the beginning) I will not use RV.
Baud rate 7812 is fine for quartz 4 or 8 MHz - should be zero error using this speed.

Anyway I need to assemble some interface first.


__________________


Guru

Status: Offline
Posts: 1357
Date:
Permalink  
 

The Baleno is usually 7812 baud. There is an issue with RV with changing the baud rate, if it doesn't connect then you will need to shut down RV before changing the baud rate and reconnecting.

The Checksum is the complement of all of the preceding bytes. The sum of all bytes including the checksum will equal 0x00.

so, 0x10+0x03 = 0x13, inverted = 0xED

and 0x10+0x03+0xED = 0x100 but only the lower 8-bits are used so the sum = 0x00



__________________

1984 Suzuki SJ413K pick up, 1.6 16V Baleno engine
2000 Suzuki Vitara 1.6 8V, many mods
2004 Suzuki Ignis 1.5VVT 4Grip
2006 Suzuki Jimny 1.3VVT JLX+
and many more.



Veteran Member

Status: Offline
Posts: 76
Date:
Permalink  
 

Hi,

I'd like to connect to my baleno ECU, but I'm confused with parameters.

Some topics say it should be 7812 baud and some advice 15625.

Which is proper one?

Next one:

How to calculate checksum for command?

If I send: 0x10 0x03 0xED to read ECU id, how this value ED is calculated?



__________________
Page 1 of 1  sorted by
 
Quick Reply

Please log in to post quick replies.



Create your own FREE Forum
Report Abuse
Powered by ActiveBoard