Automotive un rūpniecības klienti uzticas manai embedded pieredzei kopš SCHMITT CONSULTING dibināšanas. Divi projekti ilustrē manu darba veidu.
Kā neatkarīgs embedded konsultants izstrādāju klientiem, kuriem nepieciešama aparatūrai tuva programmatūra, reālā laika uzvedība vai abu kombinācija.
Konfidencialitātes apsvērumu dēļ ne visus projektus var publiski prezentēt. Šādi divi piemēri apraksta projektus, kuru atslēgas datus drīkstu nosaukt.
Stihl Vaiblingenā pilnībā jaunu izstrādāju motorzāģa dzinēja vadības programmatūru. Sākumpunkts bija analītisks uzdevums: esošā vadības programmatūra nāca no japāņu piegādātāja un bija rakstīta asamblerā. Stihl gribēja detalizēti saprast, ko šī programmatūra dara. Analizēju asamblera kodu un dokumentēju funkcijas tā, lai Stihl izstrādātāji varētu pilnībā sekot loģikai.
Uz šī pamata saņēmu pasūtījumu jaunizstrādei — šoreiz C valodā, ar mērķi piegādāt vairāk funkcionalitātes nekā oriģinālā programmatūra. Robežnosacījumi bija stingri: motorzāģu tirgus ir ārkārtīgi cenu konkurēttiecīgs, tāpēc bija pieejams tikai ļoti mazs, lēts mikrokontrolleris. Atmiņa bija tik šaura, ka reālā laika operētājsistēma bija izslēgta. Programmatūrai bija jādarbojas bare-metal un vienlaikus paralēli uzticami jāapstrādā reālā laika signāli no aparatūras.
Visā izstrādes laikā uz mana galda bija tikai plate ar aparatūru un mans kods — bez testa vides, bez dzinēja. Pirmais praktiskais tests notika Stihl testa stendā Vaiblingenā. Pēc mēnešiem analīzes un izstrādes nebūtu bijis neparasti, ja dzinējs nestādītos uzreiz. Tas iedarbojās uzreiz un principā darbojās labi. Pārējais bija aizdedzes punktu smalka noregulēšana, iteratīvi optimizēta testa stendā — procedūra, ko parasti nodrošina adaptīva mācīšanās programmatūra, bet šeit atmiņas apsvērumu dēļ nācās veikt manuāli.
Beigās piegādāju Stihl vadības programmatūru, kas darīja vairāk nekā iepriekšējā japāņu versija, darbojās uz tā paša lētā mikrokontrollera un tika nodota ar pilnu dokumentāciju. Komerciālais ietvars ir vērts pieminēt: noslēguma sarunās Stihl iepirkumu nodaļā iepriekš saskaņotā cena netika samazināta. Iepircējs tikai skaidri pateica, ka katram eiro jābūt pamatojamam — bet cenas samazināšana nebija mērķis. Šī pieredze — klients, kurš maksā pamatojamas cenas par pamatojamu kvalitāti — ir reta tirgū un līdz šodienai veido manu izpratni par labu sadarbību.
Projekts tika realizēts kā fiksētas cenas līgums. Izstrāde notika pilnībā ārpus Stihl telpām; saskaņošana ar Stihl kontaktpersonu notika tikai pamatlēmumu pieņemšanā.
Audi Ingolštatē mans sākotnējais pasūtījums bija MOST šinas simulācijas programmatūras izveide infotainment sistēmai — reālā laika simulācija, kas ļāva testēt vadības iekārtas pret virtuālu MOST šinu.
Uz vietas izrādījās, ka Audi paralēli bija otra problēma: esošā CAN simulācijas plate, ko piegādāja ārējais piegādātājs, noteiktos darba apstākļos nedarbojās uzticami — tā vienkārši izšķirošos brīžos pārstāja sūtīt datus. Tā kā mans MOST darbs bija devis man detalizētas zināšanas par CAN un MOST šinas mijiedarbību, Audi kontaktpersona jautāja, vai varu šo CAN simulāciju patstāvīgi uzbūvēt no jauna.
Piekritu ar piezīmi, ka pirmais solis būtu darbspējīgs prototips — ne skaists, bet funkcionāls. Mazāk nekā piecu darba dienu laikā uz galda gulēja paša projektēta elektronikas plate ar ATmega128, kopā ar manis rakstītu simulācijas programmatūru. Prototips bija lodēts ar roku, bet darbojās — pat tādos darba apstākļos, kuros iepriekšējā piegādātāja plate izgāzās.
Audi tad jautāja, vai varu ražot un piegādāt gabalus — bet rūpnieciskā kvalitātē, pilnīgi mašīnā ražotus, ne ar roku. Projektēju sērijas plates izkārtojumu un strādāju ar PCB ražotāju no Audi vides, kurš parūpējās par mašīnas ražošanu. Pēc incidenta ražotāja mašīnas testēšanā atrisināšanas plate piegādāja uzticamus rezultātus — tieši tur, kur sākotnējā piegādātāja plate izgāzās.
Šis projekts parāda gadījumu, kurā pasūtījums auga caur konkrētu tehnisku saturu: pie sākotnējā programmatūras uzdevuma pievienojās paša aparatūras izstrāde ar sērijas ražošanu — jo es pārzināju šinas arhitektūru pietiekami dziļi, lai pēc pieprasījuma piedāvātu darbspējīgu risinājuma ceļu.
Bez detalizēti aprakstītajiem projektiem esmu strādājis citiem klientiem automotive, rūpniecībā un medicīnā. Konkrētākas atsauces uz uzdevumiem, kas salīdzināmi ar jūsu vidi, ar prieku tiek apspriestas iepazīšanās sarunā — konfidencialitātes apstākļos, ja vēlaties.
Trīs īpašības iet cauri abiem projektiem un lielākajai daļai manas darbības: