Klienti z automotive a průmyslu důvěřují mé embedded zkušenosti od založení SCHMITT CONSULTING. Dva projekty ilustrují můj způsob práce.
Jako nezávislý embedded konzultant vyvíjím pro klienty, kteří potřebují software blízký hardwaru, chování v reálném čase nebo kombinaci obojího. Má činnost sahá od smlouvy s pevnou cenou a pevným příslibem dodání, přes hodinové kontingenty, až po měsíční doprovod vývojových oddělení.
Z důvodů důvěrnosti nelze všechny projekty prezentovat veřejně. Následující dva příklady popisují projekty, jejichž klíčové údaje smím uvádět — a které ilustrují můj způsob práce.
Pro Stihl ve Waiblingenu jsem zcela nově vyvinul software pro řízení motoru motorové pily. Výchozím bodem byl analytický úkol: existující řídicí software pocházel od japonského dodavatele a byl napsán v assembleru. Stihl chtěl podrobně rozumět, co tento software dělá. Analyzoval jsem assemblerový kód a zdokumentoval funkce tak, aby vývojáři Stihl mohli logiku plně sledovat.
Na tomto základě jsem dostal zakázku na nový vývoj — tentokrát v C, s cílem dodat více funkčnosti než původní software. Okrajové podmínky byly tvrdé: trh motorových pil je extrémně cenově konkurenční, takže k dispozici byl pouze velmi malý, levný mikrokontrolér. Paměť byla tak omezená, že operační systém reálného času byl vyloučen. Software měl běžet bare-metal a zároveň spolehlivě paralelně zpracovávat realtime signály z hardwaru.
Po celý vývoj jsem měl na stole pouze desku s hardwarem a svůj kód — žádné testovací prostředí, žádný motor. První praktický test proběhl na zkušebně Stihl ve Waiblingenu. Po měsících analýzy a vývoje by nebylo neobvyklé, kdyby motor nenaskočil hned napoprvé. Naskočil okamžitě a v zásadě běžel dobře. Zbytek bylo dolaďování bodů zapálení, iterativně optimalizovaných na zkušebně — postup, který jindy pokrývá adaptivní učící software, ale zde se z paměťových důvodů musel provádět ručně.
Nakonec jsem Stihl dodal řídicí software, který dělal víc než předchozí japonská verze, běžel na stejně levném mikrokontroléru a byl předán s úplnou dokumentací. Komerční rámec stojí za zmínku: při závěrečném vyjednávání v nákupním oddělení Stihl nebyla dříve dohodnutá cena snížena. Nákupčí pouze jasně řekl, že každé euro musí být odůvodnitelné — ale snížení ceny nebylo cílem. Tato zkušenost — klient, který platí odůvodnitelné ceny za odůvodnitelnou kvalitu — je na trhu vzácná a dodnes formuje mé chápání dobré spolupráce.
Projekt byl řešen jako smlouva s pevnou cenou. Vývoj probíhal zcela mimo prostory Stihl; odsouhlasování s kontaktní osobou Stihl probíhalo pouze u zásadních rozhodnutí. Tato forma spolupráce se ukázala jako neobvykle efektivní.
Pro Audi v Ingolstadtu byla má původní zakázka tvorba softwaru pro simulaci sběrnice MOST pro infotainment systém — realtime simulace, která umožňovala testování řídicích jednotek proti virtuální MOST sběrnici.
Na místě se ukázalo, že Audi mělo paralelně druhý problém: existující CAN simulační deska, dodaná externím dodavatelem, nepracovala spolehlivě v určitých provozních podmínkách — prostě přestala posílat data v rozhodujících okamžicích. Protože mi má MOST práce poskytla detailní znalost součinnosti CAN a MOST sběrnice, kontaktní osoba Audi se mě zeptala, zda dokážu tuto CAN simulaci znovu vybudovat samostatně.
Souhlasil jsem, s poznámkou, že prvním krokem by byl funkční prototyp — ne hezký, ale funkční. Za méně než pět pracovních dnů ležela na stole mnou navržená elektronická deska s ATmega128, doprovázená mnou napsaným simulačním softwarem. Prototyp byl ručně pájený, ale fungoval — i v provozních podmínkách, ve kterých deska předchozího dodavatele selhávala.
Audi se pak zeptalo, zda mohu kusy vyrábět a dodávat — ale v průmyslové kvalitě, plně strojově vyrobené, ne ručně. Navrhl jsem layout pro sériovou desku a spolupracoval s výrobcem PCB z prostředí Audi, který se postaral o strojovou výrobu. Po vyřešení incidentu při strojovém testování výrobce dodávala deska spolehlivé výsledky — právě tam, kde původní dodavatelská deska selhávala.
Tento projekt ukazuje případ, kdy zakázka rostla díky konkrétní technické substanci: k původnímu softwarovému úkolu přibyl vlastní hardwarový vývoj se sériovou výrobou — protože jsem znal sběrnicovou architekturu natolik hluboko, že jsem na požádání mohl navrhnout funkční cestu řešení.
Vedle podrobně popsaných projektů jsem pracoval pro další klienty v automotive, průmyslu a medicíně. Výše uvedený výběr se řídí kritériem, že klíčové údaje jsou veřejně prezentovatelné. Konkrétnější reference pro úkoly srovnatelné s vaším prostředím rád probírám v úvodním rozhovoru — pod mlčenlivostí, pokud si přejete.
Tři vlastnosti se táhnou oběma projekty a většinou mé činnosti: