Select Monitor Adapter
Subaru Diagnostic Ports
How to build a PC adapter

Engine Control Unit (ECU)
Reading Error Codes
Reverse Engineering
ROM images

Transmission Control Unit (TCU)
Reading Error Codes
Reverse Engineering
Power Mode
ROM images

Other Control Units
Air Conditioning Unit
4WS Control Unit
Cruise Control Unit

OBD2 Information
Select Monitor Cartridge

Links to other sites

Custom TCU Development


I sometimes get emails from people who have built a Select Monitor Adapter and are having trouble getting it to work. I am always interested to hear of other people's projects and I am happy to help if I can.

The best way to check communication with the ECU is to use a program called the Hex Com Tool that you can download from The tool allows you to send hex commands to the ECU and see what reply the ECU sends back.


Install the program, connect up your cable, ensure the ignition is ON, then run the program. The following instructions were posted by Nomake Wan in the thread on the SVX World Network.

Open Hex Comm Tool
Press F1 Key
Select Correct COM port
Set to Baud Rate: 1954, Data Rate: 8 bit, Stop Bit: 1, Parity: Even
Click "Open" to activate COM port.
Type "78123400" into the text box and press enter key.

You should get 123400 repeated over and over until you type "12000000" into the text box and press the enter key.


When you send the command 78123400, this means "tell me the data stored at address 1234 in the ECU memory". If everything is working OK, the ECU should respond with "123400" repeated over and over. This means "The data at address 1234 is 00".

Get this working first and then everything else will be easy. If the communication is working then all the other software will work. If not then none of it will work.

If you get back nothing, or zeros then there may be a fault with your adapter. If you are using a USB device then there may be a problem with the driver. Some USB devices do not support the unusual baud rate. In any case, check the circuit and connections carefully.

If you are getting back corrupted data then you may have "the 92 problem". See the "How to build a PC adapter" page for details. Typically the bad data looks like this (the actual numbers vary, but they are clearly not like the expected result above):


Adjust the potentiometer on your "92 problem" board until the data comes clean. You can do this while the ECU is sending data and see how the data changes. On my car, the optimum position is near the low end of the scale.

If your car has an automatic transmission, another thing you could try is to query the TCU instead of the ECU. Substitute 45C00000 instead of 78123400, the TCU should return C00070 repeated over and over.

One last thing to add is that my Legacy has an aftermarket alarm system that immobilises the car if you don't start the engine after 1 minute. The immobiliser cuts the power line to the ECU, so all of the values go to zero after 1 minute unless I run the engine.