My '99 323i E46 recently spit 2 codes, P1421, P1423. My scanner told me it was "Manufacturer Controlled Secondary Emissions." Well, with some help from you guys, and some simple troubleshooting, and the factory service manual, I fixed it without shot-gunning any parts.
Turns out, the secondary emissions system basically consists of an air pump, secondary valve, and a control solenoid valve underneath the intake manifold. Usually, air solenoid valves don't normally puke, so I took the pump off the right shock tower and zapped 12V on the terminals--nothing. It's also recommended that you change the secondary pump and valve together, as one can take out the other in the event of a failure.
So, $330 later--MY COST
: --but only about 45 min. for R&R, my check engine light remains out to this day.
Plus I can hear the pump right on the first start of the day now, which I couldn't hear before. It actually sounds kinda cool, especially when it shuts off.
I can't STAND idiot lights on in my car. As a mechanic, I just gotta fix it I guess--no matter what the cost, and even if it doesn't affect the way it runs.
Also, there are some parts stores around the country, such as Autozone, that will tell you what the code is from your check engine light for free. That's the benefit of OBD II systems--it's a common language now worldwide in cars. Or, for $100, you can pick up your own OBD II code reader and take it from there. Caution: If you do this, have a manual handy to help explain what the code means, or ask someone here!
I just think a BMW should work properly, don't you think?