I bought a PEAKE fault code finder for $ 150 and that goes handy into the glove box.
Just connect to the DIS socket, push a button and I have the result (after checking the numbers in the tester with the manual). In addition it can reset codes, reset oil service and service interval, and with an addiditional unit also reset the SRS.
http://www.peakeresearch.com
Same unit one can buy from bavauto.com under the bavauto brand.
In addition I have a diagnosis interface to make my own checking.