some actual Gen 4 news.
Been dicking around with a silly P0303 Cyl 3 Misfire for a long time, to the point I bought a spare scanner to reset it so I could leave my laptop at home, if it wasn't for the cruise control being disabled I really would've just left it.
When the air-con was kicking in, revs would drop to 650ish and it would throw 8-20 missfire codes on Romraider view. This was on idle alone, without driving. It would be fine driving, if you stopped and idled for 5 mins it would throw it. My IAM was sitting on .500. Idle would hunt around 650-660 with aircon on.
I worked through, replaced the coilpacks, the leads. I replaced the Spark plugs twice, originally had Bosch in, then changed to the NGK. I even tried 3 gaps on each plug, started at 1.1, went to 1.0 and then 0.9. I added a couple of extra ground across the head in case too. I was running constant 95 in the car as it is just a stock 2.5i. Tried Nulon upper engine cleaned, and then done the genuine Subaru upper cleaner twice as well as a trial as well.
The missfire was getting so bad it was happening each trip to work, so got a toolpro scanner to leave in the car. I ended up taking out injector 1 and 3 and flipping them about too, and also checked the fuel pressure in case.
Today was getting fed up after a couple of months of dealing of this ( I only work every 2nd week) so was messing around with it every block off. I got on the old googles, and found a shitload of threads on NASIOC, so started scanning through, and found out a decent thread on the problem, and the obvious checks, went through it, and found something I hadn't read before, to swap out the AFM.
Went through all my spares, and I had the exact AFM to suit the car. So went down to the servo, put in 1/2 a tank of 98, and changed out the AFM.
Reset the ECU, and my IAM finally came back upto 1.0, idle with aircon on now it sits around 750. Went for a fang to the servo, replicated what I generally do in the carpark ( open cap, wait ~5 mins to simulate filling ) and then head hom. Generally this will throw the code, not this time.
SO have I fixed ? I don't know, I'll continue filling it with 98 and keeping an eye on it.