Here's a link to a cable that I and other successfully use. It goes out of stock sometimes but when I copied it they had some:
http://www.one-stop-electronics.com/shop/
People ask a lot about cheaper cables and some may work. I would watch out if they do not have a liberal return policy and if they say the same cable will code all bimmers. The older models need a different pin arrangement so the above link includes an adapter. It is a high quality cable but isn't the cheapest you can find.
The error could be because you need to update your software.
You probably have the digital speedometer in your little digital display (as an option along with mpg and other info), I had to add it to my e88. Is your speedometer inaccurate like the analog? If so, this code may fix it, it is in Kombi in mine:
BC_DIGITAL_V_KORREKTUR
If you do not care for the warning gong when the temperature gets close to freezing, you may want to change this setting, also in Kombi for me:
CC_TEMPERATURWARNUNG
There is another website dedicated to coding you may want to check out: b m w c o d i n g.com (eliminate the spaces).
Jim