community italiana di domotica personale
 
Riprogrammare il firmware di Z-Bee Duo (con Raspberry Pi OS, macOS, Linux o Windows)

Riprogrammare il firmware di Z-Bee Duo (con Raspberry Pi OS, macOS, Linux o Windows)

4 minuti di lettura
SCOPI DELLA GUIDA:
  • Riprogrammare il firmware di un coordinator ZigBee Z-Bee Duo (nell’esempio useremo la versione richiesta per l’uso con ZigBee2MQTT)
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • Riprogrammazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
  • Sistema operativo Linux-like (eg. Raspberry Pi OS) o Windows (o altri compatibili con le procedure usate in guida)
DISPOSITIVI FISICI UTILIZZATI:
  • il coordinator da (ri)programmare
  • un computer di appoggio (eg. Raspberry Pi con sistema operativo Raspberry Pi OS, oppure un computer dotato di sistema operativo Linux, macOS o Windows)
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.0

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-DuoZ-Bee Duo è un piccolo ed economico componente che permette, abbinato al software ZigBee2MQTT, 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 Raspberry Pi di supporto (qualsiasi modello) e senza la necessità di dispostivi di collegamento, grazie all’ausilio di questo progetto Open Source.

La guida, ovviamente, è utilizzabile anche con eventuali altri firmware compatibili con Z-Bee Duo.

Si parte

Riprogrammazione su Raspberry

N.b. La procedura è calata su Raspberry, ma tendenzialmente è valida anche per macOS o genericamente Linux.

Prima di provvedere alla riprogrammazione è necessario verificare che l’ambiente operativo del Raspberry sia correttamente predisposto. Ovviamente stiamo assumendo che sul Raspberry sia in esecuzione il sistema operativo Raspberry Pi OS (anche noto come Raspbian); diversamente, è necessario dotarsi di una microSD sulla quale installarlo temporaneamente. La guida per farlo è disponibile qui.

Colleghiamoci dunque via terminale (da CLI, via SSH oppure con control-alt-t da interfaccia desktop) ed eseguiamo il seguente comando per verificare che Python sia installato:

python --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:

python -m pip install --upgrade pip
python -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 questo indirizzo e verifichiamo quale sia l‘ultima versione disponibile. In caso l’ultima sia CC1352P2_CC2652P_other_coordinator_20210120.zip, i comandi saranno (e diversamente andranno adeguati coerentemente):

cd cc2538-bsl-master
wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_coordinator_20210120.zip
unzip CC1352P2_CC2652P_other_coordinator_20210120.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:

  1. rimuovere l’eventuale cover in modo tale da raggiungere la board della chiavetta;
  2. ricollegare il cavo di alimentazione premendo contemporaneamente i tasti RESET e FLASH;
  3. 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 su Raspberry Pi, eseguire la seguente sequenza:

  1. scollegare la chiavetta USB;
  2. ricollegare la chiavetta ad una porta USB tenendo premuti i tasti FLASH e RESET;
  3. una volta collegata rilasciare il tasto RESET e dopo un secondo rilasciare il tasto FLASH;
  4. 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.


Ora portarsi sotto la directory del progetto clonato in precedenza e lanciare il comando per la riprogrammazione:

cd cc2538-bsl-master
./cc2538-bsl.py -p /dev/ttyAMA0 -evw CC1352P2_CC2652P_other_coordinator_20210120.hex

Nota: ovviamente il nome del file .hex può variare in base alla versione del firmware scaricato, quindi il comando andrà corretto coerentemente.

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.

Riprogrammazione su Windows

In primis, scaricare l’ultima versione disponibile del firmware da qui, poi decomprimerlo.

Verificare l’installazione di Python (da Powershell o da Prompt dei Comandi) tramite il comando…

python --version

Qualora non sia presente, scaricare Python (si consiglia versione 3) ed installarlo.

Aggiornare poi la versione di pip:

python -m pip install --upgrade pip

Installare i pacchetti indicati come prerequisiti:

python -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_20210120.hex)

A questo punto sarà necessario:

  1. collegare la chiavetta ad una porta USB del proprio computer tenendo premuti i tasti FLASH e RESET;
  2. 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_20210120.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.

   
Telegram News Channel