Sambon har en F800R och i höstas hittade jag på ebay ett BMW originallarm till överkomligt pris. Larmet anlände och installerades enligt anvisningar, men som mycket i moderna bilar och hojar så behöver även fordonets "elektroniska konfiguration" bli varse att "larm finns monterat", annars sitter enheten bara där och gör nada. Detta var något jag hade räknat med och närmsta BMW-handlare offererade jobbet till en timmes arbetstid + diagnosavgift.
Det ska nu sägas att jag har pysslat en del med diagnos- och programmeringsverktyg för BMWs bilar och därför är ganska förtrogen med mjukvaruutbudet och en hel del tillvägagångsätt. Allt detta står att, givet rätt nyckelord, finna med google.
I helgen slog mig så tanken - undrar hur mycket som skiljer mellan BMW-bil och BMW-hoj på detta område? Kunde verktygen från bilsidan även passa på hojarna? I så fall kanske det vore möjligt att själv programmera in larmet?
Steg 1: Interface-bygge
Ska detta gå behövs först ett elektriskt gränssnitt mellan hoj och dator. Det jag har att utgå från är ett PC-interface med OBD2-kontakt köpt på ebay och avsett för bl.a. programmet INPA - ett utvecklings-/ingenjörsverktyg från BMW för att läsa intern information från bilens styrenheter.
Lite googlande och analys av hojens 10-poliga diagnoskontakt visar att endast fyra av dess stift är kontakterade. Multimeter bekräftar att stiften är...
- Kod: Markera allt
4 - jord
6 - B+ permanent
10 - B+ vid tändning till (KL15)
Återstår så stift 1, vilket tyder på ett seriellt kommunikationsprotokoll.
På bilsidan är s.k. K-lina ett vanligt förekommande dito med standardiserad plats i OBD2-kontakten. Inte skulle väl MC-divisionen uppfinna hjulet ytterligare en gång? Mer googlande stöder tesen att K-lina är det protokoll som BMW-MC använder (bortsett från K1600 och nya "vattenboxern" som använder CAN som databärare även för diagnostjänsterna).
Sagt och gjort - jag bygger en elektriskt passiv adapter från den 10-poliga kontakten till en OBD2-hona och stiftar enligt följande:
- Kod: Markera allt
MC <-> OBD2
1 <-> 7
4 <-> 5
6 <-> 18
Förlåt den till synes hafsiga konstruktionen, men betänk att detta är prototyp X0
Steg 2: Någon där?
Så, i med alla kablar enligt schemat ovan och igång med datorn. På programvarusidan har jag förberett INPA v5.06, i vilket jag hittar spår av plattformen som F800R tillhör (K2x på BMW-språk). Jag kör tjänsten "Ident" som letar efter kända styrenheter och hämtar deras artikelnummer... och se, någon svarar
Steg 3: Koda in larmet
Larmet sitter monterat i hojen sedan i höstas men fungerar som sagt inte. Vid tryck på fjärrkontrollen händer alltså ingenting. Från BMW-bilvärlden vet jag dock att konceptet kring hur funktionalitet läggs till/tas bort är genom s.k. "kodning" (konfigurering) av varje styrenhet. Exempelvis är det sannolikt att hojens centrala elburk ZFE behöver konfigurera sig till att samspela med larmet för att få blinkersindikering vid på-/avlarmning.
Mjukvaran i varje styrenhet har kunskapen att konfigurera sig själv korrekt och gör så enligt fordonets elektroniska "utrustningslista" kallad VO (Vehicle Order) på BMW-språk. VO kan ändras med verktyg som t.ex. NCS-Expert. Eftersom kommunikationen med hojen verkar fungera ger jag mig i kast med detta steg.
På bilsidan hålls fordonets VO normalt av två styrenheter och en ändring behöver därför skrivas ner i båda. När jag börjar titta runt i hojen med NCS-expert verkar det som att dess VO hålls av tre noder - motorstyrenhet (BMSK), centrala eldosan (ZFE) samt kombiinstrumentet. För var och en av dessa noder gör jag därför följande:
- Kod: Markera allt
1 - läser ut den aktuella nodens uppfattning om fordonets VO
2 - lägger till optionen larm i VO
3 - skriver tillbaka VO till noden.
Steg 2 i ovanstående kräver naturligtvis att man vet optionskoden för det alternativ man vill lägga till/ta bort - i detta fall larmet. Nu faller det sig såpass väl att BMW använder samma optionskoder i VO som tillbehören har i tillvalslistan (vid beställning av ny hoj). Larm (DWA) heter 0603 varför vi lägger till $603 i VO.
I NCS-expert kan detta se ut på följande vis. "FA" i bilderna är för övrigt tyska för "VO".
VO utläst från en nod:
VO utökas med $603:
VO skrivs tillbaka till noden:
När VO ändrats i samtliga noder behöver vi bara beordra dem att genomföra en s.k. "kodning", d.v.s. anpassa sig enligt VO. Detta sker alltså inte automatiskt utan enbart på beställning. Tjänsten tar c:a. en halvminut att genomföra.
Slutlig kontroll med INPA:
Utfall
Så vad hände? Jo, efter kodning cyklades tändningen en gång och... larmet fungerar! Fjärrkontrollerna fungerar, blinkersbekräftelse fungerar, siren tjuter vid behov och med larmet aktivt så blinkar den röda dioden i varvräknaren.
Fotnot
Jag vill med detta inlägg påvisa att det, med rätt verktyg, är möjligt att gå ganska långt med sitt hemmafixande, även med moderna grejer. Som alltid annars bör man dock ha hyfsat bra koll på vad man gör och ovanstående är definitivt inte en guide för nybörjaren utan redogör bara för en nörds lyckade söndagkväll