NEWS
Anleitung - Zigbee-Firmware auf der Kommandozeile flashen
-
Achtung: Diese Anleitung bezieht sich auf den von mir verwendeten Stick:
https://slae.sh/projects/cc2652/
Ob das auch mit anderen zigbee-Sticks funktioniert kann ich nicht zusagen.Der sonoff Zigbee 3.0 Stick in der Version P (ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus) muss z. B. etwas anders behandelt werden. Siehe unten...
Bei falscher Firmware kann man sich die Hardware zerschießen und eine Wiederherstellung ist aufwändig. Daher bitte genau schauen, ob es auch unter anderen Hardware/Software-Konstellationen funktioniert. Sollte für diese Chipsätze möglich sein:
Texas Instruments CC2538, CC26xx and CC13xx SoCs (System on Chips)
Der Flash erfolgt auf eigene Gefahr. Der verwendete user muss Mitglied der Gruppe 'dialout' sein. Sonst kann nicht auf den Stick geschrieben werden.Um aktuelle Firmware auf meinen zigbee-Stick zu beamen verwende ich ein python skript von JelmerT:
https://github.com/JelmerT/cc2538-bsl
Um das auf meinem Raspberry OS 'Bullseye' auszuführen bedarf es ein wenig Vorarbeit.
Im Schnelldurchlauf:
Skript herunterladen per
wget https://raw.githubusercontent.com/JelmerT/cc2538-bsl/master/cc2538-bsl.py
Mittels
sudo apt update && sudo apt install python3-serial python3-intelhex python3-magic
noch zusätzliche Python3-Pakete nachinstallieren.
Die passende Firmware hier herunterladen und entpacken:
https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin
am besten direkt in das Verzeichnis, in dem auch das Flash-Skript liegt.
Aktuell für meinen Stick wäre das
wget https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20230507.zip unzip CC2652RB_coordinator_20230507.zip
Für den Sonoff-Stick:
wget https://github.com/Koenkk/Z-Stack-firmware/raw/Z-Stack_3.x.0_coordinator_20230507/coordinator/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_coordinator_20230507.zip unzip CC1352P2_CC2652P_launchpad_coordinator_20230507.zip
Den verwendeten Port in Erfahrung bringen:
Perfind /dev/serial/by-id/ -maxdepth 1 -mindepth 1
oder
echad@chet:~/HowTo-zigbee_FWupdate $ ls -l /dev/serial/by-id/ total 0 lrwxrwxrwx 1 root root 13 Dec 10 19:35 usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0 -> ../../ttyUSB0
Den zigbee-Adapter müssen wir noch pausieren.
Dann der eigentliche Flash:chmod +x cc2538-bsl.py ./cc2538-bsl.py -p “comport” -evw “fw-file”
Der sonoff (Firmware: CC1352P2_CC2652P_launchpad_coordinator ) wird so geflasht:
./cc2538-bsl.py -ewv -p "comport" --bootloader-sonoff-usb “fw-file”
Bei mir also
chmod +x cc2538-bsl.py ./cc2538-bsl.py -p /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0 -evw CC2652RB_coordinator_20210708.hex
Der Stick wird jetzt mit der heruntergeladenen FW geflasht und wir sind fertig.
Meine letzte Aktion in der Konsole sah z. B. exakt so aus:
echad@chet:~ $ mkdir zigbeefirmware echad@chet:~ $ cd zigbeefirmware/ echad@chet:~/zigbeefirmware $ sudo apt update && sudo apt install python3-serial python3-intelhex python3-magic [sudo] password for echad: Building dependency tree... Done Reading state information... Done All packages are up to date. Reading package lists... Done Building dependency tree... Done Reading state information... Done Suggested packages: python3-wxgtk3.0 | python3-wxgtk The following NEW packages will be installed: python3-intelhex python3-magic python3-serial 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 711 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian bullseye/main arm64 python3-intelhex all 2.1-2.2 [32.3 kB] Get:2 http://deb.debian.org/debian bullseye/main arm64 python3-magic all 2:0.4.20-3 [13.4 kB] Get:3 http://deb.debian.org/debian bullseye/main arm64 python3-serial all 3.5~b0-1 [88.8 kB] Fetched 134 kB in 0s (968 kB/s) Selecting previously unselected package python3-intelhex. (Reading database ... 68631 files and directories currently installed.) Preparing to unpack .../python3-intelhex_2.1-2.2_all.deb ... Unpacking python3-intelhex (2.1-2.2) ... Selecting previously unselected package python3-magic. Preparing to unpack .../python3-magic_2%3a0.4.20-3_all.deb ... Unpacking python3-magic (2:0.4.20-3) ... Selecting previously unselected package python3-serial. Preparing to unpack .../python3-serial_3.5~b0-1_all.deb ... Unpacking python3-serial (3.5~b0-1) ... Setting up python3-intelhex (2.1-2.2) ... Setting up python3-serial (3.5~b0-1) ... Setting up python3-magic (2:0.4.20-3) ... echad@chet:~/zigbeefirmware $ wget https://raw.githubusercontent.com/JelmerT/cc2538-bsl/master/cc2538-bsl.py --2022-02-28 15:43:44-- https://raw.githubusercontent.com/JelmerT/cc2538-bsl/master/cc2538-bsl.py Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8002::154, 2606:50c0:8000::154, 2606:50c0:8003::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 50779 (50K) [text/plain] Saving to: ‘cc2538-bsl.py’ cc2538-bsl.py 100%[=================================================>] 49.59K --.-KB/s in 0.02s 2022-02-28 15:43:44 (2.49 MB/s) - ‘cc2538-bsl.py’ saved [50779/50779] echad@chet:~/zigbeefirmware $ chmod -x cc2538-bsl.py echad@chet:~/zigbeefirmware $ wget https://github.com/Koenkk/Z-Stack-firmware/raw/develop/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20220219.zip --2022-02-28 15:46:45-- https://github.com/Koenkk/Z-Stack-firmware/raw/develop/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20220219.zip Resolving github.com (github.com)... 140.82.121.3 Connecting to github.com (github.com)|140.82.121.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/Koenkk/Z-Stack-firmware/develop/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20220219.zip [following] --2022-02-28 15:46:45-- https://raw.githubusercontent.com/Koenkk/Z-Stack-firmware/develop/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20220219.zip Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8002::154, 2606:50c0:8000::154, 2606:50c0:8003::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 174087 (170K) [application/zip] Saving to: ‘CC2652RB_coordinator_20220219.zip’ CC2652RB_coordinator_20220219.zip 100%[==========================================================>] 170.01K --.-KB/s in 0.04s 2022-02-28 15:46:45 (4.31 MB/s) - ‘CC2652RB_coordinator_20220219.zip’ saved [174087/174087] echad@chet:~/zigbeefirmware $ unzip CC2652RB_coordinator_20220219.zip Archive: CC2652RB_coordinator_20220219.zip inflating: CC2652RB_coordinator_20220219.hex echad@chet:~/zigbeefirmware $ ./cc2538-bsl.py -p /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0 -evw CC2652RB_coordinator_20220219.hex Opening port /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0, baud 500000 Reading data from CC2652RB_coordinator_20220219.hex Firmware file: Intel Hex Connecting to target... CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8 Primary IEEE Address: 00:12:4B:00:23:93:2C:A8 Performing mass erase Erasing all main bank flash sectors Erase done Writing 360448 bytes starting at address 0x00000000 Write 104 bytes at 0x00057F980 Write done Verifying by comparing CRC32 calculations. Verified (match: 0x270ed973) echad@chet:~/zigbeefirmware $
-
@thomas-braun
Markiere bitte das Thema gemäß den Forum Rules als [Anleitung]. -
@thomas-braun danke für die Anleitung. Kommt mir gerade recht
Allerdings kann mein debian das Paket python3-intelhex nicht finden.
-
Welches Release?
-
@thomas-braun debian 9.13 stretch
-
Kann sein. Stretch ist ja auch nicht mehr aktuell. Vermutlich wurde da noch python2 beigepackt. Hier wird mindestens Python 3.irgendwas benötigt.
-
@bimmi sagte in Anleitung - Zigbee-Firmware auf der Kommandozeile flashen:
@thomas-braun debian 9.13 stretch
Stretch drauf, aber über Kommandozeile flashen wollen, da hättest mal lieber das OS über Kommandozeile auf den aktuellen Stand gebracht. Der musste jetzt einfach raus, sorry.
-
@jan1 Debian 9 “Stretch” LTS July 6, 2020 to June 30, 2022 also ganz ruhig.
-
@bimmi
Ich bin ruhig, da Bullseye am Start könnte also sogar per Befehl flashen
Die Frage ist nur, warum willst das über Kommando Ebene machen, wenn der Aufwand für Dich mit Strech höher ist, als schnell den Stick an den PC zu klemmen? -
@jan1 also es ist keineswegs aufwendig. Denke aber ein fehlgeschlagenes dist upgrade würde mich mehr Zeit kosten bei meinem produktivsystem als den stick upzudaten
habe erst gedacht das ist das falsche python3 paket hinterlegt in der Anleitung.
Allerdings läuft auf einer anderen VM ein Deb10 und da ist das Paket verfügbar.
-
@bimmi
Ok, wenn Du noch ein Debian mit Python3 laufen hast, dann kannst das natürlich tun.
Ich habe keine Panik mein Produktivsystem per Befehl hoch zu ziehen, da selbst wenn es in die Hose geht (was theoretisch möglich ist) das ganze eh schnell wieder eingerichtet ist und bei mir läuft nix in ner VM oder sonstiges. Am längsten dauert bei mir der DL da nur 16er Leitung -
Distributionen, die seit über einem Jahr ihr EOL erreicht haben, muss man auch nicht mehr in Anleitungen unterstützen. Höchste Zeit da umzusatteln.
-
@thomas-braun aber ist doch erst Juli 22 EOL?
-
Stretch hat am 06. Juli 2020 sein End Of Life erreicht.
LTS ist nur noch im Koma halten, am 30. Juni 2022 werden die Maschinen abgestellt. -
@thomas-braun vielen dank für diese Anleitung.
Eine Ergänzung aus mac User Sicht:
Ich habe die fehlenden Pakete per pip nachinstalliert, wobei man beachten muss dass die dann etwas anders heissen:
pyserial und python-magic und intelhex -
So. Habe jetzt erfolgreich den Zigbee Stick über die Kommandozeile geflasht
Danke für die Anleitung!
-
@Thomas-Braun
... ich wollte die Firmware von meinen SONOFF Zigbee Dongle updaten ... leider funktioniert deine Anleitung unter BOOKWORM nicht (ebenso wie bei dieser Anleitung).Hast Du mal die Zeit deine Anleitung hier im Forum zu aktualisieren ?
-
Was heißt 'funktioniert nicht' konkret?
Zumal ich ja auch beim Sonoff auf
https://www.zigbee2mqtt.io/guide/adapters/flashing/flashing_via_cc2538-bsl.html
verweise. -
Hier funktioniert es wie ehedem... :
echad@chet:~ $ mkdir zigbeefwflash echad@chet:~ $ cd zigbeefwflash/ echad@chet:~/zigbeefwflash $ wget https://raw.githubusercontent.com/JelmerT/cc2538-bsl/master/cc2538-bsl.py --2024-01-11 18:38:19-- https://raw.githubusercontent.com/JelmerT/cc2538-bsl/master/cc2538-bsl.py Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8002::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 50812 (50K) [text/plain] Saving to: ‘cc2538-bsl.py’ cc2538-bsl.py 100%[==============================================================================================>] 49.62K --.-KB/s in 0.02s 2024-01-11 18:38:19 (3.00 MB/s) - ‘cc2538-bsl.py’ saved [50812/50812] echad@chet:~/zigbeefwflash $ sudo apt update && sudo apt install python3-serial python3-intelhex python3-magic Hit:1 https://cli.github.com/packages stable InRelease Hit:2 http://deb.debian.org/debian testing InRelease Hit:3 http://archive.raspberrypi.com/debian bookworm InRelease Get:4 http://deb.debian.org/debian-security testing-security InRelease [43.5 kB] Hit:5 http://deb.debian.org/debian testing-updates InRelease Hit:6 http://phoscon.de/apt/deconz bookworm InRelease Hit:7 http://phoscon.de/apt/deconz bookworm-beta InRelease Hit:8 https://apt.grafana.com stable InRelease Hit:9 https://repos.influxdata.com/debian stable InRelease Hit:10 https://deb.nodesource.com/node_21.x nodistro InRelease Hit:11 https://deb.nodesource.com/node_18.x nodistro InRelease Get:12 https://pkgs.tailscale.com/stable/debian trixie InRelease Hit:13 https://packagecloud.io/ookla/speedtest-cli/debian trixie InRelease Fetched 50.0 kB in 3s (16.3 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. Reading package lists... Done Building dependency tree... Done Reading state information... Done Suggested packages: python3-wxgtk3.0 | python3-wxgtk The following NEW packages will be installed: python3-intelhex python3-magic python3-serial 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 153 kB of archives. After this operation, 741 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian testing/main arm64 python3-intelhex all 2.3.0-2 [50.2 kB] Get:2 http://deb.debian.org/debian testing/main arm64 python3-magic all 2:0.4.27-2 [14.6 kB] Get:3 http://deb.debian.org/debian testing/main arm64 python3-serial all 3.5-2 [88.2 kB] Fetched 153 kB in 0s (510 kB/s) Selecting previously unselected package python3-intelhex. (Reading database ... 90202 files and directories currently installed.) Preparing to unpack .../python3-intelhex_2.3.0-2_all.deb ... Unpacking python3-intelhex (2.3.0-2) ... Selecting previously unselected package python3-magic. Preparing to unpack .../python3-magic_2%3a0.4.27-2_all.deb ... Unpacking python3-magic (2:0.4.27-2) ... Selecting previously unselected package python3-serial. Preparing to unpack .../python3-serial_3.5-2_all.deb ... Unpacking python3-serial (3.5-2) ... Setting up python3-intelhex (2.3.0-2) ... Setting up python3-serial (3.5-2) ... Setting up python3-magic (2:0.4.27-2) ... echad@chet:~/zigbeefwflash $ wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20230507.zip --2024-01-11 18:40:31-- https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20230507.zip Resolving github.com (github.com)... 140.82.121.3 Connecting to github.com (github.com)|140.82.121.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/Koenkk/Z-Stack-firmware/master/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20230507.zip [following] --2024-01-11 18:40:31-- https://raw.githubusercontent.com/Koenkk/Z-Stack-firmware/master/coordinator/Z-Stack_3.x.0/bin/CC2652RB_coordinator_20230507.zip Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8002::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 217457 (212K) [application/zip] Saving to: ‘CC2652RB_coordinator_20230507.zip’ CC2652RB_coordinator_20230507.zip 100%[==============================================================================================>] 212.36K --.-KB/s in 0.04s 2024-01-11 18:40:31 (5.59 MB/s) - ‘CC2652RB_coordinator_20230507.zip’ saved [217457/217457] echad@chet:~/zigbeefwflash $ unzip CC2652RB_coordinator_20230507.zip Archive: CC2652RB_coordinator_20230507.zip inflating: CC2652RB_coordinator_20230507.hex echad@chet:~/zigbeefwflash $ ls -l /dev/serial/by-id/ total 0 lrwxrwxrwx 1 root root 13 Jan 9 22:13 usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0 -> ../../ttyUSB0 echad@chet:~/zigbeefwflash $ ls -la total 784 drwxr-xr-x 2 echad echad 4096 Jan 11 18:40 . drwx------ 11 echad echad 4096 Jan 11 18:38 .. -rw-r--r-- 1 echad echad 50812 Jan 11 18:38 cc2538-bsl.py -rw-r--r-- 1 echad echad 516453 May 7 2023 CC2652RB_coordinator_20230507.hex -rw-r--r-- 1 echad echad 217457 Jan 11 18:40 CC2652RB_coordinator_20230507.zip echad@chet:~/zigbeefwflash $ chmod +x cc2538-bsl.py echad@chet:~/zigbeefwflash $ ./cc2538-bsl.py -p /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0 -evw CC2652RB_coordinator_20230507.hex Opening port /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_2C_A8-if00-port0, baud 500000 Reading data from CC2652RB_coordinator_20230507.hex Firmware file: Intel Hex Connecting to target... CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8 Primary IEEE Address: 00:12:4B:00:23:93:2C:A8 Performing mass erase Erasing all main bank flash sectors Erase done Writing 360448 bytes starting at address 0x00000000 Write 104 bytes at 0x00057F988 Write done Verifying by comparing CRC32 calculations. Verified (match: 0x2620b49e) echad@chet:~/zigbeefwflash $
-
@thomas-braun Was heißt 'funktioniert nicht' konkret?
Sorry ... da kamen div. Fehlermeldungen (leider keine Screenshots) wie "pip funktioniert nicht" und das da irgendwas "external" und "virtual" benötigt wird .... uns da war ich total überfordert und habe entnervt aufgegeben ...
Wenn Du schreibst, dass es deine Anleitung funktioniert probiere ich es nochmal gaaaaanz langsam ...