Startsida

Referenser från mer än tre årtionden av embedded-utveckling

Kunder från fordonsindustri och industri litar på min embedded-kompetens sedan SCHMITT CONSULTING grundades. Två projekt illustrerar min arbetssätt.

Som oberoende embedded-konsult utvecklar jag åt kunder som behöver hårdvarunära mjukvara, realtidsbeteende eller kombinationen av båda. Min verksamhet sträcker sig från fastprisavtal med fast leveranslöfte, via timkontingenter, till månadslångt åtföljande av utvecklingsavdelningar.

Av sekretesskäl kan inte alla projekt presenteras offentligt. De två exemplen nedan beskriver projekt vars nyckeluppgifter jag får nämna — och som illustrerar mitt arbetssätt.

Stihl — fullständig nyutveckling av en motorstyrning för motorsåg

För Stihl i Waiblingen utvecklade jag programvaran för motorstyrningen i en motorsåg helt på nytt. Utgångspunkten var en analysuppgift: den befintliga styrprogramvaran kom från en japansk leverantör och var skriven i assembler. Stihl ville förstå i detalj vad den programvaran gjorde. Jag analyserade assemblerkoden och dokumenterade funktionerna så att Stihls utvecklare kunde följa logiken fullt ut.

På den grunden fick jag uppdraget för en nyutveckling — denna gång i C, med målet att leverera mer funktionalitet än ursprungsprogramvaran. Randvillkoren var hårda: motorsågsmarknaden är extremt prispressad, så endast en mycket liten, billig mikrostyrenhet stod till förfogande. Minnet var så litet att ett realtidsoperativsystem var uteslutet. Programvaran skulle köra bare-metal och samtidigt på ett tillförlitligt sätt behandla realtidssignaler från hårdvaran.

Under hela utvecklingen hade jag bara kortet med hårdvaran och min kod på skrivbordet — ingen testmiljö, ingen motor. Det första praktiska provet ägde rum i Stihls testbänk i Waiblingen. Efter månader av analys och utveckling hade det inte varit ovanligt om motorn inte startat första gången. Den startade direkt och gick i grunden bra. Resten var finjustering av tändpunkterna, iterativt optimerade på testbänken — en procedur som annars täcks av adaptiv inlärningsprogramvara, men här fick göras manuellt av minnesskäl.

I slutändan levererade jag till Stihl en styrprogramvara som gjorde mer än den tidigare japanska versionen, körde på samma billiga mikrostyrenhet och överlämnades med fullständig dokumentation. Den kommersiella ramen är värd att notera: vid slutförhandlingen på Stihls inköpsavdelning sänktes inte det tidigare avtalade priset. Inköparen klargjorde bara att varje euro skulle vara motiverbar — men priset skulle inte sänkas. Den erfarenheten — en kund som betalar motiverbara priser för motiverbar kvalitet — är sällsynt på marknaden och präglar än i dag min uppfattning om gott samarbete.

Projektet hanterades som fastprisavtal. Utvecklingen ägde rum helt utanför Stihls lokaler; samordningen med Stihls kontaktperson skedde bara vid grundläggande beslut. Den samarbetsformen har visat sig ovanligt effektiv.

Audi — MOST-simulering och egen utveckling av en CAN-hårdvara

För Audi i Ingolstadt var mitt ursprungliga uppdrag att skapa en MOST-buss-simuleringsmjukvara för ett infotainmentsystem — en realtidssimulering som lät styrenheter testas mot en virtuell MOST-buss.

På plats visade det sig att Audi parallellt hade ett andra problem: ett befintligt CAN-simuleringskort, levererat av en extern leverantör, fungerade inte tillförlitligt under vissa driftsförhållanden — det slutade helt enkelt skicka data i avgörande ögonblick. Eftersom mitt MOST-arbete hade gett mig detaljerad kunskap om samspelet mellan CAN- och MOST-buss frågade Audi-kontakten om jag kunde bygga om denna CAN-simulering självständigt.

Jag tackade ja, med tillägget att första steget skulle vara en fungerande prototyp — inte snygg, men funktionell. Inom mindre än fem arbetsdagar låg ett av mig själv konstruerat elektronikkort med en ATmega128 på bordet, tillsammans med en simuleringsmjukvara skriven av mig. Prototypen var handlödd men fungerade — även under de driftsförhållanden där den föregående leverantörens kort hade fallerat.

Audi frågade då om jag kunde tillverka och leverera enheter — men i industriell kvalitet, helt maskintillverkade, inte för hand. Jag konstruerade layouten för seriekortet och arbetade med en kretskortstillverkare i Audis omgivning som tog hand om maskintillverkningen. Efter att ett problem i tillverkarens maskintest var åtgärdat levererade kortet tillförlitliga resultat — just där det ursprungliga leverantörskortet hade fallerat.

Det här projektet visar ett fall där ett uppdrag växte genom konkret teknisk substans: till den ursprungliga programvaruuppgiften kom en egen hårdvaruutveckling med serieproduktion — eftersom jag kände bussarkitekturen tillräckligt djupt för att på begäran föreslå en fungerande lösningsväg.

Andra kunder

Utöver de detaljerat beskrivna projekten har jag arbetat åt andra kunder inom fordon, industri och medicin. Urvalet ovan följer kriteriet att nyckeluppgifterna är offentligt presenterbara. Mer konkreta referenser för uppgifter som motsvarar din omgivning diskuteras gärna i ett inledande samtal — under sekretess om så önskas.

Vad dessa projekt har gemensamt

Tre egenskaper löper genom båda projekten och genom merparten av min verksamhet:

Självständigt helhetsansvar
Båda projekten började med en analysuppgift och slutade med en färdig, levererad lösning. Specifikation, konstruktion, implementation, test och leverans låg i mina händer — hos Audi till och med fram till hårdvarans serieproduktion via en partner.
Hårdvarunära embedded-arbete under verkliga randvillkor
Stihl: bare-metal på en mikrostyrenhet med minsta möjliga minne. Audi: realtids-MOST-simulering plus egen CAN-hårdvara. I båda fallen handlade det inte om standardtillämpningar utan om uppgifter där randvillkoren formar lösningen.
Samarbete som fastprisavtal med fast leveranslöfte
Båda projekten ägde rum utanför kundens lokaler, med selektiv samordning kring grundläggande beslut. Den samarbetsformen är min föredragna modell — den skyddar kunden från onödigt styrarbete och ger mig den koncentration som hårdvarunära utveckling kräver.

Färgschema

Språk