PDA

View Full Version : TPS% value 1227747 ADX



EagleMark
11-27-2011, 11:49 PM
I've been working on the 1227747 ADX and can't get the TPS% to display correctly. When I looked at other ADX files the TPS voltage and TPS percent were 2 differant hex address. This seems to be why none of the conversions work properly in the 1227747 ADX because both the TPS voltage and TPS Percent are from the same addrress.

Since there are settings in 7747 XDF based off TPS% I thought this should be a working item in the ADX.

Does anyone have correct info to put into 7747 ADX for TPS%? Or learn me how to?

Six_Shooter
11-28-2011, 12:25 AM
I could never get it to work correctly using just a conversion, so I learned to live with it "being close."

I had wanted to set up a look up table for TPS percent, but never got around to it (a round tuit?), since I rarely use a '7747 anymore. The last one I installed and tuned was in my bosses '62 Suburban, and the only reason I used it over a '7427, is because I had experienced idle issues with a '7427 and non e-tranny in another conversion. I didn't want to have to figure out why on my bosses truck. I believe I have since figured out the issue, but have no real way to test anymore.

EagleMark
11-28-2011, 04:38 AM
I guess if I had a $42 hack and learned who to dissasemble, then comment, then... I've been avoiding that for years because it's already done on everything. Wonder if you could find the TPS% in the XDF?

Six_Shooter
11-28-2011, 04:41 AM
You don't need to go that far... I don't think it would help you at all to disassemble the BIN, to work on an ADX...

You can create a look up table, and link it in the ADX, it just may take some testing to determine how the look up table should be set-up.

You can also look at the ALDL datastrem def. It's on Moates in a zip file that contains all or just about all OBD1 GM datastreams.

EagleMark
11-28-2011, 10:17 AM
We have them all here to.
http://www.gearhead-efi.com/gearhead-efi/

Didn't you get my PM about adding this to the GM Bins and stuff how to use forum?



LO5 for the 5.7L is A033 but I've never done a lookup table. Maybe we better learn since Robert went on vacation?

//--------------------------------------------------------------------------------------// Created by TunerPro. Hand editing is *not* recommended or supported.//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//--------------------------------- HEADER ------------------------------------//--------------------------------------------------------------------------------------{ fDefFrmtVers =1.21; strDefVersion =Version 1.0; strDefTitle =A033; strAuthor =Robert Saar; strEngine =4.3/5.0/5.7; strYear =86-88; strVINCode =Z/H/K; strCodeMask =?; strComments =check A033.ADS for specific details. robertisaar@yahoo.com for comments/questions.; iBaud =160; dwFlags =0x00000000; dwCSID =0x00013AE7; btNumDumpRequests =1; strCommandName =160 Baud; rgbtCommand =; iTotalBytesInCommand =0; bChecksumCommand =0; iNumBytesInPayload =20; iNumBytesBeforePayload =-1; bMaster =1; bMonitor =1; iChainTo =-1;}//--------------------------------------------------------------------------------------//---------------------------------- DASH -------------------------------------//--------------------------------------------------------------------------------------{ dwItemType =6; strItemComments =<Comments>; bSeparator =0; bVisible =1; dwUniqueID =0; btNumGauges =6; strIDsDisplayed =0,0,0,0,0,0,; btNumMonitors =4; strMonsDisplayed =0,0,0,0,;}//--------------------------------------------------------------------------------------//--------------------------------- VALUES ------------------------------------//--------------------------------------------------------------------------------------{ dwItemType =1; strItemComments =<Comments>; bSeparator =0; bVisible =1; dwUniqueID =9; btByteNumber =2; btMessageNumber =1; dwItemSizeBits =16; dwOperation =3; dFactor =1.000000; dOffset =0.000000; strItemTitle =PROM ID; strUnitLabel =; dwAlarmHigh =255; bAlarmHighENable =0; dwAlarmLow =0; bAlarmLowEnable =0; iRangeHigh =255; iRangeLow =0; iLookupTableIndex =-1;}{ dwItemType =1; strItemComments =<Comments>; bSeparator =0; bVisible =1; dwUniqueID =10; btByteNumber =4; btMessageNumber =1; dwItemSizeBits =8; dwOperation =3; dFactor =1.000000; dOffset =0.000000; strItemTitle =IAC Position; strUnitLabel =Steps; dwAlarmHigh =255; bAlarmHighENable ;}

I deleted the rest...

EagleMark
11-28-2011, 07:55 PM
I went through that A033 file and didn't see anything for TPS% but it did have some more information I added to the 7747 ADX I am working on.

Have you ever got a conversion to work from kpa to vacuum?

Six_Shooter
11-28-2011, 08:26 PM
No, again a look up table would likely work best. ;)

EagleMark
11-30-2011, 09:15 AM
Never did figure out how to use the lookup table. But I did spend hours reading old DIY-EFI threads, also found the TPS% on 1227747 has always been an eqation from the TPS voltage, other ECM ADX had a seperate datastream address for voltage and percent.

What was getting to me was there is no way to set some paremeters even close to percent value? With the eqaution my TPS was showing .67, little high but well within guidlines for 125K. At that voltage my TPS% was 13.3% so I'm guessing it may go as low as 13% at .54. Then I spent some time looking through all the XDF written for the 1227747 and comparing them to origanal ALDL datastreams and found the problem!!!! Some of the parameters in the XDF for TPS are voltage but in the XDF they had been commented as %. No wonder I could never get them close...

So I spent about 15 hours over 2 days and went through all the XDFs and ADS and ALDL information. There are now new $42-1227747-V2.xdf and $42-1227747-V2.adx in the 1227747 ECM information thread without conflicting information.

Some were obvious voltage and some were obvious percentage some I had no concrete evedence on so I did not list voltage or percent but when you look you can see the TPS setting of 25 to 75 is never going to be voltage because the highest voltage possible is 5.0. Others have readings of 1.95 which is well within the relm of TPS voltage and never going to be close to the minimum 13% in the equation. Now it all makes sense.

Anyway the new ADX in list view gives sensor information needed for tuning and troublshooting on one page, then theres a Malfunction list for checking error codes on another page. Also several dashboards all work, one extra starter dashboard for anyone wanting to start one of their own. Monitors are set to be easily read for tuning and watching recorded data. BLM history table was re-made to match VE fueling and match Daves VE tuner. Knock counter can be matched to spark table but I left it up to 6200 RPM IIRC so you can watch for knock way beyond spark tables. It's the ADX we started on a year ago and I have been tweaking it since every time I use it. Hope those that use it enjoy.

EagleMark
12-01-2011, 10:07 AM
Kinda strange I was reading up on the new SMT8 Piggy Back tuner because of the other thread, it's a new unit I have not used yet.

One of the questions was:
Why does my throttle position start at 14% and end at 85%
on the SMT8 piggy-back?

Answer was:
This is because the voltage of your throttle position starts at 0.7 volts and
ends on 4.25 volts. If your tps voltage starts at 0 volts and ends at 5.0 volts
then the range would be 0% to 100%.

This was on an Import car but the voltages are pretty close to GM and validates what I found in the equation and test results of doing my 1227747.

gregs78cam
12-01-2011, 12:39 PM
I actually just started my '7747 to '7427 swap into my truck so I don't really have things set up to check this out but I think it should work.

I looked through a $42 hac, and found that the datastream is commanded at LD4F5 to output the TPS volts located at L0048 while running. As I looked further I noticed that for running calculations the "current TPS Value" in the code is loaded from L0049. Now I have done this type of thing with my $0E.ads to output different things than the original datastream was told to and it's not so hard. So what I do is take some obscure data like 02 cross counts and replace it with something useful, in this case TPS%. The easy way to change it, and make it easily reversible is as follows.

Create another .xdf parameter, label it as something like "TPS % instead of 02crosscounts"
In the parameter box set the address to 0x50B, size 2 bytes, output type hex. This is the spot where the .bin tells the ecm where to look for the data to spit out in the datastream.
In the comments area write "Change this setting from $00BA (O2 cross counts) to $0049 (TPS%)"

Now add a .adx value with the same packet offset as the o2 cross counts but title it TPS%. This way you can have both TPS Volts and % if you like.
Unfortunately there is nothing in the .bin to tell us what the conversion is for this data, but it stands to reason it will be the normal "X*.392157".

If anybody tries this let us know how it works.

EagleMark
12-01-2011, 07:37 PM
Well you had me lost in the hex, I really need a beginner lesson there. Maybe someday this winter someone could do a beginner course?

But I didn't have to anything in XDF or hex. I made another ADX value, it was identical to TPS Voltage address but renamed TPS %. It worked so you can have more than one output from same address in the adx file. Then I changed the range from 0.000000 to 5.000000 to 0.000000 100.000000 used the calculation "X*.392157". found in other adx files for TPS % like you said and it works.

So I tried again with coolant temp. Duplicated the adx value, changed some settings in TP and now there is coolant temp in Celsius and Fahrenheit.

One thing I don't understand in adx is why some things are just set to Native and conversion is just X while others are set to Native X and need a conversion calculation?

gregs78cam
12-01-2011, 08:48 PM
The only thing I don't like about the idea of making a % directly from the voltage is the the fact that there is a minimum TPS voltage right? Somewhere around .5 volts? I was under the impression that the ECM looks at this voltage at startup and sets this voltage as 0% TPS. If this is the case then the while idling, the ECM sees 0% TPS, but the datastream shows 10%TPS. Right? I guess you could adjust the bottom end of the range to take up for that though.

EagleMark
12-02-2011, 06:03 AM
Yeah but it figures correctly to every paremeter in the mask (XDF), couple posts up even Perfect Power Piggy Back Tuners have the same issue.

But your point may be valid on ECM that have a seperate address for TPS%. 1227747 does not. Actually if you hook up a ScanTool there is no TPS%, but there is when you deal with others like the 97427 and my LT1. I've spent a lot of time with the 1227747 and what your saying won't ever come into play. Settings are mostly off TPS Voltage and low end of that. Ones that involve percent are so high it would never be close to TPS Voltage even if you subtracted what your saying.

gregs78cam
12-02-2011, 07:16 AM
Well actually what I meant was if you make a conversion for that as follows:
0.00V = 0% TPS
0.05V = 1%
0.10V = 2%
~~~~~
0.55V = 11%
0.60V = 12%
~~~~~
5.00V = 100%

Then for instance at idle the TPS sensor is reading .56 volts, this is what the ECM sees. But your .adx would show (0.55V) 11%. Right? That can be worked around but.......

somewhere in the '7747 there has to be a conversion written to put out a %TPS, there are tables and constants that are defined as %TPS in a column or row. So somewhere in the bin there is a conversion already. It is just matter of feeding it out through the data stream.

For instance:

;
; CK FOR LOW TPS ERR TEST ENABLE
;
D6D8: LDAA LD50D ; ERR ENABLE WD 1
D6DB: BITA #$04 ; b2, ERR 22, TPS lo
D6DD: BEQ LD6F8 ; BR IF NOT b2
; ... else
D6DF: LDAA L0048 ; TPS, VDC
D6E1: CMPA LD523 ; TPS limit, 0.20 VCD, (ERR 22)
D6E4: BCC LD6F8 ; IF TPS > .195 BR
; ... else

So here, as the code is running when it reaches D6DF the instruction is LDAA L0048 which to paraphrase "load from register A L0048" ; comment says TPS, VDC, this is also the register that the datastream spits out TPS Volts from.


F0FF: LDAA L001A ; RPM/25
F101: ASLA
F102: BCC LF106
; ... else
F104: LDAA #255
F106: LF106 BRA LF120
F108: LF108 LDAA L0049 ; CURRENT TPS VALUE
F10A: LF10A PSHA

Now here is a portion of the TCC routine. Here at line F108, the instruction is again LDAA but this time it is "from register L0049" ; and is commented TPS Value.

My point is there are many references to TPS% in both of the hacs, and the .xdf posted here. It is just a matter of getting that value to be put in the data stream.

EagleMark
12-02-2011, 09:41 AM
But for me to do that I have a lot of catching up to do in hacs and hex and dissambly, that is something I have never done yet! Even you have spent time and can only find reference of TPS to volts (VDC). Now if I can figure out how to use the lookup table and make a graph I could do exactly what you explained.

I'm trying to spend time working on ADX files now, to improve what we have, convert them to adx and get the layouts in a more user freindly work space. That is how this topic came up. I realy wish someone would do a starter course on hex, hacks dissasembly, commneting etc... so we could all understand how you do what you just did above. Maybe if I start a topic people will jump in and get it going like this one did?


My point is there are many references to TPS% in both of the hacs, and the .xdf posted here. It is just a matter of getting that value to be put in the data stream.What I was trying to tell you ealier is the hacs are wrong, well probably just the commenting! They mention a TPS paremeter as % and it is not! It is volts. The only paremeters in the 1227747 hacs/xdf/mask that mention TPS% have values of 25% or better which can not be volts. Well within the range of the origanal conversion for %. If you look at old XDF you will see them. I made a new XDF and took out reference to % where it was volts.

EagleMark
12-03-2011, 12:06 AM
Well I finally got the vacuum gauge working as well. Dulicated the MAP kpa, changed the name, changed the values and found the correct calculation of:
29.9-(X*.349)

EagleMark
12-03-2011, 06:17 PM
Well actually what I meant was if you make a conversion for that as follows:
0.00V = 0% TPS
0.05V = 1%
0.10V = 2%
~~~~~
0.55V = 11%
0.60V = 12%
~~~~~
5.00V = 100%

Then for instance at idle the TPS sensor is reading .56 volts, this is what the ECM sees. But your .adx would show (0.55V) 11%. Right? That can be worked around but.......

somewhere in the '7747 there has to be a conversion written to put out a %TPS, there are tables and constants that are defined as %TPS in a column or row. So somewhere in the bin there is a conversion already. It is just matter of feeding it out through the data stream.

For instance:

;
; CK FOR LOW TPS ERR TEST ENABLE
;
D6D8: LDAA LD50D ; ERR ENABLE WD 1
D6DB: BITA #$04 ; b2, ERR 22, TPS lo
D6DD: BEQ LD6F8 ; BR IF NOT b2
; ... else
D6DF: LDAA L0048 ; TPS, VDC
D6E1: CMPA LD523 ; TPS limit, 0.20 VCD, (ERR 22)
D6E4: BCC LD6F8 ; IF TPS > .195 BR
; ... else

So here, as the code is running when it reaches D6DF the instruction is LDAA L0048 which to paraphrase "load from register A L0048" ; comment says TPS, VDC, this is also the register that the datastream spits out TPS Volts from.


F0FF: LDAA L001A ; RPM/25
F101: ASLA
F102: BCC LF106
; ... else
F104: LDAA #255
F106: LF106 BRA LF120
F108: LF108 LDAA L0049 ; CURRENT TPS VALUE
F10A: LF10A PSHA

Now here is a portion of the TCC routine. Here at line F108, the instruction is again LDAA but this time it is "from register L0049" ; and is commented TPS Value.

My point is there are many references to TPS% in both of the hacs, and the .xdf posted here. It is just a matter of getting that value to be put in the data stream.I found a $42 hack and went through it and your right there are many instances where TPS% is used and some of them are numbers lower than 5% which could be confused with voltage that can not go lower than 5. So the ECM must take idle voltage and use it as 0% or 1% and use it in it's routine. So you are exactly correct.

But I have no idea how to find TPS % coming from the ECM. Or even if it is there to begin with, PCM like the $OD have sepreate address for voltage and percent. if I knew where it was I could set it up in the ADX. May try to figure out how to use the lookup table and create one from voltage like you showed above.

gregs78cam
12-03-2011, 08:13 PM
Ok. so we are on the same page now.:thumbsup:

the number that gets spit out into the data stream is a 0-255 number and that number is is stored at a location on the EEPROM. L0048 for TPS VDC, and L0049 for TPS%. so we just have to tell the ecm to put out the % instead of the VDC. because really the only useful time for seeing VDC is settign minimum TPS, and trouble shooting, right? If you look through the hac and look at the aldl data stream section which starts at $04E7, and scroll down to $04F5 you see this:



LD4F3 FDB $001C ; 7. RPM/25
; RPM = N * 25
;----------------------------
LD4F5 FDB $0048 ; 8. TPS (A/D, 0-255)
; VOLTS = N * .0196
;----------------------------
LD4F7 FDB $00A4 ; 9. INTIGRATOR, (0-255)


this is the part of the code that tells the ecm where to look in the RAM area of the chip to find the data to put into the outgoing data stream. If you open TP5, and open the hex editor scroll down to $04F5 (LD4F5 above) and change the two bytes there from 00 48 to 00 49. that should tell the ecm to send the data from the tps% address instead of VDC.

EagleMark
12-03-2011, 09:38 PM
Not sure about the same page... but I think I am on page one of a book you read! :thumbsup:

Going back and looking at these I was wrong and most of these settings are TPS%. The reason they have been driving me nuts for years is there is no TPS% to read in data. The old XDF (mask) have conversions that do not go low enough to be close to these settings!

Look at other ECM data and you have both TPS voltage and TPS Percent worded one way or another. Look in the ADX and find TPS Voltage at 0x08 and percent at 0x09 or differant in other ADXs.

I see what your telling me will work but only if someone changes there hex to begin with, so that won't work for all. What I was trying to do was just fix the ADX so it has an accurate reading for TPS voltage and TPS percent. So although you have found a way to fix my issue, I am trying to find a way to fix the ADX for everyone. But from what your telling me there is no TPS % being put into the datastream to begin with?

If you look at MAP in the $42.ADX it only has one address for voltage and KPA, but differant conversions and they are accurate.

No matter what I try for a conversion on TPS I can't get it to work, it will lower or riase both ends? Probably because of my lack of math skills... So I tried doing a lookup table to convert the numbers like it does for coolant temp but have not got that dialed in, or even close yet... I think it's the only way I will get this to work in the ADX?

So now that you have identified the problem with your hex/hac skills I know that the information is just not coming into datastream to begin with.

So it's back to how to fix the ADX ?

gregs78cam
12-03-2011, 11:05 PM
I see what your telling me will work but only if someone changes there hex to begin with, so that won't work for all. What I was trying to do was just fix the ADX so it has an accurate reading for TPS voltage and TPS percent. So although you have found a way to fix my issue, I am trying to find a way to fix the ADX for everyone. But from what your telling me there is no TPS % being put into the datastream to begin with?......

So it's back to how to fix the ADX ?

OK. I see your point about wanting to make the ADX work for everyone instead of just fixing an issue in one particular instance. But that was my point in an earlier post. Have you looked through the XDFs and ADXs put out by 93V8S10. He put 'read me's in those to give the individual the ability to change their XDF and ADX to what they want. I ended up making a constant in the parameters that lets me change the .bin easily without the possibilty of screwing up the .bin. Something similar is what I was suggesting we put in the XDF and ADX. Basically we make a parameter in the XDF that with just a few keystrokes can change what gets put out in the datastream. But the XDF and ADX have to be used together.

I can write the XDF and ADX parameters in no time I just need to have something running to verify results. I can get a '7747 powered up on the bench next week, and see if I can get it to work. Or if you already have one set up I could drop by next week and we could get it done in no time at all.

gregs78cam
12-03-2011, 11:28 PM
So it's back to how to fix the ADX ?

Try this conversion

= (X - 25.6) * 0.435920

this should be basically removing the 0.5V (=10% * 5VDC) minimum TPS reading from the equation. Actually it is subtracting the the first 25 steps then dividing the remaining 229.4 steps by 100, before converting the 0-255 value to %

EagleMark
12-03-2011, 11:39 PM
Yeah I was looking at his stuff but those have a lot more to offer.

My bench is in the middle of rewiring a harness, but I do have a running 7747 in my Suburban and we don't even need that because I have been checking these with datalogs!

I'm going to try your conversion now and see what it does. If not back to seeing if I can make the lookup table work...

gregs78cam
12-03-2011, 11:43 PM
well on paper when I convert various 0-255 values to % TPS it works out. It still won't be as accurate as the data from the ECM, due to MIN AIR adjustments, and MIN TPS position, but should be pretty spot on.

EagleMark
12-04-2011, 01:04 AM
Pretty spot on it is! I went out and adjusted my TPS to .53. Did a datalog, not running but idle to WOT and all spots in between. Your conversion came out to .05% so I don't think you could ask for anything better.

But the high end I only get 4.26 volts which shows 75.2% . That more than covers all parameters in XDF for things like PE. I checked and it is WOT. So I looked at other datalogs on vehicles I worked on and I know were set to .54 on TPS and verified I was getting WOT and never got more than 4.48. I know there's a 5.0 volt reference there but I don't think a TPS uses all of it.

Could you redo that math to only use 4.5 volts? Or would that be dumb? It would look better in datalogs if it were closer to 100% when guys are looking at WOT settings for PE etc...

Next time you stop by you have to teach me some of these basics so I can start learning this stuff! :jfj:

EagleMark
12-04-2011, 01:10 AM
Wait a minute! That conversion changed from the first time? Anyway now I get .06% at TPS .53 volts and 83.9% at TPS 4.26 volts so it got better! :jfj:

gregs78cam
12-04-2011, 01:14 AM
Sweet. The ECM converts the analog 0-5V signal to a digital 0-255 and stores it as a hex number, then our ADX converts that 0-255 hex number to what ever we tell it. I wonder if the ecm is not using all 0-255 'digits' for the TPS.

If you set the ADX to simply show raw hex number, what does it show at WOT?

gregs78cam
12-04-2011, 01:17 AM
Ok, that makes sense, because at 5V it would be around 100%. I have looked at my datalogs and usually see around 4.89-4.95 VDC at WOT. Have you actually made sure that butterflies are open all the way and read what the voltage is? I think you may have something keeping them from opening all the way, if you are only seeing 4.26V.

EagleMark
12-04-2011, 01:20 AM
Shows a bunch of weird numbers and letters but at 4.26 volt TPS WOT the TPS% shows 53

EagleMark
12-04-2011, 01:23 AM
Ok, that makes sense, because at 5V it would be around 100%. I have looked at my datalogs and usually see around 4.89-4.95 VDC at WOT. Have you actually made sure that butterflies are open all the way and read what the voltage is? I think you may have something keeping them from opening all the way, if you are only seeing 4.26V.But are your datalogs from a 1227747? Mine are! Your 16197427 has a seperate datastream for TPS%

gregs78cam
12-04-2011, 01:24 AM
Sorry I hit the wrong button and edited your post...

gregs78cam
12-04-2011, 01:27 AM
But are your datalogs from a 1227747? Mine are! Your 16197427 has a seperate datastream for TPS%

Yes but the TPS VDC should be same (between the two) from idle to WOT. I am just saying that you should be a little closer to 5V at WOT.

EagleMark
12-04-2011, 01:29 AM
But to answer your question I screwed up...

They change with position. At WOT, 4.26 volts it was 53. at .53 volt TPS it is 00 but inbetween are like 1d, 4f, OE and some other numbers.

EagleMark
12-04-2011, 01:30 AM
Yes but the TPS VDC should be same (between the two) from idle to WOT. I am just saying that you should be a little closer to 5V at WOT. So then we should leave the equation for the full 5 volts?

EagleMark
12-04-2011, 02:22 AM
Thanks to Greg for getting this project done! :wtg: We now have an ADX that shows TPS in Volts and Percent!

New ADX file will be in the 1227747 Information thread. It also now has a working Vacuum gauge and readings in list view!

gregs78cam
12-04-2011, 03:16 AM
No problem, I went ahead and ran the numbers. for a max tps of 4.5Vthe equation becomes:

(X -25.6) * .488281

:wtg:

EagleMark
12-04-2011, 08:37 AM
That's good because I checked my TPS at Wide Open which is about 1/16th to 1/8th inch past throttle blades being wide open and only got 4.45?

When I looked at my MAP voltage reading, key on, engine off it was 4.45! So just because theres a 5 volt reference it looks like it does not use it all!

With the new equation I get 93.9% at 4.26 volts where my WOT is! :rockon: