Sonny Waxmo: När styrenheter pratar olika dialekt
Jag läste en artikel om hur man kan minska effekterna av Covid-19 viruset i sin egen verkstad, där det talades om förslag för hur verkstaden bättre ska klara dessa tider. Jag skulle dock vilja gå andra vägar än de som rekommenderades i artikeln, nämligen genom att slå ett slag för den supporttjänst jag erbjuder via Fordonsteknik Support – Sonny Waxmo.
Jag har sedan länge upptäckt att när det är mindre att göra på verkstäderna så får jag betydligt mer att göra med supportärenden. Det är kanske ganska självklart när man tänker efter. När verkstaden har gott om jobb så bokar man rutinarbeten och planerad service, och behöver följaktligen mindre support eftersom man tackar nej till osäkra arbeten. Och när kundbesöken krymper tar man sig an allt som kommer in genom dörren, och löser man med supporttjänsten – vilket också gör att jag får mer att göra. För er som känner att ni kanske saknar en bra supporttjänst så har jag en liten annons längre bak i tidningen.
Nu går vi vidare med en liten samling knepiga kommunikationsfel som jag blivit inblandad i den senaste tiden. Men innan vi tittar närmare på verkliga fel, låt oss gå över hur styrenheterna kommunicerar med varandra och problematiken kring detta.
Låt oss säga att jag skall byta lite information med någon av er läsare. Vi bestämmer oss för att kommunicera via radio. Men sitter jag med en mobiltelefon och läsaren med en jaktradio så lär det bli problem – trots att vi båda uppfyller kraven att kommunicera via radio. Vi bestämmer därför att båda ska använda mobiltelefon. Men om jag ringer och läsaren svarar med ett SMS, eller om jag frågar hur läsaren mår och denne svarar ”Danke, gut” – det blir heller ingen bra kommunikation.
Vi går därför vidare och bestämmer att vi ska ringa varandra på mobilen, och att vi ska prata svenska under samtalet. Bilens styrenheter kommunicerar oftast via en seriell kabel (CAN-bus), och då skulle motsvarande exempel kunna vara att en av styrenheterna vill ”prata” med 500 kbit medan den andra svarar med 250 kbit. Istället för bestämma oss för att styrenheterna ska prata svenska låter vi dem då kommunicera via ett protokoll som vi kallar ISO 15765-4.
När vi nu pratar samma språk frågar jag läsaren hur han mår. ”Lite knas med parameter 07 på enhet 24 i system B 14”, blir svaret. Problemet är nu att jag inte har en komplett lista över läsarens koder. För bilens styrenheter betyder det att vi kan få en kod på en komponent som inte ens finns på bilen.
ENVIS HYUNDAI I40
Låt oss titta på ett exempel med en extraljusmontering på en Volvo V90. Kunden ville ha en sån där fin LED-ramp monterad. Problemet var att det inte fanns någon helljuslampa att plocka styrsignalen från för att kunna manövrera ett externt relä. Kunden hade därför köpt en CAN-bus adapter för att kunna läsa av bilens CAN-bus och tända LED-rampen när strålkastaren hade helljusbild.
Jag upptäckte dock att den CAN-bus adapter som kunden köpt inte täckte den årsmodellen som den skulle monteras på. Kort sammanfattat kunde man säga ett det var ”lite knas med parameter 07 på enhet 24 i system B 14”. Kunden hade lite svårt att acceptera detta och tyckte att ”Adapter som adapter borde väl duga?”. Kunden hade ju faktiskt beställt den med hjälp av bilens registreringsnummer.
Problemet var dock ganska enkelt löst genom att beställa en adapter som var anpassad till den aktuella bilen. Ett annat exempel: En Hyundai i40 envisades med att sätta felkoder på kommunikation mellan diverse olika styrenheter i bilen. Felkoderna gick att radera, men efter en kortare provkörning så var de tillbaka igen.
Det var inte alltid samma koder som kom tillbaka, men de pekade alltid på kommunikationsproblem mellan bilens olika styrenheter. Mina första tips var att kontrollera bilens batteri och laddningssystem, eftersom att dålig batterispänning kan få även den bästa dator att bete sig som en slumpgenerator.
Inga fel kunde upptäckas så vi gick vidare med att kontrollera bilens CAN-bus med en vanlig multimeter. Först mätte vi kablaget och termineringsmotstånden. I varje ände av bilen CAN-bus sitter ett så kallat termineringsmotstånd på 120 ohm. Motståndens uppgift är att motverka att datasignalerna studsar tillbaka och stör själva budskapet, ungefär som ett eko i slutet på en korridor. Eftersom det är två parallellkopplade motstånd mellan CAN-high och CAN-low kablarna så blir det förväntade resultatet på multimetern 60 ohm. Allt stämde bra så här långt. Vi gick vidare genom att mäta spänningen på CANbus.
Eftersom det är frågan om snabba datasignaler så kommer vi inte att kunna se några meddelande på CAN-bus, men man kan få en ganska god bild genom att bara mäta spänningen DC på CAN-low till 2,3V och CANhigh till 2,8V.
Även detta stämde ganska bra, så vi började misstänka att ett styrdon som var inkopplat på CAN-bus förstörde kommunikationen genom att ”prata i munnen på de andra”. Vi gick vidare genom att koppla ur de styrdon som inte behövdes för att provköra bilen: klimatenheten, airbagsystemet, infotainment, ABS och så vidare. Självklart fick vi då nya felkoder orsakade av de urkopplade styrdonen, med även de gamla felkoderna kom tillbaka. Kunden frågade då om det var möjligt att använda hans oscilloskop för att kontrollera datasignalerna lite noggrannare?
Eftersom det var fredag eftermiddag så bestämde vi att bilen skulle monteras ihop, och att vi skulle göra ett försök under måndagen. Sagt och gjort. Allt återmonterades för provkörning men batteriet lyftes ur och sattes på laddning, vilket gjorde att bilen stod strömlös över helgen.
Framemot eftermiddagen på måndagen ringde jag upp kunden för att kolla status för oscilloskopmätningen. Han svarade att han provkört bilen många kilometer och att det var omöjligt att få fram en enda felkod. På tisdagen kom kunden och hämtade ut sin bil efter en mycket lång felsökning. Och så vitt jag vet så åker kunden fortfarande runt i sin Hyundai i40 och bara luktar på blommorna, ungefär som tjuren Ferdinand – medan den stackars mekanikern fortfarande ibland vaknar svettig och nerkissad efter en dröm där han nästan blivit överkörd av en CAN-bus.
”HITTEPÅ-FELKODER”
Ibland får jag ett samtal från någon verkstad som kört en diagnos där man fått ut en okänd felkod. Har vi tur så vet vi att det är motorstyrdonet som satt denna felkod. Mitt första råd brukar då vara att försöka läsa felkoderna med EOBD-protokollet istället för tillverkarens modells specifika protokoll. Att radera felkoder med EOBD-funktionen kan faktiskt ofta göra att den okända felkoden försvinner och inte kommer tillbaka vid provkörning. Ibland kan man läsa ut en sifferkod tillsammans med den okända felkoden, en sifferkod som dock ofta saknas i tillverkarens kodlista.
Problemet är att diagnosverktyget och bilen pratar olika ”dialekt” och därmed inte förstår varandra. Resultatet kan då bli ”hittepå-felkoder” som helt eller delvis saknar betydelse. Och det behöver inte bara vara eftermarknadsverkyg som har dessa brister. Ibland hjälper det att ta till ett annat diagnosverktyg för att lösa problemet.
Jag läste ut larmorsaken på en Volvo C30 för ett tag sedan. VIDA–diagnosen som Volvo använder sa att det var vänster bakdörr som orsakade larmet. Jag funderade ett tag om det verkligen fanns femdörrars Volvo C30? Jag hade då inte sett någon i alla fall. Längre ner i texten på Volvo VIDA ser jag en anmärkning i diagnosvägledningen om att denna felkod på just Volvo C30 istället betyder att det är bakluckans glaskross-sensor som är problemet. Detta var lite övergripande information om bilen kommunikationssystem. Jag hoppas att vi kan återkomma till detta ämne och fördjupa oss i det lite längre fram.
Som alla andra så hoppas jag för övrigt att det här förbaskade viruset skall ge med sig så att vi sakta kan hitta tillbaka till den vardag som vi känner sedan tidigare. Om det kan vara till någon tröst så tror jag trots allt att den oberoende verkstaden klarar sig relativt bra, så länge man inte förbjuder privat resande helt även i Sverige – något som dock verkar osannolikt med tanke på hur glest befolkat vårt land är jämfört med de länder där detta faktiskt gjorts.
Väl mött!
Sonny Waxmo, Fordonsteknik Support