Month: April 2015

Netduino : la nuova “terza” generazione anche con Wi-Fi integrato

Ed ora … posso finalmente scrivere qualcosa !! 🙂

Circa due settimane fa ho ricevuto un bel regalo dalla Secret Labs (grazie a Chris Walker) … la nuova scheda Netduino 3 Wi-Fi !

WP_20150429_22_18_19_ProWP_20150429_22_18_35_Pro

Personalmente, ho iniziato la mia “carriera” con il .Net Micro Framework utilizzando le board Netudino e Netduino Plus (prima e seconda generazione), divertendomi tantissimo nello sviluppo di driver gestiti per i componenti ad esse collegati. Con l’esplosione dell’Internet of Things, ho iniziato a sviluppare la mia libreria M2Mqtt ed a testarla sulla versione della board dotata di connessione Ethernet, ma per quanto riguarda il collegamento con i servizi Azure come il Service Bus (event hubs, queues e topics/subscription) mi sono dovuto fermare a causa di un grosso problema: il mancato supporto per il protocollo SSL/TLS ! (necessario per Azure).

Ufficialmente a partire da ieri (ma poche settimane fa per me) … non abbiamo questo limite ! La “terza” generazione delle board della famiglia Netduino supporta i protocolli sicuri come SSL/TLS e quindi fornisce la possibilità di connettersi a tutti i servizi Microsoft Azure ! 🙂

Per ora, solo la versione Wi-Fi è già disponibile su Amazon qui e la versione Ethernet sarà disponibile nel mese di giugno qui.

L’hardware

Parlando della Netduino 3 Wi-Fi, questa scheda ha un STM32 MCU (microcontrollore a 32 bit) Cortex-M4 a 168Mhz con 2 MB di Flash dual-bank e 256 KB di RAM. Naturalmente, a causa del .Net Micro Framework TinyCLR abbiamo fino a 1408 KB per il nostro codice applicativo (in Flash) e circa 164 KB di RAM disponibile. Per me, si tratta di enormi quantità di memoria per le applicazioni embedded complesse !

netduino3wifi

Abbiamo lo stesso pulsante ed il led come le schede precedenti e tutti i pin, 22 pin digitali e analogici come GPIO, che possono essere utilizzate con le seguenti caratteristiche specifiche :

  • Porte UART
  • Segnali PWM
  • Porte SPI
  • Porte I2C

La grande differenza con le schede precedenti è la presenza di 3 porte GoBus 2.0 e sembra che la Secret Labs stia sviluppando nuovi componenti da connettere ad essi. Se volete sapere che cosa è GoBus, potete approfondire con il seguente articolo : sembra essere una caratteristica simile a .Net Gadgeteer ma ha molteplici differenze.

Il modulo Wi-Fi è una grande caratteristica in più perché è completamente integrato sulla scheda senza la necessità di un dispositivo esterno. Il chip è un TI CC3100 (Texas Instruments), con tutte le certificazioni necessarie e supporta 802.11 b/g  n con SSL/TLS ed i tre livelli di sicurezza: aperto, WEP e WPA2.

Ultima caratteristica ma non meno importante è il connettore microSD (fino a 2 GB) per la memorizzazione dei dati.

Il software

Naturalmente le nuove schede Netduino sono tutti basate sulla più recente versione del .Net Micro Framework (4.3 QFE2-RTM) e tutto il codice è open source: si può trovare il porting per Netduino su GitHub.

Una grande differenza con il passato è il Netduino.IP: il nuovo stack TCP/IP per .Net Micro Framework. Come sappiamo, uno dei grandi problemi del .Net Micro Framework è lo stack di rete che non è molto affidabile. Per questo motivo, Secret Labs ha deciso di iniziare il nuovo progetto di cui sopra con lo sviluppo di uno stack TCP/IP completamente gestito ed avere il pieno controllo su di esso. Naturalmente, questo nuovo “nato” è ancora in Technical Preview e sotto test ogni giorno per migliorare le sue featues e prestazioni. La buona notizia è che ha supporta per le classi standard in System.Net  (Socket, HttpWebRequest, …) per garantire retrocompatibilità ed utilizza solo 4 KB di RAM. Come progetto open source, è disponibile su GitHub per due chip Ethernet: il solito Microchip ENC28J60 e Asix AX88796C.

Per quanto riguarda il supporto Wi-Fi, lo stack TCP/IP per il TI CC3100 è in un altro progetto (che sarà assimilato nel Netduino.IP) disponibile qui. In questo caso, abbiamo il pieno supporto per la classe SslStream per SSL/TLS 1.2. Questo progetto è in fase di sviluppo ed ha alcune alcune limitazioni relative al numero di socket aperte simultaneamente e buffer. Le prestazioni potrebbero essere superiori perché la versione corrente usa l’UART per comunicare con il chip ma il supporto SPI arriverà presto.

Dal punto di vista degli sviluppatori, abbiamo Visual Studio 2013 ma è già pronto il supporto per Visual Studio 2015.

Infinite possibilità

Con questa nuova terza generazione, ora abbiamo molte possibilità nell’ambito dell’Internet of Things con la famiglia delle board Netduino. Il grande vantaggio è l’accesso a tutti i servizi Microsoft Azure come Event Hubs (e tutti gli altri servizi del Service Bus) e di tutti i servizi on-line che hanno bisogno di supporto SSL (le Twitter APIs per esempio). Ho già provato la mia board nelle ultime due settimane ed ho avuto buoni risultati usando la libreria AMQP Net Lite per la connessione al Service Bus e con la mia libreria M2Mqtt con un broker MQTT nell’iinviare e ricevere molteplici messaggi. Tutti i miei test sono correlati al lato client dell’uso della board poichè non concordo nell’avere un server su un dispositivo embedded per motivi di sicurezza, quindi non ho approfondito le funzionalità disponibili per sviluppare un server HTTP(S) a bordo. La scheda con tutti i relativi stack software sembra essere affidabile ma la performance potrebbero essere migliorate. So che Chris lavorerà duramente nei prossimi mesi per fornire nuove funzionalità e miglioramenti per darci un prodotto migliore per collegare le “nostre” cose all’Internet degli oggetti in rete.

Quail : una nuova board basata su .Net Micro Framework … in città !

C’è una nuova board per .Net Micro Framework in città !

Negli ultimi mesi, MikroElektronika ha rilasciato la Quail board come una soluzione per la creazione di prototipi hardware utilizzando tutte le migliori caratteristiche del .Net Micro Framework e le relative schede, note come “click” board, per differenti tipi di dispositivi esterni, come i sensori (umidità, temperatura , …), modulo WiFi, OLED e così via.

quail_board

La Quail board si basa sul sull’MCU STM32F427, un Cortex-M4 a 180 Mhz con 2 MB di Flash e 256 KB di RAM con il relativo porting di .Net Micro Framework 4.3. Insieme alla MCU possiamo trovare 8 MB di Flash esterna, una porta USB per una memoria di massa esterna (oltre che alla porta USB per il debug e l’alimentazione della scheda da PC) e 24 “morsetti a vite” (per evitare di utilizzare una “click” board e collegare un dispositivo direttamente alla scheda).
Per semplificare la prototipazione, ha quattro socket su cui è possibile utilizzare a quattro “click” board, senza necessità di saldare i componenti. Queste socket non sono come i socket .NET Gadgeteer che conosciamo ma MikroElektronika ha sviluppato un nuovo tipo di socket standard chiamato MikroBUS.

mikroBUS

Una socket MikroBUS è costituita da due collettori femmina entrambe con 8 pin relativi alle funzioni più utilizzate della MCU :

  • SPI, UART e I2C pin per la comunicazione con altri componenti come sensori e così via;
  • Pins con funzione singola come PWM, interrupt, ingresso analogico, Reset e Chip Select;
  • Pins per l’alimentazione di dispositivi esterni con + 5V, + 3.3V e la massa;

Tutte le schede fornite da MikroElektronika che supportano il MikroBUS sono chiamate “click” board (circa 50 finora) perché è così semplice collegarli alla Quail … con un semplice “click”!

L’idea di questa nuova scheda con il relativo supporto per il .Net Micro Framework è partita grazie ad una collaborazione tra MikroElektronika e un team di professionisti di software e hardware dalla Francia chiamato MikroBUS.Net. Grazie a questa squadra abbiamo a disposizione un SDK per l’utilizzo del MikroBUS a bordo della Quail (come altri SDK per schede Netduino e .Net Gadgeteer) e il codice sorgente (in C#) dei driver scritti per tutte le “click” board.

Oltre alle “click” board è possibile riutilizzare i moduli .NET Gadgeteer (da GHI Electronics), grazie ai G-Adapters che sono in grado di adattare la socket .Net Gadgeteer con la socket MikroBUS. Fino ad oggi non tutti i driver sono disponibili per tutti i moduli, ma il team sta ancora lavorando su di essi. Un’altra caratteristica interessante è la “Virtual Soscket”: è possibile collegare un componente alla scheda utilizzando i morsetti a vite senza usare il MikroBUS. In questo modo è possibile utilizzare il driver fornito, anche se non si ha il componente montato su una “click” board.

Naturalmente è possibile sviluppare le applicazioni utilizzando un IDE di prima classe come Visual Studio 2013 (anche la Community Edition) ed in codice gestito con C # come linguaggio.

Questa è solo una breve introduzione, ma in futuro entreremo nel dettaglio per capire come utilizzare e sviluppare con questa interessantissima scheda !

Internet of Things a Napoli : una giornata all’insegna delle “cose” e del “cloud”

Ieri si è tenuta a Napoli la terza edizione della Microsoft Embedded Conference, ormai rinominata in Internet of Things Conference ed organizzata dalla community DotNetCampania grazie al supporto di Microsoft Italia.

Come ogni anno la giornata, completamente gratuita, ha avuto un ottimo riscontro considerando soprattutto l’argomento trattato ed il livello elevatissimo degli speaker, tutti Microsoft MVP per Windows Embedded ed IoT. Ad essi si sono aggiunti Erica Barone, Techincal Evangelist di Microsoft Italia, e Olivier Bloch (con una sessione remota da Redmond), Techical Evangelist di Microsoft Open Tech.

La giornata è iniziata proprio con Erica che ci ha fornito una panoramica generale su come Microsoft intende l’IoT e quali sono tutti i servizi Cloud che mette a disposizione per la realizzazione di sistemi più o meno complessi. A seguire, io ho tenuto una sessione tecnica ed approfondita sull’ultimo nato tra i servizi del Service Bus di Azure : l’Event Hubs. La mattinata si è conclusa con Mirco Vanini che ci ha illustrato il programma Windows Developer for IoT parlando ovviamente anche della Intel Galileo.

DSC_0342 DSC_0384

DSC_0389 WP_20150418_12_21_02_Pro - Copia

Il pomeriggio è iniziato con Beppe Platania e Gianni Rosa Gallina che ci hanno prima illustrato una soluzione reale di IoT implementata anche attraverso l’utilizzo del .Net Micro Framework e successivamente alcuni interessanti progetti su cui stanno lavorando nell’ambito dei wereable e della realtà aumentata. A seguire, la sessione di Lorenzo Maiorfi sull’utilizzo del progetto Orleans nell’ambito IoT : Lorenzo ha avuto un enorme successo con la sua demo basata anche su Bluetooth e Beacon che mi ha visto protagonista come “navetta” per la quale riuscirne a tracciare il percorso effettuato.

DSC_0390 DSC_0405

DSC_0411 DSC_0427

DSC_0438 DSC_0445

La giornata si è conclusa con una sessione in coppia con Valter Minute e, direttamente da Redmond in remoto, Olivier Bloch che si è svegliato molto presto (alle 6:00 del mattino) solo per noi. Ovviamente, a lui va un ringraziamento particolare !

Come sempre la giornata è stata resa possibile grazie all’aiuto di tutti i ragazzi della commnunity : Antonio Liccardi che ha gestito interamente la logistica, Carmine Alfano ed Emanuele Garofalo che da ottimi fotografi ci hanno regalato i momenti principali dell’evento ed i principali sponsor come Nova Tech Consulting (Mario Saccoia), Blexin (Michele Aponte, presidente del DotNetCampania) e QT2000 (Gaetano Criscuolo). Un grazie va anche a tutti gli altri che vi hanno partecipato con grande intersse !

Grazie a tutti … ed arrivederci all’anno prossimo !

😉

Agenda piena : In viaggio per l’Internet of Things !

IoYT - Campaign_500

E’ stato e sarà un periodo molto intenso per me … e se volete sentirmi parlare di Internet of Things in giro per l’italia (e per il “mondo”) non vi resta che leggere l’agenda dei prossimi appuntamenti !

Domani, Sabato 18 Aprile, ci sarà la terza edizione della Microsoft Embedded Conference a Napoli ormai diventata Internet of Things Conference organizzata come sempre dalla community DotNetCampania anche grazie alla sponsorizzazione di Microsoft Italia.

Il 28 Aprile sono stato invitato come speaker alla più importante conferenza italiana sull’M2M : l’M2M Forum. In quel di Milano avrò una sessione sulla “Azure IoT Suite” insieme a Roberto Andreoli ed Erica Barone di Microsoft Italia.

Sabato 25 Aprile, il mio amico statunitense Samuel Phung mi ha gentilmente invitato a tenere una sessione remota per il Global Azure Bootcamp che si terrà in California. Sarà per me un’altra esperienza di una presentazione in inglese dopo quella a Seattle con la Toradex.

Infine, chiuderò l’8 Maggio a Venezia con l’IoT Day organizzato dalla community XeDotNet di cui fa parte Mirco Vanini (che ringrazio per l’invito).

Tutte le sessioni avranno un unico filo conduttore quale Azure e l’Event Hubs ed a Venezia la sessione sarà anche un “under the hood” entrando nelle stanze oscure del protocollo AMQP.

Insomma … agenda piena … e voi … avete voglia di ascoltare qualcosa sull’IoT ?

😉

Microsoft MVP … anno 2015 !

mvp_award

Un anno è trascorso da quando ho ricevuto la prima nomina a Microsoft MVP su Windows Embedded e pochi giorni fa (il primo Aprile) è giunta nuovamente la mail più emozionanente che si possa aspettare … il rinnovo !

Il mio “ruolo” di MVP mi ha permesso di essere al summit a Novembre a Redmond in “casa” Microsoft e per me è stata un’esperienza indescrivibile, conoscendo il team che lavora sull’IoT e tutte quelle persone con le quali avevo solo contatti “virtuali”.

Grazie a tutti coloro che hanno continuato a credere in me ed a considerarmi meritevole di questo premio.

Per quanto mi riguarda proseguirò con il massimo impegno, sperando che il prossimo anno possa essere nuovamente qui a scrivere lo stesso post !