ITead’s “Sonoff Zigbee 3.0 USB Dongle Plus V2” (model "ZBDongle-E") based on Silicon Labs EFR32MG21 +20dBm radio SoC/MCU

I have some serious issues flashing this Sonoff ZB-Dongle-E with the official firmware. I’m using EzspFwUtility to flash the firmware. I tried to flash the Router Firmware, it succeeds but as soon as it wants to restart the NCP it got me stuck in the bootloader with a green blinking light the first time around, now no blinking green light.

However even though stuck in the bootloader I couldn’t flash it again, I had to find out that by pressing boot + reset I could get back in a mode I would be able to flash again, I tried to flash it with the original NCP firmware but again no dice. After restarting it gets stuck in that same bootloader.

I tried a unsigned firmware from the community, and that flashed without any issues. However this firmware isn’t really supported by anything so pretty useless. (zigbeeFirmware/firmware/Zigbee3.0_Dongle-NoSigned/EZSP at master · xsp1989/zigbeeFirmware · GitHub)

Flashing the NCP will give me this:

python3 Elelabs_EzspFwUtility.py flash -f ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl -p com3
2022/09/16 22:39:30 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2022/09/16 22:39:30 Elelabs_EzspFwUtility:   Gecko Bootloader v1.12.00
2022/09/16 22:39:30 Elelabs_EzspFwUtility:   Allready in bootloader mode. No need to restart
2022/09/16 22:39:31 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
.....
.....
.....
2022/09/16 22:40:06 Elelabs_EzspFwUtility:   Firmware upload complete
2022/09/16 22:40:06 Elelabs_EzspFwUtility:   Rebooting NCP...
2022/09/16 22:40:21 Elelabs_EzspFwUtility:   Couldn't communicate with the adapter in Zigbee (EZSP) mode, Thread (Spinel) mode or bootloader mode

Flashing the Router will give me this:

python3 Elelabs_EzspFwUtility.py flash -f Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl -p com3
2022/09/16 22:52:19 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2022/09/16 22:52:19 Elelabs_EzspFwUtility:   Gecko Bootloader v1.12.00
2022/09/16 22:52:19 Elelabs_EzspFwUtility:   Allready in bootloader mode. No need to restart
2022/09/16 22:52:20 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
.....
.....
2022/09/16 22:53:02 Elelabs_EzspFwUtility:   Firmware upload complete
2022/09/16 22:53:02 Elelabs_EzspFwUtility:   Rebooting NCP...
2022/09/16 22:53:15 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2022/09/16 22:53:15 Elelabs_EzspFwUtility:   [ASSERT:C:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.2/platform/base/hal/micro/cortexm3/efm32/token.c:211]

Additional Error Log:

[ASSERT:C:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.2/platform/base/hal/micro/cortexm3/efm32/token.c:211]
Reset info: 0x07 (CRS)
Extended Reset info: 0x0701 (AST)
Thread mode using main stack (20002460 to 20002DC0), SP = 20002CF0
680 bytes used (28%) in main stack (out of 2400 bytes total)
No interrupts active
Reset cause: Assert C:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.2/platform/base/hal/micro/cortexm3/efm32/token.c:211
R0 = 0004421A, R1 = 000000D3, R2 = 2000302C, R3 = 00000001
R4 = 00000000, R5 = 00000000, R6 = 0000000E, R7 = 00000031
R8 = 200033D4, R9 = 00041900, R10 = 000417D8, R11 = 200033D4
R12 = 00000001, R13(LR) = FFFFFFF9, MSP = 20002CF0, PSP = 20002DC0
PC = 00008314, xPSR = 69100000, MSP used = 000002A8, PSP used = 00000000
CSTACK bottom = 20002460, ICSR = 00000806, SHCSR = 00070008, INT_ACTIVE0 = 00000000
INT_ACTIVE1 = 00000000, CFSR = 00010000, HFSR = 00000000, DFSR = 00000000
MMAR/BFAR = E000ED34, AFSR = 00000000, Ret0 = 00013A95, Ret1 = 0000833B
Ret2 = 0000958B, Ret3 = 00024263, Ret4 = 0002CA0B, Ret5 = 00015199
Dat0 = 0004421A, Dat1 = 000000D3

Out put of flashing with custom firmware that succeeds:

 python3 Elelabs_EzspFwUtility.py flash -f ncp-uart-sw_7.0.2.0_115200.gbl -p com3
2022/09/16 23:22:11 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2022/09/16 23:22:11 Elelabs_EzspFwUtility:   Gecko Bootloader v1.12.00
2022/09/16 23:22:11 Elelabs_EzspFwUtility:   Allready in bootloader mode. No need to restart
2022/09/16 23:22:12 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
.....
2022/09/16 23:22:52 Elelabs_EzspFwUtility:   Firmware upload complete
2022/09/16 23:22:52 Elelabs_EzspFwUtility:   Rebooting NCP...
2022/09/16 23:22:59 Elelabs_EzspFwUtility:   Generic Zigbee EZSP adapter detected:
2022/09/16 23:22:59 Elelabs_EzspFwUtility:   Firmware: 7.0.2-150
2022/09/16 23:22:59 Elelabs_EzspFwUtility:   EZSP v8

Honestly I have no idea what to do at this point. I tried to flash both under Linux as Windows but with the same results. Trying to boot in normale mode through the EzspFwUtility also doesn’t work.

Anyone has an idea?

1 Like

Thanks!
My coordinatior was shupped with quite up-to-date firmware:
Generic Zigbee EZSP.
Firmware: 6.10.3-41
EZSP: v8

I think it is the same as Itead has on their git now.

Any good reason to look for some of the community firmware. The criteria is:

  • Stability
  • Compatibility
  • No of devises it van handle.

PS. I still have my previous ConbeeII-stick. I did not back up and transered to new coordinatior.
Some how it seems to have includetet all det devices. However some times it does no keep proper track on light beeing on or off.

Especially when it were turned on on my HASS-dashboard and off on a remote. It will still show as turned on.

I am assuming the devices and eteties are stored in the zigbee.db and that it why it works out oft the box. But shoudld I make a backup of the ConbeeII and transfer it to the Sonoff - or does it allready have all the devices ‘on-board’?

Any update?

No, it looks like I’m stuck on ncp-uart-sw_7.1.1.0_115200.gbl (community firmware). I have not been able to downgrade back to the original firmware, any 6x firmware or the router firmware.

I’ve tested the adapter with the adapter with the ncp-uart-sw_7.1.1.0_115200.gbl firmware in the developer build of Zigbee2MQTT and can confirm it’s working so the device is not bricked but I haven’t been succesful getting the device to work on any other firmware lower than this firmware afterwards.

Most of the time i’m greeted with this message after succesful flashing the firmware and restarting the NCP

Couldn't communicate with the adapter in Zigbee (EZSP) mode, Thread (Spinel) mode or bootloader mode

or bootloop:

[ASSERT:D:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.2/platform/base/hal/micro/cortexm3/efm32/token.c:211]

At this point I’m so fed up with this adapter that I’ve it stopped for now. If I find the motivation I might try to connect with different baud-rate after flashing. Maybe for some reasons it defaulted to a different baudsize (in the serial connection). I did read that some EZSP sticks use 57600 bauds instead of 115200. that didn’t work

Hi all

I’ve just got a ZBDongle-E and I checked the installed fw that is 6.10.3-41 and I saw from https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E/Router that the fw is Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl.

Is it the same onboard, or should I update?

Thanks

1 Like

Hope this is not to OT, but since installing the ZBDongle-E, my logs indicate several coordinators in ZHA (see log below)…

The “vid”: “1CF1”, “pid”: “0030”, “description”: “conbee”, “known_devices”: [“Conbee II”] is no longer in use.
As for the “slae.sh cc2652rb stick”, “sonoff zigbee dongle plus v2”, “sonoff zigbee dongle plus”, “Nortek HUSBZB-1”, “Bitron Video AV2010/10”, I dont’t know why they are in the list.

I have two Tubesz routers (usb-powered).
Is the config ready for a clean-up, or does this look normal?
Finally, is it good pactice to connect the cosest tubesz router directly as a child of the ZBDongle-E coordinator?

Thanks!

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2022.9.6",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.5",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Europe/Oslo",
    "os_name": "Linux",
    "os_version": "5.15.61-v8",
    "supervisor": "2022.09.1",
    "host_os": "Home Assistant OS 9.0",
    "docker_version": "20.10.17",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "spotcast": {
      "version": "v3.6.30",
      "requirements": [
        "spotify_token==1.0.0"
      ]
    },
    "xiaomi_miio_airpurifier": {
      "version": "2022.8.0.0",
      "requirements": [
        "construct==2.10.56",
        "python-miio>=0.5.12"
      ]
    },
    "dwains_dashboard": {
      "version": "3.3.0",
      "requirements": []
    },
    "hacs": {
      "version": "1.27.2",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "fontawesome": {
      "version": "2.1.5",
      "requirements": []
    },
    "zha_toolkit": {
      "version": "v0.8.16",
      "requirements": []
    },
    "reolink_dev": {
      "version": "0.57",
      "requirements": [
        "reolink==0.0.62"
      ]
    },
    "rpi_gpio": {
      "version": "2022.7.0",
      "requirements": [
        "RPi.GPIO==0.7.1"
      ]
    }
    "xiaomi_gateway3": {
      "version": "2.1.1",
      "requirements": [
        "zigpy>=0.33.0"
      ]
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.33.1",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.79",
      "zigpy-deconz==0.18.1",
      "zigpy==0.50.3",
      "zigpy-xbee==0.15.0",
      "zigpy-zigate==0.9.2",
      "zigpy-znp==0.8.2"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      }
    ],
    "dependencies": [
      "file_upload"
    ],
    "after_dependencies": [
      "onboarding",
      "usb",
      "zeroconf"
    ],
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 43555,
    "manufacturer": "TubesZB",
    "model": "tubeszb.router",
    "name": "TubesZB tubeszb.router",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 0,
    "power_source": "Mains",
    "lqi": 188,
    "rssi": -53,
    "last_seen": "2022-09-24T12:54:41",
    "available": true,
    "device_type": "Router",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=11264, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
      "endpoints": {
        "8": {
          "profile_id": 260,
          "device_type": "0x00ff",
          "in_clusters": [
            "0x0000",
            "0x0003"
          ],
          "out_clusters": [
            "0x0000"
          ]
        },
        "242": {
          "profile_id": 41440,
          "device_type": "0x0061",
          "in_clusters": [],
          "out_clusters": [
            "0x0021"
          ]
        }
      }
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.tubeszb_tubeszb_router_identifybutton",
        "name": "TubesZB tubeszb.router"
      },
      {
        "entity_id": "sensor.tubeszb_tubeszb_router_rssi",
        "name": "TubesZB tubeszb.router"
      },
      {
        "entity_id": "sensor.tubeszb_tubeszb_router_lqi",
        "name": "TubesZB tubeszb.router"
      }
    ],
    "neighbors": [
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x84C5",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "40"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x856D",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "69"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x1319",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "1"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x2384",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "159"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x8D07",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "16"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x776B",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "35"
      },
      {
        "device_type": "Coordinator",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x0000",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "91"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xBBD2",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "28"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x80CE",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "1"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xB752",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "77"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xBBFC",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "73"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xB102",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "1"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x4EA4",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "39"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xD061",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "48"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x68EF",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "36"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xBA2D",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "194"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "Unknown",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x7ED1",
        "permit_joining": "Unknown",
        "depth": "255",
        "lqi": "17"
      }
    ],
    "endpoint_names": [
      {
        "name": "unknown 97 device_type of 0xa1e0 profile id"
      },
      {
        "name": "undefined_0x00ff"
      }
    ],
    "user_given_name": "TubesZB tubeszb.router_kjok",
    "device_reg_id": "28a97d4a9aef06d9f831e58a07edc471",
    "area_id": "621e840fc24f485c98237c819528da63",
    "cluster_details": {
      "242": {
        "device_type": {
          "name": "unknown",
          "id": 97
        },
        "profile_id": 41440,
        "in_clusters": {},
        "out_clusters": {
          "0x0021": {
            "endpoint_attribute": "green_power",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "8": {
        "device_type": {
          "name": "undefined_0x00ff",
          "id": 255
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "TubesZB"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "tubeszb.router"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Not sure if it is of relevance, but in the ‘Devices’ under The ZHA-integration, the coordinator shows up as Silicon Labs EZSP (s image).

In the integration overview, however, it shows as a SONOFF Zigbee 3.0 USB Dongle Plus V2. See image.

Zigbee_ZHA_integration.

I’m trying to flash my ZBDongle-E to router mode using the elelabs utility on Windows. I can probe the device:

>python Elelabs_EzspFwUtility.py probe -p COM7
2022/09/24 22:11:57 Elelabs_EzspFwUtility:   Generic Zigbee EZSP adapter detected:
2022/09/24 22:11:57 Elelabs_EzspFwUtility:   Firmware: 6.10.3-41
2022/09/24 22:11:57 Elelabs_EzspFwUtility:   EZSP v8

However, when I try to flash the device, I get errors like:

>python Elelabs_EzspFwUtility.py flash -f Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl -p COM7
2022/09/24 22:19:01 Elelabs_EzspFwUtility:   Couldn't communicate with the adapter in Zigbee (EZSP) mode, Thread (Spinel) mode or bootloader mode
2022/09/24 22:19:09 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
2022/09/24 22:19:21 Elelabs_EzspFwUtility:   Failed to restart into bootloader mode. Please see users guide.

or

>python Elelabs_EzspFwUtility.py flash -f Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl -p COM7
2022/09/24 22:15:50 Elelabs_EzspFwUtility:   Generic Zigbee EZSP adapter detected:
2022/09/24 22:15:50 Elelabs_EzspFwUtility:   Firmware: 6.10.3-41
2022/09/24 22:15:50 Elelabs_EzspFwUtility:   EZSP v8
2022/09/24 22:15:50 Elelabs_EzspFwUtility:   Launch in bootloader mode
Traceback (most recent call last):
  File "C:\Users\edels\Downloads\elelabs-zigbee-ezsp-utility-master\elelabs-zigbee-ezsp-utility-master\Elelabs_EzspFwUtility.py", line 804, in <module>
    elelabs.flash(args.file)
  File "C:\Users\edels\Downloads\elelabs-zigbee-ezsp-utility-master\elelabs-zigbee-ezsp-utility-master\Elelabs_EzspFwUtility.py", line 689, in flash
    if self.restart("btl"):
  File "C:\Users\edels\Downloads\elelabs-zigbee-ezsp-utility-master\elelabs-zigbee-ezsp-utility-master\Elelabs_EzspFwUtility.py", line 617, in restart
    status = ezsp.launchStandaloneBootloader(ezsp.STANDALONE_BOOTLOADER_NORMAL_MODE, "STANDALONE_BOOTLOADER_NORMAL_MODE")
  File "C:\Users\edels\Downloads\elelabs-zigbee-ezsp-utility-master\elelabs-zigbee-ezsp-utility-master\Elelabs_EzspFwUtility.py", line 284, in launchStandaloneBootloader
    status = resp[5]
IndexError: bytearray index out of range

I also tried opening the device, holding the bootloader button, pressing reset, waiting a bit, releasing the bootloader button and try again. However, I never get it to restart in bootloader mode. I have multiple, all behaving the same. Has anyone got any ideas what this could be?

I flashed my dongle-E to router mode using Extraputty without problems…

Check if the device isn’t in use by any other service/application.
You can also try different USB ports (USB 2.0 preferably)

To get into boot-loader mode through the buttons.

  • Press & hold boot.
  • Press Reset and let-go of Reset & Boot at the same time (no need to hold the buttons)

Stick should be now in Bootloader mode, if that is not the case, you can click boot again quickly after pressing the reset button. For me that also worked fine.

Btw in my experience it’s much easier to see if this works through a Serial Tool like ExtraPutty but EszpFwUtillity should also work fine.

If you are going to setup a serial connection use the following settings:

Baud: 115200
Data Bits: 8
Stop Bits: 1
Parity: None
Flow Control: XON/XOFF

Good luck, I hope you have a better experience flashing this stick then I had.

It finally worked installing python, drivers and flash utility on another windows PC. No clue that made the difference, both windows PC’s were a Surface pro. They both work fine as a router now. Only strange thing is both define two multicolor lights as entities. Are those leds inside the case or something?

Can confirm the same issue after trying 7.1.1.0 and going back. Didn’t find a solution

Having a heck of a time trying to figure this thing out. Have tried a couple of different methods listed here, but I think I’m still having problems getting the device in to bootloader mode. What LEDs are supposed to light up? I can get it red or green, but nothing seems to indicate the bootloader mode is active. I hear the noise in Windows whenever it is plugged in, and no combo of buttons changes it to green when plugged in, only after.

I can get SecureCRT to see the device on COM7, but never get the menu from the pdf guide. I’ve installed Python, but I have no clue how to use the elelabs utility and can’t seem to have the USB passthrough on Windows WSL. This is driving me nuts, I just wanted a router and accidentally ordered this model instead of the easy-to-flash CC2652P :frowning:

Forget the LED’s the don’t show you anything regarding bootloader. The only way you can see if you are in the bootloader is by connecting SecureCRT / ExtraPutty to your COM port. And then press bootloader/reset buttons as mentioned somewhere above. After that it should show you the bootloader as in the PDF in secureCRT/ExtraPutty.

Regarding the ElelabsUtillity. Install Python from the Microsoft store, after installing use Windows PowerShell
Change directory in the ElabsUtility folder
Then try the following command to see if you can probe the device:
python3 Elelabs_EzspFwUtility.py probe -p COM7 -b 115200

No need for Windows WSL

2 Likes

Any idea of what’s going on?

:camera:Screen Shot 2022-10-03 at 11.06.49 PM2128×1224 394 KB

:camera:Screen Shot 2022-10-03 at 11.09.12 PM2064×1552 208 KB

Followed along with this video and have the exact same stick he recommends How to Install Zigbee2MQTT with the Sonoff ZBDongle E in Home Assistant - Tutorial - YouTube

Keep on getting 502:Bad Gateway error. Completely lost and out of solutions.

Using cloudflared connection following along with this video

:camera:The Easiest Free Way To Do Home Assistant Remote Access!

I’ve gone down the rabbit hole of support forums and on the official website, watched tutorials, i’ve done the process a few times over again and I still am getting the same stuck at that “Starting zigbee-herdsman (0.14.62)” message

At a lost of what to do next.

UPDATE: Installed and configured the Edge version and I first got a notification that the 8485 port was already in use (I assume because of the stable Z2M?) and in the error logis i was returned with

Zigbee2MQTT:error 2022-10-04 19:41:42: Error: Error while opening serialport ‘Error: Error Resource temporarily unavailable Cannot lock port’

If you are using Zigbee2MQTT then make sure that no other application(s) or service(s) is connected or trying to connect to the serial port for the Zigbee adapter. Like for example make sure disable the ZHA (Zigbee Home Automation) integration if you accidentally enabled it but not using it with a other seperate Zigbee adapter (as can only have a Zigbee adapter connected to one Zigbee application solution). Also, for getting Zigbee2MQTT (Z2M) support it is better to ask for help and advice in their own official discussions forum here → Discussions · Koenkk/zigbee2mqtt · GitHub

Oh and post text instead of pictures of logs, and if logs are long instead upload the logs via Pastebin (Pastebin.com) then just post the link to that log on Pastebin.

Thanks @Hedda for the good tip. Still getting the same “stuck on herdman” disabled or ignored.

Full logs below

[19:19:17] INFO: Preparing to start...
[19:19:17] INFO: Socat not enabled
[19:19:19] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:info  2022-10-04 19:19:24: Logging to console and directory: '/config/zigbee2mqtt/log/2022-10-04.19-19-24' filename: log.txt
Zigbee2MQTT:info  2022-10-04 19:19:25: Starting Zigbee2MQTT version 1.28.0 (commit #unknown)
Zigbee2MQTT:info  2022-10-04 19:19:25: Starting zigbee-herdsman (0.14.62)

I can’t thank you enough for all of your explanations. I got it on my second try, connected with SecureCRT, downloaded/sent the firmware (a few min), and had it added as a router on ZHA about 20 seconds later.

I’ll be using Python next time, and those tips will come in handy. Much appreciated!

1 Like

Regardless of which Zigbee solution you get it working with, I recommend always try to follow these general tips about avoiding EMF/EMI/RMI interference (which is serious for all Zigbee adapters) and getting a better-optimized setup → https://github.com/zigpy/zigpy/wiki/Generic-best-practice-tips-on-improving-Zigbee-network-range-and-general-stability

I’ve been looking at purchasing the ZBDongle-E, but now that the Home Assistant SkyConnect is about to be released I’m not sure which one to choose. They both use the same radio chipset (Silabs EFR32MG21) and rest of the specs look very similar as well.

Are there any major differences between them that make one of them a better choice than the other?
I assume that the ZBDongle-E will also get Thread/Matter support since it’s using the same chipset, but I’ve not been able to find any information about it. Does anyone know for sure?

I’m not in a hurry to buy one, so if the Skyconnect is a better choice I’m happy to wait for it to be released.

Yes they all support the same type of firmware (but not flash the exact same firmware image build files).

FYI, while the official Home Assistant SkyConnect USB Stick will probably be an excellent option for early adopters that just want to buy a few of the upcoming devices using the new upcoming Matter (Project CHIP) standard over the Thread protocol as well as those casual users (non-power users) that are sure that they will never connect loads of Zigbee devices (100+) to this single radio adapter, potential buyers should still probably be made aware in advance before buying that this official Home Assistant SkyConnect USB Stick on paper in a multi-protocol setup configured to concurrently use both Zigbee and Thread protocols over the same radio with a large Zigbee network (100+ devices) as well as several Thread/Matter devices will probably not get as good as performance as simply using a dedicated Zigbee USB adapter with a large Zigbee network and then just using this official Home Assistant SkyConnect USB Stick as a dedicated adapter for Thread/Matter only.

That is, when using multiple wireless protocols at the same time on a single radio chip as a multi-protocol adapter this risk becoming a “Jack of all trades, master of none” product, as on paper today, no existing single multiprotocol radio SoC using Matter/CHIP over Thread in combination with Zigbee at the same time should be able to perform as optimal as simply using separate dedicated radio adapters for each wireless protocol. This is totally understandable considering that it will need to handle the work of two radios, even with the protocol stack being off-loaded from the adapter’s MCU to the Host System CPU. The point remains that by using dedicated coordinator/controller radio adapters for each protocol today you are more likely to get the best performance for each protocol if that is what you are looking for. (This fact may of course change in the future over time with newer radio technologies + improved radio time management frameworks and protocol stacks from radio chip manufacturers).

Thus if you plan on potentially using it with a lot of Zigbee devices (like 100+ Zigbee devices) then I would recommend not waiting and instead just buying a separate dedicated Zigbee USB adapter today, then I still recommend you buy this official Home Assistant SkyConnect USB Stick when it becomes available but just use it as a dedicated adapter for only Thread/Matter, or alternatively wait and buy two of these official Home Assistant SkyConnect USB Sticks and use them separately as two dedicated single-protocol radio adapters for the different wireless protocols. As with existing Zigbee USB adapters being good as they already are no need to wait for an all-in-one multiprotocol combination adapter if you plan on building a large Zigbee network when a multiprotocol is likely to not perform as well, (again, on paper at least).

Anyway, suggest users who think they might connect 100+ Zigbee devices someday should consider just buying a separate dedicated Zigbee adapter now to use only for Zigbee devices. Most such dedicated Zigbee adapters should not become e-waste because it will probably be possible to migrate your Zigbee network to a new Zigbee adapter and then most modern dedicated Zigbee adapters can usually be flashed with alternative Zigbee Router firmware and repurposed as a Zigbee Router device (Zigbee network mesh signal repeater). Regardless, you will normally want many good always-on Zigbee Router devices in your Zigbee network mesh to achieve the best possible stable Zigbee environment.

Refrence agners and grobasoz comments → https://github.com/grobasoz/zigbee-firmware/issues/27

grobasoz comment: “Now to the big issue I have with Multiprotocol - and my personal opinion only. A “normal” Zigbee Coordinator on a “significant” network (ie 100+ devices) actually spends quite a bit of radio time managing the network, let alone handling the device messaging.

agners reply: “Agreed, I think the multiprotocol solution might not be for large networks. A person with that many devices, likely will have multiple coordinator/border router capable 802.15.4 radios in the house already :sweat_smile: It is mainly a good solution for new users: People don’t have to choose between Thread and Zigbee at the start, they can mix and match. For power users Thread and Zigbee networks on separate channels definitely make sense (along with dedicated radios). That said, I like the concept of having a rather dumb radio and most of the protocol on the host. So it still might make sense to have the (Multi-)PAN firmware running along with zigbeed on the host. We’ll see how well that works in practice.

PS: Personally I will probably buy two of the official Home Assistant SkyConnect USB Sticks myself and only use one protocol per adapter just to sponsor the Home Assistant founders and Nabu Casa.

1 Like