Members Login
Username 
 
Password 
    Remember Me  
Post Info TOPIC: Suzuki ecu to digital gauges output signal!


Senior Member

Status: Offline
Posts: 144
Date:
Suzuki ecu to digital gauges output signal!


Hi there,
My name is Padelis, I am from Greece and this is my first post.A big thank to everyone here for the work you do on reprogramming stock ecus and the infos you give to the people.
Now for my main question.I have done enough times in the past a gauge swap to older Suzukis and mainly carb suzukis.I put newer gauges to older suzukis.This is pretty much a simple swap for me to do, but me and everyone else have a problem with this.There is always a "check" in the lcd.There is a Black/Green wire going from the ecu to the gauge.This is the wire that transmits all the data, except the engine rpm, to the gauge.So far i think that i am right.Now for the problem.I don't have a newer suzuki nor a spare ecu from a new one so that i can measure the signal from the ecu to the gauge.This is where i need your help.What i need you to do is to measure that signal or even tell me what type of signal this is (TTL???) or even better what is the data that the ecu sends, so that i build a little dongle that will send this signal to the gauge.Maybe this is something easy, a few cmos ICs, or a little harder like a pic project.Eitherway i will build it and give people everything that is needed to know and build it.
Oh god that was a long post.Anyway thanks in advance and i am waiting for your replies.

Cheers
Padelis

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 963
Date:

Is your plan to get all gauge displays like water temp and gear position to work or do you just want the minimum signal to keep it from throwing check codes? You are going to have to use something like a PIC either way

The signal is TTL serial data packet sent 4 or 5 times a second. I'm pretty sure there is a thread around here somewhere that discussed this for the Hayabusa gauge.

__________________


Senior Member

Status: Offline
Posts: 144
Date:

Dear RidgeRacer,

Thank you for your reply!Everything has to start from somewhere.Firstly i would like to stop displaying the "check".After that the most important thing to do is to display the temperature.Other gauge displays come second to that.One step at a time.Till the next reply i 'll do some search about the 1300 gauges in this forum.Thank you

Padelis

////Just a thought:What if i use a rs232 to ttl converter and a terminal program to send the data packet to the gauges??????How crazy can it be??I will have to write a script to do all the work in hyperterminal!!!!\\\\\\\\\\\

-- Edited by psyche at 19:23, 2008-09-27

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

It is possible that gixer is protocol is slightly different... with busa the below works when the RS port set to 7812baud and outputting TTL signal. 8,n,1


Private Sub sendgaugedata()

Dim b(10) As Byte
Dim i As Integer
Dim c As Integer
Dim l As Integer
c = 0
i = 0

b(0) = 5
b(1) = 128 ' this is coolant temperature, around 30 is halfway if I remember correctly
b(2) = 0
b(3) = 0
b(4) = 0
b(5) = 0
b(6) = 0
b(7) = 0

l = 8
i = 0
Do While i < (l - 1)
c = b(i) + c
If c > 256 Then c = c - 256
i = i + 1
Loop
If c <> 0 Then
b(l - 1) = 256 - c
Else
b(l - 1) = 0
End If

Try
SerialPort1.Write(b, 0, l)
SerialPort1.Read(b, 0, l)

Catch ex As Exception
TextBox2.Text = ex.Message
End Try

If (b(l - 1) <> (256 - c)) Then
checksumerror = 3
TextBox1.Text = "Checksum error in sending gauge data"
End If

End Sub


__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

Dear Petrik,
Thank you for your admition to the subject!!
2 or 3 years ago on a hayabusa streetfighter project, i replaced the stock gauges with gsxr1000 k4 gauges.Everything worked correctly.No "check" and everything functioned properly.So the protocol must be the same.What i don't know is, if difference in bits 16bit to 32bit, there is a change in the gauge protocol.I am not sure but we will figure it out pretty soon.
So Petrik, this is what you get when you read the gauge output on the ecu?
What terminal program did you used? 
On the end it says "Checksum error in sending gauge data".
Is this because you disconnected the gauges or the line is loaded and can't "see" the gauges because of the interface you are using?Did you try to split the line with 2 resistors?Lets say 1K or even 10K?
I wrote a script for hyperterminal with these commands.send them to the gauge but nothing .Is the baud rate important?confusedconfusedconfusedconfused
Sorry for all these questions but i have to learn what and how!!!!!
Thank you for your help
Padelis


__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

This is just a visual basic program that sends the gauge data to the gauge cluster. Very simple as you can see. Its running from a timer ,e.g. 250ms intervals.



__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Guru

Status: Offline
Posts: 2338
Date:

And yes - baud date is very important, you must have a chip that support this unique baudrate. I have used FTDI RS232TTL 5V as it can do the job.

__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

I haven't used visual basic before.Only c/c++ and many years ago qbasic and pascal.it seems that i have to start learning visual basic.smilesmilesmile
I am using max232 to do the convertion and if i am correct it supports different baud rates but the rs port isn't!!!I will have to wait till i get the usb dongle with the ftdi chip to make progress.I read a few online tutorials fro the visual basic and as far as i can understand the program is pretty easy.

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

Yes, you need an UART that can support baud rates required. Normal PC does not do that.

The above program can be converted to any language. On my sh 7086 board I had it converted to C. As you can see its all about sending a few bytes and then putting a checksum at the end so programming the UART for correct baud is going to be the biggest issue. Interval you send this could be e.g. every 250ms.



__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

Back from complete silence!
Finally the usb to rs232  arrived in my door today.I have been trying to program the gauge data with visual basic but with no success.I am using a form with 2 buttons and 2 textboxes.The first button starts the data send and the second one stops it.At first i got an error for the checksum.I then erased the checksum commands and the app runs but when i press the send button it hangs.

I got it to work finallyidea.I erased the checksum commands from your code and it worked.I am having a few problems yet but it works.I have to press all the time the Send Data button.Anyway right now i am puting code for different gears, error codes and temperature.This works with my 2006 gsxr 600 gauges maybe it will work with others too but i don't know.I think that this is going to be a great gauge testing program.What do you think? Stay tuned as in a few days or as soon as i solve some problems with my code i am going to publish a program for everyone to test and see how it works with other model gauges.

Stay tuned!!!!!!

-- Edited by psyche at 00:33, 2008-10-08

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Senior Member

Status: Offline
Posts: 144
Date:

Gauge Tester.rar
This is a first version of the program.Select the com port (only usb to rs232 ttl), select gear, click "Open Post" and then "Send Data".Maybe you will have to click twice the Send Data but it will work.It works with my 2006 Gsxr 600 gauges.Connect the TXD out of the usb-rs232 to Black/Green wire of the harness.This is the wire that sends the gauge data.Stay tuned as i will implement Temperature changes and Error Code displaying.Know it will display 85F degrees and the gear you have selected.Many many thanks to RR and Petrik for their help.Waiting for your impressions and tests to see if this works on other gauges!!!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

Glad we could help you.

Now when you have that up and running, it may be fairly easy to convert the code to a small microprocessor card that can be run in the bike/car without a laptop.



__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

Hi there!!!!

I am still alive and i have finally found some time to dedicate to my bike!!!!! Sorry for not posting for so long time but i was working 25 hours a day!!! Now that i have time i continue working on my bike!!! I have placed the gauges and they work as expected!!! Now its time to build this dongle that i was saying a few months ago and see if it actually works!!! It wont be easy as i have to convert from visual basic to c in order to program the pic!!! I will post again as soon as i have made any progress on this dongle!!!

Cheers!!!

P.S.: Any help would be gladly welcomed!!!!!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Senior Member

Status: Offline
Posts: 144
Date:

A few updates!!!!!
I started coding a PIC18F family microprocessor!!! I have reached at a good point , i have coded the main code, and there are few things to figure out yet!!!First of all i need to figure out how to make it work at 7812 baud rate!!! This is an abnormal baud rate!! What should i do??? As soon as i fix this and confirm that it works, the "CHECK" should go away, i have to code the two A/D inputs for the temperature and the gear change!!!! Have done with my laptop, have to do it with a circuit!!!!
Updates coming soon!!!! If any one can help i will appreciate it!!!
Thank you very much, especially Petrik and Ridgeracer!!!!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Member

Status: Offline
Posts: 14
Date:

this is great man , i'm trying to do the same with my R1.
i bought 08 R1 gauge cluster and wanted to connect it to my 99 model R1.
i didnt know the new model use some kind of serial communication between the gauge and the ecu , so i'm stuck here:(
it transmits and recieves data trough single wire , i guess its rs232 protocol of some kind.


__________________


Senior Member

Status: Offline
Posts: 144
Date:

Hi!!!
 I think that this might be a ttl signal which is transmitted from the ecu!!! I am not sure if it is the same data stream as the suzuki but the signal should be ttl. You need to find out the baudrate and then somehow you need to download the datastream to your pc!!!! This is in sort words!!!
 Now for the suzuki dongle that i am building!! I have 90% of the code ready!! I need to program the chip and test it with the gauges!!! The "CHECK" should go away!!! If everything is ok i have to calculate the data and do the maths for the 2 adc ins!!! My next update will be made in about a week!! I am a little busy with my work, i need to make some money!!!! But i think that i am preeeeetty close to finish it!!!

P.S.: Can anyone give any info about the ECT and GPS, how they are hooked in the ecu, the interface from the ecu or even some lookup tables or even better some datasheets!!! I have an issue with the ECT!!!

Thanks guys!!!
 

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Member

Status: Offline
Posts: 14
Date:

how many bits does the suzuki ecu sends each time?
i dont got the ecu , so i cant see the actual data stream .
i know aim makes a gauge for the 08 R1 , and it uses this communication .
here u can see the aim manual
http://www.aim-sportline.com/download/doc/eng/mxl/MXL_Plug_and_Play_Kit_R1_07_R6_06_07_ENG.pdf

on page 6 , pin # 6B is the data , they call it "k-line" , dont know what that means.
also , 2 pins called P1 and P2 , while P2 is connected to the engine start button for some reason ,and from there , it also goes to the ecu via engine cut off relay, dont know for what reason.
P1 is disconnected
i know u can enter diagnostic mode from the gauge and even adjust air fuel ratio in each cylinder by a small ammount.so it communicats in full duplex.
do u think that the data is sent on the same line? or maybe P2 is there to send data back?


__________________


Guru

Status: Offline
Posts: 2338
Date:


If K-line, you should perhaps look under bandit and KWP2000.


__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

If pin 6B is full duplex then the data is sent from the same line!! I dont know too much about Yamaha ecu except the fact that they change the afr throught the gauges!!!!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Member

Status: Offline
Posts: 14
Date:

PetriK wrote:


If K-line, you should perhaps look under bandit and KWP2000.



wow , thanks allot mate , i didnt know k-line stands for some kind of protocol .just checked the bandit section , will do some reading there.
i'm good with engine work and electronics , but i'm really dont know much in digital or analog communication.
also , i'm not good with programming.i hope i will be able to do all that from scratch.

 



__________________


Senior Member

Status: Offline
Posts: 144
Date:

Need 4 Speed just go for it!!! If you have spare time, you will learn something new and hopefully the guys in this forum will help you!! If can help you anywhere with your project i will if i know something that will help!!!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Member

Status: Offline
Posts: 14
Date:

psyche wrote:

Need 4 Speed just go for it!!! If you have spare time, you will learn something new and hopefully the guys in this forum will help you!! If can help you anywhere with your project i will if i know something that will help!!!




 thanks mate, i'll open the gauge up later and post some pics of the mcu inside .
i'll post it in a new thread , hope i will be able to figure it out , any help would be VERY apriciated.



__________________


Newbie

Status: Offline
Posts: 1
Date:

Psyche,

I'm really pleased to see this as I'm starting a similar project but the other way around. I'm fitting a race logger to a Suzuki and want to decode and convert the ECU serial data to give separate analog signals.

I've got the hardware all worked out and have a good idea about the software, but the thing I don't know exactly is the data format.

Did you manage to work out what all the bytes mean???

Thanks
Gadgeteer

__________________


Guru

Status: Offline
Posts: 2338
Date:


Both KWP and Gauge data formats to certain degree are explained here on this board. What is the particular information that is missing ?


__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

Gadgeteer I would be glad to help you!!! As soon as i find some free time i will tell you the meaning of the most important bytes!! If i remember well the are 2 or 3 bytes that do nothing!!! But please give us some more information of what you are doing!!! Do you build something from the beginning????

Hi there PetriK, how are you??? RidgeRacer where are you???? I need some of your knowledge! I have stuck to a point with my project and i need some of your programming knowledge!!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:


How may I be of your assistance ?


__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

I am programming a pic18f series microprocessor and i have stuck to a point!!! It transmits at 7812 bps but i don't understand why the gauges dont work!! I am using a Basic compiler so the code is pretty much the same but i don't have the option of serialport.write(byte, offset, count)!!! I have only serialport.write(byte)!!! any suggestion???

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:


How is your package checksum calculation ?

The bursts of packages should be separated by a 100ms or so delay. Thats implemented too ?





__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

no checksum calculation. i have removed it from my vb.net program also and it works! i haven't put any timer yet. what i want is to make it transmit just once and then implement the timer and the checksum!! Just like what i did with the vb.net program! First it transmitted the burst one time and then i fixed the timer at 250ms!! The code is pretty much the same for both vb.net and the pic compiler i am using it just needs a few touch ups here and there.

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

I am not sure as this its over an year ago since was playing with this - but would recall that:
1) The signal timer should be consistant, otherwise will detect an error.
2) A missing checksum makes to disgard the package
But this recall may be from playing the signal back to ecu to change the package contents if like said the vb.net program works. (So you can basically request the ecu to send any variables in the package with a request package. The details of that is in the innovate plugin code.)

Anyway you propably have already monitored the signal from pic using e.g. USBTTL converter and read the packages using a terminal program or alike ?

I had some problems with connecting to gen2 ecu just to detect that I needed to set 8,n,1 also, not only the baud rate.








__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

No I haven't used a terminal but i use an oscilloscope to monitor the signal!! If i want to monitor the data out from the program that i have built i need to buy another USBTTL in order to use a terminal so that i can compare the data out from both the program and the PIC!!!! What terminal do you use by the way????

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

Teraterm or rs232 analyzer depending on purpose.



__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

Hi guys!
I came back after 1 month. My day job is too much time consumming and i didn't have enough free time to continue the project. Now i am back. Petrik can i send you the code from the pic18f to see if you can spot any mistakes? It is written in basic so its pretty much the same!

__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Guru

Status: Offline
Posts: 2338
Date:

Just post it here...

__________________

When asking a question, you can also consider posting it to facebook:

http://www.facebook.com/ecueditorcom



Senior Member

Status: Offline
Posts: 144
Date:

Device = 18F4550
Clock = 16
Include "USART.BAS"
Include "ADC.BAS"
Include "CONVERT.BAS"
Include "ISRTimer.bas"
       
        Dim b(8) As Byte
        Dim i As Integer
        Dim c As Integer
        Dim l As Integer       
        Dim index As Byte
        Dim GPS As Word
Function GPSensor() As Word
        result = ADC.Read(1)
End Function
Function TempSensor() As Word
         result = (ADC.Read(0) + 1) * 500 / 1024
End Function                          
     
Function TempCalc() As Word '((ADVal/16)-3)*10' /this calculates the decimal for the temperature
        result = ((TempSensor()/16)-3)*10
End Function
Sub GaugeData()                     
       
        c = 0
        i = 0
       
        b(0) = TempCalc()   'Temperature
        b(1) = 0
        b(2) = 0
        b(3) = 0                     
        b(4) = 0
        b(5) = GPSensor()   'Gear Position     
        b(6) = 0
        b(7) = 0
       
        l = 8              
        i = 0
        While i < (l - 1)
              c = b(i) + c
              If c > 256
              Then c = c - 256
                   i = i + 1
              ElseIf c <> 0
              Then b(l - 1) = 256 - c
              Else b(l - 1) = 0
              End If
        Wend
End Sub
Sub TimerClock()
       
        Const Timer1 = 0
        Timer.Initialize(1)
        Timer.Items(Timer1).Enabled = true
        Timer.Items(Timer1).Interval = 250
        Timer.Start
        
End Sub
Sub SendGaugeData()
    While true
    SetBaudrate(br7812)
    For index = 0 To 7
    USART.Write(DecToStr(b(index)), 13, 10)
    Next
    Wend
   
End Sub
TimerClock
TempCalc
GaugeData
SendGaugeData
       
End  


__________________

For your DIY or Professional tuning needs be sure to check out
PVTech ECU Research & Development



Member

Status: Offline
Posts: 12
Date:

Hello all !

Here is the next "first time post" in this thread.

I'm from Germany (so please excuse my english) and trying to connect a GSXR (K1) gauge to a TL 1000 S with ALL functions (Water- Temp, Error Codes, TPS setting, ...)

Here:
http://www.tlzone.net/forums/tl1000s-tl1000r-forum/106715-one-electronic-gurus-new-error-code-module-3.html

guys from TLzone have hacked the TL-R-ECU Bytes.

Regarding Baud rates:
"I've been able to communicate reliably between 6950 and 7900."

It has only 5 Bytes:
1st Byte : Water Temp
2nd Byte : Status/TPS
3rd Byte : Unknown, Maybe part of error codes

4th Byte : Error Code
5th Byte : Checksum (simple 8-bit two's compliment)


What i would like to know is what function do the GSXR Bytes have.

I'm not a basic-guy, but i took a look anyways.

What i can see is, that in your (psyche) code water temp is Index 0.
In PetriK's Code it's Index 1.
I don't know which is correct, but i'm curious. wink

I Think you should read the values from your ADC inside the loop and Setup the baudrate only once.
(I edited your code below)
Greetings from germany, and please go on with research.

psyche wrote:

....
Sub SendGaugeData()
SetBaudrate(br7812)
While true
GaugeData
For index = 0 To 7
USART.Write(DecToStr(b(index)), 13, 10)
Next
Wend
End Sub
TimerClock
....
....

SendGaugeData

End

 




 



__________________
Page 1 of 1  sorted by
 
Quick Reply

Please log in to post quick replies.

Tweet this page Post to Digg Post to Del.icio.us


Create your own FREE Forum
Report Abuse
Powered by ActiveBoard