Tutti gli articoli di admin

Modulo Wifi ESP8266

In questo articolo descriviamo brevemente il microcontroller ESP8266 della Espressif

ESP8266

E’ uns soc a basso consumo, composto da un microcontroller RISC a 32 bit ed  integra già al suo interno un sistema wifi. Al link delle risorse di Espressif si trovano le infomazioni dettagliate sul soc

Risorse ESP8266

Le specifiche del dispotivo sono presenti nel seguente documento pdf

Specifiche ESP8266

Il chip è disponibile in vari moduli o in schede di sviluppo, che facilita notevolmente l’uso dal momento che ha già al suo interno le corrette impostazioni hardware per il caricamento del firmware e la sua esecuzione.

Su internet si trovano vari siti che descrivono diversi progetti di Home Automation o IOT utilizzanti tale soc. Un sito di riferimento è sicuramente il seguente

ESP8266 Forum

All’interno del sito si trovano i riferimenti ai metodi maggiormente utilizzati per lo sviluppo del firmware per tale soc

  • Arduino Ide

Arduino IDE

ESP8266 Arduino github

  • SDK Espressif

Forum Espressif Sdk

ESP8266 SDK

  • PlatformIO

PlatformIO

  • Nodemcu

Nodemcu nel forum esp8266.com

Nodemcu

Nodemcu github

L’ESP8266 è acquistabile sui vari siti, ad esempio ebay, sia in forma di modulo

ESP8266 su ebay

o come piattaforma di sviluppo

Piattaforma di sviluppo ESP8266

Vi sono vari moduli di AI-Thinker

AI-Thinker

che implementano ESP8266; noi useremo il devkit Nodemcu con all’interno i moduli AI-Thinker ESP-12/ESP-12E. Nei link precedenti su ebay erano presenti anche i moduli  ESP8266 ESP-01 e kit di sviluppo di altri produttori.

Sul github di Nodemcu sono presenti le schede di sviluppo che utilizzeremo in seguito. In particolare sono presenti due versioni della piattaforma

  • Piattaforma di sviluppo Nodemcu V1 (ESP-12E)

Nodemcu devkit V1.0

  • Piattaforma di sviluppo Nodemcu V0.9 (ESP-12)

Nodemcu devkit V0.9

Al seguente link vi è una descrizione dei vari moduli AI-Thinker disponibili e come ricavare le informazioni per la propria flash

Moduli ESP8266

Dal github di Nodemcu

Nodemcu Devkit

i pin del devkit 1.0 sono i seguenti

Nei prossimi articoli descriveremo il firmware Nodemcu, come compilarlo, come caricarlo sulla scheda e faremo degli esempi utilizzando il linguaggio di scripting  LUA, utilizzato in tale firmware

Lua

insieme ai moduli sofware messi a disposizione da tale firmware

Documentazione nodemcu

Nel prossimo articolo descriveremo il firmware Nodemcu

Firmware Nodemcu

Compilazione modulo openwrt

Nell’articolo precedente

Compilazione Immagine OpenWrt

si è descritto come compilare il firmware OpenWrt per il router TP-Link TL-MR3420 V1. Di seguito si mostra come compilare un modulo, vsftpd, ed installarlo sul sistema da shell.

Eseguire il comando make menuconfig

ed accedere alla sezione relativa al modulo vsftpd sotto  Network->File Transfer ed abilitarlo come moduloOpenWrtModulovsftpdSalvare la configurazione in .config ed eseguire i comandi

Al termine del processo il pacchetto del modulo è presente nella directory packages sotto la  cartella bin della piattaforma utilizzataOpenWrtModulovsftpdCompilatoCopiare il file sul router come root mediante scp (su windows si può utilizzare WinScp) nella cartella /tmp. Non eseguire l’aggiornamento dei repository dei pacchetti dalla interfaccia web (se eseguito far ripartire il dispositivo) ed accedere al router mediante ssh, sempre come root, per procedere alla installazione del pacchetto

OpenWrt mette a disposizione tanti moduli che permettono di potenziare notevolmente le funzionalità del dispositivo; alcuni moduli sono abbastanza esosi come risorse , per cui è possibile installarli su router con hardware più potente.

Compilazione immagine openwrt

Dopo aver descritto brevemente il firmware OpenWrt nel precedente articolo

OpenWrt

si passa alla compilazione del firmware OpenWrt per il proprio dispositivo.

L’esempio sarà basato sul router TP-Link TL-MR3420 versione 1. Tale modello è presente fra la lista dei modelli supportati da OpenWrt; di seguito il link alla documentazione del modello in oggetto

TP-Link TL-MR3420

Dalla documentazione si nota che il SOC è un Atheros AR7241. Questa informazione sarà utilizzata in fase di configurazione della compilazione del firmware. Come operazione preliminare scaricare anche il firmware originale del router presente al link precedente

Firmware Originale

Nella pagina TP-Link TL-MR3420 sono presenti inoltre i link al firmware opewrt in due varianti:

  • Firmware per intallazione: openwrt-15.05.1-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin.
  • Firmware per aggiornamento: openwrt-15.05.1-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade.bin

Partendo dal firmware originale si usa il firmware per installazione, mentre per aggiornare da openwrt si usa il secondo tipo.

Dal link di OpenWrt sulla compilazione dell’immagine

Sviluppo OpenWrt

si eseguono le seguenti operazioni su Debian preparato in precedenza

Preparazione ambiente Debian

Aperta una shell su Debian come utente normale (non root) si installano i prerequisiti

Creare una cartella OpenWrt e clonare il repository. Nel nostro caso scegliamo il branch stabile 15.05

Al termine del processo git eseguire

Siamo pronti a questo punto ad eseguire la compilazione della immagine per il TP-Link TL-MR3420 V1.

Si lancia il comando

scegliendo come Target System AR7xxx/AR9xxx come indicato di seguitoOpenWrtmenuconfigCon i seguenti pulsanti si modificano le opzioni:

  • y: si  compila.
  • m: si compila come modulo.
  • n: non viene considerato.

Fare riferimento al link

Compilazione OpenWrt

per tutte le opzioni.

Premendo Invio alla schermata successiva si sceglie la piattaforma correttaOpenWrtmenuconfigAtherosSi devono installare anche i pacchetti minimi per l’amministrazione del sistema, ossia LuCI baseOpenWrtmenuconfigLuciAlla schermata successiva si sceglie CollectionOpenWrtmenuconfigLuciCollectionse quindi l’opzione luci che installa automaticamente i prerequisiti tra i quali anche un server httpOpenWrtmenuconfigLuciCollectionsBaseSi installano anche i moduli crittografici del kernel accedendo ai moduli del kernelOpenWrtmenuconfigKernelModulesSi sceglie poi l’opzione delle api crittograficheOpenWrtmenuconfigKernelModulesCryptoApied infine si scelgono i seguenti moduli compilati con l’immagineOpenWrtmenuconfigKernelModulesCryptoApioptionsConviene salvare la configurazione in un file in modo da riutilizzarla in seguito. Salvare infine la configurazione nel file .config.

Uscire dal menuconfig ed eseguire il comando

in modo da controllare tutti i prerequisiti necessari alla compilazione.

Per avviare la compilazione eseguire il comando

Il comando precedente esegue la compilazione in verbose mode.

Al termine della compilazione si hanno i file dei firmware nella cartella bin piattaforma scelta. Nel nostro caso le immagini sono evidenziate nella figura seguenteOpenWrtFirmwareSi può procedere alla installazione del firmware.

ATTENZIONE: Prima di procedere alla installazione del firmware verificate la procedura di recupero del vostro router in caso di qualche problema, quale avvio in recovery mode, flash via tftp, jtag,  ecc. L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del disposivo.

Si faccia riferimento al sito di OperWrt per tutte le opzioni ed impostazioni utilizzabili per la compilazione e lo sviluppo dei moduli. Nel prossimo articolo

Compilazione modulo OpenWrt

si descrive come compilare ed installare da linea comando il server ftp vsftpd.

Immagini OpenWrt

In questo articolo parliamo brevemente di OpenWRT

OpenWrt

Come descritto sul sito inserito sopra è una distribuzione linux per dispositivi wireless embedded. E’ disponibile per vari router come elencato nella pagina seguente

Lista dispositivi supportati

Il firmware, basato su codice Open Source, è modulare con la possibiltà di inserire vari moduli.

Al seguente link è elencata la documentazione inerente i moduli e la funzionalità di installazione con il comando opkg

Moduli

Dopo l’installazione del firmware è possibile collegarsi in ssh sul router e controllare ad esempio la lista dei pacchetti installati o disponibili.

In particolare il comando

mostra i moduli disponibili per il dispositivo.

Il comando è attivo se viene inserita la lista dei siti per il download nel file opkg.conf

Moduli disponibili OpenWrt

ma questa operazione può essere eseguita anche dalla interfaccia web.

Ci si collega sul routerOpenWrtLoginSi accede alla sezione SoftwareOpenWrtSoftwarepngSi aggiorna la lista dei repositoryOpenWrtSoftwareUpdateListViene caricata la listaOpenWrtSoftwareListSi cerca tra i software disponibili, ad esempio vsftpdOpenWrtSoftwarevsftpdE si procede alla installazioneOpenWrtSoftwareInstallvsftpdA questo punto è tra i pacchetti installatiOpenWrtSoftwarevsftpdInstallatoNei prossimi articoli si descrive come compilare l’immagine per il proprio router insieme ad un package aggiuntivo

Compilazione Immagine OpenWrt

Creazione immagine Armbian per Orange PI PC

Passiamo ora alla creazione della immagine Armbian per Orange PI PC. Dal github dello sviluppatore

Armbian Github

sono elencati i passi da seguire.

Dal sito Armbian

Compilazione immagine Armbian

l’ambiente di compilazione testato è Ubuntu. Nel nostro test utilizzando una distribuzione Ubuntu 16.04.1 LTS x86-64

Ubuntu

lo script compile.sh installa automaticamente i pacchetti necessari alla compilazione dell’immagine. Sul sito sono presenti inoltre le varie opzioni di compilazione.

Volendo utilizzare la distribuzione Debian 8.5 come host per eseguire la procedura, si sono seguiti i seguenti passi riportati di seguito. Nel caso si riportino errori si utilizzi la distribuzione Ubuntu suggerita sul sito Armbian.

Come operazione preliminare installiamo il crosscompilatore per Debian

https://wiki.debian.org/CrossToolchains

Creare il file crosstools.list in /etc/apt/sources.list.d

ed inseriamo la voce

Salviamo il file ed aggiungiamo la chiave del repository

Installiamo i seguenti pacchetti e l’architettura armhf

Siamo pronti ad installare l’ambiente per la compilazione sia su Ubuntu che Debian. Creaimo una cartella armbian sotto orangepi nella cartella dell’utente con cui ci si collega, che nel nostro caso è sviluppo

 Ci si posiziona in questa cartella e si eseguono i comandi

 Per procedere alla compilazione eseguire

Inserire la password di root per poter proseguire. Quando richiesto selezionare come indicato nelle immagini seguenti.

  • Immagine completa

fullosimage

  • Scheda OrangePI PC

orangepipc

  • Scegliamo il kernel di default

defaultkernel

  • Immagine Debian stabile

debianstable

  • Immagine con Desktop Envinronment

debiande

Sotto la cartella output/images viene generata l’immagine da caricare sulla scheda micro sd come descritto in articolo precedente

immagine

Creazione pacchetto enigma2

Dopo aver compilato l’immagine enigma2

Immagine Enigma 2

mostriamo come creare un package.

Nella cartella recipes-local

creaimo una cartella per il nostro package, ad esempio testpackage, e una sottocartella files

Creare del codice nella cartella files, ad esempio testpackage.c

Creiamo il file Readme.txt nella cartella files  e LICENSE nella cartella testpackage.  Nel file Readme.txt vi sono le informazioni sulla applicazione. Per la licenza, che al momento si può lasciare anche vuoto, occorre create l’hash da inserire nel file bitbake.

Creare il file md5 per la licenza

Creaimo il file bitbake testpackage_0.1.bb sotto la cartella testpackage per la cross compilazione

Compiliamo il pacchetto ad esempio per zgemma accedendo all’ambiente dedicato a tale sistema con

Il file viene generato nella seguente cartella

Copiare il pacchetto testpackage_0.1-r0_mips32el.ipk sullo ZGemma H3 nella cartella /tmp ed eseguire

Per forzare l’installazione senza tenere conto dei prerequisiti

L’eseguibile è presente nella cartella /usr/bin; la sua esecuzione ci dà l’output che ci si aspettava

Compilazione Immagine Enigma2 OpenATV

In questo articolo descriviamo come preparare una immagine Enigma2 basata sulla distribuzione OpenATV

Openatv

 Dopo aver installato l’ambiente di compilazione, come descritto nel blog

Preparazione ambiente Debian

si può procedere come segue.

Collegarsi sull’ambiente Debian con l’utenza da utilizzare per la compilazione; nel nostro caso l’utenza è sviluppo. Nella home directory dell’utente creare la cartella enigma2

 Installare i seguenti pacchetti

Riconfigurare la shell come segue

Scegliere No come opzione.

Creare la cartella openatv sotto enigma2

Creare una cartella sources sotto openatv; tale cartella conterrà i sorgenti dei vari tipi di dispositivi che si vogliono compilare

Clonare in locale il repository git della oe-alliance

Al termine del download entrare nella cartella build-envinronment ed eseguire make

Editare ora il file site.conf e modificare il parametro della cartella di download dei sorgenti  da

a

Dalla cartella build-environment eseguire la compilazione della immagine; ad esempio per il decoder Airdigital Zgemma H2H

Per il decode Xtrend et10000

Al termine della compilazione l’immagine è presente nella cartella sotto deploy a seconda del dispositivo di cui si è compilata l’immagine: nel caso dello Zgemma H2H

immaginezgemma

L’immagine da installare sul dispositivo è lo zip che viene generato dal processo di compilazione, da scompattare in questo caso su una penna USB e caricare sullo Zgemma H2H.

ATTENZIONE: L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del dispositivo.

Scheda di sviluppo Beaglebone

In questo articolo si descrive brevemente la scheda di sviluppo Beaglebone Black. Quanto detto è applicabile anche alle sue derivate (Green, Enhanced) per la maggior parte delle informazioni

Schede Beaglebone Black

Dal link precedente vi è la tabella di comparazione fra i vari modelli.

La scheda è frutto di un progetto Opensource con tutti gli elementi della stessa distribuita sul sito

Design file Beaglebone Black

Di seguito le caratteristiche principali del Beaglebone Black Rev. C (le altre versioni differiscono rispetto alla Black).

ProcessoreTexas Instruments Sitara AM3358BZCZ100, 1GHz, 2000 MIPS
Scheda GraficaSGX530 3D, 20M Poligoni/s
Memoria512 MB DDR3L 800Mhz
Flash a bordo4Gb, 8bit Embedded MMC
Pin Analogici7
Pin Digitali65 (3,3V)
PMIC (Power management integrated circuits)TPS65217C PMIC e un LDO (Low Dropout Regulator) addizionale
Debug20 pin JTAG CTI opzionale, Header seriale
AlimentazioneMini USB, Ingresso DC, 5V DC con Header di espansione
Indicatori1 Alimentazione, 2 Ethernet, 4 Led gestibili dall'utente
USB client PortAccesso a USB0, client mode con mini USB
USB Host PortAccesso a USB1, socket tipo A, 500 mA LS/FS/HS
Porta serialeAccesso UART0 con Header 6 pin 3,3 V TTL
Ethernet10/100 RJ45
Connettore SD/MMCmicroSD 3,3 V
Input utentePulsante di Reset, Pulsante di Avvio, Pulsante di Alimentazione
Uscita Video16b HDMI, 1280x1024 (MAX)
AudioVia HDMI, Stereo
Interfacce Supportate4x UART, 8x PWM, LCD, GPMC, MMC1, 2x SPI, 2x I2C, A/D Converter, 2xCAN Bus, 4 Timers, 2 PRU
Peso39,68 grammi

Dal link

Beaglebone Black Wiki

vi è una descrizione completa di tutte le caratteristiche e sofware compatibile. Il documento System Reference presente come link nel sito sopra indicato è scaricabile dal link

System Reference Beablebone Black

La scheda essendo Opensource e con molte uscite e controlli integrati si presta molto bene alla prototipazione di sistemi IOT, Automazione, Domotica. L’espansione di funzionalità hardware può essere eseguito mediante l’ultizzo di schede di espansione chiamate Cape

Beaglebone cape

La distribuzione  di cui ci occuperemo per la scheda Beaglebone Black è Debian. Sulla distribuzione Debian per Beaglebone è presente anche Cloud9

Interfaccia Cloud 9

che permette di interagire in modo semplice con l’hardware presente sul Beaglebone Black. In  articoli successivi si descrive l’installazione, creazione della immagine e vari utilizzi della scheda.

Di seguito il link alle caratteristiche software ed hardware della scheda; in particolare sono riportati i pin di ingresso/uscita del Beaglebone Black

Beaglebone Black software and hardware

La scheda può essere acquistata seguendo i link indicati sul sito

Acquisto Beaglebone Black

da siti di vendita online o da negozi di elettronica.

Abilitazione Desktop Remoto su Armbian in Orange Pi PC

Per abilitare il server di desktop remoto su Armbian per Orange PI PC collegarsi in ssh sulla scheda

loginEliminare, se presenti, i seguenti pacchetti

Installare i pacchetti

A questo punto è possbile collegarsi in desktop remoto sul sistema.

Remote Desktop ConnectionEseguire il login con l’utenza creata al momento della configurazione di Armbian

Remote Desktop_LoginOra si può lavorare remotamente sulla scheda Orange PI PC

Remote_Desktop

 

Avvio immagine Armbian su Orange PI PC

Dopo aver creato la scheda con l’immagine Armbian per Orange PI PC

Immagine Armbian su scheda micro sd

possiamo inserire la scheda sull’Orange PI PC e si avvia il dispositivo. Dopo aver esteso la partizione sulla scheda sd viene richiesto il login come root con password 1234. Successivamente viene richiesto il cambio di password. Dopo il cambio della password di root viene abilitata la creazione di una utenza di Debian, ad esempio user1. Si immettono le informazioni richieste e si accede alla interfaccia grafica a risoluzione di default. Per cambiare la risoluzione eseguire il seguente comando

Viene mostrata la lista delle opzioni; per una risoluzione 1080p60 eseguire

 Si passa alla riconfigurazione della tastiera e delle lingue.

Eseguire

per impostare le lingue.

Per riconfigurare la tastiera eseguire