for p0300, Causes: Faulty spark plugs or wires Faulty coil (pack) Faulty oxygen sensor(s) Faulty fuel injector(s) Burned exhaust valve Faulty catalytic converter(s) Stuck/blocked EGR valve / passages Faulty camshaft position sensor Defective computer Possible Solutions: If there are no symptoms, the simplest thing to do is to reset the code and see if it comes back. and I know this tool can reset your car code. http://chinasinoy.com/wholesale/bmw-gt1-dis-v57-sss-v39-compatible-with-all-computer-1252.html If there are symptoms such as the engine is stumbling or hesitating, check all wiring and connectors that lead to the cylinders (i.e. spark plugs). Depending on how long the ignition components have been in the car, it may be a good idea to replace them as part of your regular maintenance schedule. I would suggest spark plugs, spark plug wires, distributor cap, and rotor (if applicable). Otherwise, check the coils (a.k.a. coil packs). In some cases, the catalytic converter has gone bad. If you smell rotten eggs in the exhaust, your cat converter needs to be replaced. I've also heard in other cases the problems were faulty fuel injectors.
Random misfires that jump around from one cylinder to another (read: P030x codes) also will set a P0300 code. The underlying cause is often a lean fuel condition, which may be due to a vacuum leak in the intake manifold or unmetered air getting past the airflow sensor, or an EGR valve that is stuck open.