Pagina iniziale

Referenze su oltre tre decenni di sviluppo embedded

Clienti dell'automotive e dell'industria si fidano della mia competenza embedded dalla fondazione di SCHMITT CONSULTING. Due progetti illustrano il mio modo di lavorare.

Come consulente embedded indipendente sviluppo per clienti che hanno bisogno di software prossimo all'hardware, comportamento di tempo reale o la combinazione dei due. La mia attività spazia dal contratto a forfait con impegno di consegna fermo, passando per i monte ore, fino all'accompagnamento di reparti di sviluppo per più mesi.

Per ragioni di riservatezza, non tutti i progetti possono essere presentati pubblicamente. I due esempi sotto descrivono progetti di cui posso menzionare i punti chiave — e che illustrano il mio modo di lavorare.

Stihl — riprogettazione completa di un controllo motore per motosega

Per Stihl a Waiblingen ho riprogettato integralmente il software di controllo motore di una motosega. Il punto di partenza è stato un compito di analisi: il software di controllo esistente proveniva da un fornitore giapponese ed era scritto in assembler. Stihl voleva capire in dettaglio cosa facesse quel software. Ho analizzato il codice assembler e documentato le funzioni in modo che gli sviluppatori Stihl potessero seguire integralmente la logica.

Su questa base ho ricevuto l'incarico di una riprogettazione — questa volta in C, con l'obiettivo di consegnare più funzionalità del software originale. I vincoli erano severi: il mercato delle motoseghe è estremamente competitivo sul prezzo, quindi era disponibile solo un microcontrollore molto piccolo ed economico. La memoria era così stretta che un sistema operativo di tempo reale era da escludere. Il software doveva girare bare-metal ed elaborare in parallelo, in modo affidabile, segnali di tempo reale provenienti dall'hardware.

Per tutto lo sviluppo ho avuto solo la scheda con l'hardware e il mio codice sul tavolo — nessun ambiente di test, nessun motore. Il primo test pratico si è tenuto al banco di prova Stihl a Waiblingen. Dopo mesi di analisi e sviluppo non sarebbe stato insolito che il motore non partisse al primo colpo. È partito subito ed è girato fondamentalmente bene. Il resto è stato regolazione fine dei punti di accensione, ottimizzata in modo iterativo al banco — un procedimento solitamente coperto da software di apprendimento adattivo, ma che qui doveva essere fatto manualmente per ragioni di memoria.

Alla fine ho consegnato a Stihl un software di controllo che faceva di più della precedente versione giapponese, girava sullo stesso microcontrollore economico ed è stato consegnato con documentazione completa. Notevole il quadro commerciale: alla trattativa finale all'ufficio acquisti di Stihl, il prezzo precedentemente concordato non è stato ridotto. Il buyer ha semplicemente chiarito che ogni euro doveva essere giustificabile — ma ridurre il prezzo non era l'obiettivo. Questa esperienza — un cliente che paga prezzi giustificabili per qualità giustificabile — è rara sul mercato e segna fino a oggi la mia comprensione di una buona cooperazione.

Il progetto è stato gestito come contratto a forfait. Lo sviluppo si è svolto interamente al di fuori delle sedi Stihl; il coordinamento con il referente Stihl è avvenuto solo sulle decisioni fondamentali. Questa forma di cooperazione si è dimostrata straordinariamente efficace.

Audi — simulazione MOST e sviluppo proprio di un hardware CAN

Per Audi a Ingolstadt il mio incarico originario era la creazione di un software di simulazione del bus MOST per un sistema di infotainment — una simulazione in tempo reale che permetteva di testare centraline contro un bus MOST virtuale.

Sul posto è emerso che Audi aveva in parallelo un secondo problema: una scheda di simulazione CAN esistente, fornita da un fornitore esterno, non funzionava in modo affidabile in determinate condizioni operative — semplicemente smetteva di inviare dati nei momenti decisivi. Poiché il mio lavoro MOST mi aveva fornito una conoscenza dettagliata delle interazioni tra bus CAN e MOST, il referente Audi mi ha chiesto se potevo ricostruire questa simulazione CAN in modo indipendente.

Ho accettato, segnalando che il primo passo sarebbe stato un prototipo funzionante — non bello, ma operativo. In meno di cinque giorni lavorativi era sul tavolo una scheda elettronica di mio progetto con un ATmega128, accompagnata da un software di simulazione che avevo scritto. Il prototipo era cablato a mano ma funzionava — anche nelle condizioni operative in cui la scheda del fornitore precedente aveva fallito.

Audi ha quindi chiesto se potevo fabbricare e fornire unità — ma in qualità industriale, interamente fabbricate a macchina, non a mano. Ho progettato lo sbroglio della scheda di serie e ho lavorato con un produttore di PCB dell'ambiente Audi che si è occupato della fabbricazione a macchina. Dopo aver risolto un problema nel test a macchina del produttore, la scheda forniva risultati affidabili — proprio dove la scheda del fornitore originale aveva fallito.

Questo progetto mostra un caso in cui un incarico è cresciuto per sostanza tecnica concreta: al compito software originario si è aggiunto uno sviluppo proprio di hardware con produzione di serie — perché conoscevo l'architettura del bus con sufficiente profondità da poter proporre su richiesta un percorso di soluzione funzionante.

Altri clienti

Oltre ai progetti descritti in dettaglio, ho lavorato per altri clienti in automotive, industria e medicale. La selezione sopra segue il criterio per cui i punti chiave sono presentabili pubblicamente. Referenze più concrete per compiti analoghi al vostro contesto si discutono volentieri in un primo colloquio — sotto riservatezza se desiderato.

Cosa hanno in comune questi progetti

Tre proprietà attraversano entrambi i progetti e la maggior parte della mia attività:

Responsabilità completa autonoma
Entrambi i progetti sono iniziati con un compito di analisi e si sono conclusi con una soluzione finita e consegnata. Specifica, progettazione, implementazione, test e consegna erano nelle mie mani — in Audi persino fino alla produzione di serie dell'hardware tramite un partner.
Lavoro embedded prossimo all'hardware sotto vincoli reali
Stihl: bare-metal su un microcontrollore con memoria minima. Audi: simulazione MOST in tempo reale più hardware CAN proprio. In entrambi i casi non si trattava di applicazioni standard, ma di compiti in cui i vincoli plasmano la soluzione.
Cooperazione con contratto a forfait con impegno di consegna fermo
Entrambi i progetti si sono svolti al di fuori delle sedi del cliente, con coordinamento selettivo sulle decisioni fondamentali. Questa forma di cooperazione è il mio modello preferito — protegge il cliente da un lavoro di guida non necessario e mi lascia la concentrazione che richiede lo sviluppo prossimo all'hardware.

Schema colori

Lingua