Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SONOFF ZigBEE 3.0 USB Dongle Plus Router Firmware #316

Closed
xxsirosxx opened this issue Oct 24, 2021 · 51 comments
Closed

SONOFF ZigBEE 3.0 USB Dongle Plus Router Firmware #316

xxsirosxx opened this issue Oct 24, 2021 · 51 comments
Labels

Comments

@xxsirosxx
Copy link

xxsirosxx commented Oct 24, 2021

Hello everyone.
I tried to flip the router firmware on the SONOFF ZigBEE 3.0 USB dongle Plus which I didn't succeed.
Whenever I plug in the dongle, I press the Boot button on the dongle.
The process is always canceled with the error.

Initiate access to target: COM8 using 2-pin cJTAG.
No response from device. Device may not be in bootloader mode. Reset device and try again.
If problem persists, check connection and baud rate.
Connecting over serial bootloader failed: No response from device. Device may not be in bootloader mode. Reset device and try again.
If problem persists, check connection and baud rate.
Failed to create device object.

Unbenannt

Maybe one of you can help me.

@nanzer
Copy link

nanzer commented Oct 25, 2021

Try holding the boot button down before inserting the dongle into the USB port, then releasing it after it's plugged in

@Hedda
Copy link
Contributor

Hedda commented Oct 25, 2021

Maybe also try using llama-bsl and cc2538-bsl and give those projects feedback in how-to information is missing or lacking:

https://github.com/electrolama/llama-bsl

https://github.com/JelmerT/cc2538-bsl

PS: If not using Zigbee2MQTT (which does automatic backups?) it is recommended to do backups before upgrading firmware:

https://github.com/zigpy/zigpy-znp/blob/dev/TOOLS.md

@xxsirosxx
Copy link
Author

I keep the button pressed while plugging it into the USB port. The router firmware was flashed, but it is no longer possible to go back to the coordinator or to flash the router firmware again. I think that I shot the bootloader with the bottles of router firmware.

@Wh1terat
Copy link

I have these dongles and have flashed a few times (router firmware and my own router firmware) without problem.
As others have said, just a matter of holding down the button when you insert it.

@tteck
Copy link

tteck commented Oct 25, 2021

I wish we had firmware with hardware flow control active.

@Hedda
Copy link
Contributor

Hedda commented Oct 26, 2021

I wish we had firmware with hardware flow control active.

I understand switching to hardware flow control mode on this ITead Sonoff Zigbee 3.0 USB Dongle Plus adapter is done via the dip-switch on the board, so not by using a different firmware (like more usual) or do you need new firmware built for it too?

If so then just need to do so before enabling hardware flow control in the software application like Zigbee2MQTT or?

https://www.zigbee2mqtt.io/information/configuration.html

# Optional: RTS / CTS Hardware Flow Control for serial port (default: false)
rtscts: true

Hardware flow control should in theory make for more stable serial communication since the flow control is off-loaded from the application and the system CPU to the MCU, but not sure if it will be more stable in the real world for Zigbee2MQTT.

Regardless, note that Hardware Flow Control should only be of interest for a Zigbee Coordinator and not for a Zigbee Router.

PS: Know I read that openHAB's Zigbee developer recommended hardware flow control for commercial use for added stability, however then we are talking about Zigbee Coordinators and Zigbee devices, not about dedicated stand-alone Zigbee routers.

@Wh1terat
Copy link

@Hedda
https://sonoff.tech/wp-content/uploads/2021/09/Zigbee-3.0-USB-dongle-plus-firmware-flashing-1-1.docx

@Hedda
Copy link
Contributor

Hedda commented Oct 26, 2021

I keep the button pressed while plugging it into the USB port. The router firmware was flashed, but it is no longer possible to go back to the coordinator or to flash the router firmware again. I think that I shot the bootloader with the bottles of router firmware.

Maybe try flashing it on a different computer and/or another operating system?

Note that first also need to stop Zigbee2MQTT.

Worked fine flashing with cc2538-bsl.py running in Linux on bare metal.

https://github.com/JelmerT/cc2538-bsl

I tested it on Raspberry Pi OS (previously called Raspbian).

https://www.raspberrypi.com/software/

https://www.raspbian.org/

Not tested flashing firmware with llama-bsl.py (fork of cc2538-bsl.py) but that should work as well:

https://github.com/electrolama/llama-bsl

@Hedda
Copy link
Contributor

Hedda commented Oct 26, 2021

@Hedda https://sonoff.tech/wp-content/uploads/2021/09/Zigbee-3.0-USB-dongle-plus-firmware-flashing-1-1.docx

2. Enable hardware flow control and generate firmware (optional) section says "2.1 Import the ZNP project of CC1352P into CCS"

Does everyone have access to the ZNP project of CC1352P used to build modded Koenkk Z-Stack 3.x.0 coordinator firmware?

https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator

@Koenkk Would you maybe be willing to compile and host optional firmware images with hardware flow control enabled?

https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

BTW, I guess this is really off-topic for this specific discussion since you do not use hardware flow control for a router image.

I wish we had firmware with hardware flow control active.

@tteck Probably best if post a new issue to request hardware flow control https://github.com/Koenkk/Z-Stack-firmware/issues

@tteck
Copy link

tteck commented Oct 26, 2021

Does everyone have access to the ZNP project of CC1352P used to build modded Koenkk Z-Stack 3.x.0 coordinator firmware?

https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/Z-Stack_3.x.0/COMPILE.md

@Wh1terat
Copy link

I tried the latest version (simplelink_cc13x2_26x2_sdk_5_20_00_52) with Koenkk's patches but was unable to complete inquiry when pairing.

Failed to configure '0x00124b0024c2b86f', attempt 1 (Error: Bind 0x00124b0024c2b86f/8 genBasic from '0xbc33acfffe811d20/1' failed ({"address":28428,"clusterId":32801,"sequence":25} after 30000ms) at Timeout._onTimeout (/app/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35) at listOnTimeout (internal/timers.js:557:17) at processTimers (internal/timers.js:500:7))

@xxsirosxx
Copy link
Author

I've tried the script again.
https://github.com/JelmerT/cc2538-bsl
The stick does not respond to the same problem.

C:\Users\Privat\cc2538-bsl-master\cc2538-bsl-master>py ./cc2538-bsl.py -p "com8" -evw "CC1352P2_CC2652P_launchpad_coordinator_20210708.hex" Opening port com8, baud 500000 Reading data from CC1352P2_CC2652P_launchpad_coordinator_20210708.hex Your firmware looks like an Intel Hex file Connecting to target... ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)'

@Hedda
Copy link
Contributor

Hedda commented Nov 2, 2021

I wish we had firmware with hardware flow control active.

@tteck Probably best if post a new issue to request hardware flow control https://github.com/Koenkk/Z-Stack-firmware/issues

FYI, posted a separate request for a firmware with hardware flow control actived -> #324 (if @tteck and others are interested).

@mkaatman
Copy link

mkaatman commented Nov 4, 2021

I've tried the script again. https://github.com/JelmerT/cc2538-bsl The stick does not respond to the same problem.

C:\Users\Privat\cc2538-bsl-master\cc2538-bsl-master>py ./cc2538-bsl.py -p "com8" -evw "CC1352P2_CC2652P_launchpad_coordinator_20210708.hex" Opening port com8, baud 500000 Reading data from CC1352P2_CC2652P_launchpad_coordinator_20210708.hex Your firmware looks like an Intel Hex file Connecting to target... ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)'

I was getting this exact error from within a docker container, but when I did it from the (linux) host it worked.

Ultimately, I can't get any devices to show up while searching and the new firmware didn't change that.

@Hedda
Copy link
Contributor

Hedda commented Nov 4, 2021

Whenever I plug in the dongle, I press the Boot button on the dongle.

Note that it is not enough to simply press the BTL button, you actually need to hold the BTL button before plug-in the dongle and keep holding it when plug-in, only releasing the button aft a few seconds when it should have gotten powered up.

I was getting this exact error from within a docker container, but when I did it from the (linux) host it worked.

If use Docker then need to forward/map your device from host machine to Docker instance, preferably via docker-compose:

https://www.zigbee2mqtt.io/guide/installation/02_docker.html#creating-the-initial-configuration

https://www.zigbee2mqtt.io/guide/installation/02_docker.html#docker-compose

Also see example:

https://www.home-assistant.io/integrations/zha/#cant-connect-to-usb-device-and-using-docker

@mkaatman
Copy link

mkaatman commented Nov 4, 2021

Yeah I have it mapped. I can access it from HA->zha and zygpy-znp but that firmware update failed every time and after I updated firmware I still can't find any other devices. Thanks for the link I'll double check my syntax to pass it through.

@Hedda
Copy link
Contributor

Hedda commented Nov 8, 2021

Yeah I have it mapped. I can access it from HA->zha and zygpy-znp but that firmware update failed every time

Then also make sure that you stop HA/ZHA app before upgrading as serial devices can only have one connection established.

@mkaatman
Copy link

mkaatman commented Nov 8, 2021

Even with zha deleted I was getting it. I ultimately gave up and went back to conbee2 and everything if stable.

@Hedda
Copy link
Contributor

Hedda commented Nov 9, 2021

FYI, several Home Assistant community members have tested Sonoff provided uartLog.py script which seems to confirm "Auto BSL" is working(?), so maybe possible to enter bootloader without need to open enclosure to manually press BTL button:

https://community.home-assistant.io/t/itead-sonoff-zigbee-3-0-usb-dongle-plus-adapter-based-on-texas-instruments-cc2652p/340705/45

https://community.home-assistant.io/t/itead-sonoff-zigbee-3-0-usb-dongle-plus-adapter-based-on-texas-instruments-cc2652p/340705/96

See uartlog.zig attached inside this docx which if unpacked contains uartLog.py

https://sonoff.tech/wp-content/uploads/2021/09/Zigbee-3.0-USB-dongle-plus-firmware-flashing-1-1.docx

cc2538-bsl.py also supports "Auto-BSL"

https://github.com/JelmerT/cc2538-bsl

See more information on what "Auto-BSL" does here:

https://electrolama.com/radio-docs/bsl/#auto-bsl

If can get that to work then can skip the BSL pushbutton press step to get the device into BSL mode in order for flashing it.

@zuzuman
Copy link

zuzuman commented Nov 9, 2021

It's still not working. Seems like flashing firmware locked bootloader completely, and device not working at all (super small power consumption).
Auto-BSL just showing the timeout error Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)'
Do you know, where I (we) can buy jtag module for re-flashing this?

@Hedda
Copy link
Contributor

Hedda commented Nov 9, 2021

Do you know, where I (we) can buy jtag module for re-flashing this?

https://electrolama.com/radio-docs/advanced/flash-jtag/

"The cheapest option for an officially supported debugger is the CC-DEVPACK-DEBUG, available from most common electronics distributors"

https://www.ti.com/tool/CC-DEVPACK-DEBUG

Guess should be able to use most debuggers compatible with cJTAG (IEEE 1149.7 "Compact JTAG") via exposed TMS and TCK.

@Hedda
Copy link
Contributor

Hedda commented Nov 9, 2021

FYI, several Home Assistant community members have tested Sonoff provided uartLog.py script which seems to confirm "Auto BSL" is working(?), so maybe possible to enter bootloader without need to open enclosure to manually press BTL button:

https://community.home-assistant.io/t/itead-sonoff-zigbee-3-0-usb-dongle-plus-adapter-based-on-texas-instruments-cc2652p/340705/45

https://community.home-assistant.io/t/itead-sonoff-zigbee-3-0-usb-dongle-plus-adapter-based-on-texas-instruments-cc2652p/340705/96

See uartlog.zig attached inside this docx which if unpacked contains uartLog.py

https://sonoff.tech/wp-content/uploads/2021/09/Zigbee-3.0-USB-dongle-plus-firmware-flashing-1-1.docx

cc2538-bsl.py also supports "Auto-BSL"

https://github.com/JelmerT/cc2538-bsl

See more information on what "Auto-BSL" does here:

https://electrolama.com/radio-docs/bsl/#auto-bsl

If can get that to work then can skip the BSL pushbutton press step to get the device into BSL mode in order for flashing it.

I have by the way confirmed that running the attached uartLog.py script does indeed make ITead's Sonoff Zigbee 3.0 Plus adapter enter bootloader mode on Windows OS (Windows 11) and after that I could flash it directly with both python cc2538-bsl.py -p COM5 -evw CC1352P2_CC2652P_launchpad_coordinator_20210708.hex and llama-bsl.py -p COM5 -b 115200 -evw CC1352P2_CC2652P_launchpad_coordinator_20210708.hex without having open its enclosure and pressing the BRL button which I think is very convenient. The script also lists all active COM ports on MS Windows (tested on Windows 10) and have you enter the number of the COM port, but note that the script is hardcoded for Windows COM ports.

Attached: uartLog.zip

@zuzuman
Copy link

zuzuman commented Nov 9, 2021

Is it possible to flash without c/jTag? With Raspberry only?

@Hedda
Copy link
Contributor

Hedda commented Nov 10, 2021

Is it possible to flash without c/jTag? With Raspberry only?

Maybe check out this: https://gist.github.com/hwhw/fc43892785aa84913d03495c97b0f25a

That is written for CC2538 but could be maybe be similar if it works without TDI and TDO. As what you needed is a cJTAG programming mode because CC2652 uses that by default. cJTAG mode only uses RESET, TCK and TMS pins, as CC2652 doesn't have TDI and TDO. You of course also need POWER (VCC) and GROUND.

image

@zuzuman
Copy link

zuzuman commented Nov 13, 2021

After router firmware update device is dead.
R.I.P. my sonoff device :(

@Hedda
Copy link
Contributor

Hedda commented Nov 16, 2021

After router firmware update device is dead. R.I.P. my sonoff device :(

Even if can no longer get into the bootloader you should still be able to unbrick the hardware if flash using cJTAG via TCK and TMS.

https://electrolama.com/radio-docs/advanced/flash-jtag/

https://www.ti.com/tool/CC-DEVPACK-DEBUG

@github-actions
Copy link

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

@github-actions github-actions bot added the Stale label Dec 17, 2021
@VoyteckPL
Copy link

How can I revert to coordinator software?

To revert you just need to flash a coordinator firmware again (CC1352P2_CC2652P_launchpad_*.zip):

https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

https://github.com/Koenkk/Z-Stack-firmware/tree/develop/coordinator/Z-Stack_3.x.0/bin

To flash suggest you test this -> JelmerT/cc2538-bsl#114 (and report flashing success or not there).

The problem is the it doesn't go into bootloader mode.... I hold boot button when plugging it in.

@Hedda
Copy link
Contributor

Hedda commented Dec 17, 2021

The problem is the it doesn't go into bootloader mode.... I hold boot button when plugging it in.

With this patch you should no longer need to press any buttons at all as it will enter BSL via software -> JelmerT/cc2538-bsl#114

(downlad "ITead_Sonoff_Zigbee-delay" branch -> https://github.com/JelmerT/cc2538-bsl/tree/feature/ITead_Sonoff_Zigbee-delay )

More information and discussion about automatically start of BSL mode on Itead Sonoff USB stick here -> JelmerT/cc2538-bsl#113

@github-actions github-actions bot removed the Stale label Dec 18, 2021
@npirtube
Copy link

npirtube commented Jan 3, 2022

Hi xxsirosxx would you mind sharing a download link for the SmartRF Flash Programmer tool?

From the TI website it is impossible to download it and I can't find it anywhere to download.

@xxsirosxx xxsirosxx reopened this Jan 3, 2022
@xxsirosxx
Copy link
Author

Hi I would rather recommend ZigStar. https://github.com/xyzroe/ZigStarGW-MT

@Hedda
Copy link
Contributor

Hedda commented Jan 7, 2022

Hi I would rather recommend ZigStar. https://github.com/xyzroe/ZigStarGW-MT

FYI, ZigStar GW Multi tool doesn't yet support flashing USB adapters using Silabs CP2102N like ITead Sonoff USB Plus Dongle, see:

xyzroe/ZigStarGW-MT#2

would you mind sharing a download link for the SmartRF Flash Programmer tool?

From the TI website it is impossible to download it and I can't find it anywhere to download.

The official links should work now again as parts of their website were just temporarily down for maintenance:

https://www.ti.com/tool/download/FLASH-PROGRAMMER-2

@davrodfer
Copy link

davrodfer commented Jan 20, 2022

Is it possible to flash without c/jTag? With Raspberry only?

These are my steps in an raspberry-pi:

export BASEDIR=`~/sonoff_dongle/`
mkdir -p $BASEDIR
cd $BASEDIR
git clone https://github.com/JelmerT/cc2538-bsl.git
git clone https://github.com/Koenkk/Z-Stack-firmware.git
unzip Z-Stack-firmware/coordinator/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_*.zip
sudo service zigbee2mqtt stop
pip3 install pyserial intelhex python-magic
  • Remove bolts and extract usb from metallic enclosure
  • Press and hold button BOOT
  • Insert usb in usb port holding BOOT
  • Releade BOOT after 3 seconds
python3 $BASEDIR/cc2538-bsl/cc2538-bsl.py -p /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus* -evw  $BASEDIR/CC1352P2_CC2652P_launchpad_coordinator_*.hex

@Hedda
Copy link
Contributor

Hedda commented Jan 20, 2022

@davrodfer But will that work if first have accidentally flashed it with the wrong firmware image and messed up the bootloader?

Maybe check out this: https://gist.github.com/hwhw/fc43892785aa84913d03495c97b0f25a

That is written for CC2538 but could be maybe be similar if it works without TDI and TDO. As what you needed is a cJTAG programming mode because CC2652 uses that by default. cJTAG mode only uses RESET, TCK and TMS pins, as CC2652 doesn't have TDI and TDO. You of course also need POWER (VCC) and GROUND.

So if you "bricked it" then you will need to "unbrick it" by flashing firmware via a c/JTAG debug probe instead of flashing it via USB.

That is, if you do not have a working bootloader then think it will need to flash via the 2-pin cJTAG (a.k.a C-JTAG or c/JTAG) and not just common JTAG SWD as TI CC2652 debug do not use SWD and SWDCLK, etc. but instead only TMS and TCK (cJTAG is not SWD/SWDCLK). See details at → Flash Firmware using c/JTAG - Electrolama

https://electrolama.com/radio-docs/advanced/flash-jtag/

Looking at pictures on ITead’s product page for the Sonoff CC2552P board you see that no SWD and SWDCLK pads are exposed, but it does expose TMS and TCK pads so those is what you need to use.

So will probably need cJTAG debug probe (e.i. external debugger adapter) with TMS and TCK, and thus you will need to use a cJTAG compatible debugger probe adapter like Texas Instruments XDS110 or a clone of TI’s XDS110.

image

Again, the official Texas Instruments TMDSEMU110-U XDS110 JTAG Debug Probe is a bit expensive and currently looks to be out-of-stock, but cheap clones of XDS110 JTAG debug probe should work, see example:

https://aliexpress.com/item/4000751867419.html

https://www.ti.com/tool/TMDSEMU110-U

@andreytse
Copy link

Sorry for off topic and stupid question, but if I will flash dongle with router firmware, did it start working like zigbee network extender? No need to be connected directly to "computer"? Just simple 5VDC power supply like phone charger will be enough?

@ptvoinfo
Copy link

@andreytse Yes, it works as an extender. You need 5V only.

@io53
Copy link
Contributor

io53 commented Feb 17, 2022

@davrodfer But will that work if first have accidentally flashed it with the wrong firmware image and messed up the bootloader?

Maybe check out this: https://gist.github.com/hwhw/fc43892785aa84913d03495c97b0f25a
That is written for CC2538 but could be maybe be similar if it works without TDI and TDO. As what you needed is a cJTAG programming mode because CC2652 uses that by default. cJTAG mode only uses RESET, TCK and TMS pins, as CC2652 doesn't have TDI and TDO. You of course also need POWER (VCC) and GROUND.

So if you "bricked it" then you will need to "unbrick it" by flashing firmware via a c/JTAG debug probe instead of flashing it via USB.

That is, if you do not have a working bootloader then think it will need to flash via the 2-pin cJTAG (a.k.a C-JTAG or c/JTAG) and not just common JTAG SWD as TI CC2652 debug do not use SWD and SWDCLK, etc. but instead only TMS and TCK (cJTAG is not SWD/SWDCLK). See details at → Flash Firmware using c/JTAG - Electrolama

https://electrolama.com/radio-docs/advanced/flash-jtag/

Looking at pictures on ITead’s product page for the Sonoff CC2552P board you see that no SWD and SWDCLK pads are exposed, but it does expose TMS and TCK pads so those is what you need to use.

So will probably need cJTAG debug probe (e.i. external debugger adapter) with TMS and TCK, and thus you will need to use a cJTAG compatible debugger probe adapter like Texas Instruments XDS110 or a clone of TI’s XDS110.

image

Again, the official Texas Instruments TMDSEMU110-U XDS110 JTAG Debug Probe is a bit expensive and currently looks to be out-of-stock, but cheap clones of XDS110 JTAG debug probe should work, see example:

https://aliexpress.com/item/4000751867419.html

https://www.ti.com/tool/TMDSEMU110-U

As the TI Launchpad devkits has onboard XDS110, I guess those can be used for flashing also. Way cheaper than an official standalone XDS110 and as a bonus you can use it as coordinator/router too :).

@Hedda
Copy link
Contributor

Hedda commented Feb 17, 2022

As the TI Launchpad devkits has onboard XDS110, I guess those can be used for flashing also. Way cheaper than an official standalone XDS110 and as a bonus you can use it as coordinator/router too :).

Yes the TI LAUNCHXL-CC26xR1 and the TI LAUNCHXL-CC1352P does have integrated XDS110 debugger, however a less expensive stand-alone option today for an officially supported debugger adapter is the Texas Instruments CC-DEVPACK-DEBUG for ~$15(US):

https://www.ti.com/tool/CC-DEVPACK-DEBUG

However, the official TMDSEMU110-U XDS110 JTAG Debug Probe is still a better option for developers as offer more options:

https://www.ti.com/tool/TMDSEMU110-U

The original Texas Instruments XDS110 JTAG debug probe is a bit expensive but cheap clones of it should also work. Examples:

https://aliexpress.com/item/4000751867419.html

https://aliexpress.com/item/32976279419.html

Also, note that original Segger J-Link V9 (legacy) debug probes does not support cJTAG, so need at least Segger J-Link V10 series:

https://wiki.segger.com/J-Link_Model_Overview

Electrolama posted a handy pinout reference for CC-DEVPACK-DEBUG:

https://electrolama.com/radio-docs/advanced/flash-jtag/

image

Two GUI tools to use with CC-DEVPACK-DEBUG are SmartRF Flash Programmer v2 (Windows OS only) or UniFlash (cross-platform).

@shudack
Copy link

shudack commented Mar 7, 2022

In the path you need to remove the spaces. I noticed that you have spaces in path: "...ee Stick/CC1352P2..."
Try to put the hex file in C:\

E.g.: C:\CC1352P2_CC2652P_launchpad_coordinator_20211217.hex

@github-actions
Copy link

github-actions bot commented Apr 7, 2022

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

@heapxor
Copy link

heapxor commented May 22, 2022

Hello,
i tried to flash firmware using official docx and app Flashprogrammer crashed during the process...
So i opened device, pressed button to get booaloader etc... and reflashed

Initiate access to target: COM5 using 2-pin cJTAG.
Reading file: C:/Users/xxx/Downloads/cc2538-bsl-master/CC1352P2_CC2652P_launchpad_router_20220125.hex.
Start flash erase ...
Erase finished successfully.
Start flash programming ...
Programming finished successfully.
Start flash verify ...
Skip verification of unassigned page: 23.
Skip verification of unassigned page: 24.
Skip verification of unassigned page: 25.
Skip verification of unassigned page: 26.
Skip verification of unassigned page: 27.
Skip verification of unassigned page: 28.
Skip verification of unassigned page: 29.
Skip verification of unassigned page: 30.
Skip verification of unassigned page: 31.
Skip verification of unassigned page: 32.
Skip verification of unassigned page: 33.
Skip verification of unassigned page: 34.
Skip verification of unassigned page: 35.
Skip verification of unassigned page: 36.
Skip verification of unassigned page: 37.
Skip verification of unassigned page: 38.
Skip verification of unassigned page: 39.
Skip verification of unassigned page: 40.
Skip verification of unassigned page: 41.
Skip verification of unassigned page: 42.
Page: 0 verified OK.
Page: 1 verified OK.
Page: 2 verified OK.
Page: 3 verified OK.
Page: 4 verified OK.
Page: 5 verified OK.
Page: 6 verified OK.
Page: 7 verified OK.
Page: 8 verified OK.
Page: 9 verified OK.
Page: 10 verified OK.
Page: 11 verified OK.
Page: 12 verified OK.
Page: 13 verified OK.
Page: 14 verified OK.
Page: 15 verified OK.
Page: 16 verified OK.
Page: 17 verified OK.
Page: 18 verified OK.
Page: 19 verified OK.
Page: 20 verified OK.
Page: 21 verified OK.
Page: 22 verified OK.
Page: 43 verified OK.
Verification finished successfully.
Reset target ...
Reset of target successful.

Even reflashed it doesnt work at all... is it possible that Crash - bricked it?
In case it was bricked is it possible to unbrick?

thanks!

@hvanmegen
Copy link

hvanmegen commented May 27, 2022

I have the exact same problem; ordered a 2-pack of these dongles to replace my broken old zigbee stick based on the older (unstable) chips.. but I can't get them to start in bootloader/flashing-prepared mode either, no matter how long I keep the button pressed after inserting the device into an USB slot. I'm going to try and see if the JelmerT/cc2538-bsl#114 thing works, otherwise I just spent 32 euro's on 2 underweight paperweights..

@hvanmegen
Copy link

hvanmegen commented May 27, 2022

I got it to work after I installed the CP210x Universal driver @ https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers.

Then when I ran this command in Windows Powershell (after installing Python and running pip install pyserial intelhex):

$comports = Get-WMIObject Win32_SerialPort; $comports |Get-PnpDeviceProperty -InstanceId {$_.pnpdeviceid} -Keyname DEVPKEY_Device_BusReportedDeviceDesc |ForEach-Object { foreach($comport in $comports) {if ($comport.pnpdeviceid -eq $_.instanceid) { new-object psobject -property @{COMPORT = $comport.deviceid; 'Device-Name' = $_.data} } } }

It then showed the device plugged into the COM3 port:

> $comports = Get-WMIObject Win32_SerialPort; $comports |Get-PnpDeviceProperty -InstanceId {$_.pnpdeviceid} -Keyname DEVPKEY_Device_BusReportedDeviceDesc |ForEach-Object { foreach($comport in $comports) {if ($comport.pnpdeviceid -eq $_.instanceid) { new-object psobject -property @{COMPORT = $comport.deviceid; 'Device-Name' = $_.data} } } }

COMPORT Device-Name
------- -----------
COM3    Sonoff Zigbee 3.0 USB Dongle Plus

After that I could run the command to flash the device into coordinator mode by running python cc2538-bsl.py -p COM3 -evw --bootloader-sonoff-usb .\coordinator.hex. (after copying the coordinator firmware to coordinator.hex in the directory of the python script, obviously)

@Tstrijker
Copy link

I got it to work after I installed the CP210x Universal driver @ https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers.

Then when I ran this command in Windows Powershell (after installing Python and running pip install pyserial intelhex):

$comports = Get-WMIObject Win32_SerialPort; $comports |Get-PnpDeviceProperty -InstanceId {$_.pnpdeviceid} -Keyname DEVPKEY_Device_BusReportedDeviceDesc |ForEach-Object { foreach($comport in $comports) {if ($comport.pnpdeviceid -eq $_.instanceid) { new-object psobject -property @{COMPORT = $comport.deviceid; 'Device-Name' = $_.data} } } }

It then showed the device plugged into the COM3 port:

> $comports = Get-WMIObject Win32_SerialPort; $comports |Get-PnpDeviceProperty -InstanceId {$_.pnpdeviceid} -Keyname DEVPKEY_Device_BusReportedDeviceDesc |ForEach-Object { foreach($comport in $comports) {if ($comport.pnpdeviceid -eq $_.instanceid) { new-object psobject -property @{COMPORT = $comport.deviceid; 'Device-Name' = $_.data} } } }

COMPORT Device-Name
------- -----------
COM3    Sonoff Zigbee 3.0 USB Dongle Plus

After that I could run the command to flash the device into coordinator mode by running python cc2538-bsl.py -p COM3 -evw --bootloader-sonoff-usb .\coordinator.hex. (after copying the coordinator firmware to coordinator.hex in the directory of the perl script, obviously)

The CP210x Universal driver solved the problem for me. If your on Windows check if the driver are correly installed for the com port. Thank you @hvanmegen for you solution.

@janmashat
Copy link

Have any Windows users tried this docker path?
JelmerT/cc2538-bsl#120

@kanapka94
Copy link

kanapka94 commented Aug 12, 2022

I got it to work after I installed the CP210x Universal driver @ https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers.

Then when I ran this command in Windows Powershell (after installing Python and running pip install pyserial intelhex):

$comports = Get-WMIObject Win32_SerialPort; $comports |Get-PnpDeviceProperty -InstanceId {$_.pnpdeviceid} -Keyname DEVPKEY_Device_BusReportedDeviceDesc |ForEach-Object { foreach($comport in $comports) {if ($comport.pnpdeviceid -eq $_.instanceid) { new-object psobject -property @{COMPORT = $comport.deviceid; 'Device-Name' = $_.data} } } }

It then showed the device plugged into the COM3 port:

> $comports = Get-WMIObject Win32_SerialPort; $comports |Get-PnpDeviceProperty -InstanceId {$_.pnpdeviceid} -Keyname DEVPKEY_Device_BusReportedDeviceDesc |ForEach-Object { foreach($comport in $comports) {if ($comport.pnpdeviceid -eq $_.instanceid) { new-object psobject -property @{COMPORT = $comport.deviceid; 'Device-Name' = $_.data} } } }

COMPORT Device-Name
------- -----------
COM3    Sonoff Zigbee 3.0 USB Dongle Plus

After that I could run the command to flash the device into coordinator mode by running python cc2538-bsl.py -p COM3 -evw --bootloader-sonoff-usb .\coordinator.hex. (after copying the coordinator firmware to coordinator.hex in the directory of the python script, obviously)

It works ! Also after installation Universal Drivers Sonof Dongle appeared in Flash Programmer 2

@hvanmegen
Copy link

Very glad to see that me posting my solution here helped at least 2 other people.. We are The Community, my friends.. stay awesome!

@david-steg
Copy link

I still have "ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)" :(.

@Hedda
Copy link
Contributor

Hedda commented Jan 21, 2023

I still have "ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)" :(.

Manually enable bootloader mode via boot button or use correct parameters for Sonoff with https://github.com/JelmerT/cc2538-bsl

For ITead SONOFF Zigbee 3.0 USB Dongle Plus: For the CC2652P based "SONOFF Zigbee 3.0 USB Dongle Plus" (model "ZBDongle-P") adapter from ITead you need to invoke toggle to activate bootloader with --bootloader-sonoff-usb if you do not want to open its enclosure to manually start the bootloader with the boot button on the PCB.

Also post to discussions instead of this issue when asking for help as how to flash is off-topic here in this closed issue -> https://github.com/Koenkk/zigbee2mqtt/discussions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests