Either an ICOM (recommended) or a classic OBD cable with ELM327 chipset is required. In addition, some expert knowledge is necessary, which must be obtained before. Therefore it can usually only be obtained illegally. Unfortunately the software to be used is for the most part not freely available or is very expensive. From coding to the error memory and flashing the individual control units. With the classic toolset for BMW ( Ediabas and Co.) some useful things can be done.