Riprogrammare il firmware del dongle USB CC2531 tramite Raspberry Pi e senza CC Debugger

3 minuti di lettura
SCOPI DEL PROGETTO:
  • Riprogrammare il firmware di un dongle USB CC2531 (nell’esempio useremo la versione richiesta per l’uso con zigbee2mqtt)
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • Riprogrammazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere progettata ed effettuata 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.

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.

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

Connessioni fisiche

In primis è necessario collegare i due dispositivi rispettando il seguente schema:

PIN CC2531conPIN Raspberry Pi
GNDGND
RST35
DC36
DD38

I contatti da interconnettere tramite i cavi Dupont 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
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/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/CC2531_DEFAULT_20190608.zip

Infine, eseguire l’unzip:

unzip CC2531_DEFAULT_XXXXXXXX.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 /flash_cc2531/CC2531ZNP-Prod.hex

Terminata la procedura, il dongle USB CC2531 sarà pronto all’uso con zigbee2mqtt.

DISCONNESSIONE

Per terminare la procedura, disconnettere il dongle dalla porta USB e successivamente disconnettere i cavi Dupont.


telegram

Rimani aggiornato tramite il nostro canale Telegram!