Project Description

BMW F-sarjan OBD (CAN/ENET) ohjelmointi

Tämä artikkeli koskee vain BMW F-sarjan Bosch EDC17 ja MED17 ohjainlaitteita. Uusimmissa BMW malleissa on siirrytty uuden sukupolven Bosch MD1 (DDE diesel) ja MG1 (DME bensiini) ohjainlaitteisiin.

BMW F-sarjan ECU ohjelmoinnit onnistui aiemmin ECU-suojauksen vuoksi vain BSL Tricore bootloader ohjelmointina. Bootloader ohjelmointi vaati aina ohjainlaitteen irrottamisen ja avaamisen. Tarvittaessa ohjelmointilaite teki  ohjainlaitteelle ns. OBD-patchin, joka mahdollisti sen jälkeiset OBD-operaatiot suoraan ajoneuvon OBD-pistokkeesta.

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

ECU:n OBD luku ei ole OBD luku vaan ns. “virtual read”

OBD-ohjelmointi nopeuttaa moottorioptimointityötä mutta siihen liittyy tässä tapauksessa yksi erittäin epämiellyttävä seikka. BMW F-sarjan OBD-ohjelmointi ei ole “puhdas” OBD-ohjelmointi. Auton omaa moottoriohjainlaitetta (ECU) ei lueta OBD-pistokkeesta (CAN/ENET), vaan ohjelman luku on ns. virtual read eli virtuaaliluku. Tämä tarkoittaa yksinkertaisesti sitä, että ohjelmointilaite tekee tunnistekyselyn ohjainlaitteen ohjelmaversiosta, jonka jälkeen se lataa kyseisen ohjelmaversion ohjelmoijalle, ohjelman muokkausta 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 oman ohjainlaitteen (ECU) flashmuistia ei lueta, ei myöskään voida samalla tarkistaa ohjelman tilaa. Näin ollen on vaikea tietää onko auto mahdollisesti ohjelmoitu jo aiemmin. Kun auto vaihtaa omistajaa, niin tieto mahdollisesta aiemmin tehdystä moottorioptimoinnista ei aina välity seuraavalle. Joskus käy niin että uusi omistaja teettää moottorioptimoinnin ja ihmettelee kun auto ei muuttunut yhtään, tai vain hyvin vaatimattomasti. Tälläinen tilanne voidaan välttää mittaamalla auton teho ennen ohjelmointityön aloittamista, tai ainakin varmistaa ajossa diagnostiikkatesterillä mitta-arvoista moottorivääntöön ja kuorimitukseen liittyvät parametrit.

Onko OBD-ohjelmointi havaittavissa huollossa?

Se riippuu paljon siitä millaisen vaivan ohjelman tekijä on asian vuoksi nähnyt. Jos moottorioptimointi halutaan tehdä BMW 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 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ä “ CVN patch”. CVN tunnisteen alkuperäisyydellä on käytännössä merkitystä ainoastaan takuunalaisessa autossa. Toisaalta CVN ei ole ainoa tekijä millä ohjelman alkuperäisyys voidaan todentaa, joten sen merkitys kaiken kaikkiaan on vähäinen. Suomessa CVN tunnisteen alkuperäisyyttä ei valvota vuosikatsastuksen OBD-testissä ja näin ollen moottorioptimointi on “näkymätön”.