Thread resurrection time.... and some progress!
I've had the check engine light flash up a couple of times recently, and reading the error codes manually gives me a MAF error, so I've been trying again to get connected up to the ECU to see if I can deduce what dodgy readings the MAF is feeding to the ECU.
This time around I noticed this thread:
http://www.subiesmart.com/forum/index.php?topic=51.0 which mentioned a 2.5 NA Legacy with the same microprocessor in the ECU.
I used the VWRX Select Monitor software, which identified my ROM ID as A20113 (the first three bytes of the string I was getting back in reply to the ROM ID command when I was trying before). The select monitor has a few configurations in its .ini file for other vehicles of around the same age with ROM IDs starting with A, so I copied the memory locations for one of those into a new definition with my ROM ID and fired up VWRX. The continuous scan mode wouldn't read all the values correctly -- often just returning all zeros. However, if I only read a single value at a time, it seems to work perfectly. At least the obvious values like speed, engine speed, battery voltage, ignition advance and throttle position seemed to work OK.
Now I'm going to have a go at grabbing the values through my own code, then I'll port it over to an Arduino board with an LCD module and try to get it to monitor the air flow value so I can check what it's doing if the check engine light comes on again. Hopefully I'll be able to dig around and see if I can find some of the other values that VWRX doesn't seem to read (like boost pressure).