La gran parte dei progetti IoT parte dallo sviluppo di un Proof-of-Concept basato su piattaforme di prototipazione rapida (Arduino, Raspberry Pi, ecc.) , che permettono di valutare velocemente la fattibilità dell'idea e mettono le basi per l'implementazione della soluzione. Quando il PoC è validato, il sistema funziona ed il backend è operativo, è il momento di pensare all'industrializzazione. Ottimizzazioni, portabilità, prototipi, test, certificazioni, produzione... quanto complesso è realizzare un prodotto?
Intervento di Paolo Bonetti, Torino 12 novembre 2015
IoT Saturday PN 2019 - S8-6 Francesco Not
1. #iotsatpn
saturday 2019
Internet of Things
OK, the PoC runs… what’s next?
Steps to bring an IoT device concept to manufacturing
Francesco Not
In questa presentazione andremo a fare una carrellata
sul processo di sviluppo dell’hardware di un
dispositivo elettronico IoT, dalla sua ideazione alla
messa in produzione.
2. #iotsatpn
Francesco Not – Electronic Engineering
• Hardware and firmware development since 2002
• Consulting and Product Management since 2012
• Industrial and Consumer markets
• Home office / Laboratory
• Continuous improvement on new
technologies and techniques
• Worldwide network of contacts
in electronics supply chain
and manufacturing services
Tecnologo e consulente per l’ingeneria elettronica.
Da 17 anni sviluppo dispositivi elettronici per i mercati
industriale e consumer.
Da 6 anni faccio il consulente per la gestione di
progetti ad alto contenuto tecnologico.
Lavoro principalmente nel mio ufficio/laboratorio, dove
sono autonomo per lo sviluppo, la protototipazione
ed i test dei dispositivi che progetto per i miei clienti.
L’elettronica e la tecnologia sono la mia passione, mi
tengo costantemente aggiornato sulle novità del
mercato dei semiconduttori e della fabbricazione
elettronica e provo materialmente tutte le nuove
tecnologie su cui riesco a mettere le mani.
Negli anni ho costruito una rete internazionale di
relazioni nel mondo dell’industria elettronica che mi
tornano spesso utili per trovare soluzioni innovative
in maniera rapida ed efficace.
3. #iotsatpn
I got an idea on a new product,
let’s make it IoT !
Generalmente tutto parte da un’idea, dalla soluzione di
un problema reale e dall’intuizione che quella
soluzione possa diventare un prodotto di successo.
4. #iotsatpn
New project – Exciting idea!
Bene, l’idea è interessante, pare che il mercato
risponda bene ai test… dopotutto potrebbe valer la
pena mettere insieme un Dimostratore Tecnologico,
o come detto comunemente, Proof Of Concept
(PoC).
Allora, come prima cosa compriamo un po' di materiale
e proviamo a giocarci un po’...
5. #iotsatpn
Proof Of Concept – Development Boards
Questo è quello che molti di noi hanno spesso sulla
scrivania: una scheda prototipale come Arduino,
Raspberry Pi, schede di sviluppo per
microcontrollori, ecc., connesse a schede di
espansione, sensori, attuatori, moduli wifi, bluetooth,
radio, e chi più ne ha più ne metta.
Questa è la base per il Proof of Concept, il set-up
minimo per iniziare a mettere in piedi il software che,
lo sappiamo bene, è il vero valore del progetto,
quello che all’utente dà la percezione del valore.
6. #iotsatpn
Proof Of Concept – Software development
Ora è il momento di dedicarci allo sviluppo del
software: back-end, front-end, protocolli di
comunicazione, Interfacce Utente, magari anche App
per i dispositivi mobili.
Insomma, tutto quello che serve per un sistema IoT
come si deve e che framework come Microsoft Azure
mettono a disposizione per semplificarci la vita.
Lo mostriamo ai finanziatori, al nostro responsabile, lo
facciamo provare ai commerciali e magari agli stessi
clienti e sì, gli piace, sono contenti, funziona bene ed
è divertente da usare.
Quindi...
7. #iotsatpn
Proof Of Concept – It could work!!
SI… PUO’… FARE!
Questo sarà il nostro prossimo, eccezionale prodotto!
8. #iotsatpn
Fantastic!
Let’s go to production … … but ….
Fantastico!
Possiamo cominciare a venderlo?
Beh, prima bisogna farlo, e questo prodotto funziona
mediante l’hardware che, in questo momento… è più
o meno così...
10. #iotsatpn
Okay then, let’s make that hardware!
Va bene, siamo convinti, facciamo questo passo…
sviluppiamo il nostro hardware!
Okay… da dove si comicia?
11. #iotsatpn
Electronic device engineering
- process-
Make or Buy?
Specifications
Hardware design
Firmware development
Prototyping
Testing and validation
Field tests
Industrialization
Certifications and
finally
Mass
Production
Corrections
and re-spin
Pre-series
Schema semplificato di sviluppo di un prodotto
elettronico.
12. #iotsatpn
Electronic device engineering
- Make or Buy-
Raspberry Pi, Arduino, BeagleBone, etc.
are meant for laboratory use, NOT production!
• Need for stable external power, no protection
• No granted long-term availability
• Need for cumbersome add/on boards (shields/capes)
• Lots of unneeded I/O and connectors
• Bad aesthetics, big size
Le schede di sviluppo rapido, tipo Arduino, Raspberry
Pi e compagnia bella non sono progettate per essere
usate fuori dal laboratorio.
Nel mondo reale l’elettronica è sottoposta a sbalzi di
tensione, interferenze elettromagnetiche, scariche
elettrostatiche, sbalzi termici e di umidità, abusi
meccanici… insomma, stress di ogni tipo.
Se ci mettiamo anche il fatto che nessuno ci garantisce
che per i prossimi 5/10 anni quella scheda sarà
disponibile in commercio, ecco che usarla diventa un
rischio.
Se poi abbiamo un prodotto consumer che deve avere
un’estetica piacevole e magari molto compatta, beh,
allora non ci siamo proprio.
13. #iotsatpn
Electronic device engineering
- Custom vs. Off-the-Shelf -
Custom HW
• Pros:
– Completely tailor made
– Custom shapes and
dimensions, integration
– Full control on HW and SW
• Cons:
– Longer development cycle
– Expensive in low volumes
Off-the-shelf HW
• Pros:
– Proven and tested, SW
available
– Faster Time-to-Market
• Cons:
– Nearly impossible to find
exactly what we need
– Expensive in high volumes
La scelta, quindi, deve essere fatta fra: progettare un
nuovo hardware da zero oppure adattarsi ad un
hardware già fatto.
Sicuramente un harware custom ci dà il massimo
controllo sulle tecnologie, i costi e le forme ma va
considerato il lavoro di sviluppo che, alle volte, può
essere considerevole.
Con un hardware già pronto, invece, tutto è risolto ma
in genere non si trova una soluzione del tutto
adeguata ai nostri scopi. Certo possiamo adattare i
nostri requisiti a quello che troviamo ma, insomma,
vogliamo scendere a compromessi prima di partire?
14. #iotsatpn
Electronic device engineering
- SOM + custom carrier -
• Tested and certified
• Drivers + kernel ready
• Long-term availability
• Support available
• Easier and faster to develop
• Adapted to final application
• Upgradable with newer SOM
+
Magari possiamo sfruttare qualcosa che già esiste,
come una scheda a microprocessore su modulo, che
possiamo comprare già fatta a prezzi contenuti – e
soprattutto con i driver già fatti ed il sistema
operativo pronto! - , e dedicarci al design della sola
interfaccia verso il mondo esterno, la scheda madre
o carrier board, così da ottenere quello che vogliamo
in tempi più rapidi e spendendo molto meno in costi
di sviluppo.
Questa soluzione “intermedia” è piuttosto diffusa in
ambito industriale, per applicazioni che sfruttano dei
microprocessori potenti e possono avere simensioni
e forme che consentono l’integrazione di una
elettronica relativamente voluminosa.
15. #iotsatpn
Electronic device engineering
- custom HW -
Di contro con un design completamente personalizzato
possiamo ottenere esattamente quello che vogliamo,
anche assemblaggi tridimensionali molto compatti e
schede flessibili e molto sottili, pensiamo ad esempio
ai wearables e all’elettronica integrata nei vestiti
oppure sensori ambientali integrati nelle scatole a
muro oppure ancora sensori industriali che devono
adattarsi alla forma ed alla dimensione del
semilavorato da controllare.
Insomma, con un design custom possiamo realizzare
una soluzione specificamente ottimizzata per la
nostra applicazione.
16. #iotsatpn
in most of IoT projects
some custom HW is needed
Nella realtà, prendiamone atto, molti progetti IoT per
dare il massimo del loro valore, necessitano di una
qualche forma di hardware personalizzato.
Quando abbiamo deciso come procedere, mettiamo le
basi per i prossimi sviluppi...
17. #iotsatpn
Electronic device engineering
- Specifications-
Too many IoT projects are developed without
specification definition.
Many of those will fail or get far beyond schedule
because there is no guideline of what needs to be
done and with which priority.
LE SPECIFICHE, queste sconosciute!
Quanti progetti vengono portati avanti senza una
definizione formale e definitiva delle specifiche?
TROPPI!
Con tutto quello che ne consegue…
Dedichiamo tutto il tempo necessario alla
fromalizzazione delle specifiche per ogni parte del
sistema, che saranno la nostra linea guida per i mesi
di successivo sviluppo (quando ci saremo dimenticati
il perché avevamo preso quella decisione) e ci
daranno le priorità quando le cose non saranno
lineari (cioè quasi sempre!)
18. #iotsatpn
Electronic device engineering
- Technology selection-
Una parte fondamentale dello sviluppo dell’elettronica
è la selezione tecnologica.
In questo caso non stiamo parlando del processore o
del SoM da usare, che abbiamo già deciso a questi
punto, ma a tutte le tecnologie e la componentistica
“di controno” che comunque gioca un ruolo critico
nella definizione della complessità del sistema.
Le tecnologie scelte a questo punto possono essere
ad esempio: il sistema di acquisizione del dato
sensoriale, quale una videocamera, ed i sistemi di
illumiazione del pezzo da riprendere, oppure la
scelta dei connettori per interconnettere il sistema,
ma anche le tencologie reallizzative come la
dimensione dei componenti da usare, la loro
dissipazione termica e le tecnologia di assemblaggio;
insomma, tutto quello che può impattare
direttamente sulla efficienza della produzione e della
manutenzione del prodotto.
19. #iotsatpn
Electronic device engineering
- Technology verification -
Per le parti critiche del progetto, ad esempio parti in
radiofrequenza, sensori, analogica di precisione,
parti meccaniche ed elettromeccaniche, ecc., oppure
elementi sottoposti a stress notevoli come elettronica
di potenza e elementi a forte dissipazione termica,
alle volte è necessario sviluppare prototipi di test e
validazione per essere certi che la soluzione adottata
dia realmente i risultati sperati.
In questi casi il prototipo di test dà la possibilità di fare
delle misure mirate sulla parte più critica, per non
avere poi sorprese quando tale tecnologia sarà
integrata nel prodotto finito, riducendo i rischi al
minimo ed abbreviando il ciclo di sviluppo.
20. #iotsatpn
Electronic device engineering
- Hardware design-
Finalmente si comincia con lo sviluppo hardware
dell’elettronica e della meccanica.
Scelta dei componenti e delle tecnologie, disegno dello
schematico, layout della scheda sono competenze
all’apparenza accessibili ma nascondono molte
insidie che hanno a che fare con il Design for
Manufacturability (DFM), cioè tutte quelle scelte che
impattano direttamente sulla produzione e ne
determinano i costi. Per questo è molto importante
l’esperienza in ambito produttivo – bisogna sapere
come funzionano i processi produttivi per sapere
come sfruttarli al meglio.
Stesso discorso, più intuitivamente, per il disegno
meccanico, sia esso per parti in metallo o in plastica.
Per i progetti che lo prevedono, bisogna porre
particolare attenzione ai cablaggi, che spesso sono
la principale causa di malfunzionamenti del sistema
una volta che è stato messo in opera.
21. #iotsatpn
Electronic device engineering
- Firmware development -
Quando si decide di sviluppare un hardware custom,
sia esso anche solo limitato alla scheda madre,
generalmente è necessario sviluppare o adattare del
software di basso livello, tipicamente driver o
primitive di codice che permettono l’accesso
all’hardware sottostante.
Questa fase di sviluppo di solito comprende anche tutti
quei meccanismi che non vengono sviluppati per il
PoC, quali bootloader, update del firmware – magari
Over The Air – protocolli e sistemi di sicurezza ed
autenticazione, diagnostica e altro.
In genere questa è la fase di progetto più dispendiosa
in termini di tempo e risorse ed è difficilmente
gestibile con metodi Agile, per cui necessita di una
attenta pianificazione e monitoraggio.
22. #iotsatpn
Electronic device engineering
- Security and robustness -
●
TPM, Secure Boot, firmware updates and
authentication
●
Trusted Execution Environments
●
Cryptography of protocols and data storage
●
Network access and enrolment
●
Key storage protection
●
Anti tampering and intrusion detection
●
Physical protection of hardware
In ambito IoT e, specialmente IIoT, la sicurezza dei
dispositivi e delle connessioni è fondamentale,
eppure è uno degli argomenti meno sentiti e sui quali
mancano più competenze.
Spesso l’endpoint IoT viene connesso direttamente
alla rete aziendale e questo mette il dispositivo sotto
la mira di potenziali attaccanti. Anche un semplice
termostato, se connesso alla rete, può diventare un
punto di accesso per malintenzionati.
Per sensori che monitorano processi produttivi critici,
sistemi di rilevamento delle manomissioni e
meccanismi di autenticazione dei dati sono
fondamentali specialmente se il dispositivo si trova in
una zona nascosta o non sorvegliabile.
23. #iotsatpn
Electronic device engineering
- Attacks -
●
Framework based network attacks
●
Fuzzy probing and flooding
●
Differential Power Analisys
●
Silicon probing and injection
●
Electromagnetic microscopy
●
Laser pulse junction stimulation
●
Ion beam fuse reset and silicon modification
Attacchi ai dispositivi hardware in ordine di
complessità.
In base al valore del dato che transita nel sistema IoT,
all’aumentare di tale valore, anche le risorse messe
in campo da una attaccante variano in porporzione.
Pensate se con un attacco remoto ad un sistema di
controllo di una pressa fosse possibile disattivare il
rilevamento di finecorsa… in un istante si potrebbe
danneggiare irreparabilmente un macchinario di
altissimo valore e mettere a rischio la vita degli
operatori. Eventi come questo, ed anche peggiori,
sono possibili se non viene posta particolare
attenzione all’implementazione sicura dei sistemi IoT.
24. #iotsatpn
Electronic device engineering
- Prototyping -
Bene, l’hardware è stato progettato ed ora è il
momento di vedere realizzati i prototipi.
In genere per questo si usano servizi dedicati di
prototipazione rapida, che in breve tempo possono
metterci a disposizione un limitato numero di prototipi
su cui andare a fare…
25. #iotsatpn
Electronic device engineering
- Testing and validation -
I nostri test elettrici, meccanici… magari distruttivi…
come vedete dalle foto.
Quando l’hardware è stato verificato si collega al
software sviluppato in fase PoC, con le opportune
modifiche, e su questo si continua lo sviluppo.
Alla fine se tutto funziona si può dire che il prototipo è
validato e si può andare avanti verso i test sul campo
e la produzione.
Se le cose non vanno come sperato e bisogna mettere
mano al prototipo, si fa un pasetto indietro...
26. #iotsatpn
Electronic device engineering
- process-
Make or Buy?
Specifications
Hardware design
Firmware development
Prototyping
Testing and validation
Field tests
Industrialization
Certifications and
finally
Mass
Production
Corrections
Pre-series
Si corregge il progetto e si fa un re-spin della parte
hardware errata.
Avete notato l’apparentemente innocua freccina?
Ecco, questa procedura di correzione e test va ripetuta
tutte le volte che serve (idealmente nessuna o
comunque molto poche – in genere per progetti di
bassa e media complessità una o due revisioni sono
la norma). Uno o due re-spin dell’hardware vanno
sempre previsti in fase di definizione delle
tempistiche di progetto!
Se il progetto è molto complesso, magari con delle
parti analogiche o in radiofrequenza molto delicate, è
preferibile, come abbiamo già visto, realizzare e
testare quelle parti separatamente prima di
sviluppare il resto dell’hardware, ed andare ad
integrarle col resto della scheda solo quando sono
state validate, così da non avere brutte sorprese
dopo aver speso tempo e soldi sul prototipo finale.
27. #iotsatpn
Electronic hardware engineering
- Certifications -
Un discorso importante meritano le certificazioni, siano
esse relative alla sicurezza elettrica o alla
compatibilità elettromagnetica, molto frequenti e
rilevanti in ambito IoT.
Ogni regione geografica ha normaive e marchi diversi
e per molti di questi è necessario effettuare delle
misure specifiche presso laboratori accreditati, che
rilasciano la relativa certificazione di conformità.
Ognuno di questi test può costare migliaia di euro e
mesi di tempo, per cui è fondamentale definire a
priori quali saranno i mercati e le norme di riferimenti
per il prodotto che andiamo a sviluppare, così da
adottare tecniche di progetto mirate a facilitare tali
certificazioni.
Qui sopra vedete un compendio dei marchi di
certificazione e conformità elettrica e RF mondiali
(forse ne ho dimenticato qualcuno).
28. #iotsatpn
Electronic device engineering
- Firmware development -
• Advice:
– Use pre-certified
RF modules as much
as possible in your
products to avoid
huge costs of
certification.
Se il vostro prodotto ha degli apparati radio, come
Bluetooth, WiFi, Ant, Zigbee, LoRa, ecc. è
assolutamente preferibile usare moduli radio integrati
già certificati.
Ogni certificazione di apparati radio costa parecchie
migliaia di euro, va ripetuta per ciascun apparato
radio nel sistema e può richiedere alcuni mesi per
essere rilasciata da un ente certificatore accreditato.
Usando moduli radio certificati molto spesso è
sufficiente una autocertificazione di conformità con
allegato un test report effettuabile da qualsiasi
laboratorio di analisi elettromagnetica, ottenibile in
tempi brevi e con costi molto più accessibili.
Anche per la parte di alimentazione è preferibile usare
soluzioni integrate già garantite per essere conformi
alle norme.
29. #iotsatpn
Electronic device engineering
- Industrialization -
DFM
Design For Manufacturability
Bene… siamo arrivati alla fine del processo, il prototipo
funziona, il sistema sta in piedi, i dispositivi sono
conformi alle norme quindi è il momento di preparare
la produzione.
In questa fase viene preparata la documentazione per
la produzione, i piani di assemblaggio, cablaggi,
procedure di test e collaudo e tutto quello che serve
per automatizzare quanto più possibile la produzione
in serie.
A questo punto, se il sistema non è stato progettato in
ottica DFM, si scoprono gli altarini, che di solito
significa: produzione più lenta e complessa, con
relativo aumento dei costi.
Ecco perché, ancora una volta, l’esperienza del
progettista e del Product Manager relativa alla
produzione è di fondamentale importanza.
30. #iotsatpn
overwhelming, isn’t it?
maybe we could use some help!
Wow, un sacco di cose per realizzare un prodotto, non
è vero?
Per fortuna c’è chi può darvi una mano...
31. #iotsatpn
Francesco Not - Consulting
• Advising customers on:
– Technology selection
– Feasibility analysis
– Budget and resources estimation
– Team building
– Project/Product Management
– Electronic component supplier management
– Manufacturing partners management
Francesco Not può assistervi in tutte le fasi del
progetto, dalla ideazione e selezione tecnologica, via
via fino alla messa in produzione e gestione dei
partner manifatturieri.
Per i progetti che ne possono beneficiare, è possibile
mettere insieme un gruppo di lavoro composto da
vari professionisti capaci di coprire tutte le fasi di
qualsiasi progetto in ambito consumer e industriale.
32. #iotsatpn
Francesco Not - Engineering
• Hands-on work:
– Electronic systems design
– PCB layout and engineering
– Product industrialization
– Prototyping and testing
– Team leading and coordination
– Reverse engineering
– System security evaluations
Oltre alla consulenza, si offrono anche servizi di
ingegneria elettronica e sviluppo firmware di basso
livello.
Alcuni campi di specializzazione che meritano citati
sono:
- Miniaturizzazione e tecnologie chip-on-board.
- Elettronica flessibile e ultra-sottile.
- Sistemi di sicurezza hardware, crittografia ed
autenticazione.
- Reverse engineering di schede obsolete e
ricostruzione di dati per la riproduzione.
33. #iotsatpn
Francesco Not - Target customers
• Electric/Electronic companies:
– Product innovation, advanced tech
– Understaffing and workload spikes
– Specialized skillset and services
• ICT companies and software houses:
– Hardware and low-level consulting
– Industrialization of Proof-of-Concepts
– Hardware security and assessments
Generalmente lavoro con due tipi di aziende cliente,
alle quali offro servizi integrativi o complementari al
loro core business.
34. #iotsatpn
Francesco Not - Value proposition
• Passion → latest technologies
• Independent → fast reaction
• Lateral thinking → innovative ideas
• Long-term experience → effectiveness
• Security mindset → robust solutions
• Broad network → prompt external support
Perchè lavorare con un consulente indipendente?
35. #iotsatpn
Let’s do this together!
Per il prossimo progetto elettronico ora sapete a chi
rivolgervi!
36. #iotsatpn
Francesco Not – Contacts
• Tel. +39 0433 786024
• Mob. +39 338 8546454
• Email: contact@francesconot.it
• Skype: francesco.not
• Via Lobbia 3 (Mena)
33020 Cavazzo Carnico UD – Italy
< Rise to the challenge >
http://www.francesconot.it
Ecco dove trovarmi.