ITead's "Sonoff Zigbee 3.0 USB Dongle Plus" (model "ZBDongle-P") based on Texas Instruments CC2652P radio SoC/MCU

with z2m its a configurable in the settings.

Z2M only allows configuring the attached COORDINATOR.

@metus is asking about ROUTER firmware.

For now, changing the tx power on @Koenkk’s router firmware requires changing the default in source code and recompiling the image.

There’s an open ticket with possible solutions discussed to make it configurable as a zigbee cluster attribute, but I don’t think anyone has implemented it yet.

1 Like

Yes, you are right. I was looking for Router firmware. I spent all the morning to build firmware with different db 15 19 (it was long to download correct software version and so on), however I’m not sure it works very well. I changed the “TXPOWER” in preinclude.h file in Stack/Config for the “zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs” but not big differences from the 9db firmware.

/**
 * Set default transmit power to 9 ((((( edit to 19 ))))))
 */
#define TXPOWER 19

Of course I rebuilt it and if I compare my hex file I can see that only 1 line is changed so I’m sure there is at least 1 edit (I hope TXPOWER :wink: )

FYI my LQI 9db

FYI my LQI 15db

FYI my LQI 19db

1 Like

Assuming that the second number is the “outgoing” LQI (from your compiled router to the device), it seems to work (although you already have pretty good LQI’s with the original firmware).

However, increasing TX power will do nothing for the “incoming” LQI (from the device to your compiled router), which is also shown.

1 Like

Be aware that changing the transmit power might actually give you a worse zigbee mesh.

The communication is 2 way. You only change in one end, the coordinator. This results in battery powered devices being able to “see” the coordinator and try to connect. This lead to a broken setup, as the reply back form a battery powered device will never be received by the coordinator, as it is too weak.

So, only change the values if you have a very special usecase. Not for normal zigbee mesh usage.

Exactly the same is valid for wifi access points.

3 Likes

Heads-up! ITead has posted that they will raise the price from $14.99 to $19.99 (US-dollar) tomorrow:

Due to the price increase in the chip of Zigbee 3.0 Dongle Plus, we plan to raise the price in response to the rising raw material costs to ensure you still have an excellent experience in the use. The new price will be effective from May 3, 2022.

In their defence, is a fact that there is still a global chip shortage as well as an ongoing worldwide shipping-container freight crisis which are together causing havoc on the whole global supply chain, which the COVID-19 pandemic only made worse. So prices on many components will keep rising until all that is resolved, and that whole perfect storm situation is currently are not expected to get better until 2024 at the earliest.

https://en.wikipedia.org/wiki/2020%E2%80%93present_global_chip_shortage

https://en.wikipedia.org/wiki/2021%E2%80%932022_global_supply_chain_crisis

1 Like

I have flashed the Sonoff Dongle with the 20220125 version of the router firmware, and zigbee2mqtt reports it in the devices page as offline a fair amount of the time, even though it seems to be functioning as a router. If I ask zigbee2mqtt to “Reconfigure”, it promptly comes back online.

Is this a common problem, or is my experience unique?

i have the same problem.
i am on the same firmware as you are. i have tried to pair it again a few times, it will initially show online, but after 10 minutes it will go back to offline.
the LQI also never changes, no matter where i move it.
but as you said it still seems to work.
according to zigbee2mqtt.io:- " Active devices (routers or mains powered end devices): by default they have to check-in every 10 minutes. If they don’t, they will be pinged, if that fails the device will be marked as offline"
so i guess it isn’t “checking-in” and ping is unsuccessful so zigbee2mqtt marks it as offline.
not sure whether its a problem with zigbee2mqtt or the dongle.

hello,
i tried to flash router firmware via Flash Programmer 2 tool, it crashed in the middle of the process.

So i tried to replicate whole process… it finished with the status
Verification finished successfully.
Reset target …
Reset of target successful.

But i cant make a device work… is it possible that crash during the first flashing operation bricked the device? Is there some easy way how to unbrick and re-flash properly?
thank you!

If the second attempt says verification was successful, the device wasn’t bricked.

What exactly does “cant make a device work” mean? Which coordinator are you using? Can it find the dongle? If not, what’s the error you get?

1 Like

@robertklep
hello, thats weird then?
I flashed in the second attempt router image; when i plug it to usb charger 5V 1A; and on the coordinator i click to allow devices to pair, nothing is happening.

the coordinator is sonof zigbee 3.0 usb dongle
and the one with the problem is the same one, i bought double pack.

can i somehow test if device is working properly? thanks

I’m not sure how pairing mode on the dongle works, do you need to put it into pairing mode explicitly or does it boot up in pairing mode when it is freshly flashed? Have you tried flashing an older version of the firmware (if available)?

@robertklep i saw some video/ where they just power on and its discovered, as it has no button etc.
I am not able to validate if device works correctly but assuming its not paired = broken? Bricked.
I have no idea how to identify it was bricked or if its working properly.

Again, if you can flash it, it can’t be bricked.

Have you tried flashing the coordinator firmware to see if that still works?

FWIW, the device has two buttons on the PCB.

@robertklep maybe that flashing software doesnt have ability to find out if that device was bricked or not? and it does something without sophisticated control? i can flash coordinator … but still how i will find out its working? it doesnt solve situation that device is not working as router now - which is need.

yes buttons are on pcb just reset - no clue what it resets, and bootloader… which wont help if its bricked?

It says it’s verifying what it just flashed, so I assume it actually reads back the firmware from the device to validate it.

If the coordinator firmware works, you can rule out the device cannot be used anymore and you can focus on finding out why it doesn’t work with the router firmware.

1 Like

@robertklep i was using youtube video where guy used same device with same firmware to act as router

edit2 same firmware means same router firmware… i flashed Router for a router purposes.

The router firmware is not the same as the coordinator firmware, so that could explain why it’s not working. The router firmware can be found here: Z-Stack-firmware/CC1352P2_CC2652P_launchpad_router_20220125.zip at 3406c6a0cd2b755f302f4cacd07b37497a86cc08 · Koenkk/Z-Stack-firmware · GitHub

@robertklep i dont get it. yes router and coordinator firmware are different files, i flashed router from router file. device is bricked i think.

i just reflashed with coordinartor, plugged into RPI - doesnt work at all

[80520.318557] usb 1-1.1: new full-speed USB device number 7 using xhci_hcd
[80520.426124] usb 1-1.1: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[80520.426144] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[80520.426152] usb 1-1.1: Product: Sonoff Zigbee 3.0 USB Dongle Plus
[80520.426158] usb 1-1.1: Manufacturer: ITead
[80520.426163] usb 1-1.1: SerialNumber: 7a68275e5a3bec11b34f9e957a0af07f
[80520.429021] cp210x 1-1.1:1.0: cp210x converter detected
[80520.436124] usb 1-1.1: cp210x converter now attached to ttyUSB0

zigbee2mqtt

[18:46:58] INFO: Handing over control to Zigbee2mqtt Core ...
> [email protected] start
> node index.js
Zigbee2MQTT:info  2022-05-22 18:47:06: Logging to console and directory: '/config/zigbee2mqtt/log/2022-05-22.18-47-03' filename: log.txt
Zigbee2MQTT:info  2022-05-22 18:47:06: Starting Zigbee2MQTT version 1.25.1 (commit #unknown)
Zigbee2MQTT:info  2022-05-22 18:47:06: Starting zigbee-herdsman (0.14.27)
Zigbee2MQTT:error 2022-05-22 18:47:50: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2022-05-22 18:47:50: Failed to start zigbee
Zigbee2MQTT:error 2022-05-22 18:47:50: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2022-05-22 18:47:50: Exiting...
Zigbee2MQTT:error 2022-05-22 18:47:50: Error: SRSP - APP_CNF - bdbStartCommissioning after 40000ms
    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)
[18:47:52] INFO: Handing over control to Zigbee2mqtt Core ...
> [email protected] start
> node index.js
Zigbee2MQTT:info  2022-05-22 18:48:00: Logging to console and directory: '/config/zigbee2mqtt/log/2022-05-22.18-47-57' filename: log.txt
Zigbee2MQTT:info  2022-05-22 18:48:00: Starting Zigbee2MQTT version 1.25.1 (commit #unknown)
Zigbee2MQTT:info  2022-05-22 18:48:00: Starting zigbee-herdsman (0.14.27)
Zigbee2MQTT:error 2022-05-22 18:48:35: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2022-05-22 18:48:35: Failed to start zigbee
Zigbee2MQTT:error 2022-05-22 18:48:35: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2022-05-22 18:48:35: Exiting...
Zigbee2MQTT:error 2022-05-22 18:48:35: TypeError: Cannot read property 'payload' of undefined
    at AdapterNvMemory.deleteItem (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/adapter-nv-memory.ts:147:115)
    at ZnpAdapterManager.beginCommissioning (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:330:9)
    at ZnpAdapterManager.beginRestore (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:296:9)
    at ZnpAdapterManager.start (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:80:17)
    at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:123:29)
    at Zigbee.start (/app/lib/zigbee.ts:58:27)
    at Controller.start (/app/lib/controller.ts:100:27)
    at start (/app/index.js:110:5)

[18:48:37] INFO: Handing over control to Zigbee2mqtt Core ...
> [email protected] start
> node index.js
Zigbee2MQTT:info  2022-05-22 18:48:45: Logging to console and directory: '/config/zigbee2mqtt/log/2022-05-22.18-48-42' filename: log.txt
Zigbee2MQTT:info  2022-05-22 18:48:45: Starting Zigbee2MQTT version 1.25.1 (commit #unknown)
Zigbee2MQTT:info  2022-05-22 18:48:45: Starting zigbee-herdsman (0.14.27)
Zigbee2MQTT:error 2022-05-22 18:49:06: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2022-05-22 18:49:06: Failed to start zigbee
Zigbee2MQTT:error 2022-05-22 18:49:06: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2022-05-22 18:49:06: Exiting...
Zigbee2MQTT:error 2022-05-22 18:49:06: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:102:27)
    at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:123:29)
    at Zigbee.start (/app/lib/zigbee.ts:58:27)
    at Controller.start (/app/lib/controller.ts:100:27)
    at start (/app/index.js:110:5)
[18:49:08] INFO: Handing over control to Zigbee2mqtt Core ...
> [email protected] start
> node index.js
Zigbee2MQTT:info  2022-05-22 18:49:16: Logging to console and directory: '/config/zigbee2mqtt/log/2022-05-22.18-49-13' filename: log.txt
Zigbee2MQTT:info  2022-05-22 18:49:16: Starting Zigbee2MQTT version 1.25.1 (commit #unknown)
Zigbee2MQTT:info  2022-05-22 18:49:16: Starting zigbee-herdsman (0.14.27)
Zigbee2MQTT:error 2022-05-22 18:50:01: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2022-05-22 18:50:01: Failed to start zigbee
Zigbee2MQTT:error 2022-05-22 18:50:01: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2022-05-22 18:50:01: Exiting...
Zigbee2MQTT:error 2022-05-22 18:50:01: Error: SRSP - APP_CNF - bdbStartCommissioning after 40000ms
    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)

its not working as coordinator nor router - ie bricked and flashing software is not able detect that issue.

[core-ssh log]$ cat 2022-05-22.18-51-02/log.txt
info  2022-05-22 18:51:05: Logging to console and directory: '/config/zigbee2mqtt/log/2022-05-22.18-51-02' filename: log.txt
info  2022-05-22 18:51:05: Starting Zigbee2MQTT version 1.25.1 (commit #unknown)
info  2022-05-22 18:51:05: Starting zigbee-herdsman (0.14.27)
error 2022-05-22 18:51:48: Error while starting zigbee-herdsman
error 2022-05-22 18:51:48: Failed to start zigbee
error 2022-05-22 18:51:48: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
error 2022-05-22 18:51:48: Exiting...
error 2022-05-22 18:51:48: Error: SRSP - APP_CNF - bdbStartCommissioning after 40000ms
    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)

configuration.yaml

serial:
  port: >-
    /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_7a68275e5a3bec11b34f9e957a0af07f-if00-port0



lrwxrwxrwx    1 root     root            13 Mar 11 08:33 usb-0658_0200-if00 -> ../../ttyACM0
lrwxrwxrwx    1 root     root            13 May 22 18:44 usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_7a68275e5a3bec11b34f9e957a0af07f-if00-port0 -> ../../ttyUSB0

It looks more like an interference issue, like when the dongle is plugged into an USB3 port or plugged in without an extension lead.

“Bricked” means the device won’t do anything, and it clearly still does do something, otherwise Linux wasn’t able to detect it and read its serial number.