ADC assignments for USDM Evo IX 88590015
#1
ADC assignments for USDM Evo IX 88590015
I was planning to contribute to the discussion of this topic on the AktiveMatrix website, but I'm finding it too time consuming fighting presentation and font color problems that are causing readability issues when I tried to create a post there. The thread on Aktivematrix is:
http://www.aktivematrix.com/forum/viewtopic.php?t=108
Anyhow, I've been working on the ADC assignments for the USDM Evo IX 88590015 ROM. Here's what I have thus far:
ADC channels, 88590015 USDM Evo IX
The order is as polled in the ecu.
Here are the sensor inputs I'm still working on. I'm not sure if any/all are ADC inputs though.
Here are the locations of the known ADC inputs on the ECU plugs:
Plug C-119
Plug C-117
http://www.aktivematrix.com/forum/viewtopic.php?t=108
Anyhow, I've been working on the ADC assignments for the USDM Evo IX 88590015 ROM. Here's what I have thus far:
ADC channels, 88590015 USDM Evo IX
The order is as polled in the ecu.
Code:
ADC poll subroutine #1 ADC CHAN MUT_REQUEST ECU PIN (USDM Evo IX) r5 RAM ADDR r6 RAM ADDR 02 10 (Coolant Temp) 44 FFFF6A46 03 3A (Air Temp) 62 FFFF6A56 0E-1 (*NOT USED*) BD (NOT AVAILABLE) -- FFFF6A58 04 8C (Barometer) 51 FFFF7C24 09-1 13 (O2sensor_front) 71 FFFF6A64 0A 3C (O2sensor_rear) 73 FFFF6A68 07-1 3E FFFF6A66 08-1 3D FFFF6A6A 0B 38 (MAP) 92 FFFF6AEC 0C 39 (Fuel Tank MDP) 93 FFFF6AF0 0E-2 87 (Fuel Temperature) 96 FFFF6AF4 0D 88 (Fuel Level) 95 FFFF6B02 07-2 (*NOT USED*) BF (NOT AVAILABLE) -- FFFF72AE 08-2 (*NOT USED*) 97 (NOT AVAILABLE) -- FFFF6B06 0F (*NOT USED*) 83 (AVAILABLE) 64 FFFF6B0C ADC poll subroutine #2 ADC CHAN MUT_REQUEST ECU PIN (USDM Evo IX) r5 RAM ADDR 01 14 (BATT_VOLTAGE) 60 (?) FFFF6AC8 05 17 (TPS) 78 FFFF6ACA 09-2 (*NOT USED*) NO_MUT (NOT AVAILABLE)-- FFFF7346 07-3 (*NOT USED*) NO_MUT (NOT AVAILABLE)-- FFFF7348 4D 96 (purpose not known) FFFF7676 FFFF7678 ADC poll subroutine #3 ADC CHAN MUT_REQUEST ECU PIN (USDM Evo IX) r5 RAM ADDR 06 30 (KNOCK Sensor) 91 FFFF6AEA
Code:
SENSOR ECU PIN Power Steering Press 54 Fuel Reserve 97
Plug C-119
Plug C-117
Last edited by mrfred; Oct 19, 2008 at 08:10 PM. Reason: More info on ADC 0F
#6
Very nice work as always!
Maybe I state the obvious, but I think many of these will be logic inputs rather than ADC (some will be a waveform like the crank/cam position sensors if they are like most cars, but they will likely be cleaned up to a digital input before going into the SH2). I found the intercooler switch originally by peeking various ports whilst flicking switches.
If you get my realtime patch working, I can add a few buttons to the logger to allow you to query any address without constantly reflashing the ECU.
Clutch Pedal 88
Crankshaft Posn 43
RPM 45
Exhaust Cam Posn 50
Intake Cam Posn 53
MAF signal 61
Vehicle Speed Sensor 80
Maybe I state the obvious, but I think many of these will be logic inputs rather than ADC (some will be a waveform like the crank/cam position sensors if they are like most cars, but they will likely be cleaned up to a digital input before going into the SH2). I found the intercooler switch originally by peeking various ports whilst flicking switches.
If you get my realtime patch working, I can add a few buttons to the logger to allow you to query any address without constantly reflashing the ECU.
Clutch Pedal 88
Crankshaft Posn 43
RPM 45
Exhaust Cam Posn 50
Intake Cam Posn 53
MAF signal 61
Vehicle Speed Sensor 80
#7
Very nice work as always!
Maybe I state the obvious, but I think many of these will be logic inputs rather than ADC (some will be a waveform like the crank/cam position sensors if they are like most cars, but they will likely be cleaned up to a digital input before going into the SH2). I found the intercooler switch originally by peeking various ports whilst flicking switches.
If you get my realtime patch working, I can add a few buttons to the logger to allow you to query any address without constantly reflashing the ECU.
Clutch Pedal 88
Crankshaft Posn 43
RPM 45
Exhaust Cam Posn 50
Intake Cam Posn 53
MAF signal 61
Vehicle Speed Sensor 80
Maybe I state the obvious, but I think many of these will be logic inputs rather than ADC (some will be a waveform like the crank/cam position sensors if they are like most cars, but they will likely be cleaned up to a digital input before going into the SH2). I found the intercooler switch originally by peeking various ports whilst flicking switches.
If you get my realtime patch working, I can add a few buttons to the logger to allow you to query any address without constantly reflashing the ECU.
Clutch Pedal 88
Crankshaft Posn 43
RPM 45
Exhaust Cam Posn 50
Intake Cam Posn 53
MAF signal 61
Vehicle Speed Sensor 80
Its been kind of fun trying to figure out the sensor connections. I figured out the fuel tank MDP sensor by removing the gas cap and watching the ADC channels. I wanted to test the power steering pump pressure sensor by disconnecting it from the harness, but the little plug is impossible to pull apart.
Trending Topics
#8
found it!
Hey Folks, ADC 0F which is the only used ADC channel on the USDM Evo IX is tied to either pin 63 or 64 (both unused) on the ECU. (I'll have the exact answer in the morning.) Woot! We now have a means to switch maps either manually or automatically (e.g. flex fuel sensor).
For those who might want details, the scaling is 5 V = 255 and there is no pull-up.
For those who might want details, the scaling is 5 V = 255 and there is no pull-up.
Last edited by mrfred; Dec 30, 2007 at 04:45 AM.
#10
EvoM Guru
iTrader: (6)
from memory 7 is unused on 88580014 as well... sorry MrFred I havn't forgotten to upload my disasm, just been busy with Christmas and all that this week I promise
so if someone with a bit of electronic know how can do a writeup for howto connect a switch or whatever to this input then I can do the code part...
so if someone with a bit of electronic know how can do a writeup for howto connect a switch or whatever to this input then I can do the code part...
#11
from memory 7 is unused on 88580014 as well... sorry MrFred I havn't forgotten to upload my disasm, just been busy with Christmas and all that this week I promise
so if someone with a bit of electronic know how can do a writeup for howto connect a switch or whatever to this input then I can do the code part...
so if someone with a bit of electronic know how can do a writeup for howto connect a switch or whatever to this input then I can do the code part...
No prob with the disasm. I've had prior commitments and holidays keeping me busy as well.
Last edited by mrfred; Jan 3, 2008 at 10:10 AM.
#13
I noticed you had MUT BD in there. This is the inlet manifold air temp on the JDM IX pin 96. Instead of the US fuel temperature sensor it seems. JDM wiring has no connection where you have the second O2 sensor, as well as fuel tank MDP. I don't think JDM has fuel level or reserve either - isn't on the wiring diagram. So JDM may have two further spare ADC channels 0A and 0C.
Do you want a form on the 88590015 Evo Live Map app to query random addresses or ranges of addresses or has the horse already bolted so to speak?
Do you want a form on the 88590015 Evo Live Map app to query random addresses or ranges of addresses or has the horse already bolted so to speak?
Last edited by jcsbanks; Jan 6, 2008 at 11:11 AM.
#14
I noticed you had MUT BD in there. This is the inlet manifold air temp on the JDM IX pin 96. Instead of the US fuel temperature sensor it seems. JDM wiring has no connection where you have the second O2 sensor, as well as fuel tank MDP. I don't think JDM has fuel level or reserve either - isn't on the wiring diagram. So JDM may have two further spare ADC channels 0A and 0C.
Do you want a form on the 88590015 Evo Live Map app to query random addresses or ranges of addresses or has the horse already bolted so to speak?
Do you want a form on the 88590015 Evo Live Map app to query random addresses or ranges of addresses or has the horse already bolted so to speak?
Anyhow, I had been using EvoScan to query the ADC RAM variables via MUT. If you have a way to directly query RAM addresses rather than MUT channels, that could be very useful, especially if I can enter the desired RAM address in real time rather than have to prepare a definition ahead of time.
#15
You can do this with the ROM you already tested. We will do it by hijacking the "Ignition" tab and making it "mrfred" I attach a lightly modded PC app to do it.
1. Change the address "RAM mrfred" on the "Setting" tab to the address you want to start reading. It is preset to FFFF8323 - just set the last two bytes in hex, so if you want FFFF6A64 change the 83 to 6A and the 23 to 64. You don't need any $, 0x, &H - it assumes hex.
2. I have already reduced the size of the table in the "mrfred" tab to 16*16 if you want to read say 256 bytes, you could make it 4*4 or 16*1 or you want 16 bytes etc.
3. Then "Read RAM mrfred" on the "mrFred" tab whilst logging.
The changes in 2 and 3 can be done whilst logging, so you can dynamically change the address and number of bytes you want to read before clicking Read RAM mrfred again.
Note the data (like the maps) is displayed in order going down each column, so your first 16 bytes will be in the first column if you are 16*16.
-----------------------------------------
For interest, the only things I changed apart from the mrfred references are to remove the line that displays the negative ignition values "if i>128 then i=i-256", removed the "write RAM ignition" button to avoid confusion, and just changed the table to 16*16 with helpful labels in the axes to show you which byte you are seeing (all in decimal). Hope this quick hack from my in-law's house works for you Any 88590015 user can use this to read RAM if they know what they are doing. If people need to be able to specify address ranges that don't being with FFFF let me know (in another thread to avoid polluting mrfred's one). This post is about ADC assignments, my post in it is about reading blocks of RAM to facilitate further investigation. Thanks!
1. Change the address "RAM mrfred" on the "Setting" tab to the address you want to start reading. It is preset to FFFF8323 - just set the last two bytes in hex, so if you want FFFF6A64 change the 83 to 6A and the 23 to 64. You don't need any $, 0x, &H - it assumes hex.
2. I have already reduced the size of the table in the "mrfred" tab to 16*16 if you want to read say 256 bytes, you could make it 4*4 or 16*1 or you want 16 bytes etc.
3. Then "Read RAM mrfred" on the "mrFred" tab whilst logging.
The changes in 2 and 3 can be done whilst logging, so you can dynamically change the address and number of bytes you want to read before clicking Read RAM mrfred again.
Note the data (like the maps) is displayed in order going down each column, so your first 16 bytes will be in the first column if you are 16*16.
-----------------------------------------
For interest, the only things I changed apart from the mrfred references are to remove the line that displays the negative ignition values "if i>128 then i=i-256", removed the "write RAM ignition" button to avoid confusion, and just changed the table to 16*16 with helpful labels in the axes to show you which byte you are seeing (all in decimal). Hope this quick hack from my in-law's house works for you Any 88590015 user can use this to read RAM if they know what they are doing. If people need to be able to specify address ranges that don't being with FFFF let me know (in another thread to avoid polluting mrfred's one). This post is about ADC assignments, my post in it is about reading blocks of RAM to facilitate further investigation. Thanks!
Last edited by jcsbanks; Jan 6, 2008 at 12:25 PM.