Abbiamo parlato su questo blog di C.H.I.P, la board di NextThing Co. che a mò di Raspberry, ma con un prezzo nettamente più contenuto e prestazioni ragguardevoli, svetta nel panorama dell’IoT e dei Makers.

In queste ultime settimane i lotti di giugno sono stati spediti e molti utenti anche in Italia hanno ricevuto le loro prime Board nuove di zecca.
Per chi non ha mai avuto modo di lavorare con Raspberry, Arduino e si addentra per la prima volta in questo mondo, tornerà utile sapere come muoversi e cosa configurare inizialmente.

nextthing chip - come iniziare

Flashare la board

CHIP già arriva con una speciale distro debian preinstallata, munita di interfaccia grafica e l’occorrente per iniziare a lavorare.
Esistono altre distro predisposte per funzionare con CHIP, persino HeadLess (senza interfaccia grafica) per un utilizzo esclusivo tramite terminale, che trovate su flash.getchip.com (Da aprire preferibilmente con Google Chrome, poichè il flasher è di fatti una Chrome App).

Configurazione iniziale

Personalmente ho preferito configurare la board senza collegarla necessariamente ad uno schermo e dunque senza aver necessità di una tastiera.
Per farlo è sufficiente munirsi di un cavo micro USB e tengo a precisare che cavi Micro USB di bassa qualità fanno disconnettere improvvisamente la board dalla seriale (usate cavi di buona fattura!).

Se siamo sotto Linux, una volta connessa la board all’USB, aspettiamo qualche secondo dopodichè assicuriamoci che il sistema l’abbia rilevata correttamente, lanciando su terminale il comando: dmesg | tail, che ci fornirà tra i tanti messaggi di log del kernel, qualcosa del tipo:

[11069.233332] perf samples too long (2537 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
[12880.986269] usb 2-1.2: new high-speed USB device number 4 using ehci-pci
[12881.079065] usb 2-1.2: New USB device found, idVendor=0525, idProduct=a4a7
[12881.079069] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12881.079071] usb 2-1.2: Product: Gadget Serial v2.4
[12881.079072] usb 2-1.2: Manufacturer: Linux 4.3.0 with musb-hdrc
[12881.104850] cdc_acm 2-1.2:2.0: This device cannot do calls on its own. It is not a modem.
[12881.104933] cdc_acm 2-1.2:2.0: ttyACM0: USB ACM device
[12881.106784] usbcore: registered new interface driver cdc_acm
[12881.106788] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

A noi interessa individuare la riga ttyACM0: USB ACM device che ci fa capire che il dispositivo è stato rilevato.
A questo punto se non lo abbiamo già installiamo l’app screen con sudo apt-get install screen.
Screen è un’utility che fra le tante cose ci permette anche di stabilire una connessione seriale.

Il comando da lanciare arrivati a questo punto è: screen /dev/ttyACM0. Questo ci permette di comunicare con la board e la prima cosa che ci presenta davanti è una richiesta di login. Inseriamo come username root e come password chip (Se già non lo sapeste, mentre digitate la password su terminale essa non viene mai mostrata, per ragioni di sicurezza. Quindi non preoccupatevi se non vedete alcun carattere di feedback. Inserite la password e date invio).

Se avete fatto tutto come descritto fin’ora, dovremmo esser riusciti ad accedere all’interno della board e da qui possiamo iniziare a configurare le prime impostazioni di CHIP, per essere fin da subito operativi.

Cambiare password di default

Il primo passo da compiere, in previsione di voler andare online e dunque esporci sulla rete, è quello di cambiare le password di default.
Su CHIP sono presenti due utenti. Il primo è root, il secondo è chip.

Seguendo la procedura sopra saremo dentro come root, quindi digitiamo il comando: passwd e diamo invio, per poter inserire una nuova password per l’utente root.
Fatto ciò cambiamo la password anche per l’utente chip, digitando il comando: passwd chip.
Inserita e confermata la password, siamo pronti per andare avanti e configurare il wifi.

Wifi

Passiamo subito alla configurazione del wifi, per poter accedere alla rete, dunque aggiornare e installare nuovi pacchetti, nonchè permettere alla board di essere accessibile sulla rete.
Il comando da lanciare è questo: nmtui
Che in modo quasi interattivo ci permette di configurare il collegamento a una rete wifi, muovendoci attraverso le freccie direzionali della tastiera.
La voce da selezionare per aggiungere una nuova rete wifi è Activate a connection. A quel punto ci vengono elencate le reti wifi raggiungibili da CHIP e possiamo selezionarne una, per inserire le credenziali d’accesso e confermare con OK.

La finestra di connessione potrebbe variare rispetto a quella mostrata qui sotto:

┌───────────────────────────┤ Edit Connection ├───────────────────────────┐
│                                                                        ↑│
│ │               Mode <Client>                                          ▒│
│ │                                                                      ▒│
│ │           Security <WPA & WPA2 Personal>                             ▒│
│ │           Password *************___________________________          ▒│
│ │                    [ ] Show password                                 ▒│
│ │                                                                      ▒│
│ │              BSSID ________________________________________          ▒│
│ │ Cloned MAC address ________________________________________          ▒│
│ │                MTU __________ (default)                              ▒│
│ └                                                                      ▒│
│                                                                        ▒│
│ ═ IPv4 CONFIGURATION <Automatic>                              <Show>   ▒│
│ ═ IPv6 CONFIGURATION <Automatic>                              <Show>   ▒│
│                                                                        ▒│
│ [X] Automatically connect                                              ▒│
│ [X] Available to all users                                             ▒│
│                                                                        ▒│
│                                                           <Cancel> <OK>▮│
│                                                                        ↓│
└─────────────────────────────────────────────────────────────────────────┘

Come verifichiamo che il collegamento sia realmente avvenuto e che siamo connessi a internet?
Semplicemente pinghiamo un server remoto e aspettiamoci che risponda:

ping 8.8.8.8

Se non risponde assicuriamoci che il router abbia linea e dunque proviamo a pingare anche dal nostro laptop il server remoto.

SSH

Per poter raggiungere la board da remoto, passando dalla rete e non necessariamente dal collegamento seriale, dobbiamo installare SSH.
Lo step da seguire è questo:

1) sudo apt-get update
2) sudo apt-get install ssh

già fatto? si 🙂

Lanciando il comando netstat -plant dovremmo vedere la porta 22 in LISTENING, dunque possiamo recuperare l’indirizzo IP assegnato dal router alla board con il comando ifconfig e provare dal nostro laptop a connetterci in SSH: ssh [email protected], inseriamo la password che abbiamo impostato nel primo passo di questa guida e dovremmo essere riusciti nell’intento.

htop

Il prossimo tool da installare è htop, non è fondamentale ma è un processo utile, che ci permette di monitorare le risorse in uso e disponibili sulla board. Carico del processore, memoria usata e la percentuale di quest’ultimi rispettivamente utilizzati dai processi in esecuzione.

GIT

Git è un must per chi vuole salvare il proprio codice in cloud, sviluppare in maniera collaborativa o contribuire a progetti open source.
Ho notato personalmente che non è installato e presente di default, dunque per chi come me non può farne a meno, installiamo con: sudo apt-get install git.

Locales

Talvolta capita anche che i file di configurazione per la lingua non ci siano. Questo fa si che durante l’installazione o l’esecuzione di alcuni processi si vedano dei WARNING in merito.

Risolviamo in questo modo:

apt-get install locales

e dopo: locale-gen

FINE

Se siamo arrivati fin qua CHIP è correttamente configurato. Potete installare Node.js, lavorare con i GPIO o fare qualunque altra cosa vi passi in mente.
Per qualsiasi problema commentate sotto. Prossimamente in un altro post vedremo come interagire con i GPIO di CHIP per accendere qualche LED attraverso uno script scritto in Node.js.

Stay tuned!