I have one of these stubby modules, which fits nicely in our cars without interfering. I just leave it in all of the time, and have it tied into my smartphone. You can read and reset ODBII codes, but also log lots of other info like coolant temp, rpm, etc.
I also bought a modified diagnostic cable to use INPA software with. I got it from gleech http://www.maxbimmer.com/forums/show....php?p=1539712
INPA is very powerful. You can program modules, reset adaptations, see BMW specific codes, etc.