Alternativ gibt es mittlerweile auch einen Weg mit einem Raspberry PI und den GPIO-Pins. Raspberry und CC2531 werden über vier Kabel miteinander verbunden, auf dem Raspberry PI eine Software zum Flashen installiert und die passende Firmware geflashed.
Folgende Schritte sind hierfür notwendig:
- Prüfen, ob wiringPI installiert ist, wenn nicht installieren
- GIT installieren
- Software für Firmware-Flash installieren
- Firmware downloaden
- CC2531 verkabeln und anstecken
- Firmware flashen
Fangen wir an:
- Mit dem Befehl
gpio -v
prüfen, ob wir Zugriff auf GPIO haben. Erscheint keine Rückmeldung, müssen wir zunächst wiringPI installieren
- wiringPI über den Befehl
sudo apt-get purge wiringpi
installieren und mit
hash -r
abschließen
- Sollte GIT noch nicht installiert sein, mit dem Befehl
sudo apt-get install git-core
installieren - Download der neuesten wiringPI Version mit
git clone https://github.com/WiringPi/WiringPi.git - Update des Downloads mit
cd ~/wiringPi
und
git pull origin - Danach wird das Softwarepaket wiringPI mit
cd ~/wiringPi
und
./build
generiert - Mit dem Befehl gpio -v können wir erneut prüfen, ob das Paket jetzt korrekt installiert ist
- Jetzt können wir die Flash-Software installieren:
git clone https://github.com/jmichault/flash_cc2531.git
Jetzt müssen wir den CC2531 USB-Stick an den Raspberry anschließen. Am einfachsten geht das mit einem Debugger Kabel und Jumper-Kabeln, die wir hier verlinkt haben:
Benötigte Produkte
Wir müssen die Pins der beiden Platinen wie folgt verbinden:
PIN 39 Raspberry PI >> PIN 1 GND CC2531
PIN 38 Raspberry PI >> PIN 4 DD CC2531
PIN 36 Raspberry PI >> PIN 3 DC CC2531
PIN 35 Raspberry PI >> PIN 7 RST CC2531
Die Schaltung sieht dann wie folgt aus:
Sind die beiden Geräte miteinander verbunden, können wir die Firmware des CC2531 über den Raspberry PI flashen:
- Wir wechseln wieder in die SSH-Session auf dem Raspberry und prüfen die Verbindung über
cd flash_cc2531
./cc_chipid - Es sollte ID=b524 erscheinen, wenn nicht, bitte die Kabel überprüfen
- Die aktuelle zigbee Firmware downloaden und entpacken
wget https://github.com/Koenkk/Z-Stack-firmware/archive/master.zip
unzip Z-Stack-firmware-master.zip - Danach die Firmware erst löschen und neu flashen
./cc_erase
./cc_write /home/pi/flash_cc2531/Z-Stack-firmware-master/coordinator/Z-Stack_Home_1.2/bin/default/CC2531ZNP-Prod.hex
Die default-Firmware sollte für die meisten Anwendungsfälle die richtige sein. - Nachdem die Firmware geschrieben und geprüft ist, können wir den Stick als zigbee Coordinator an ioBroker betreiben.
Was eine Bastelei, aber hat bei mir dann auch funktioniert. Mit dem Flasher deutlich einfacher, aber auch erstmal haben. Und für das eine oder zwei Mal, ist das mit dem PI schon in Ordnung! 5 Sterne dafür!
Hallo, hat schon mal jemand versucht einen CC2530 so zu flashen?
Der 2530 hat den Vorteil das er eine Antenne und somit einen höhere Reichweite hat.
Da der 2530 kein USB hat, muss vermutlich die Versorgungsspannung 3,3,V ext. herangeführt werden.
Wenn das generell möglich ist, solle es wahlweise möglich sein den als Coordinator oder Router zu flashen.
Ja, das geht mit einem Debugger genauso einfach, in diesem Thread ist das wiring erklärt: https://github.com/Koenkk/zigbee2mqtt/issues/231
Gute Anleitung, hab meinen CC2531 (mit Antenne) zum Router mit Koenkks Firmware geflasht, Reichweite und Signalstärke sind super.
Hab die Jumper-Kabel einfach direkt auf die Debug-Header gelötet und anschließend Schrumpfschlauch drüber, spart ein Kabel…
Aber:
1. Das Pinout vom Pi in der Skizze ist spiegelverkehrt! Pin 40/39 usw sind vertauscht, bitte korrigieren.
2. WiringPi kann unter raspiOS (Buster) einfach aus dem Repo installiert werden, aus dem git-code kompilieren ist nicht nötig: sudo apt install wiringpi
Danke für die Hinweise, Pinout kontrollieren wir!
Die Verkabelung war spannend, hat aber mit dem passenden Adapter für wenige Euros auf Anhieb geklappt.
Auch bei den Pfaden der entpackten Datei musste ich ein wenig improvisieren.
Aber sonst eine super Anleitung, die meinen ZigBee-Stick gerettet hat.
Danke. Volle 5 Sterne!
Schön, dass es auch bei Dir funktioniert hat!