Archivi tag: development board

Caricare il firmware Nodemcu con esptool

Nell’articolo sulla compilazione del firmware Nodemcu

Compilazione firmware Nodemcu

avevamo creato nella cartella bin i file 0x0000.bin e 0x100000.bin e copiato i file dall’SDK Espressif blank.bin e esp_init_data_default.bin.

Dalla documentazione dello strumento esptool

esptool

il comando generico da usare è il seguente

Dal momento che siamo in presenza di una scheda con 4M di flash e con una velocità di comunicazione della USB di 9600 bps dovremo usare i seguenti parametri

  • mode=dio
  • size=32m

 Sempre dalla documentazione esptool, non avendo creato il firmware con docker, siamo in presenza dei due file, che avevamo già provveduto a combinare nel file nodemcu_float.bin.

 Nel caso della scheda a nostra disposizione è stato necessario anche usare i file

  • esp_init_data_default.bin: parametri di default del firmware.
  • blank.bin:  reset dei dati sulla scheda.

secondo la mappatura indicata al link

Guida ESP8266

Nel nostro caso gli indirizzi usati (4M di flash) sono

  • 0x3FC000 per esp_init_data_default.bin.
  • 0x3FE000 per blank.bin

Ci si posiziona in una command shell script  nella cartella nodemcu-firmware e si  impostano i path corretti

I comandi da eseguire sono quindi i seguenti, considerando /dev/ttyUSB0 la porta USB del dev kit

  • Reset della scheda

  • Caricamento del firmware

Nel prossimo articolo caricheremo del nostro codice LUA scipt sul dispositivo.

Esempio codice Lua

Compilare nodemcu su linux

Trattiamo ora i passi da seguire per creare la propria immagine Nodemcu con cross compilazione su Linux.

Partiamo sempre dalla immagine Debian descritta in articolo precedente

Ambiente Debian

 Seguendo quanto indicato al link

Cross compilazione

 come prima operazione prepariamo l’ambiente di cross compilazione.

Colleghiamoci su Debian con la nostra utenza (sviluppo nel nostro caso) e creiamo una cartella esp8266 da riga comando

 Installiamo i prerequisiti

 Procediamo a scaricare il repository esp-open-sdk

 per procedere alla sua compilazione

Al termine della compilazione abbiamo la seguente indicazione

Occorre inserire nel PATH quanto segue

Possiamo clonare a queto punto il github del firmware Nodemcu. Sempre dalla precedente finestra di riga comandi eseguire

Una volta posizionati nella cartella esp8266 eseguire

 Al termine posizionarsi in nodemcu-firmware

Prima di procedere alla creazione del nostro primo firmware apportiamo delle modifche sulla configurazione presente in app/include/user_config.h

  • Abilitiamo la direttiva per il nostro devkit 0.9 (devkit in nostro possesso)

#define DEVKIT_VERSION_0_9 1     // define this only if you use NodeMCU devkit v0.9

  • Modifichiamo la velocità di comunicazione sulla USB (velocità di comunicazione del nostro devkit)

//#define BIT_RATE_DEFAULT BIT_RATE_115200
#define BIT_RATE_DEFAULT BIT_RATE_9600

  • Modifichiamo la dimensione della flash a 4M (dimensione a nostra disposizione)

#define FLASH_4M
// #define FLASH_8M
// #define FLASH_16M
//#define FLASH_AUTOSIZE

Salviamo il file e procediamo alla creazione del firmware con il comando

Al termine sotto la cartella bin

troveremo due file: 0x00000.bin e 0x100000.bin. Creiamo un solo file nodemcu_float.bin con il comando

Aggiungiamo l’utente sviluppo al gruppo abilitato a scrivere sulla usb

Debian vede senza necessità di drivers  aggiuntivi la porta USB. In presenza di macchina virtuale abilitare la periferica.

Accedere all’sdk scaricato e compilato prima; nella cartella bin copiare i file

  • blank.bin
  • esp_init_data_default.bin

nella cartella bin dove sono stati generati i file del firmware nodemcu

binDefaultA questo punto siamo pronti a caricare il firmware sul dispositivo mediante lo strumento esptool. Nel prossimo articolo descriveremo come caricare il firmware sul dispositivo

Caricare il firmware con esptool

Caricare codice LUA su ESP8266

Dopo aver installato il firmware appropriato

Caricare il firmware

si può caricare il proprio codice LUA script sul nostro device. Per eseguire tale operazione esistono diversi strumenti

Caricare codice Lua

In questo articolo installeremo ESPlorer

ESPlorer

E’ una applocazione java e disponibile per i sistemi operativi Windows, Linux ed Osx. Come prerequisito richiede la presenza di Java SE ver. 7 o superiore.

Si scarica il tool dal link sotto elencato in una cartella

Scarica ESPlorer

e si lancia mediante il comando

o tramite script dos o unix (ESPlorer.bat o ESPlorer.sh).

A questo punto si collega il Nodemcu devkit al pc e si impostano i parametri di comunicazione e la velocità della porta COM.

Si presenta, per esempio in Windows, la seguente schermata

ESPlorer

Si può premere Open che permette l’accesso sul dispositivo.

ESPlorerConnesso

Si può a questo punto procedere alla creazione del proprio codice in LUA script e caricarlo sull’ESP8266 utilizzando; il codice si può generare integrandolo con i  vari moduli messi a disposizione dal firmware secondo la documentazione

Nodemcu API

Nel prossimo articolo descriveremo come compilare una versione del firmware personalizzata in Linux

Compilazione Nodemcu

Caricare il firmware con Nodemcu Flasher

Dopo aver esaminato nell’articolo precedente le diverse modalità di caricamento del firmware

Caricare il firmware Nodemcu

vediamo qui in dettaglio come operare su Windows.

 Partendo dal github del firmware nodemcu

Nodemcu github

si perviene alla applicazione per Windows

 Nodemcu flasher

 Si scarica la versione compatibile con il nostro sistema operativo (32 o 64 bit).

Come operazione preliminare si installano i driver, se non già presenti in windows, del chip USB-Seriale, come specificato nell’articolo precendente. Nel nostro caso avendo a disposizione un development kit Nodemcu 0.9 si installano i drivers CH340G

CH340G Drivers

 Si scarica il software Nodemcu flasher in una cartella; si collega il Nodemcu devkit al pc mediante una connessione USB-Micro USb ed il device dovrebbe essere riconosciuto dal pc nella lista delle porte COM

PortaCom

Nel nostro caso è disponibile sulla porta COM5.

I passaggi da seguire sono i seguenti:

  • Lanciamo il Nodemcu Flasher e scegliamo la porta COM5

NodemcuProg

  • In Config selezioniamo INTERNAL://NODEMCU con indirizzo 0x00000.

NodemcuProgConfig

  •  In Advanced abbiamo i seguenti parametri
    • Baudate: 9600 secondo quanto indicato sulla nostra scheda.
    • Flash size: 4MByte. Flash del nostro devkit.
    • Flash Speed: 40MHz il default.
    • SPI Mode: DIO il default per flash da 4Mb.

NodemcuProgAdvanced

  • Possiamo ora procedere al caricamento premento il tasto FLASH

NodemcuProgFlash

  • Viene mostrata la barra di scorrimento della operazione e le informazioni hardware del dispositivo che si sta caricando

NodemcuProgProgress

Al termine si può chiudere la finestra e verificare che tutto funzioni correttamente con un programma per caricare il proprio codice LUA script, che vedremo nel prossimo articolo

Caricare codice LUA

Caricare il firmware nodemcu

Nell’articolo precedente abbiamo trattato il mdoulo wifi ESP8266 integrato nella scheda di sviluppo Nodemcu

Modulo WiFi ESP8266

Qui analizziamo come caricare il firmware sulla propria scheda.

Prima operazione da eseguire è valutare il modello di scheda di sviluppo nodemcu a disposizione. Nel nostro caso eseguiremo le varie operazioni con una scheda di sviluppo Nodemcu V0.9. Il chipset usb-seriale in questo caso è il CH340G

I drivers per questo chipset possono essere scaricati direttamente dallo github di nodemcu

USB-Seriale Drivers

Per caricare il firmware si possono usare i metodi descritti nel sito di Nodemcu

Flash del Firmware

In sostanza vi sono due metodi principali

  • Flash tramite il tool windows Nodemcu Flasher

Nodemcu Flasher

  • Flash tramite una utility in Python da usare in Linux, OSX o Windows

esptool

Il tool Nodemcu flasher permette di caricare un firmware di default sulla scheda in modo abbasta intuitivo e  velocemente.

Come si evince dalla documentazione sopra allegata con il devkit non è necessario eseguire alcuna operazione sul pin GPI0 dell’ESP; le operazioni di flash ed esecuzione si avviano automaticamente.

Nel prossimo articolo caricheremo il firmware usando il Nodemcu flasher

Caricare il firmware con Nodemcu Flasher

Firmware Nodemcu

Come discusso nel precedente articolo

Modulo WiFi ESP8266

lavoreremo con il soc ESP8266 utilizzando il firmware Nodemcu

Firmware Nodemcu

Nodemcu, alla data alla revisione 1.5.4.1, è basato sulla revisione LUA 5.1.4. Utilizza come base l’SDK NONOS di Expressif

SDK NONOS Expressif

 e come filesystem utilizza spiffs

spiffs filesystem

Il firmware può essere ottenuto, come specificato al link

Compilazione firmware Nodemcu

in vari modi

  • Tramite un servizio cloud, specificando anche i moduli aggiuntivi se necessari

Compilazione firmware tramite cloud

  • Tramite un sistema Docker

Compilazione tramite Docker

  •  Tramite un cross compilazione su Linux

Descriveremo come installare il sistema di cross compilazione su Linux.

 Vi è anche la possibilità di installare un firmware di default tramite il tool Nodemcu  Flasher.

Nel prossimo articolo tratteremo come caricare il firmware

Caricare il firmware Nodemcu

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

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

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