^^ what he said....overall, youll be better off going with a BMW specific scanner, with a generic scanner, youll only be able to read DME codes with limited ability vs a specific one, which will give you the ability to read codes on all modules in the car. its a bit different of a learning curve, but necessary for a diy'er. either p a soft, or inpa, require a laptop installation, and the cables (each has its own). plus, youll see more detailed error codes, nice to have access to. both can be gotten free, just the cable cost (40 or so). the OBDII reader i carry is torque, its a droid app, loads on your droid phone or tablet, its about $7 from google play, plus about $40 for an elm327 bluetooth port adapter. there is an app for ios, i just cant remember the name at the moment. depending on the year of your car, if its an early model with the 20 pin underhood connector (round connector near the ABS module) youll need the 16 pin underdash to 20 pin underhood adapter (around $10) to read all other modules than the DME (engine) and EGS (trans), theyre read at the underdash 16 pin OBDII connector. if you dont have the 20 pin connector, all modules are read thru the OBDII connector.