SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:DISPOSITIVI FISICI UTILIZZATI:
|
PROGETTO MAGGIORMENTE INDICATO PER: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.7 |
Abstract
Ogni dispositivo elettronico contiene a grandi linee una piccola porzione software, chiamata firmware, che ne determina funzioni e comportamento. La nostra automobile è dotata di diversi firmware; ne possiede uno la lavatrice, il nostro telecomando, persino una radiosveglia è dotata di un proprio firmware.
Z-Bee Duo è un piccolo ed economico componente che permette, abbinato al software ZigBee2MQTT (o altri software analoghi), di definire un BRIDGE/Gateway ZigBee↔︎MQTT utile ad amministrare una rete ZigBee nella propria domotica personale (e quindi accessori basati su questo standard); il componente per lo più è pronto all’uso, ma talvolta si rende necessaria una riprogrammazione del firmware per l’aggiornamento (o la sostituzione) dello stesso.
Questa guida illustra una delle modalità di riprogrammazione tramite un computer di supporto (qualsiasi modello) e senza la necessità di dispostivi di collegamento, grazie all’ausilio di questo progetto Open Source. Tale riprogrammazione si rende necessaria in presenza di aggiornamenti del firmware presente sul device oppure per la volontà, per motivi propri, di cambiarne versione od origine.
La guida, ovviamente, è utilizzabile anche con eventuali altri firmware compatibili con Z-Bee Duo.
Si parte
- Assunti
- Firmware da utilizzare
- Riprogrammazione su Raspberry OS, Linux Debian (o Linux-like: macOS, Ubuntu ecc.)
- Riprogrammazione Windows
Assunti
Importante: prima di cominciare qualunque operazione di riprogrammazione, accertarsi che eventuali software che utilizzano la chiavetta (eg. ZHA, o ZigBee2MQTT) siano stati opportunamente fermati.
Firmware da utilizzare
In fase di riprogrammazione di questo dongle vari possono essere i firmware utilizzabili. Ne elenchiamo alcuni:
- ZigBee: per l’uso come coordinator (quindi come nodo centrale della propria rete ZigBee), è possibile utilizzare quello disponibile QUI (identificare l’ultima versione disponibile del launchpad_coordinator), adatto a BRIDGE/Gateway come ZigBee2MQTT o ZHA;
- ZigBee: per l’uso come router (quindi ripetitore di segnale ZigBee), è possibile utilizzare quello disponibile QUI.
In tutti e due i casi è necessario ricavare l’indirizzo RAW del firmware da installare (servirà più avanti) cliccando sul nome del file firmware, poi col tasto destro del mouse sopra il pulsante “Download” sulla destra, “copia indirizzo”.
Su Raspberry OS, Linux Debian
Prima di provvedere alla riprogrammazione è necessario verificare che l’ambiente operativo sia correttamente predisposto. Diamo per scontato che il sistema operativo sia Linux-like: gli esempi che seguono sono calati su Linux Debian o Raspberry Pi OS, ma sono facilmente mutuabili anche su altre distribuzioni Linux.
Colleghiamoci dunque via terminale (da CLI o via SSH) ed eseguiamo il seguente comando per verificare che Python sia installato:
python3 --version
in caso non sia installata la versione 3, provvedere ad installarla con:
sudo apt-get install python3
aggiornare poi la versione di pip e installare i pacchetti necessari come pre-requisiti:
python3 -m pip install --upgrade pip
python3 -m pip install pyserial intelhex
clonare poi il progetto tramite il seguente comando:
git clone https://github.com/JelmerT/cc2538-bsl.git
portiamoci poi nella directory appena creata e scarichiamo il firmware.
Prima però colleghiamoci a uno degli indirizzi indicati sopra e troviamo il percorso Internet corretto e completo per il firmware che ci serve, che sia coordinator o router.
Se per esempio l’ultima fosse CC1352P2_CC2652P_launchpad_coordinator_20230507.zip, i comandi saranno, utilizzando l’URL RAW della fonte del file:
cd cc2538-bsl wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_coordinator_20230507.zip unzip CC1352P2_CC2652P_launchpad_coordinator_20230507.zip
Ora siamo pronti alla riprogrammazione.
COME HAT Raspberry
Se Z-Bee Duo è installato come HAT di Raspberry Pi, innanzitutto spegnere il computer con:
sudo shutdown -h now
attendere lo spegnimento (logico, perché comunque Raspberry appare sempre “acceso”), dopodiché togliere l’alimentazione.
Poi:
- rimuovere l’eventuale cover in modo tale da raggiungere la board della chiavetta;
- ricollegare il cavo di alimentazione premendo contemporaneamente i tasti RESET e FLASH;
- dopo qualche secondo rilasciare il tasto RESET e dopo un secondo rilasciare il tasto FLASH.
Così facendo, Z-Bee Duo entrerà in modalità “SBL”, pronta per la riprogrammazione.
COME DONGLE USB
Se Z-Bee Duo è installato come dongle (“chiavetta”) USB, eseguire la seguente sequenza:
- scollegare la chiavetta USB;
- ricollegare la chiavetta ad una porta USB tenendo premuti i tasti FLASH e RESET;
- una volta collegata rilasciare il tasto RESET e dopo un secondo rilasciare il tasto FLASH;
- sempre da terminale, verificare la porta logica assegnata tramite il nostro script o in altri modi (potrebbe essere /dev/ttyAMA0);
Così facendo, Z-Bee Duo entrerà in modalità “SBL”, pronta per la riprogrammazione.
N.b. nelle versioni 1.1 e rev.E le operazioni ai punti 2 e 3 nono sono necessarie. |
Ora lanciare il comando per la riprogrammazione:
./cc2538-bsl.py -p /dev/ttyAMA0 -evw CC1352P2_CC2652P_launchpad_coordinator_20230507.hex
Nota: ovviamente il nome del file .hex può variare in base alla versione del firmware scaricato, quindi il comando andrà corretto coerentemente.
Se andrà tutto bene, la procedura riporterà il seguente log:
Opening port /dev/ttyUSB0, baud 500000
Reading data from CC1352P2_CC2652P_other_coordinator_XXXXXXXX.hex
Your firmware looks like an Intel Hex file
Connecting to target...
CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8
Primary IEEE Address: 00:12:4B:00:24:C9:B1:07
Performing mass erase
Erasing all main bank flash sectors
Erase done
Writing 360448 bytes starting at address 0x00000000
Write 104 bytes at 0x00057F980
Write done
Verifying by comparing CRC32 calculations.
Verified (match: 0x916bc13c)
Se si sta utilizzando la chiavetta come HAT sarà poi necessario riavviare il Raspberry tramite il comando:
sudo reboot
in caso invece si usi come dongle USB, basterà scollegarla e ricollegarla normalmente.
Su Windows
In primis, scaricare l’ultima versione disponibile del firmware da qui (compilazione “other“), poi decomprimerlo.
Verificare l’installazione di Python (da Powershell o da Prompt dei Comandi) tramite il comando…
python3 --version
Qualora non sia presente, scaricare Python (si consiglia versione 3) ed installarlo.
Aggiornare poi la versione di pip:
python3 -m pip install --upgrade pip
Installare i pacchetti indicati come prerequisiti:
python3 -m pip install pyserial intelhex
Clonare il progetto che consente la riproammazione con il seguente comando:
git clone https://github.com/JelmerT/cc2538-bsl.git
Copiare all’interno della directory appena clonata il firmware da utilizzare per il flash (il nome varia in base alla versione, ipotizziamo che sia CC1352P2_CC2652P_other_coordinator_20230507.hex)
A questo punto sarà necessario:
- collegare la chiavetta ad una porta USB del proprio computer tenendo premuti i tasti FLASH e RESET;
- una volta collegata rilasciare il tasto RESET e dopo un secondo rilasciare il tasto FLASH.
Così facendo, Z-Bee Duo entrerà in modalità “SBL”, pronta per la riprogrammazione.
Verificare dalla gestione delle periferiche la porta COM assegnata alla chiavetta; per la seguente guida assumiamo che sia COM4.
Sempre da Powershell o da Prompt dei Comandi lanciare il seguente comando:
cc2538-bsl.py -p COM4 -evw CC1352P2_CC2652P_other_coordinator_20230507.hex
Nota: ovviamente il nome del file .hex può variare in base alla versione del firmware scaricato, quindi il comando andrà corretto coerentemente.
A questo punto basterà scollegare e ricollegare la chiavetta per poterla utilizzare.
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |