BMW F-sarjan OBD ENET ja CAN ohjelmoinnit

Tämä artikkeli koskee vain BMW F-sarjan Bosch EDC17 ja MED17 ohjainlaitteita. Aivan uusimmissa BMW autoissa on siirrytty uuteen Bosch MD1 (diesel) ja MG1 (bensiini) ohjainlaitteisiin joiden ohjelmointi ei ole vielä mahdollista.

BMW F-sarjan ECU ohjelmoinnit onnistui aiemmin ECU-suojauksen vuoksi vain Bosch EDC17/MED17 Infineon Tricore bootloader ohjelmointina. Bootloader ohjelmointi vaati aina ohjainlaitteen irrottamisen ja avaamisen. Useissa tapauksissa bootloader ohjelmoinnin yhteydessä ohjelmointilaite teki tarvittaessa ohjainlaitteelle ns. OBD-patchin joka mahdollisti sen jälkeiset OBD-operaatiot kuten uuden ohjelmaversion tai vakio-ohjelman palauttamisen.

Loppuvuodesta 2017 tilanne muuttui. Osa käyttämistämme ohjelmointilaitevalmistajista julkaisi päivityksen ohjelmointityökaluun joka mahdollisti OBD-ohjelmoinnin ilman ohjainlaitteen (ECU) avaamista. Ensimmäiset BMW F-sarjan autot OBD-ohjelmoimme marraskuun 2017 lopussa ja virallinen päivitys julkaistiin joulukuun alkupuolella.

OBD luku ei ole OBD luku vaan “virtual read”

OBD-ohjelmointi nopeuttaa optimointityötä mutta siihen liittyy tässä tapauksessa yksi erittäin epämiellyttävä seikka. BMW F-sarjan OBD-ohjelmointi ei ole “puhdas” OBD-ohjelmointi jossa auton oma ohjainlaite (ECU) luetaan OBD-pistokkeen CAN- tai ENET-väylän kautta. Ohjelman luku on ns. virtual read mikä tarkoittaa ohjelman lataamista ohjelmointilaitevalmistajan tietokannasta, ei auton omasta ECU:sta.

Ohjelmointilaite tekee tunnistekyselyn ohjainlaitteen ohjelmaversiosta jonka jälkeen se lataa kopion kyseisestä vakio-ohjelmaversiosta ohjelmoijalle (tai hänen päämiehelle) ohjelman muokkausta, muutoksia varten. Tämä vastaava menetelmä on käytössä myös muissa merkeissä ja ECU-tyypeissä. Esimerkkinä mainittakoon lähes kaikki uudemmat VAG -konsernin OBD-ohjelmoitavat autot.

Ongelmallista on se että kun auton omaa ohjainlaitteen (ECU) flashmuistia ei lueta, ei voida samalla tarkistaa ohjelmasta onko auto jo aiemmin optimoitu. Auto vaihtaa omistajaa eikä tieto mahdollisesta aiemmin tehdystä moottorioptimoinnista aina välity seuraavalle. Uusi omistaja teettää moottorioptimoinnin ja ihmettelee kun auto ei muuttunut yhtään tai vain hyvin vaatimattomasti. Tälläinen ongelmallinen tilanne voidaan välttää mittaamalla auton teho ennen ohjelmointityön aloittamista tai ainakin varmistaa diagnostiikkatesterillä mitta-arvoista moottorivääntöön tai -kuorimitukseen liittyvät parametrit.

Onko OBD-ohjelmointi havaittavissa huollossa?

Se riippuu täysin siitä millaisen vaivan ohjelman tekijä on asian vuoksi nähnyt. Jos optimointi halutaan tehdä merkkihuollolle “näkymättömäksi” se vaatii ohjelmaan erityisiä muutoksia. BMW F-sarjan ohjainlaitteissa on diagnostiikkarutiineja moottoriohjainlaitteen (ECU) ohjelmamanipulaation havaitsemiseksi. Sen lisäksi ohjelmissa on erityinen CVN = Calibration Verification Number tunniste joka antaa ohjelmalle oman tarkistussumman kaltaisen “sormenjäljen”. Jos ohjelmaa muutetaan, tunniste ei enää täsmää valmistajan tietokantaan tallennettuun alkuperäiseen. CVN muutoksesta voidaan päätellä että autossa on manipuloitu moottoriohjainlaitteen ohjelma.

CVN on mahdollista säilyttää alkuperäisenä mutta se vaatii erillisiä muutoksen ohjelmaan. Tälläinen muutos on lähes aina ohjelmointityökalun automaattisesti tekemä “patch”.  Auton äärellä ohjelman tallentajan ei tarvitse kuin painaa nappia ja keittää kahvit asiakkaalle.

CVN oikeellisuudella on käytännössä merkitystä ainoastaan takuunalaisessa autossa. Toisaalta CVN ei ole ainoa tekijä millä ohjelman “alkuperäisyys” voidaan todentaa joten sen merkitys on vähäinen. Ainakaan tällä hetkellä CVN tunnisteen alkuperäisyyttä ei valvota vuosikatsastuksessa, joten moottorioptimointi on edelleen näkymätön vuosikatsastuksessa.