Strona główna

Referencje z ponad trzech dekad rozwoju embedded

Klienci z motoryzacji i przemysłu zaufali mojemu doświadczeniu embedded od założenia SCHMITT CONSULTING. Dwa projekty ilustrują mój sposób pracy.

Jako niezależny konsultant embedded rozwijam dla klientów, którzy potrzebują oprogramowania bliskiego sprzętowi, zachowania czasu rzeczywistego lub kombinacji obu. Moja działalność rozciąga się od umowy ze stałą ceną z twardym zobowiązaniem do dostawy, przez kontyngenty godzinowe, do wielomiesięcznego towarzyszenia działom rozwojowym.

Z powodów poufności nie wszystkie projekty mogą być prezentowane publicznie. Następujące dwa przykłady opisują projekty, których kluczowe dane mogę wymienić — i które ilustrują mój sposób pracy.

Stihl — kompletny rozwój sterowania silnika piły łańcuchowej od nowa

Dla Stihla w Waiblingen rozwinąłem oprogramowanie sterowania silnika piły łańcuchowej całkowicie od nowa. Punktem wyjścia było zadanie analityczne: istniejące oprogramowanie sterujące pochodziło od japońskiego dostawcy i było napisane w asemblerze. Stihl chciał szczegółowo zrozumieć, co robi to oprogramowanie. Zanalizowałem kod asemblera i udokumentowałem funkcje tak, że programiści Stihla mogli w pełni śledzić logikę.

Na tej podstawie otrzymałem zlecenie ponownego rozwoju — tym razem w C, z celem dostarczenia większej funkcjonalności niż oryginalne oprogramowanie. Warunki brzegowe były surowe: rynek pił łańcuchowych jest ekstremalnie konkurencyjny cenowo, więc dostępny był tylko bardzo mały, tani mikrokontroler. Pamięć była tak ciasna, że system operacyjny czasu rzeczywistego był wykluczony. Oprogramowanie miało działać bare-metal i równolegle niezawodnie przetwarzać sygnały czasu rzeczywistego ze sprzętu.

Przez cały rozwój miałem na biurku tylko płytkę ze sprzętem i mój kod — żadnego środowiska testowego, żadnego silnika. Pierwszy praktyczny test odbył się na stanowisku testowym Stihla w Waiblingen. Po miesiącach analizy i rozwoju nie byłoby niezwykłe, gdyby silnik nie zapalił od razu. Zapalił natychmiast i pracował w zasadzie dobrze. Reszta to było dostrojenie punktów zapłonu, iteracyjnie zoptymalizowanych na stanowisku testowym — procedura zwykle pokrywana adaptacyjnym oprogramowaniem uczącym, ale tu musiało zostać wykonane ręcznie z powodów pamięciowych.

Na końcu dostarczyłem Stihlowi oprogramowanie sterujące, które robiło więcej niż poprzednia japońska wersja, działało na tym samym tanim mikrokontrolerze i zostało przekazane z pełną dokumentacją. Ramy handlowe są godne uwagi: w końcowych negocjacjach w dziale zakupów Stihla wcześniej uzgodniona cena nie została obniżona. Zaopatrzeniowiec dał tylko jasno do zrozumienia, że każde euro musi być uzasadnione — ale obniżenie ceny nie było celem. To doświadczenie — klient, który płaci uzasadnione ceny za uzasadnioną jakość — jest rzadkie na rynku i naznacza po dziś dzień moje rozumienie dobrej współpracy.

Projekt został przeprowadzony jako umowa ze stałą ceną. Rozwój odbywał się całkowicie poza siedzibą Stihla; uzgodnienia z osobą kontaktową Stihla odbywały się tylko przy fundamentalnych decyzjach. Ta forma współpracy okazała się niezwykle skuteczna.

Audi — symulacja MOST i własny rozwój sprzętu CAN

Dla Audi w Ingolstadt moim oryginalnym zleceniem było stworzenie oprogramowania symulacji magistrali MOST dla systemu infotainment — symulacji w czasie rzeczywistym, która pozwalała testować sterowniki wobec wirtualnej magistrali MOST.

Na miejscu okazało się, że Audi miało równolegle drugi problem: istniejąca płytka symulacji CAN, dostarczona przez zewnętrznego dostawcę, nie działała niezawodnie w pewnych warunkach pracy — po prostu przestawała wysyłać dane w decydujących momentach. Ponieważ moja praca z MOST dała mi szczegółową wiedzę o współpracy magistrali CAN i MOST, osoba kontaktowa z Audi zapytała, czy mogę zbudować tę symulację CAN samodzielnie od nowa.

Zgodziłem się, z uwagą, że pierwszym krokiem byłby działający prototyp — niepiękny, ale funkcjonalny. W mniej niż pięć dni roboczych na biurku leżała moja własnoręcznie zaprojektowana płytka elektroniczna z ATmega128, wraz z napisanym przeze mnie oprogramowaniem symulacyjnym. Prototyp był ręcznie lutowany, ale działał — również w warunkach pracy, w których płytka poprzedniego dostawcy zawodziła.

Audi zapytało następnie, czy mogę produkować i dostarczać sztuki — ale w jakości przemysłowej, w pełni produkowane maszynowo, nie ręcznie. Zaprojektowałem layout dla płytki seryjnej i pracowałem z producentem PCB z otoczenia Audi, który zajął się produkcją maszynową. Po rozwiązaniu problemu w teście maszynowym producenta płytka dostarczała niezawodnych wyników — właśnie tam, gdzie oryginalna płytka dostawcy zawiodła.

Ten projekt pokazuje przypadek, w którym zlecenie rozrosło się przez konkretną substancję techniczną: do oryginalnego zadania programistycznego dołączył własny rozwój sprzętu z produkcją seryjną — ponieważ znałem architekturę magistrali wystarczająco głęboko, by na zapytanie zaproponować działającą drogę rozwiązania.

Inni klienci

Poza szczegółowo opisanymi projektami pracowałem dla innych klientów w motoryzacji, przemyśle i medycynie. Powyższy wybór podąża kryterium, że kluczowe dane są publicznie prezentowalne. Bardziej konkretne referencje dla zadań porównywalnych z Państwa otoczeniem chętnie omawiam w pierwszej rozmowie — pod poufnością na życzenie.

Co te projekty mają wspólnego

Trzy cechy przewijają się przez oba projekty i przez większość mojej działalności:

Samodzielna odpowiedzialność kompleksowa
Oba projekty zaczynały się zadaniem analitycznym i kończyły gotowym, dostarczonym rozwiązaniem. Specyfikacja, projektowanie, implementacja, test i dostawa były w moich rękach — w Audi nawet aż do produkcji seryjnej sprzętu przez partnera.
Praca embedded bliska sprzętowi w realnych warunkach brzegowych
Stihl: bare-metal na mikrokontrolerze z minimalną pamięcią. Audi: symulacja MOST w czasie rzeczywistym plus własny sprzęt CAN. W obu przypadkach nie chodziło o zastosowania standardowe, lecz o zadania, w których warunki brzegowe kształtują rozwiązanie.
Współpraca jako umowa ze stałą ceną z twardym zobowiązaniem do dostawy
Oba projekty przebiegały poza siedzibą klienta, z selektywnymi uzgodnieniami przy fundamentalnych decyzjach. Ta forma współpracy jest moim preferowanym modelem — chroni klienta przed niepotrzebną pracą sterującą i daje mi koncentrację, której wymaga rozwój bliski sprzętowi.

Schemat kolorów

Język