Riprogrammare il firmware del dongle USB CC2531 via CC Debugger

4 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à: medio
CONCETTI AFFRONTATI:
  • Riprogrammazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
  • Vari (in base al sistema operativo usato sul computer di supporto)
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.1

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 computer di supporto (dotato di sistema operativo Microsoft Window 10, macOS o Linux) e di dispostivi di collegamento, ovvero il CC Debugger e il download cable per CC2531.

CC Debugger
il CC Debugger di Texas Instruments.

In caso non i posseggano i componenti necessari alla riprogrammazione (come, appunto, il CC Debugger e i cavi di connessione), un’altra basata sul solo uso di un Raspberry Pi è disponibile.

La presente guida, ovviamente, è utilizzabile anche con altri firmware compatibili con CC2531.

Si parte

Windows

SMARTRF FLASH PROGRAMMER

Innanzitutto è necessario scaricare la versione 1 (non la 2 o superiori) del software SmartRF Flash programmer di Texas Instruments. Per farlo è necessario possedere un account sul sito Texas, cosa che è possibile ottenere previa registrazione gratuita.

DRIVER CC DEBUGGER

Effettuata l’installazione del software, collegare il CC Debugger e installare il driver necessario per controllarlo, avendo cura di verificare, successivamente, che nella lista dei device connessi a Windows appaia correttamente configurato:

CC Debugger Windows driver

In caso il CC Debugger non venga riconosciuto in modo corretto, è possibile installare il driver manualmente seguendo le indicazioni di questo breve video:

FIRMWARE

Scaricare la versione del firmware necessaria alla riprogrammazione.

CONNESSIONI

A questo punto è necessario connettere il CC Debugger al cavo di download e quest’ultimo all’unità CC2531; a questo punto collegare sia il CC Debugger l’unità CC2531 alle porte USB del computer.

CC Debugger cavo di donwload CC2531
la connessione tra i componenti (immagine da zigbee2mqtt.io).

Comunemente il LED di stato del CC Debugger dovrebbe essere verde; in caso non lo sia, premere il tasto reset.
N.b. Alcuni modelli di CC Debugger, comunque, rimangono sempre con luce LED rossa, pertanto non c’è da preoccuparsi.

RIPROGRAMMAZIONE

A questo punto siamo pronti per riprogrammare il CC2531. Eseguire l’applicazione SmartRF precedentemente installata e configurarla come segue, avendo cura di scegliere, come firmware, il file con estensione “HEX” presente nel pacchetto firmare precedentemente scaricato (attenzione a non scegliere il file con estensione “BIN“):

SmartRF - impostazioni riprogrammazione CC2531
le impostazioni di SmartRF (immagine da zigbee2mqtt.io).

Infine, cliccare su “Perform actions” per eseguire la riprogrammazione.
Al termine della procedura, scollegare il tutto: il CC2531 è pronto all’uso.

macOS

Su questo sistemi operativo la procedura si effettua tramite riga di comando da terminale.

PRE-REQUISITI

Innanzitutto è necessario rispettare vari pre-requisiti, i quali prevedono la presenza sul sistema operativo di alcuni pacchetti a supporto del tool di riprogrammazione; per installarli consigliamo l’uso del package manager Homebrew il quale si installa – sempre da riga di comando – tramite:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Una volta installato Homebrew, installare i pacchetti necessari tramite il comando:

brew install autoconf automake libusb boost pkgconfig libtool

A questo punto è necessario effettuare la build del pacchetto CC Tool tramite i seguenti comandi:

git clone https://github.com/dashesy/cc-tool.git
cd cc-tool
./bootstrap
./configure
make

al termine, procedere oltre.

FIRMWARE

Scaricare la versione del firmware necessaria alla riprogrammazione.

CONNESSIONI

A questo punto è necessario connettere il CC Debugger al cavo di download e quest’ultimo all’unità CC2531; a questo punto collegare sia il CC Debugger l’unità CC2531 alle porte USB del computer.

CC Debugger cavo di donwload CC2531
la connessione tra i componenti (immagine da zigbee2mqtt.io).

Comunemente il LED di stato del CC Debugger dovrebbe essere verde; in caso non lo sia, premere il tasto reset.
N.b. Alcuni modelli di CC Debugger, comunque, rimangono sempre con luce LED rossa, pertanto non c’è da preoccuparsi.

RIPROGRAMMAZIONE

Infine, decomprimere il firmware ed eseguire il comando:

sudo ./cc-tool -e -w CC2531ZNP-Prod.hex

N.b. Ovviamente il comando dà per assunto che ci si trovi dentro la cartella dove si trova il file CC2531ZNP-Prod.hex; diversamente, prima raggiungere il file con un change directory e poi eseguire il comando.

Linux

Anche su questi sistemi operativi la procedura si effettua tramite riga di comando da terminale.

PRE-REQUISITI

Innanzitutto è necessario rispettare vari pre-requisiti, i quali prevedono la presenza sul sistema operativo di alcuni pacchetti a supporto del tool di riprogrammazione. I comandi da eseguire sono:

su Raspbian
sudo npm install dh-autoreconf, libusb-1.0-0-dev, libboost-all-dev
su Ubuntu
sudo npm install dh-autoreconf, libusb-1.0, libboost-all-dev
su Fedora
sudo npm install dh-autoreconf, boost-devel, libusb1-devel, gcc-c++
su Archlinux
sudo npm install dh-autoreconf, libusb, boost

A questo punto è necessario effettuare la build del pacchetto CC Tool tramite i seguenti comandi:

git clone https://github.com/dashesy/cc-tool.git
cd cc-tool
./bootstrap
./configure
make

al termine, procedere oltre.

FIRMWARE

Scaricare la versione del firmware necessaria alla riprogrammazione.

CONNESSIONI

A questo punto è necessario connettere il CC Debugger al cavo di download e quest’ultimo all’unità CC2531; a questo punto collegare sia il CC Debugger l’unità CC2531 alle porte USB del computer.

CC Debugger cavo di donwload CC2531
la connessione tra i componenti (immagine da zigbee2mqtt.io).

Comunemente il LED di stato del CC Debugger dovrebbe essere verde; in caso non lo sia, premere il tasto reset.
N.b. Alcuni modelli di CC Debugger, comunque, rimangono sempre con luce LED rossa, pertanto non c’è da preoccuparsi.

RIPROGRAMMAZIONE

Infine, decomprimere il firmware ed eseguire il comando:

sudo ./cc-tool -e -w CC2531ZNP-Prod.hex

N.b. Ovviamente il comando dà per assunto che ci si trovi dentro la cartella dove si trova il file CC2531ZNP-Prod.hex; diversamente, prima raggiungere il file con un change directory e poi eseguire il comando.


Please comment below