Klienti z automotive a priemyslu dôverujú mojim embedded skúsenostiam od založenia SCHMITT CONSULTING. Dva projekty ilustrujú môj spôsob práce.
Ako nezávislý embedded konzultant vyvíjam pre klientov, ktorí potrebujú softvér blízky hardvéru, správanie v reálnom čase alebo kombináciu oboch.
Z dôvodov dôvernosti nemožno všetky projekty prezentovať verejne. Nasledujúce dva príklady opisujú projekty, ktorých kľúčové údaje smiem uvádzať.
Pre Stihl vo Waiblingene som úplne nanovo vyvinul softvér na riadenie motora motorovej píly. Východiskovým bodom bola analytická úloha: existujúci riadiaci softvér pochádzal od japonského dodávateľa a bol napísaný v assembleri. Stihl chcel podrobne rozumieť, čo tento softvér robí. Analyzoval som assemblerový kód a zdokumentoval funkcie tak, aby vývojári Stihl mohli logiku plne sledovať.
Na tomto základe som dostal zákazku na nový vývoj — tentoraz v C, s cieľom dodať viac funkčnosti než pôvodný softvér. Okrajové podmienky boli tvrdé: trh motorových píl je extrémne cenovo konkurenčný, takže k dispozícii bol iba veľmi malý, lacný mikrokontrolér. Pamäť bola taká obmedzená, že operačný systém reálneho času bol vylúčený. Softvér mal bežať bare-metal a zároveň spoľahlivo paralelne spracovávať realtime signály z hardvéru.
Po celý vývoj som mal na stole iba dosku s hardvérom a svoj kód — žiadne testovacie prostredie, žiadny motor. Prvý praktický test prebehol na skúšobni Stihl vo Waiblingene. Po mesiacoch analýzy a vývoja by nebolo nezvyčajné, keby motor nenaskočil hneď napoprvé. Naskočil okamžite a v zásade bežal dobre. Zvyšok bolo doladenie bodov zapaľovania, iteratívne optimalizovaných na skúšobni — postup, ktorý inokedy pokrýva adaptívny učiaci softvér, ale tu sa z pamäťových dôvodov musel vykonať ručne.
Nakoniec som Stihlu dodal riadiaci softvér, ktorý robil viac než predchádzajúca japonská verzia, bežal na rovnako lacnom mikrokontroléri a bol odovzdaný s úplnou dokumentáciou. Komerčný rámec stojí za zmienku: pri záverečnom vyjednávaní v nákupnom oddelení Stihl nebola predtým dohodnutá cena znížená. Nákupca iba jasne povedal, že každé euro musí byť odôvodniteľné — ale zníženie ceny nebolo cieľom. Táto skúsenosť — klient, ktorý platí odôvodniteľné ceny za odôvodniteľnú kvalitu — je na trhu vzácna a dodnes formuje moje chápanie dobrej spolupráce.
Projekt bol riešený ako zmluva s pevnou cenou. Vývoj prebiehal úplne mimo priestorov Stihl; odsúhlasovanie s kontaktnou osobou Stihl prebiehalo iba pri zásadných rozhodnutiach. Táto forma spolupráce sa ukázala ako nezvyčajne efektívna.
Pre Audi v Ingolstadte bola moja pôvodná zákazka tvorba softvéru na simuláciu zbernice MOST pre infotainment systém — realtime simulácia, ktorá umožňovala testovanie riadiacich jednotiek proti virtuálnej MOST zbernici.
Na mieste sa ukázalo, že Audi malo paralelne druhý problém: existujúca CAN simulačná doska, dodaná externým dodávateľom, nepracovala spoľahlivo v určitých prevádzkových podmienkach — jednoducho prestala posielať údaje v rozhodujúcich okamihoch. Pretože mi moja MOST práca poskytla detailnú znalosť súčinnosti CAN a MOST zbernice, kontaktná osoba Audi sa ma spýtala, či dokážem túto CAN simuláciu znovu vybudovať samostatne.
Súhlasil som, s poznámkou, že prvým krokom by bol funkčný prototyp — nie pekný, ale funkčný. Za menej ako päť pracovných dní ležala na stole mnou navrhnutá elektronická doska s ATmega128, sprevádzaná mnou napísaným simulačným softvérom. Prototyp bol ručne spájkovaný, ale fungoval — aj v prevádzkových podmienkach, v ktorých doska predchádzajúceho dodávateľa zlyhávala.
Audi sa potom spýtalo, či môžem kusy vyrábať a dodávať — ale v priemyselnej kvalite, plne strojovo vyrobené, nie ručne. Navrhol som layout pre sériovú dosku a spolupracoval s výrobcom PCB z prostredia Audi, ktorý sa postaral o strojovú výrobu. Po vyriešení incidentu pri strojovom testovaní výrobcu doska dodávala spoľahlivé výsledky — práve tam, kde pôvodná dodávateľská doska zlyhávala.
Tento projekt ukazuje prípad, keď zákazka rástla vďaka konkrétnej technickej substancii: k pôvodnej softvérovej úlohe pribudol vlastný hardvérový vývoj so sériovou výrobou — pretože som poznal zbernicovú architektúru natoľko hlboko, že som na požiadanie mohol navrhnúť funkčnú cestu riešenia.
Popri podrobne opísaných projektoch som pracoval pre ďalších klientov v automotive, priemysle a medicíne. Konkrétnejšie referencie pre úlohy porovnateľné s vaším prostredím rád preberám v úvodnom rozhovore — pod mlčanlivosťou, ak si želáte.
Tri vlastnosti sa tiahnu oboma projektmi a väčšinou mojej činnosti: