I finally suceeded to upgrade the firmware. Many thanks to Tinkerer, Puddly and silverstone on Discord to teach a newbie in Python.
On MacOS:
1/ Download the latest Python version
2/ Open terminal and type
python3 --version
it should give Python 3.10.1
3/ Install pyserial and intelhex by the command pip3 install pyserial intelhex
In the terminal:
pip3 install pyserial intelhex
Collecting pyserial
Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
|████████████████████████████████| 90 kB 2.6 MB/s
Collecting intelhex
Downloading intelhex-2.3.0-py2.py3-none-any.whl (50 kB)
|████████████████████████████████| 50 kB 13.0 MB/s
Installing collected packages: pyserial, intelhex
Successfully installed intelhex-2.3.0 pyserial-3.5
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10 -m pip install --upgrade pip' command.
I ignored the warning
4/ I then cloned the repo by the command git clone https://github.com/JelmerT/cc2538-bsl.git
I got a popup that some develloper tool must be installed, this took about 10 minutes on a new MAC with M1 processor… Afterward you get a popup that the software is successfully installed.
5/ Run now once more the command git clone https://github.com/JelmerT/cc2538-bsl.git
You should see in the terminal:
git clone https://github.com/JelmerT/cc2538-bsl.git
Cloning into 'cc2538-bsl'...
remote: Enumerating objects: 430, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 430 (delta 7), reused 8 (delta 2), pack-reused 412
Receiving objects: 100% (430/430), 155.30 KiB | 2.35 MiB/s, done.
Resolving deltas: 100% (189/189), done.
6/ In your user folder where you normally have Downloads, Documents you should have a folder:
7/ Download the new firmware
Unzip and you get a .hex file. Move the .hex file in your user folder
(At time of this post the .zip file contains CC2652RB_coordinator_20211217.hex)
8/ Discover the path to your USB stick:
Enter in the terminal the command ls -l /dev/cu.*
You should see something like:
ls -l /dev/cu.*
crw-rw-rw- 1 root wheel 0x9000003 24 dec 10:13 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 0x9000005 3 jan 19:52 /dev/cu.usbserial-1110
crw-rw-rw- 1 root wheel 0x9000001 24 dec 10:07 /dev/cu.wlan-debug
Unplug the USB stick and determine which line corresponds. In my case the 2th line disappeared so the path to the Zigbee USB stick is /dev/cu.usbserial-1110
P.S. On Windows it should be something like /dev/serial/by-id/...
9/ Now the magic should happen by entering the final command:
python3 cc2538-bsl/cc2538-bsl.py -p /dev/cu.usbserial-1110 -evw CC2652RB_coordinator_20211217.hex
In terminal you should see:
python3 cc2538-bsl/cc2538-bsl.py -p /dev/cu.usbserial-1110 -evw CC2652RB_coordinator_20211217.hex
Opening port /dev/cu.usbserial-1110, baud 500000
Reading data from CC2652RB_coordinator_20211217.hex
Your firmware looks like an Intel Hex file
Connecting to target...
CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8
Primary IEEE Address: 00:12:4B:00:21:CC:47:C6
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: 0x49cb5a2e)
Congratz, you also succeeded!