Subaru Select Monitor Scan Tool
NEW: Source code now available under GNU General Public License!
The Select Monitor Scan Tool is designed to read and display real-time data on a Windows PC directly from a Subaru ECU.
Includes default profiles for the following ECU versions:
All OBD-I Subaru ECU versions are supported, but some parameter address hunting may be required. See instructions below:
Communication with the ECU is achieved by connecting the select monitor connector to your computer's serial port. This connection requires translation of signal levels from RS232 to TTL. A level translator is required when connecting your PC to this select monitor port. Below are two example schematic diagrams of how to make an RS232 to TTL translator for this application.
RS232-Discrete Schematic Rev B
RS232-Integrated Schematic Rev B
Pinout of the Select Monitor Connectors
OBD-I | OBD-II* |
Click to buy mate connector Photo by Vikash Ravi Goel |
|
Pin | Signal |
2 | Transmit |
3 | Receive |
5 | +12V |
9 | Ground |
|
Pin | Signal |
12 | Transmit |
13 | Receive |
16 | +12V |
5 | Ground |
|
* Untested with OBD-II ECU's, but the Select Monitor protocol is supposed to also be supported for at least some of the early OBD-II Subaru ECU's. NOTE: The Select Monitor protocol uses the same connector, but different pins then the OBD-II protocol.
Once your translator is built and connected to your PC, you can use the SelectMonitorDump utility to identify your ECU ROM ID. If your ROM ID is unique you will need to create a new profile in the SelectMonitor.ini file with the configuration information for your ECU. The SelectMonitorDump utility will help you identify the memory locations where each parameter's data lives. A new configuration section can then be added to the SelectMonitor.ini file for your ROM ID and the SelectMonitor application can then be used.
Each data parameter lives in an eight bit data space, which means each parameter's value can range from 0 to FF hexadecimal (which is 0 to 255 decimal). The first column in the display window is the Address in hexadecimal and the second column is the RAW Data (N) in hexadecimal. The next twelve columns represent all of the different calculations used when converting the Data values to actual usable data. This is done to help you identify which calculation makes the most sense for the particular Data value at a particular address. The object here is to try and find as many of the following eighteen parameters as you can (or want to use) somewhere in the address map.
ECU Parameters
Description | Units | Conversion | Column |
Ignition Advance | Deg BTDC | N | 2 |
Knock Correction | Deg | N | 2 |
Engine Load |   | N | 2 |
Battery Voltage | V | N * 0.08 | 3 |
Vehicle Speed | KMH | N * 2 | 4 |
Engine Speed | RPM | N * 25 | 5 |
Coolant Temp | Deg C | N - 50 | 6 |
Airflow Sensor | V | N * 5 / 256 | 7 |
Throttle Position Sensor | V | N * 5 / 256 | 7 |
Boost Solenoid Duty Cycle | % DC | N * 100 / 256 | 7 |
Injector Pulse Width | ms | N * 256 / 1000 | 8 |
ISU Duty Valve | % DC | N * 100 / 256 | 9 |
O2 Avg | mV | N * 5000 / 512 | 10 |
O2 Min | mV | N * 5000 / 256 | 11 |
O2 Max | mV | N * 5000 / 256 | 11 |
A/F Correction | % | N - 128 | 12 |
Atmospheric Pressure | mmHg | N * 8 | 13 |
Manifold Relative Pressure | Bar | ( N - 128 ) / 85 | 14 |
Unfortunately the address map ranges from 0000 to FFFF hexidecimal, that's 65536 possible address locations! Obviously you can't go through and search every single possible address for each parameter. Since the ECU ROM lives from 8000 to FFFF there really is only 0000 to 7FFF where you will find parameters. Luckily there is some overlap between different ECU ROM ID versions. Hopefully you will be able to find the parameters for your ECU by simply trying known parameter addresses for other ECU versions. Once you have the parameter addresses figured out for your ECU, you can create a new section in the SelectMonitor.ini file for your ECU's ROM ID.
The SelectMonitor.ini file contains all configuration information for the SelectMonitorDump utility and the SelectMonitor application. Use a plain text editor like notepad.exe when editing the SelectMonitor.ini file. Lots of other optional stuff in the SelectMonitor.ini file that I will document when I have more time...
Once you have a ROM ID section in the SelectMonitor.ini for your ECU, the SelectMonitor application is ready for use.
The fewer parameters that are checked, the faster the data will update. You can enter Graphic Mode to give you an analog gauge display as shown on the top of this page. To leave Graphic Mode, double click on the status bar at the bottom of the window.
Please email me your SelectMonitor.ini file when you are certain your configuration is working properly, and I will add your ROM ID section to the master SelectMonitor.ini file. This way the next users will be able to benefit from your discoveries if their ECU ROM ID is the same, or will at least give them some more probable parameter addresses to try. My hope is that eventually the master SelectMonitor.ini file will contain sections for the most common ECU ROM IDs out there.
THE FOLLOWING HARDWARE, SOFTWARE AND INFORMATION IS FREE TO DOWNLOAD. THERE IS ABSOLUTELY NO WARRANTY OF ANY KIND. BY USING THIS HARDWARE, SOFTWARE AND/OR INFORMATION YOU AGREE THAT THE AUTHOR SHALL NOT BE HELD RESPONSIBLE FOR ANY DAMAGES THAT MAY OCCUR.
Select Monitor Software (zip) - Version 1.1.0 - July 22, 2008 for Windows (95,98,NT,ME,2K,XP)
Master SelectMonitor.ini file (right click save as) - Version 1.1.0 - July 22, 2008
If you find this software useful, please make a donation. Your donation will motivate me to continue supporting this software and make more improvements. Suggested donation is $19.95, but feel free to donate as much or as little as you feel this software is worth to you. Thanks, Kevin Frank
|