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

Note! Regardless if you go with “ZBDongle-E” or “ZBDongle-P” (or any other Zigbee Coordinator USB radio adapter), always be sure to take active actions to avoid EMF-interference and understand that you need to add many Zigbee Router devices to extend range and coverage (do not just add battery-powered devices).

Zigbee devices are very sensitive EMF interference and have a relatively short range, thus it is highly recommended that everyone using Zigbee devices read and try to follow all the tips here → Zigbee networks: how to guide for avoiding interference and optimize for getting better range + coverage

Especially be sure to connect the Zigbee Coordinator adapter via a long USB extension cable to a USB 2.0 port (and not a USB 3.x or USB 4.x port) + add a few mains-powered Zigbee products that are known to work as good Zigbee Router devices (e.i. Zigbee signal repeater/extender) to act as the stable backbone of your Zigbee network mesh. Generally, the more Zigbee Router devices you have the more stable your Zigbee network mesh should become.

These are things needing to be addressed with any Zigbee Coordinator adapter on any Zigbee network.

Yep yep, know about all of that. My observations are keeping ALL of this in mind.

BTW, there seems to be a new 7.3.2.0 firmware for the Dongle E. Did anyone try it?

Where are you seeing 7.3.2.0?

I just flashed 7.3.1.0 from here and it seems to be working OK so far with Zigbee2MQTT 1.33.1. I did have to re-pair all my devices though – before re-pairing, Zigbee2MQTT could see the existing devices but events from devices weren’t coming through.

I only flashed the newer version to see if this will help with a particular router device that once plugged in causes all downstream devices to become unresponsive – after unplugging the router everything begins working fine again. The router device in question is a MHCOZY ZG-002 RF which is a single-channel dry contact relay. Will update with my findings…

Here you can find 7.3.2.0.

2 Likes

I’m in the same situation, I bought a P to understand if I could improve compared to the E. But based on what do you say that the P should be better? I haven’t been able to replace it, how do I know if the firmware needs to be updated perhaps? I would prefer not to, but since I bought it, I would like to try it before returning it to the seller.

Always make an NVM backup before upgrading firmware. The ZHA integration does this automatically but if using a ZBDongle-E with Zigbee2MQTT then currently suggest temporarily moving the radio adapter to a other computer and perform a manual backup with zigpy-cli https://github.com/zigpy/zigpy-cli

If you are using the ZHA integration then it does not matter, both ZBDongle-E and ZBDongle-P work great there and have feature-parity in it (all functions/features works equally well for those in ZHA).

If you are using Zigbee2MQTT then the ZBDongle-P is recommended because it is based on a CC2652P radio SoC as it uses Texas Instruments Z-Stack which has been supported since the inception of the zigbee-herdman library that Zigbee2MQTT depends on and thus support for it is more mature in its code.

The support for ZBDongle-E (based on an EFR32MG21 radio SoC) which uses Silicon Labs EmberZNet (EZSP adapter) is still very good in Zigbee2MQTT’s zigbee-herdman library but support for it is newer there and therefor does not yet have feature-parity (most importantly it is missing full backup and restore features in Zigbee2MQTT).

Because of this, if you are using the ZHA integration then it is really easy to migrate back and forth between ZBDongle-E to ZBDongle-P and vice versa, (just click on “migrate radio” in the ZHA integration and follow the instructions), however, if you are using Zigbee2MQTT then it is much more complicated process to migrate from ZBDongle-E to ZBDongle-P or vice versa (reason being that missing full backup and restore features in Zigbee2MQTT), however it is possible to work around that using third-party tools for backup and restore for that see this zigbee-herdsman discussion here → migrating coordinator from ZBDongle-E to ZBDongle-P · Koenkk/zigbee2mqtt · Discussion #16478 · GitHub

Regardless, I recommend upgrading the firmware on both adapters before performing any migrations.

If you bought a ZBDongle-P and newer upgraded he firmware then the recommendation is to upgrade it, it is really easy as long as you just stop your Zigbee gateway application and unplug the Zigbee Coordinator USB adapter to perform the firmware upgrade on a different computer with desktop OS. anyway, for ZBDongle-P, see → ITead's "Sonoff Zigbee 3.0 USB Dongle Plus" (model "ZBDongle-P") based on Texas Instruments CC2652P +20dBm radio SoC/MCU

If you are using ZBDongle-E (which this thread is about) then suggest staying with the 6.10.x firmware which has proven to be very stable and only if you are having issues with some new device should you consider upgrading the firmware to the latest 7.3.x firmware which many people have also reported as stable. As long as you make a backup before upgrading then you can always restore that.

While the ezsp adapter support remains in Alpha/Beta stage for Zigbee2MQTT I suggest that you post such feedback directly to zigbee-herdsman ezsp adapter developer(s) here as that is what Zigbee2MQTT (and IoBroker) depends on → [WIP]: EFR32 EZSP adapter implementation and test · Issue #319 · Koenkk/zigbee-herdsman · GitHub

3 Likes

Thank you very much for your comprehensive answer. I gave in to Bluetooth (the Vimars allow you to be paired both in Zigbee and Bluetooth, the latter with their additional gateway which then works locally). After years of problems both with Smartthings and now with Home Assistant, I had, as I said, these constant disconnections and I preferred to do it this way. Now I will still have to flash the router firmware to the P dongle to hopefully help restore my Zigbee network, very weak now without the 14 Vimar routers I had but which have now switched from Bluetooth to Zigbee
Thank you

Recommend read and try follow all tips here → Guide for Zigbee interference avoidance and network range/coverage optimization

EDIT: I added the logs from the Silabs Firmware Flasher below this post. It is what I get when I put the dongle in and hit connect on the webpage.

Quick question on the EZSP Sonoff Zigbee Dongle Plus E.

I have one running as a coordinator for Z2M and 2 flashed as routers. The router firmware I am using is “Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl”. The Coordinator is using “ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl”

Are these the 2 I should be using at this point? The 2 routers are losing connectivity everyday. I can delete them in Z2M and then they join right back up and work for a bit. Just want to make sure I am using the correct firmware for these dongles.

Many thanks and no rush!

(post deleted by author)

Didn’t read, but please use the hide details option for the logs so they aren’t filling up the thread.

Summary

2023-11-06 18:48:16 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.GECKO_BOOTLOADER at 115200 baud
2023-11-06 18:48:16 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (115200 baudrate)
2023-11-06 18:48:16 emscripten universal_silabs_flasher.common[42] DEBUG Connection made: <webserial_transport.WebSerialTransport object at 0x1405e88>
2023-11-06 18:48:16 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r\n> appNwkJoinOrRejoinWhenPowerOn [291]: \r\n NWK attempt join EVENT, nwk_state = 0x02, appDevHadAttemptNwkJoinTimes = 0\r\n\r\n> appNwkJoinOrRejoinWhenPowerOn [360]: \r\n NWK join EVENT:EMBER_JOINED_NETWORK, app_dev_had_attempt_nwk_join_times = 1\r\nISR unchanged ’
2023-11-06 18:48:16 emscripten universal_silabs_flasher.gecko_bootloader[42] DEBUG Parsing State.WAITING_FOR_MENU: bytearray(b’\r\n> appNwkJoinOrRejoinWhenPowerOn [291]: \r\n NWK attempt join EVENT, nwk_state = 0x02, appDevHadAttemptNwkJoinTimes = 0\r\n\r\n> appNwkJoinOrRejoinWhenPowerOn [360]: \r\n NWK join EVENT:EMBER_JOINED_NETWORK, app_dev_had_attempt_nwk_join_times = 1\r\nISR unchanged ‘)
2023-11-06 18:48:16 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’3’
2023-11-06 18:48:16 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r’
2023-11-06 18:48:16 emscripten universal_silabs_flasher.gecko_bootloader[42] DEBUG Parsing State.WAITING_FOR_MENU: bytearray(b’\r\n> appNwkJoinOrRejoinWhenPowerOn [291]: \r\n NWK attempt join EVENT, nwk_state = 0x02, appDevHadAttemptNwkJoinTimes = 0\r\n\r\n> appNwkJoinOrRejoinWhenPowerOn [360]: \r\n NWK join EVENT:EMBER_JOINED_NETWORK, app_dev_had_attempt_nwk_join_times = 1\r\nISR unchanged \r’)
2023-11-06 18:48:16 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\xd4\xd1\xd1\xbd\xb9\xc1PressedShortCallback, timePressedMs = 0, 4999\r\n’
2023-11-06 18:48:16 emscripten universal_silabs_flasher.gecko_bootloader[42] DEBUG Parsing State.WAITING_FOR_MENU: bytearray(b’\r\n> appNwkJoinOrRejoinWhenPowerOn [291]: \r\n NWK attempt join EVENT, nwk_state = 0x02, appDevHadAttemptNwkJoinTimes = 0\r\n\r\n> appNwkJoinOrRejoinWhenPowerOn [360]: \r\n NWK join EVENT:EMBER_JOINED_NETWORK, app_dev_had_attempt_nwk_join_times = 1\r\nISR unchanged \r\xd4\xd1\xd1\xbd\xb9\xc1PressedShortCallback, timePressedMs = 0, 4999\r\n’)
2023-11-06 18:48:18 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.CPC at 460800 baud
2023-11-06 18:48:18 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (460800 baudrate)
2023-11-06 18:48:18 emscripten universal_silabs_flasher.common[42] DEBUG Connection made: <webserial_transport.WebSerialTransport object at 0x1161478>
2023-11-06 18:48:18 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:18 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:18 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x0fx\xf8x\xf8x\xf8x\x80\x00x\x80\x80xxx\x80x\x80xxx\x80x\x80x\x00\xf8x\xf8x\x80x\xf8x\x00x\x00x\xf8x\xf8x\x00x\x00x\x00xxxx\x00\x80\x00\xf8x\x80\xf8x\xf8\xf8xx’
2023-11-06 18:48:18 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’x’): ValueError(‘Invalid flag’)
2023-11-06 18:48:18 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’xx\x80\x80xxx\x80x\x80xxx\x80x\xf8\x80x\x80x\x80x\x80\x00\x80\x00\x80\x00x\x00\x80\x00\xf8\x80x\x80x\x80x\x80x\x00\x80x’
2023-11-06 18:48:18 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’x’): ValueError(‘Invalid flag’)
2023-11-06 18:48:19 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 1 of 4)
2023-11-06 18:48:19 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:19 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:20 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 2 of 4)
2023-11-06 18:48:20 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:20 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:21 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 3 of 4)
2023-11-06 18:48:21 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:21 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 4 of 4)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.CPC at 115200 baud
2023-11-06 18:48:22 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (115200 baudrate)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Connection made: <webserial_transport.WebSerialTransport object at 0x11246d0>
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\\xeb\x95\x91\x81\r\n\r\nButton0PressedShortCallback, timePressedMs = 0, 4999\r\nN’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’N’): ValueError(‘Invalid flag’)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’o such command\r\nUsage:\r\n: 123 or 0x1ABC\r\n: “foo” or’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’r’): ValueError(‘Invalid flag’)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’ {0A 1B 2C}\r\n\r\nbsend\r\nchangekey…\r\ndebugprint…\r\necho\r\nendpoin’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’t…\r\nevents\r\nhelp\r\ninfo\r\ninterpan…\r\nkeys…\r\nlibs\r\nnetwork…’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’.’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r\noption…\r\nplugin…\r\nprint…\r\nraw\r\nread\r\nreset\r\nsecurity…\r’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\r’): ValueError(‘Invalid flag’)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\nsend\r\nsend-using-multicast-binding\r\nsend_multicast\r\ntimesync\r\nv’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’v’): ValueError(‘Invalid flag’)
2023-11-06 18:48:22 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’ersion\r\nwrite\r\nzcl…\r\nzdo…\r\n’
2023-11-06 18:48:22 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:23 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 1 of 4)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’No such command\r\nUsage:\r\n: 123 or 0x1ABC\r\n: “foo” o’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’o’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’r {0A 1B 2C}\r\n\r\nbsend\r\nchangeke’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’e’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’y…\r\ndebugprint…\r\necho\r\nendpoi’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’i’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’nt…\r\nevents\r\nhelp\r\ninfo\r\ninterpan…\r\nkeys…\r\nlibs\r\nnetwork…’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’.\r\noption…\r\nplugin…\r\nprint…\r\nraw\r\nread\r\nreset\r\nsecurity…’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r\nsend\r\nsend-using-multicast-binding\r\nsend_multicast\r\ntimesync\r\n’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’version\r\nwrite\r\nzcl…\r\nzdo…’
2023-11-06 18:48:24 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:24 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r\n’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 2 of 4)
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’No such command\r\nUsage:\r\n: 123 or 0x1ABC\r\n: “foo” o’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’o’): ValueError(‘Invalid flag’)
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’r {0A 1B 2C}\r\n\r\nbsend\r\nchangekey…\r\ndebugprint…\r\necho\r\nendpoi’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’i’): ValueError(‘Invalid flag’)
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’nt…\r\nevents\r\nhelp\r\ninfo\r\ninterpan…\r\nkeys…\r\nlibs\r\nnetwork…’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’.\r\noption…\r\nplugin…\r\nprint…\r\nraw\r\nread\r\nreset\r\nsecurity’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’y’): ValueError(‘Invalid flag’)
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’…’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r\nsend\r\nsend-using-multicast-binding\r\nsend_multicast\r\ntimesync\r\n’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:25 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’version\r\nwrite\r\nzcl…\r\nzdo…\r\n’
2023-11-06 18:48:25 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 3 of 4)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’No such command\r\nUsage:\r\n: 123 or 0x1ABC\r\n: “foo” o’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’o’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’r {0A 1B 2C}\r\n\r\nbsend\r\nchangekey…\r\ndebugprint…\r\necho\r\nendpoi’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’i’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’nt…\r\nevents\r\nhelp\r\ninfo\r\ni’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’i’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’nterpan…\r\nkeys…\r\nlibs\r\nnetwork…’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’.\r\noption…\r\nplugin…\r\nprint…\r\nraw\r\nread\r\nreset\r\nsecurity…’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’.’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\r\nsend\r\nsend-using-multicast-binding\r\nsend_multicast\r\ntimesync\r\n’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:26 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’version\r\nwrite\r\nzcl…\r\nzdo…\r\n’
2023-11-06 18:48:26 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\n’): ValueError(‘Invalid flag’)
2023-11-06 18:48:27 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 4 of 4)
2023-11-06 18:48:27 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.CPC at 230400 baud
2023-11-06 18:48:27 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (230400 baudrate)
2023-11-06 18:48:27 emscripten universal_silabs_flasher.common[42] DEBUG Connection made: <webserial_transport.WebSerialTransport object at 0x199efa8>
2023-11-06 18:48:27 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:27 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:27 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\xc4\x9e\x1e\x06\x9e\x06\x86\x9e~fx\x06\x98\x1e\x98\x80\xe6\x80\x98\x80\x18f~\x06~\xfe\x9e\xf8\x9e\x00\x18f\xf8fx\x1e\xe6\xf8fx\xe6\x98\x06\x9e\xfe\x9e\x18\x06~\x1ef\x06\x9e\xe0\x9e\x18f\xe6\xe0\xe6\xe6' 2023-11-06 18:48:27 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b'\xe6'): ValueError('Invalid flag') 2023-11-06 18:48:27 emscripten universal_silabs_flasher.common[42] DEBUG Received data b'\x06\x86\x00\x18~\x86\x9e\xe6\x9ef\x06f\xf8fx\x1e\xe6\xf8fxf\x98\x1e\x06\x98\xfe\x18\x18\x18\x86\x00\x18\x1e\x86\x98\xf8\x98\xf8\x98\x1e\x98\x80’
2023-11-06 18:48:27 emscripten universal_silabs_flasher.cpc[42] WARNING Failed to parse buffer bytearray(b’\x80’): ValueError(‘Invalid flag’)
2023-11-06 18:48:28 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 1 of 4)
2023-11-06 18:48:28 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:28 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:29 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 2 of 4)
2023-11-06 18:48:29 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:29 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:30 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 3 of 4)
2023-11-06 18:48:30 emscripten universal_silabs_flasher.cpc[42] DEBUG Sending frame CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’)))
2023-11-06 18:48:30 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’\x14\x00\n\x00\xc4U\xd3\x02\x00\x04\x00\x03\x00\x00\x00\xdb\x12’
2023-11-06 18:48:31 emscripten universal_silabs_flasher.cpc[42] DEBUG Failed to send CPCTransportFrame(endpoint=<EndpointId.SYSTEM: 0>, control=196, payload=UnnumberedFrame(command_id=<UnnumberedFrameCommandId.PROP_VALUE_GET: 2>, command_seq=0, payload=PropertyCommand(property_id=<PropertyId.SECONDARY_CPC_VERSION: 3>, value=b’’))), trying again in 0.10s (attempt 4 of 4)
2023-11-06 18:48:31 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.EZSP at 115200 baud
2023-11-06 18:48:31 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (115200 baudrate)
2023-11-06 18:48:31 emscripten bellows.ezsp[42] DEBUG Resetting EZSP
2023-11-06 18:48:31 emscripten bellows.uart[42] DEBUG Resetting ASH
2023-11-06 18:48:31 emscripten bellows.uart[42] DEBUG Sending: b’1ac038bc7e’
2023-11-06 18:48:36 emscripten bellows.uart[42] DEBUG Connection lost: None
2023-11-06 18:48:36 emscripten bellows.uart[42] DEBUG Closed serial connection
2023-11-06 18:48:36 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.SPINEL at 460800 baud
2023-11-06 18:48:36 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (460800 baudrate)
2023-11-06 18:48:36 emscripten universal_silabs_flasher.common[42] DEBUG Connection made: <webserial_transport.WebSerialTransport object at 0x16cf1b8>
2023-11-06 18:48:36 emscripten universal_silabs_flasher.spinel[42] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’)
2023-11-06 18:48:36 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’~\x83\x02\x02\xe65~’
2023-11-06 18:48:36 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\xf0x\x00x\xf8x\x80xxx\x80x\x80x\x00\x80xx\x00\x80x\x80\x00xxx\xf8x\xf8x\xf8x\xf8x\x80\x00x\x80\x80xxx\x80x\x80xxx\x80x\x80x\x00\xf8x\xf8x\x80x\xf8x\x00x\x00’
2023-11-06 18:48:36 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’x\xf8x\xf8x\x00x\x00x\x00xxxx\x00\x80\x00\xf8x\x80\xf8x\xf8\xf8xxxx\x80\x80xxx\x80x\x80xxx\x80x\xf8\x80x\x80x\x80x\x80\x00\x80\x00\x80\x00x\x00\x80\x00\xf8\x80x\x80x\x80’
2023-11-06 18:48:36 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’x\x80x\x00\x80x’
2023-11-06 18:48:37 emscripten universal_silabs_flasher.spinel[42] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’), trying again in 0.10s (attempt 1 of 4)
2023-11-06 18:48:37 emscripten universal_silabs_flasher.spinel[42] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’)
2023-11-06 18:48:37 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’~\x83\x02\x02\xe65~’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’x\x00\x80x\x00xx\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x80\xf8\x80\x80\x80x\x00x\x00\x80\x00\xf8xxx\xf8x\x80\x00\x80\x00x\x00\x80x\x80xx\x80\x80\x00x\x00xx\x00\x80\xf8\x00x\xf8x’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’xx\x80x\x80\x00\x80\x00x\x80\x00\xf8\x80\x00\x80\x00\x80\x00\x80\x00xxxx\xf8xxx\xf8x\xf8x\xf8x\xf8x\x80\xf8\x00x\xf8xxx\x80xx\x00\x80\xf8\xf8x\x00\x80\x00x\x80’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x00\xf8\x80\x00\x80\x00\x80’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’xxxx\x00\x80\x80\x00x\x00x\x80x\x80\x00\x80\x00\x80\xf8\x80xxx\x00x\x80x\x80x\xf8\x80\x00\x80\xf8\x00x\xf8\xf8x\x80x\x80\x00\x80xx\x80\x00x\x00x\x80x\xf8x\xf8x\x00x\x80x\xf8x\x00’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x80\x80\x80x\x80\x00\x80xx\x80\x00\x80\x00\xf8\x80x\x80\x00\x80xxx\x00\x80x’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.spinel[42] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’), trying again in 0.10s (attempt 2 of 4)
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x80\x80x\x00x\x80\xf8\x80\x00\x80\x80\xf8x\x00\x00x\x80xx\x00\x80\xf8\x00x\xf8x\xf8\xf8x\xf8\xf8x\x00x\xf8x\x80x\x80\x00\x80\x00x\x80\x00\x80x\x80\xf8\x80\x80\x00x\x00\x80\xf8\x80x\xf8x\x00x\xf8x’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’xx\x80x\xf8\x80\x00\x80\x00\x80\x00x\x80\x00\x80x\x00\x80x\x00\x00xxx\xf8x\x80\xf8x\x00xxx\x80xx\xf8x\xf8x\xf8xxx\xf8x\x00xxx\xf8\x80\x00\x80\x00\x80\x00xxxx\x80x\xf8\x80x\x80x\x00\x80x’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x80\x80x\x00x\x80\xf8\x80\x00\x80\x80\xf8x’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x00\x00x\x80xx\x00\x80\xf8\x00x\xf8x\xf8\xf8x\xf8\xf8x\x00x\xf8x\x80x\x80\x00\x80\x00x\x80\x00\x80x\x80\xf8\x80\x80\x00x\x00\x80\xf8\x80x\xf8x\x00x\xf8xxx\x80x\xf8\x80\x00\x80\x00\x80\x00x\x80\x00\x80x\x00\x80x\x00\x00xxx\xf8x\x80\xf8x\x00xxx\x80xx\xf8x\xf8x\xf8xxx\xf8x\x00xxx\xf8\x80\x00\x80\x00\x80\x00xxxx\x80x\xf8’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x80x\x80x\x00\x80x’
2023-11-06 18:48:38 emscripten universal_silabs_flasher.spinel[42] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’)
2023-11-06 18:48:38 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’~\x83\x02\x02\xe65~’
2023-11-06 18:48:39 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’x\x00\x80x\x00xx\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x80\xf8\x80\x80\x80x\x00x\x00\x80\x00\xf8xxx\xf8x\x80\x00\x80\x00x\x00\x80x\x80xx\x80\x80\x00x\x00xx\x00\x80\xf8\x00x\xf8x’
2023-11-06 18:48:39 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’xx\x80x\x80\x00\x80\x00x\x80\x00\xf8\x80\x00\x80\x00\x80\x00\x80\x00xxxx\xf8xxx\xf8x\xf8x\xf8x\xf8x\x80\xf8\x00x\xf8xxx\x80xx\x00\x80\xf8\xf8x\x00\x80\x00x\x80\x00\xf8\x80\x00\x80\x00\x80’
2023-11-06 18:48:39 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’xxxx\x00’
2023-11-06 18:48:39 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x80\x80\x00x\x00x\x80x\x80\x00\x80\x00\x80\xf8\x80xxx\x00x\x80x\x80x\xf8\x80\x00\x80\xf8\x00x\xf8\xf8x\x80x\x80\x00\x80xx\x80\x00x\x00x\x80x\xf8x\xf8x\x00x\x80x\xf8x\x00’
2023-11-06 18:48:39 emscripten universal_silabs_flasher.common[42] DEBUG Received data b’\x80\x00\x80\x00\x80\x00\x80\x00\x80\x00\x80\x80\x80\x80x\x80\x00\x80xx\x80\x00\x80\x00\xf8\x80x\x80\x00\x80xxx\x00\x80x’
2023-11-06 18:48:39 emscripten universal_silabs_flasher.spinel[42] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’), trying again in 0.10s (attempt 3 of 4)
2023-11-06 18:48:40 emscripten universal_silabs_flasher.spinel[42] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’)
2023-11-06 18:48:40 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’~\x83\x02\x02\xe65~’
2023-11-06 18:48:41 emscripten universal_silabs_flasher.spinel[42] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x02’), trying again in 0.10s (attempt 4 of 4)
2023-11-06 18:48:56 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.GECKO_BOOTLOADER at 115200 baud
2023-11-06 18:48:56 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (115200 baudrate)
2023-11-06 18:48:56 emscripten universal_silabs_flasher.common[42] DEBUG Connection made: <webserial_transport.WebSerialTransport object at 0x1338b28>
2023-11-06 18:48:56 emscripten universal_silabs_flasher.common[42] DEBUG Sending data b’3’
2023-11-06 18:48:58 emscripten universal_silabs_flasher.flasher[42] INFO Probing ApplicationType.CPC at 460800 baud
2023-11-06 18:48:58 emscripten zigpy.serial[42] DEBUG Opening a serial connection to ‘/dev/webserial’ (460800 baudrate)

Have you followed all the best practice tips from here about using the Zigbee Coordinator with a long USB extension cable to a USB 2.0 port or USB 2.0 hub (and not a USB 3.x port or hub) to get the Zigbee Coordinator away from all possible sources of EMF/EMI/RMI interference? → Zigbee networks: how to guide for avoiding interference and optimize for getting better range + coverage

Anyway, for the Zigbee router firmware use that one from ITead/Sonoff → Sonoff_Zigbee_Dongle_Firmware/Dongle-E/Router at master · itead/Sonoff_Zigbee_Dongle_Firmware · GitHub

As for the Zigbee Coordinator firmware you can either choose to use the 6.10.3.0 version from ITead/Sonoff which is mature and as such is known to be very stable or you can choose to use the much newer 7.3.x.x versions which many have reported as working well but has not yet proven itself.

Any more context? What firmware image you trying to flash exactly and what variant of the Silabs Firmware Flasher are you using? Are you trying to flash a dongle that has a Zigbee Router firmware?

Quick glance at your logs it looks like you might be trying to flash a firmware that is not Zigbee NCP? Are you maybe trying to flash a MultiPAN-RCP or OT-RCP firmware image and perhaps also using the upstream Silabs Firmware Flasher from Nabu Casa?

Silabs Firmware Flasher is not a tool from ITead/Sonoff, and I do not think that the upstream version of Silabs Firmware Flasher from Nabu Casa has support for others than their SkyConnect dongle so think that you need to use a fork like the one from darkxst here → GitHub - darkxst/silabs-firmware-builder: Silicon Labs firmware builder and try flashing just a standard NCP firmware.

Regardless, note that this is not the right place to post logs from Silabs Firmware Flasher, suggest that you instead open a new issue in the GitHub repository from where you got it, or try this SL Web Flasher:

1 Like

Are there any way to utilise the Bluetooth controller inside, or is it just for Thread/Matter pairing?

I followed the following instruction:

If you had an existing ZHA setup, you will need to remove this entirely.
Make sure to backup your network first!

So I deleted the configuration from ZHA, then commented the zha configuration in cnofiguration.yaml. After programming the RCP FW and restoring the backup (which indicated it failed, but I still get the items), I none of the ZB devices have entities…

Not as a Bluetooth controller, no. There is currently no way to use Bluetooth on this hardware, and I believe that the SDK from Silicon Labs do not offer a full Bluetooth stack so it can not be used as a Bluetooth controller. As I understand the SDK from Silicon Labs only enable it with limitations in Bluetooth devices and Matter devices to use it for commisioning. Bluetooth in it is limited and not a full BLE stack so can not even be used in a Matter controller. If developers make a Matter controller using an EFR32MG21 then they still also need to have a seperate Bluetooth radio as well for BLE commisioning and that needs that do have a full Bluetooth, like for example an EFR32BG21.

Hi.
Which FW i need to use for my ZBDongle-E?

There is (https://github.com/darkxst/silabs-firmware-builder/tree/main/firmware_builds/zbdonglee) are:

  1. ncp-uart-hw-v7.3.2.0-zbdonglee-115200.gbl
  2. ncp-uart-hw-v7.3.2.0-zbdonglee-230400.gb
  3. ncp-uart-hw-v7.3.2.0-zbdonglee-none-115200.gbl

What’s the real difference?
And why are they labeled as “ncp-uart-hw-v*” even though ZBDongle-E definitely doesn’t support Hardware Flow Control?

As wrote in just a few posta above, for the Zigbee Coordinator firmware you can either choose to use the 6.10.3.0 version from ITead/Sonoff which is mature and as such is known to be very stable or you can choose to use the much newer 7.3.x.x versions which many have reported as working well but has not yet proven itself.

You have to test and see if a version and variant works good for you. Regardless, those are all experimental so use at your own risk.

The speeds are just the serial speed so the faster one of those should be better in theory since the this chips on this dongle can handle it but you then propneed to manually enter the higher speed in the software configuration.

Not sure what ”hw” means here as I do not think that pins for hardware flow is connected (and if so it should hopefully just fall back to software flow control). Hardware flow control would be better if this board supported it.

I assume that ”none” means no flow control but then do not know why it also sais ”hw”.

Suggest post those questions in the GitHub repo that @darkxst has for it.

Thanks for your reply.
“hw” in fw filename usually means the RTS/CTS flow control. But also fw usually fall back to no flow control at all, if board does not support requested hw control.

We can assume that the lack of flow control is worse than sw control.
But I’m probably wrong somewhere.

The filenames are generated from the silabs project name, which is ncp-uart-hw. For ZBDongle-E these images are patched to use Software flow control (this is the setting that the official firmware uses). the “none” firmware are patched to disable flow control completely.

ncp-uart-hw-v7.3.2.0-zbdonglee-115200.gbl is the recommended firmware and the one that is selected in the webflasher (once I update it to latest release soon)

Don’t worry to much about flow control or the lack of it. ZBDongle-E with no flow control performs much better than ZB-GW04 v1.2 with hw flowcontrol!

1 Like