Automotive és ipari ügyfelek bíznak embedded tapasztalatomban a SCHMITT CONSULTING alapítása óta. Két projekt szemlélteti munkamódszeremet.
Független embedded tanácsadóként olyan ügyfeleknek fejlesztek, akik hardverközeli szoftverre, valós idejű viselkedésre vagy mindkettő kombinációjára vágynak.
Bizalmassági okokból nem minden projekt mutatható be nyilvánosan. A következő két példa olyan projekteket ír le, amelyek kulcsadatait megnevezhetem.
A waiblingeni Stihl számára teljesen újrafejlesztettem a láncfűrész motorvezérlési szoftverét. Kiindulópont egy elemzési feladat volt: a meglévő vezérlőszoftver japán beszállítótól származott, és assemblerben íródott. A Stihl részletesen érteni akarta, mit csinál ez a szoftver. Elemeztem az assembler kódot és úgy dokumentáltam a funkciókat, hogy a Stihl fejlesztői teljes mértékben követhessék a logikát.
Erre az alapra építve kaptam meg az újrafejlesztési megbízást — ezúttal C-ben, azzal a céllal, hogy az eredetinél több funkcionalitást szállítsak. A peremfeltételek kemények voltak: a láncfűrészek piaca rendkívül árérzékeny, így csak nagyon kis, olcsó mikrokontroller állt rendelkezésre. A memória olyan szűkös volt, hogy valós idejű operációs rendszer szóba sem jöhetett. A szoftvernek bare-metal kellett futnia, és párhuzamosan megbízhatóan kellett feldolgoznia a hardverből érkező valós idejű jeleket.
A teljes fejlesztés alatt csak egy hardvert hordozó panel és a kódom volt az asztalomon — sem tesztkörnyezet, sem motor. Az első gyakorlati teszt a Stihl waiblingeni tesztpadján zajlott. Hónapok elemzése és fejlesztése után nem lett volna szokatlan, ha a motor nem indul be elsőre. Azonnal beindult és alapvetően jól futott. A többi a gyújtási pontok finomhangolása volt, iteratív optimalizálással a tesztpadon — olyan eljárás, amelyet egyébként adaptív tanuló szoftver fed le, de itt memória okok miatt manuálisan kellett elvégezni.
Végül a Stihl olyan vezérlőszoftvert kapott, amely többet tudott a korábbi japán változatnál, ugyanazon az olcsó mikrokontrolleren futott, és teljes dokumentációval került átadásra. A kereskedelmi keret említést érdemel: a Stihl beszerzésénél folyó záróegyeztetésen a korábban megegyezett árat nem csökkentették. A beszerző csak világossá tette, hogy minden eurónak indokolhatónak kell lennie — de az árcsökkentés nem volt cél. Ez a tapasztalat — egy ügyfél, aki indokolt minőségért indokolt árakat fizet — ritka a piacon, és a mai napig formálja a jó együttműködésről alkotott felfogásomat.
A projekt fix árú szerződésként zajlott. A fejlesztés teljes egészében a Stihl telephelyén kívül történt; az egyeztetés a Stihl kapcsolattartójával csak alapvető döntéseknél zajlott. Ez az együttműködési forma rendkívül hatékonynak bizonyult.
Az ingolstadti Audi számára eredeti megbízásom egy MOST busz-szimulációs szoftver elkészítése volt az infotainment rendszerhez — valós idejű szimuláció, amely lehetővé tette a vezérlőegységek tesztelését virtuális MOST buszon.
Helyben kiderült, hogy az Audinak párhuzamosan második problémája is volt: egy meglévő CAN szimulációs panel, amelyet külső beszállító szállított, bizonyos üzemi körülmények között nem működött megbízhatóan — egyszerűen abbahagyta az adatküldést döntő pillanatokban. Mivel a MOST munkám részletes ismeretet adott a CAN és MOST busz együttműködéséről, az Audi kapcsolattartója megkérdezte, fel tudom-e építeni ezt a CAN szimulációt önállóan újra.
Belementem azzal a megjegyzéssel, hogy az első lépés egy működő prototípus lenne — nem szép, de funkcionális. Kevesebb mint öt munkanap alatt az asztalon feküdt egy saját tervezésű elektronikus panel ATmega128-cal, általam írt szimulációs szoftverrel. A prototípus kézzel volt forrasztva, de működött — még olyan üzemi körülmények között is, amelyekben a korábbi beszállítói panel meghibásodott.
Az Audi ezután megkérdezte, tudok-e darabokat gyártani és szállítani — de ipari minőségben, teljesen gépi gyártással, nem kézzel. Megterveztem a sorozatpanel elrendezését, és együtt dolgoztam egy Audi-környezetből származó NYÁK-gyártóval, aki gondoskodott a gépi gyártásról. Miután egy probléma a gyártó gépi tesztjén megoldódott, a panel megbízható eredményeket szállított — pontosan ott, ahol az eredeti beszállítói panel meghibásodott.
Ez a projekt azt az esetet mutatja, amikor egy megbízás konkrét műszaki tartalom révén bővült: az eredeti szoftverfeladat mellé saját hardverfejlesztés került sorozatgyártással — mert a buszarchitektúrát elég mélyen ismertem ahhoz, hogy kérésre működő megoldási utat javasoljak.
A részletesen leírt projekteken kívül más ügyfeleknek is dolgoztam automotive, ipar és orvostechnika területén. Az Önével összehasonlítható feladatokra vonatkozó konkrétabb referenciákat szívesen megtárgyalom első beszélgetésben — bizalmasság alatt, ha úgy kívánja.
Három tulajdonság húzódik végig mindkét projekten és tevékenységem nagy részén: