Getting more out of a stock EJ25 or FA20 isn't hard, but most people do it wrong because they focus on bolt-ons first instead of tuning.
I've been swapping tunes and bolting parts on Subaru WRX Hawkeyes (2005-2007) since 2009, back when people actually cared about lift ratios more than wheel width. The stock FADEC system is surprisingly tunable if you know what to touch. My current daily is a 06' WRX with a COBB AccessPORT, a TGV delete, and a front-mount intercooler. It makes about 265 whp on 91 octane, which sounds modest but drives like something that wanted to break my neck when the map was richer. That phrase comes from the early cobble-together community around aftermarket ECUs and reflashed firmware. Nobody really knows who first slapped it together, but it stuck because it describes exactly what happens when you stop treating the STi's ECU firmware like sacred text and start reading the raw maps instead. I learned this the hard way after blowing a head gasket at the 8000 rpm point on a tune that looked safe on paper but had a timing anomaly I couldn't see without a wideband logger. Here's the sequence that actually works for me, and it's deliberately backwards from the typical forum advice you'll find.
Step one: log before you flash anything
Most people buy a Cobb or AEM tune and slam it in. That's how you get lean conditions under boost that look fine at WOT but destroy your cat upstream. I log at least 20 minutes of real driving across three distinct modes — cold idle, part-throttle highway cruising, and hard pulls through second through fourth. I watch AFR on all four O2 sensors, not just the downstream one. The factory split has a quirk where the primary sensor can read marginally lean during transient throttle changes even when the secondary says it's rich. This is the specific problem that cost me a replacement front O2 sensor and a week of research. The workaround is simple but counterintuitive. Don't trust a single narrowband. Either pull a wideband AFR gauge into your logging software or set the log interval to 50ms or faster so you catch transients. My default logging cadence on the AccessPORT is 100ms, which is fine for steady-state but hides the dips. Dropping it to 50ms during my pull captures tells me exactly where the AFR breaches 12.2 under load. When you see that, you don't add timing — you fix fueling first. Timing is secondary. Everybody gets this backwards.
Step two: TGV delete and intake, but only after you confirm the exhaust side is breathing
The stock WRX Tumble Generator Valves cause a restriction above 5500 rpm. They're good for low-end torque when cold, which is why Subaru kept them. The delete is free horsepower and removes a failure point, but you have to balance the ECU for the new manifold flow or the A/F trims will hunt. I use a velocity stack kit and a decent filter — the K&N unit works, the pod filters don't. Again, this is the kind of thing that sounds obvious until someone tries to install a 3-inch trumpet cone on a stock intake pipe and wonders why detonation shows up in third gear. If you want to run aggressive timing or higher boost and not melt your pistons on a heat soak, the FMIC is the single highest-ROI mod. I've seen temps drop from 220°F in the stock intercooler to about 95°F within two passes with a decent Mishimoto or ARM unit. That temperature difference directly translates to consistent power and less need for pull-to-pull timing retardation. The stock plastic internals also degrade over time, which means your intercooler is slowly becoming less efficient even when it looks fine from the outside. Here's where I diverge from the crowd. I don't use pre-made maps from forums unless they match my exact hardware within 95%. A tune for a 55mm turbo on pump gas is useless on a stock 47mm when you want more than 260 whp. Instead, I start from the stock ROM and hand-tune the fuel and timing tables with a base map that's slightly conservative on fuel and slightly retarded on timing — lean by maybe 0.2 AFR from target, and pulling 2 degrees off the knock limit. Then I drive, log, and adjust in 0.1 AFR and 0.5 degree increments.
Get the Full Details

The reason this takes so long is that Subaru's closed-loop compensation under high load is aggressive and fights anything that deviates from the factory curve. If you set target AFR too far away from what the short-term fuel trim expects, the ECU fights you and the car will feel lazy at part throttle even if WOT is fine. I usually spend about 3 hours total on a first pass, which includes a couple of cool-down cycles between runs to catch heat-related drift. A well-tuned Subaru makes its power smoothly, not in sudden spikes.
Common pitfalls that nobody warns you about
First, the 2005-2007 WRX uses a different MAP sensor range than the 2004 Bugeye. If your tune calibration expects Bugeye sensor curves, you'll get incorrect boost readings and the ECU will underfuel. Second, the stock fuel pump on high-boost applications barely survives past 30 whp gain. I replaced mine preemptively on every build since 2012 because a failing pump doesn't announce itself clearly — the car just gets lazy at sustained WOT and the fuel trims go insane. Third, people ignore the downpipe oxygen sensor position. Moving it closer to the manifold improves sensor response time by about 150 milliseconds, which matters when the ECU is trying to compensate in real time. This is a real improvement, not just a forum anecdote. It won't make 400 whp on a stock bottom end. The EJ25 block is adequate for about 350-380 crank hp with good supporting mods, but if you want more, you're looking at forged pistons and fresh head studs, which is a different project entirely. It also won't fix a leaking head gasket that's already blown, and it definitely won't compensate for a worn turbo. I've pulled apart three rebuilt turbos that "felt sluggish" after a tune — they were all just worn. Tuning amplifies what's already there, it doesn't create new airflow. This level of tuning requires patience and a basic understanding of AFR and timing relationships. If you can't read a log or tell the difference between a fueling issue and a boost leak, you're better off buying a professional dyno tune. I've seen plenty of cars with aggressive maps that made great numbers at 5000 rpm but ran so lean at 2000 rpm that the catalytic converter dissolved. That's not a tune problem, it's a skills problem. Also, some states don't allow removing O2 sensors or replacing emissions components. Check your local regulations. I'm not responsible for your DMV visit.
When done right, though, a properly tuned Hawkeye is one of the most rewarding platforms you can drive daily. The sound, the boost response, the fact that you can wrench on it in a driveway without a specialty tool — it still holds up. My next project is an EJ25 swap into an older Outback wagon with the same philosophy. Different car, same approach.
