Arduino, open source e futuro

Nel modo della IT, possiamo oramai dire che l'Open Source e' una pietra angolare dello sviluppo software. Non tutto il software e' in standard GPLv3, ma in ogni caso molto di esso e' in licenza MIT/BSD-3 super open (forse troppo).

Iniziamo con una panoramica dell'Open source nel sottware enterprise, per poi passare a parlare di open hardware e di Arduino.

Il software commerciale, era un modo di pensare e lavorare nel 2000, (pensiamo ai software Borland, Microsoft, Bea Weblogic, Oracle). Al giorno d'oggi Java e' basato su moltissimo software open source (gli application server commerciali sono qualcosa di 'vetusto', molti microservizi sono basati su SpringCloud) ed anzi ora la versione 'Oracle' del linguaggio e' a pagamento, non l'ecosistema (!).

La sfida semmai e' che ora i big player vendono servizi cloud a pagamento basati su software open source, una cosa a cui non tutti hanno ben reagito (vedi il cambio di licenza di Elastic Search o software simili che ora sono 'open' ma solo se non li vendete come servizi...).

Arduino UNO R4 WiFi con la scatola delle specifiche a destra

Arduino nasce intorno al 2005 (vedi la voce di wikipedia):ho iniziato ad interessarmi alla board nel 2014, e in quel periodo una scheda costava intorno ai 25 euro. Da quello che ho capito il punto di forza di Arduino era di essere completamente aperto, sia dal punto di vista del progetto hardware che della tool chain software.

Dopo una breve consulenza nell'ambito dei PLC industriali, mi sono reso conto che in quell'ambito tutto il software e' super chiuso, e con cicli di vita (relativamente) "lunghi" . In tale ambito supportare sistemi per almeno 8-10 anni puo' diventare la norma.

Per cui il fatto che ci fossero schede molto piu' economiche di Arduino ma con i loro ambienti di sviluppo software chiusi e a licenze, ci puo' dare un parallelismo rispetto a quanto succedeva e succede nel mondo della IT 'pura'.

A questo si e' aggiunta l'invasione di prodotti cinesi come quelli di Espressif (ESP32 e inferiori, come ESP8266), basati su chip ARM non eccelsi ma tutti con WiFi a bordo, e con ben piu' dei 2Kb di RAM di ArduinoUno).

Inoltre i chip come ESP8266 potevano funzionare comodamente con MicroPython, che e' un ottima astrazione, anche se richiede 'parecchia' memoria per funzionare bene (in soldoni i 96KB di ESP8266 bastano, ma intorno ai 16Kb di BBC:Micro risulta ben poco utile).

Poi e' arrivato anche RasperryPi nel 2014, con una fila di pin di I/O anche lui, e  che aveva un prezzo di lancio superiore ad Arduino, ma era un PC ARM completo (non ricordo il costo ma si aggirava tra i 30 ed i 40 euro, nel caso correggetemi nei commenti :-).

Arduino nel frattempo ha iniziato a proporre board basate su ESP o altri chip ARM (vedi Arduino Due, le MK ecc) integrate nell'IDE.

Nel 2023 le cose sono un po' cambiate

Il Rasperry PI modello B+ costa intorno ai 50 euro ma ha meta' della RAM (512MB) di quello acquistato da me ai tempi per 44 euro (luglio del 2015).

Il Rasperry Pi Zero costa scontato sui 30 euro, e ha WiFI e Bluetooth a bordo, con un costo paragonabile ad ArduinoUnoWiFi, ma con molta piu' memoria (512KB vs 32KB); non avendolo mai usato non posso farmi un'idea precisa, ma e' un computer completo con delle uscite I/O, una cosa diversa dagli altri oggetti trattati qui. Inoltre per esperienza sul RasperryPi maggiori, e' un sistema delicato perche' una mancanza di corrente danneggia rapidamente la scheda di memoria SSD.

In compenso Arduino ha un entry price che e' rimasto intorno ai 25 euro, ed e' passato anche lui ad architettura ARM, mantenendo retro compatibile l'API di base, e aprendosi ad un ecosistema Cloud anche a pagamento.

Alcune soluzioni come ST Nucleo hanno entry price al di sotto dei 20 euro, e benché abbiano una barriera di entrata piu' alta (IDE Eclipse proprietario pesante da configurare, ecc) esistono dei 'core' plugguabili su Arduino per la serie ST32 come anche per Esp8266

L'econsistema Arduino e' rimasto ancora open, e ricordiamoci che RasperryPI non e' completamente open (serve una licenza per usare la GPU potenziata) e in generale e' un computer completo, piu' complesso da usare.

Conclusioni

Arduino non e' la soluzione piu' economica in circolazione, ma il rapporto qualita'/prezzo e' migliorato rispetto ai qualche anno fa.

Arduino rimane ancora una board che gira a 5v, retro compatibile con i vecchi shield, e ha un regolatore di tensione che consente di alimentarlo tra i 6 ed i 24 volt.

I sistemi ESP girano tutti a 3.3v, sono molto facili da bruciare ed e' non banale fornire una tensione precisa a 3.3v.

Arduino e' piu' smart della media

Arduino UNO R2 con zoccolo

Le prime schede ArduinoUno hanno una feature notevole: era possibile rimpiazzare il chip ATMega, poiche' lo zoccoletto non era saldato ma era a pettine (vedi a lato):

Per intenderci le schede piu' economiche non hanno lo zoccoletto, e quindi se si brucia il processore va buttato in toto.
Per i veri esperti, era possibile usare il chipset ATMega 'nudo',usando la board solo per programmarlo e testarlo (ovviamente bisognava fornire clock, regolatori di tensione ecc nella installazione definitiva).

L'offerta delle board Arduino e' esplosa in modo un po' confuso

Rispetto a dieci anni fa, il numero di Board e' incrementato e' tra Arduino Zero, Uno, Due, Portenta, Giga, MKR c'e' parecchia confusione, soprattutto per i neofiti.
Tralasciamo esperimenti ritirati come quello tra Arduino e IntelEdison, le cui motivazioni non ci sono mai state chiare, visto che Intel nell'embedded ha perso questa guerra (e presto potrebbe anche trovarsi in difficolta' nel campo dei server cloud).

Il sito di Arduino fa quello che puo', e' molto pulito esteticamente ma certamente era tutto piu' semplice quando c'erano solo due o tre modelli tra cui scegliere :)

Detto questo, esistono soluzioni mature alterative ad Arduino. e se non vi piace C++ puo' avere senso sviluppare in MicroPython con un chip ESP che costa molto meno (soprattutto se andate su AliExpress a comperarlo, saltando l'intermediazione di Amazon...).