Peake Research has been making the industry-standard BMW-Specific code reader for the DIY crowd for 20 years now. The biggest feature and selling point of these tools is that they are non-OBDII (generic), and will only read the same fault codes that a BMW dealership or tech will use for diagnosis.
As a brief explanation of the difference in protocols, OBDII is a government-mandated, generic code language that all cars produced after 1996 must maintain. It was designed for inspection stations to monitor emissions related issues, and was not truly intended for diagnostics. For about 10 years prior to the introduction of OBDII, BMW has been using their own factory-programmed code protocol that is intended SOLELY for diagnostics and repair. BMW has a set of codes for each chassis/ECU combination, which means that a fault code may be precisely intended for one specific vehicle. ompared to generic codes, the BMW factory codes offer the best and most accurate place to start when diagnosing or repairing one of their cars. THESE are the codes that the Peake tools read.
As they must comply with regulations, all post-'96 BMWs maintain both a generic OBDII system AND their own factory programmed module. When a problem is detected, the factory system generates a code. Simultaneously, the generic 'equivalent' is generated. 'Equivalent' is in quotes because in reality, they are often not even close. At best, the OBDII code is a vague representation of the problem being detected. At worst, there is no generic code that can be presented when the car detects the problem.
Many BMW owners don't know there is a difference between protocols, and will rely on vague OBDII codes when their check engine light comes on. What tends to be worse, is that they'll use the 'free' service offered by auto parts stores to read codes and clear the warning light. You'll see plenty of stories where the store employee working the generic tool reads a vague code (that does not necessarily correspond to the BMW being read) make a suggestion of a part to buy. Money wasted on improper diagnosis leads to a trip to a tech or dealer to figure out the problem. Many times, this could have been avoided by using the proper tool.