Početna

Reference iz više od tri desetljeća embedded razvoja

Klijenti iz automotivea i industrije vjeruju mom embedded iskustvu od osnivanja SCHMITT CONSULTING. Dva projekta ilustriraju moj način rada.

Kao neovisan embedded konzultant razvijam za klijente koji trebaju softver blizak hardveru, ponašanje u stvarnom vremenu ili kombinaciju oboje.

Iz razloga povjerljivosti ne mogu se svi projekti predstaviti javno. Sljedeća dva primjera opisuju projekte čije ključne podatke smijem navesti.

Stihl — kompletan novi razvoj upravljanja motora motorne pile

Za Stihl u Waiblingenu potpuno sam iznova razvio softver za upravljanje motora motorne pile. Polazište je bio analitički zadatak: postojeći upravljački softver dolazio je od japanskog dobavljača i bio je napisan u asembleru. Stihl je htio detaljno razumjeti što taj softver radi. Analizirao sam asemblerski kod i dokumentirao funkcije tako da Stihlovi razvojni inženjeri mogu u potpunosti pratiti logiku.

Na toj osnovi dobio sam narudžbu za novi razvoj — ovaj put u C-u, s ciljem isporuke više funkcionalnosti od izvornog softvera. Granični uvjeti bili su tvrdi: tržište motornih pila iznimno je cjenovno konkurentno, pa je na raspolaganju bio samo vrlo mali, jeftin mikrokontroler. Memorija je bila tako uska da je operativni sustav stvarnog vremena bio isključen. Softver je trebao raditi bare-metal i istodobno paralelno pouzdano obrađivati realtime signale iz hardvera.

Tijekom cijelog razvoja imao sam na stolu samo ploču s hardverom i svoj kod — bez testnog okruženja, bez motora. Prvi praktičan test održao se na Stihlovoj testnoj klupi u Waiblingenu. Nakon mjeseci analize i razvoja ne bi bilo neuobičajeno da motor ne upali odmah. Upalio je odmah i u suštini je radio dobro. Ostalo je bilo fino podešavanje točaka paljenja, iterativno optimiziranih na testnoj klupi — postupak koji inače pokriva adaptivni softver za učenje, ali ovdje je morao biti ručno proveden iz memorijskih razloga.

Na kraju sam Stihlu isporučio upravljački softver koji je činio više od prethodne japanske verzije, radio na istom jeftinom mikrokontroleru i bio predan s potpunom dokumentacijom. Komercijalni okvir vrijedi spomenuti: na završnim pregovorima u Stihlovom odjelu nabave prethodno dogovorena cijena nije bila smanjena. Nabavni djelatnik samo je jasno rekao da svaki euro mora biti opravdiv — ali smanjenje cijene nije bio cilj. To iskustvo — klijent koji plaća opravdive cijene za opravdivu kvalitetu — rijetko je na tržištu i do danas oblikuje moje shvaćanje dobre suradnje.

Projekt je tretiran kao ugovor s fiksnom cijenom. Razvoj se odvijao potpuno izvan Stihlovih prostorija; usklađivanje s kontaktnom osobom Stihla odvijalo se samo kod temeljnih odluka. Taj oblik suradnje pokazao se neuobičajeno učinkovitim.

Audi — MOST simulacija i vlastiti razvoj CAN hardvera

Za Audi u Ingolstadtu moja izvorna narudžba bila je izrada softvera za simulaciju MOST magistrale za infotainment sustav — realtime simulacija koja je omogućavala testiranje upravljačkih jedinica protiv virtualne MOST magistrale.

Na licu mjesta pokazalo se da je Audi paralelno imao drugi problem: postojeća CAN simulacijska ploča, isporučena od vanjskog dobavljača, nije pouzdano radila u određenim uvjetima rada — jednostavno je prestala slati podatke u odlučujućim trenucima. Budući da mi je moj rad na MOST-u dao detaljno znanje o suradnji CAN i MOST magistrale, kontaktna osoba Audija pitala me mogu li tu CAN simulaciju iznova izgraditi samostalno.

Pristao sam, uz napomenu da bi prvi korak bio funkcionalan prototip — ne lijep, već funkcionalan. U manje od pet radnih dana na stolu je ležala moja vlastita projektirana elektronička ploča s ATmega128, popraćena simulacijskim softverom koji sam ja napisao. Prototip je bio ručno lemljen, ali je radio — i u uvjetima rada u kojima je ploča prethodnog dobavljača zakazivala.

Audi je zatim pitao mogu li proizvoditi i isporučivati komade — ali u industrijskoj kvaliteti, potpuno strojno proizvedene, ne ručno. Projektirao sam layout za serijsku ploču i radio s proizvođačem PCB iz Audijevog okruženja koji se pobrinuo za strojnu proizvodnju. Nakon što je incident u proizvođačevom strojnom testiranju riješen, ploča je isporučivala pouzdane rezultate — upravo tamo gdje je izvorna ploča dobavljača zakazivala.

Ovaj projekt pokazuje slučaj u kojem je narudžba rasla kroz konkretnu tehničku supstancu: izvornom softverskom zadatku pridodao se vlastiti hardverski razvoj sa serijskom proizvodnjom — jer sam poznavao arhitekturu magistrale dovoljno duboko da na upit predložim funkcionalan put rješenja.

Drugi klijenti

Pored detaljno opisanih projekata radio sam za druge klijente u automotiveu, industriji i medicini. Konkretnije reference za zadatke usporedive s vašim okruženjem rado se razmatraju u uvodnom razgovoru — pod povjerljivošću ako želite.

Što ovi projekti imaju zajedničko

Tri svojstva protežu se kroz oba projekta i kroz većinu moje djelatnosti:

Samostalna kompletna odgovornost
Oba projekta započela su analitičkim zadatkom i završila gotovim, isporučenim rješenjem. Specifikacija, dizajn, implementacija, test i isporuka bili su u mojim rukama — kod Audija čak i do serijske proizvodnje hardvera preko partnera.
Embedded rad blizak hardveru u stvarnim graničnim uvjetima
Stihl: bare-metal na mikrokontroleru s minimalnom memorijom. Audi: realtime MOST simulacija plus vlastiti CAN hardver.
Suradnja kao ugovor s fiksnom cijenom i čvrstim obećanjem isporuke
Oba projekta odvijala su se izvan klijentovih prostorija, sa selektivnim usklađivanjem kod temeljnih odluka. Taj oblik suradnje moj je preferirani model.

Shema boja

Jezik