Klientai iš automotive ir pramonės pasitiki mano embedded patirtimi nuo SCHMITT CONSULTING įkūrimo. Du projektai iliustruoja mano darbo būdą.
Kaip nepriklausomas embedded konsultantas kuriu klientams, kuriems reikia aparatinei įrangai artimos programinės įrangos, realiojo laiko elgesio arba abiejų derinio.
Dėl konfidencialumo priežasčių ne visi projektai gali būti viešai pateikiami. Šie du pavyzdžiai aprašo projektus, kurių pagrindinius duomenis galiu paminėti.
Stihl Vaiblingene visiškai iš naujo sukūriau motorinio pjūklo variklio valdymo programinę įrangą. Pradžios taškas buvo analitinė užduotis: esama valdymo programinė įranga buvo iš Japonijos tiekėjo ir parašyta asembleryje. Stihl norėjo detaliai suprasti, ką ši programinė įranga daro. Analizavau asemblerio kodą ir dokumentavau funkcijas taip, kad Stihl kūrėjai galėtų visiškai sekti logiką.
Šiuo pagrindu gavau užsakymą naujam kūrimui — šį kartą C kalba, su tikslu pristatyti daugiau funkcionalumo nei originali programinė įranga. Kraštinės sąlygos buvo griežtos: motorinių pjūklų rinka yra itin konkurencinga kainos atžvilgiu, todėl buvo prieinamas tik labai mažas, pigus mikrovaldiklis. Atmintis buvo tokia siaura, kad realiojo laiko operacinė sistema buvo neįmanoma. Programinė įranga turėjo veikti bare-metal ir vienu metu lygiagrečiai patikimai apdoroti realiojo laiko signalus iš aparatinės įrangos.
Per visą kūrimo laiką ant mano stalo buvo tik plokštė su aparatine įranga ir mano kodu — be testavimo aplinkos, be variklio. Pirmas praktinis testas vyko Stihl bandymo stende Vaiblingene. Po mėnesių analizės ir kūrimo nebūtų buvę neįprasta, jei variklis iškart nebūtų pradėjęs veikti. Jis pradėjo iš karto ir iš esmės gerai veikė. Likę buvo uždegimo taškų tikslus reguliavimas, pakartotinai optimizuotas bandymo stende — procedūra, kurią kitu atveju dengtų adaptyvi mokymosi programinė įranga, bet čia dėl atminties priežasčių turėjo būti atlikta rankiniu būdu.
Galiausiai Stihl pristatiau valdymo programinę įrangą, kuri darė daugiau nei ankstesnė japonų versija, veikė tame pačiame pigiame mikrovaldiklyje ir buvo perduota su pilna dokumentacija. Komercinis rėmas vertas paminėti: Stihl pirkimo skyriaus baigiamosiose derybose anksčiau sutarta kaina nebuvo sumažinta. Pirkėjas tik aiškiai nurodė, kad kiekvienas euras turi būti pateisinamas — tačiau kainos sumažinimas nebuvo tikslas. Ši patirtis — klientas, kuris moka pateisinamas kainas už pateisinamą kokybę — yra reta rinkoje ir iki šiandien formuoja mano supratimą apie gerą bendradarbiavimą.
Projektas vykdytas kaip fiksuotos kainos sutartis. Kūrimas vyko visiškai už Stihl patalpų ribų; derinimas su Stihl kontaktiniu asmeniu vyko tik priimant pamatinius sprendimus.
Audi Ingolštate mano pradinis užsakymas buvo MOST magistralės simuliacijos programinės įrangos sukūrimas infotainment sistemai — realiojo laiko simuliacija, kuri leido testuoti valdymo blokus prieš virtualią MOST magistralę.
Vietoje paaiškėjo, kad Audi lygiagrečiai turėjo antrą problemą: esama CAN simuliacijos plokštė, pristatyta išorinio tiekėjo, tam tikromis darbo sąlygomis nepatikimai veikė — ji tiesiog nustojo siųsti duomenis lemiamais momentais. Kadangi mano MOST darbas suteikė man detalių žinių apie CAN ir MOST magistralių sąveiką, Audi kontaktinis asmuo paklausė, ar galiu šią CAN simuliaciją savarankiškai sukurti iš naujo.
Sutikau su pastaba, kad pirmas žingsnis būtų veikiantis prototipas — ne gražus, o funkcionalus. Mažiau nei per penkias darbo dienas ant stalo gulėjo mano paties suprojektuota elektroninė plokštė su ATmega128, lydima mano paties parašytos simuliacijos programinės įrangos. Prototipas buvo lituotas rankomis, bet veikė — net tomis darbo sąlygomis, kuriomis ankstesnio tiekėjo plokštė nepavyko.
Audi tada paklausė, ar galiu gaminti ir pristatyti vienetus — bet pramoninėje kokybėje, visiškai mašininiu būdu pagamintus, ne rankomis. Suprojektavau serijinės plokštės išdėstymą ir dirbau su PCB gamintoju iš Audi aplinkos, kuris pasirūpino mašinine gamyba. Po to, kai gamintojo mašinos testavimo metu kilęs incidentas buvo išspręstas, plokštė pristatė patikimus rezultatus — būtent ten, kur originalaus tiekėjo plokštė nepavyko.
Šis projektas rodo atvejį, kuriame užsakymas augo per konkretų techninį turinį: prie pradinės programinės įrangos užduoties prisidėjo nuosava aparatinės įrangos kūrimo veikla su serijine gamyba — nes pakankamai gerai pažinau magistralės architektūrą, kad pareikalavus pasiūlyčiau veikiantį sprendimo kelią.
Šalia detaliai aprašytų projektų, dirbau ir kitiems klientams automotive, pramonėje ir medicinoje. Konkretesnes rekomendacijas užduotims, palyginamoms su jūsų aplinka, mielai aptariu pradiniame pokalbyje — konfidencialumo sąlygomis, jei pageidaujate.
Trys savybės eina per abu projektus ir per didžiąją mano veiklos dalį: