The .adx file is the data logging file that must be setup in TunerPro RT. For bench testing the rev5_test.adx is needed, and for logging in the car you need to use the rev5.adx file. You can find the rev5.adx file here http://droid.arm.ee/volvo/rev5/. To set it up go to Tools -> Preferences -> Data Acq./Emulation and select interface type "use plugin", select the "TunerPro Data Acquisition IO interface" plugin (the only one, by default), then select "Configure Plug-in Component" and select "Standard Serial" and specify the COM port number of your serial interface. Then, from the Acquisition menu, select Load Definition and feed it the ADX you want to use. Then, from the Acquisition Menu, select "Show Dash". You may need to expand the window to see all of the 15 gauges present, I seem to remember it starts out all small on a fresh install.
Now, install the ECU and connect the laptop to the OBD-II port. I recommend verifying successful connectivity to the ECU before attempting to use TunerPro RT to connect, but you can just go ahead and try to connect, it can't hurt. But if it fails, try this test. To verify connectivy, grab a copy of the wonderful free program RealTerm from http://realterm.sourceforge.net/. Install it, and from the port tab, select your VAG-COM cable port, type "125000" into the baud rate box (it's a dropdown, but you can type your own value in as well) and select "Open" to open the serial port at 125000baud. Verify in the status bar the baud rate got set and the port is Open. Turn the key on, but don't start the engine. Click in the black half of the terminal window, and send a character to the ECU. I recommend using the space character since the half-duplex link is going to repeat the character to you. The ECU is in "listen" mode when key-on engine-off. Each time it receives a character it will reply with "R" and another letter to indicate status. The status letter is a capital "A" + the value of the log flag byte. By default, the flag byte value is 0 (logging disabled), so the returned letter is A. Send the ECU a single l (lower case L) and you should receive back another "R" then a "b" to indicate the log byte is now 1. If you can complete this, you are communicated with the ECU at 125000 baud. Or, press your luck and just try to connect. Either way, close realterm now, so TunerPro can use the port. Turn the car off after this test and then back to key-on engine-off mode. Speaking of realterm, if you ever need to get to OBD-II diagnostics before the car is started (when the listener is running, thereby disabling other diagnostic modes), send a single lower-case "o" using the same method above, disconnect your VAG-COM cable, hook up your OBD-II gear, and scan the car. Note that if you simply start the car, without enabling logging, you will have no logging and OBD-II (or VST, etc) functionality. Sending the "o" to disable the listener was added to enable scanning the car if it's in a no-start condition for diagnostic purposes.
With the car in key-on engine-off mode, with all the dash idiot lights ablaze, open TunerPro RT. With the ADX loaded, click the "Acquire Data" button on the toolbar (It is two blue arrows going opposite directions). The "DA: Not Connected" yellow bar at the bottom of the screen will turn to "Connecting". Now start the car. If all is well, it should go blue and indicate "Connected" within a split second of the starter cranking and the gauges should display activity. I'm not sure if TunerPro will timeout waiting for the car to start sending data, but for good measure, especially on the first try, start the car just after it goes to "Connecting". If the car fails to start for some reason (weak fuel pump relay, etc), you may need to disconnect and reconnect TunerPro before trying to restart, with the car in key-on engine-off mode.
If you look in the ADX definition, there is a connection command to send the "l" and then a monitoring command to listen for the 35-byte delimited frame of data thereafter. The ECU starts sending the frames as soon as it tries to start, assuming it has been enabled by sending it the "l". Honestly I just added the command to send the "l" on connection today in TunerPro, it seems to work great, but if you have troubles, you might try the realterm method to send the "l" to ensure it gets there, then try to connect with TunerPro after starting the car. Also, if you send the "l" in realterm then start the car, you should promptly see it start spitting out all sorts of unreadable data bytes. If you get the "Rb" after sending the "l" but no data after start, something went badly, let me know.. I've yet to experience this.
Also: Don't physically connect or disconnect the VAG-COM (or similar) serial cable with the engine running with the data stream going. It usually doesn't care, but once it did apparently freak out the ECU and caused the engine to almost stall then recover. Starting/stopping data acquisition isn't an issue, just physically disconnecting the VAG-COM cable while it's send out bytes like mad.
You probably want to ensure your laptop isn't in some power-saving mode that will cause it to suspend/hibernate/whatever if you don't pay attention to it. I also disable sleep on lid close, so I can close the display while it logs data -- My city has some pretty strict distracted-driving laws thanks to cell-phone-texting morons and an open display is an invitation for the local PD to collect some money and possibly hassle me in other ways, especially at night when the screen lights up the cab. Be a responsible individual and either ignore it while you drive or bring a friend along to watch it for you. All your data can be replayed on the gauges and/or exported to Excel when you're done driving.
After a few seconds of awe watching the gauges bounce around at idle, click the red dot "Begin Recording" in the toolbar, stow your laptop safely so it won't fly around the cab on your favourite twisty road, and go for a cruise. When you're done, click the stop square, select a filename for the log, and save it. The from Acquisition, Export Log, export your log to a CSV and open in your favourite spreadsheet. You can also click the "Play" icon to replay the log on the gauges, and watch your drive. I do find it annoying it seems impossible to arrange the order of columns in the export on a consistent basis (you can do so, but it doesn't save the order). If you figure out how to arrange them in a neater fashion, let us know
For Wideband and Boost Logging Edit
Derived from NJGreenBudd:
Start with the boost pressure sensor hook up to rear O2 channel:
Boost pressure sensor pin out is :
- V out
The rear O2 channel uses ECU pin
A19 for electronics ground do not use A19 for ground as it has a 0.7V bias. Use pin A42 which is a signal ground and A34 for the signal input. 5v will need to be pulled from another pin in the ECU (pin B15 is a 5V supply).
ADX Formula: ((((X/255) + 0.04)/0.004)*0.145)
And then for the WBO2 hook up to the tank pressure channel:
- Red - +12V switched source
- Black (electronics ground)
- White - Ground to engine block
- Green - 0-5v output signal
The pressure tank channel ECU pins are B31 the signal input, B15 is the 5V supply and B28 is the sensor ground.
ADX Formula: ((X* 0.0196078)*2) + 10
Connecting a wide-band signal into the ecu without having to add pins (on an 850).
Looking at the ecu connector in the ecu box the pins normally suggested for the wideband (tank pressure input B31) are not populated. But pin B32 is (accelerometer input).
My 850 does not have the accelerometer fitted but I traced the connector location to just by the AC drier tank clipped into a blank plug.
So I've just connected the wideband output to the accelerometer connector and changed the IAT logging channel (as mine doesn't have that either) to the accelerometer channel in the bin and it is logging fine.
Seems an easier way than trying to add pins to the ecu connector.
**Try these formulas and experiment if they are not accurate for your vehicle. Use your best judgement!**
|0||NMOT||X*30||Current Engine Speed in RPM|
|1||TL||X*.048||Load in MS|
|2||Z_ZYL||X||Current Firing Logical Cylinder|
|3||ZWOUT||Actual Ignition Angle|
|4||ZWBEG||Ignition angle after change limitation|
|5||ZWNEU||Ignition angle before change limitation|
|6||DZW_KR||Current recorded depth of knock retard|
|7||FALLT||Memory of last knock retard depth|
|8||XFALMIT||Sum of cylinder retard values|
|9||XFALARO||Address in KR case depth map|
|10||XFALT5||Cylinder 5 retard|
|11||XFALT3||Cylinder 3 retard|
|12||XFALT1||Cylinder 1 retard|
|13||XFALT2||Cylinder 2 retard|
|14||XFALT4||Cylinder 4 retard|
|15||Z_ZYL||X||Current Firing Logical Cylinder|
|16||ZWGETR||Ignition angle retard for A/T gearbox shift|
|17||XFK_ANR||Factor of enrichment due to knocking|
|19||MLH||Air mass, high byte|
|20||MLL||Air mass, low byte|
|21||TIH||Injection time, high byte|
|22||TIL||Injection time, low byte|
|25||XFRA||LTFT part load|
|27||XUSVK||Front O2 sensor voltage|
|28||XWDKBL||Throttle angle in degrees|
|29||HFKORR||Overall fuel correction, high byte|
|30||LFKORR||Overall fuel correction, low byte|
|31||VMESS||X||Vehicle speed in KM/H|
|32||TMOT||X-80||Coolant temperature, degrees C|
|33||XERG_PS||X*.048||Boost control setpoint after 1st set of corrections|
|34||XP_SOLL||X*.048||Boost control setpoint after all corrections|
|35||XP_IST||X*.048||Current load value as sampled by boost control logic|
|36||XPCP||X*.048||Current deviation between XP_SOLL and XP_IST|
|37||XTV_VS||Current value from KFTVVSLDR map|
|38||TVMBEG||Actual output duty cycle to turbo control valve|
|39||XPCP_TV||Current proportional correction to KFTVVSLDR value to meet target load|
|40||XPCIHI||Boost control integrator, high byte|
|41||XPCILO||Boost control integrator, low byte|
|42||IAT||X-80||Intake Air Temperature|
|43||XPTE||Tank Pressure channel (used for extra sensor input)|
|44||XUSHK||Rear O2 Sensor (used for extra sensor input)|
|45||VKRCOUNT||Knock count since last log entry|
Also, if you open up any of the maps while logging or when playing back a log, there is a form of rudimentary map tracing present. It isn't true map tracing, as it calculates the from various parameters which cell the ecu must have been using at the time. It could be useful though.
This is a list of valid inputs during key-II, non-running condition. To use these commands setup RealTerm as described above and simply type the character in.
d: disable logging, also clears persistence l: enable logging, non-persistent (disables persistence if set) L: enable logging, persistent s: enable XRAM streaming logging, non-persistent (disables persistence if set) S: enable XRAM streaming logging, persistent o: enable pre-start OBD-II O: enable pre-start OBD-II, persistent (disables pre-start listener, must remove all power to ECU to log again -- use this when getting car smogged) x: XRAM dump (spits out F800-FFFF immediately) p: dump port SFRs (spits out port SFRs P0-P7 immediately) 0: clear all flagbits 1: activate alternate map set 1 2: activate alternate map set 2 3: activate alternate map set 3