SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
|
PROGETTO MAGGIORMENTE INDICATO PER: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.5 |
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.
Il dongle USB CC2531 è 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); sfortunatamente, il componente non è pronto all’uso (come, differentemente, altri componenti analoghi tipo il ConBee, i quali però costano di più) ma prevede, a monte, una riprogrammazione del suo firmware al fine di renderlo operativo.
Questa guida illustra una delle modalità di riprogrammazione tramite un Raspberry Pi di supporto (qualsiasi modello) e senza la necessità di dispostivi di collegamento come il CC Debugger e il download cable per CC2531. In caso si posseggano questi componenti – o si preferisca a prescindere quest’altra tecnica perché non si possiede un Raspberry Pi – la guida appropriata è questa. 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 altri firmware compatibili con CC2531.
Si parte
Descrizione procedura
La procedura è davvero molto, molto semplice. È infatti sufficiente collegare quattro contatti presenti sul dongle USB CC2531 con altrettanti quattro presenti sul Raspberry Pi (qualsiasi modello, anche Pi Zero), collegare poi il dongle a una delle porte USB del Raspberry Pi e infine eseguire un comando specifico.
Ciò di cui bisogna disporre è:
- un Raspberry Pi, qualunque modello, dotato di sistema operativo Raspberry Pi OS (se si usa un altro sistema è necessario dotarsi di una microSD di appoggio sulla quale installare Raspberry Pi OS (Raspbian) per eseguire la procedura);
- quattro cavetti Dupont femmina/femmina.
Connessioni fisiche
In primis è necessario collegare i due dispositivi rispettando il seguente schema:
PIN CC2531 | con | PIN Raspberry Pi |
GND | GND | |
RST | 35 | |
DC | 36 | |
DD | 38 |
I contatti da interconnettere tramite i cavi Dupont (lato CC2531 l’enclosure nero presente sulla femmina del cavo Dupont va rimossa, così da liberare il connettore di giusta dimensione) sono i seguenti:
ATTENZIONE: lo schema relativo al Raspberry Pi riporta quello del Raspberry 2/3/4, ma la la piedinatura è la stessa anche su Raspberry Pi Zero. |
Una volta collegati i pin tra loro inserire il dongle USB CC2531 a una delle porte USB del Raspberry, dopodiché collegarsi via SSH al proprio Raspberry. In caso fosse spento, provvedere ad accenderlo.
Riprogrammazione
VERIFICA WIRINGPI
In primis è necessario verificare la presenza del software WiringPi. Per effettuare tale verifica, da terminale (una volta connessi via SSH al Raspberry), eseguire il seguente comando:
gpio -v
Il quale dovrebbe fornire una riposta analoga alla seguente:
gpio version: 2.50
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
ottenuta questa risposta, si ha conferma di aver a bordo il software necessario.
In caso invece si ottenga un errore, sarà allora necessario installare il software tramite il comando:
sudo apt-get install wiringpi
N.b. Se si hanno problemi a installare il pacchetto, provare con le indicazioni di questa guida. |
INSTALLARE flash_cc2531
Ora è necessario installare il software flash_cc2531 usando il comando:
git clone https://github.com/jmichault/flash_cc2531.git
Terminata la breve installazione, accedere alla cartella “flash_cc2531” e eseguire il comando di verifica:
cd flash_cc2531
./cc_chipid
In risposta, il comando dovrebbe fornire l’ID “b524“. In caso sia diverso, verificare le connessioni.
SCARICARE IL FIRMWARE
A questo punto è necessario scaricare il firmware che ci interessa installare sul dongle USB C2531. Nell’esempio che segue installeremo il firmware Z-Stack (quello più compatibile e stabile con ZigBee2MQTT), disponibile qui. Il file che ci interessa inizia con il prefisso “CC2531_DEFAULT_“, mentre il prefisso varia rispetto alla data di compilazione.
Eseguire dunque:
cd ~/flash_cc2531 wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_Home_1.2/bin/default/CC2531_DEFAULT_XXXXXXXX.zip
avendo cura di adeguare il comando in base al nome del file disponibile sul repository
Esempio: con nome file “CC2531_DEFAULT_20190608.zip“,il comando finale è:
wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_Home_1.2/bin/default/CC2531_DEFAULT_20190608.zip
Infine, eseguire l’unzip:
unzip CC2531_DEFAULT_20190608.zip
sempre adeguando il nome del file.
RIPROGRAMMAZIONE
Ora possiamo eseguire i due comandi necessari alla riprogrammazione, il primo che cancella la memoria del dongle e il secondo che lo riprogramma:
./cc_erase
./cc_write CC2531ZNP-Prod.hex -m 300
Terminata la procedura, il dongle USB CC2531 sarà pronto all’uso con ZigBee2MQTT (o col software che si sia scelto di implementare).
DISCONNESSIONE
Per terminare la procedura, disconnettere il dongle dalla porta USB e successivamente disconnettere i cavi Dupont.
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. Se ti sei perso, a tua disposizione c'è la mappa. |