ITead Zigbee 3.0 USB dongle/stick/adapter based on Silicon Labs EFR32MG21

yes spotted that but it made the difference. Possibly the reported issue is not the underlying cause.

UID: zigbee:coordinator_ember:aa287a9cc9
label: Ember EM35x Coordinator
thingTypeUID: zigbee:coordinator_ember
configuration:
  zigbee_port: /dev/ttyUSB0
  zigbee_initialise: false
  zigbee_channel: 11
  zigbee_concentrator: 0
  zigbee_trustcentremode: TC_JOIN_INSECURE
  zigbee_extendedpanid: E052A1BB46A34A8A
  zigbee_flowcontrol: 1
  zigbee_baud: 115200
  zigbee_panid: 65535
  zigbee_powermode: 1
  zigbee_txpower: 0
  zigbee_networksize: 25
  zigbee_linkkey: 5A6967426565416C6C69616E63653039
  zigbee_childtimeout: 86400
  zigbee_networkkey: 22187D8CEEB0C597AC716271A06788C7
  zigbee_meshupdateperiod: 86400 

as supplied firmware and it comes online. As I said I have no idea if I can include any devices but possibly it needs that setting to be able to initialise the controller.

Possibly bad firmware behaviour but you can see hardware flow control works but only if you change that security setting. Possibly needs some form of network and the network is null out of the box?

Possibly after this first run or adding first device it might be possible to go back to default security settings.

For me it didnā€™t. Trying various parameter combos but whenever I hit ā€˜saveā€™ it takes a couple of packets then the exception is raised again then some more packets then the controller thing drops OFFLINE.
Also tried various firmwares meanwhile.
@chris any idea on that exception ?

On a sidenote: what if I did get two controllers to both become online - which one would a device join ?
is there any means to control that ?

Thanks for confirming this was fluke not solution. I know these are not full production models so possible it is early niggle.

Have all of the properties configured yet or is it failing when it is reading them? Mine was passing a few packets then a timeout and none of the properties were set. The only other thing I did other than change that property was a hard restart but again seems unlikely to be the solution.

I have another one that I can try in another openHabian install and see if it behaves the same or differently.

Are the values for panid and networkkey the same you set at initialisation?
I get 65535 for panid no mather what I set it to, or that is when restoring the backup string from my Bitronvideo stick.
And networkkey changes sometimes I have not identified yet.
Edit: However the backup string seems to contain the right key.
Not sure about the extended panid, it my be a suspect to keep an eye on too.

Something is not right with these settingsā€¦

Hi Nils,

This is the other stick. This one had no issues.

UID: zigbee:coordinator_ember:d3ba1aca04
label: Ember EM35x Coordinator
thingTypeUID: zigbee:coordinator_ember
configuration:
  zigbee_port: /dev/ttyUSB0
  zigbee_initialise: false
  zigbee_channel: 11
  zigbee_concentrator: 0
  zigbee_trustcentremode: TC_JOIN_INSECURE
  zigbee_extendedpanid: 600633B85818CAB0
  zigbee_flowcontrol: 1
  zigbee_baud: 115200
  zigbee_panid: 10746
  zigbee_powermode: 1
  zigbee_txpower: 0
  zigbee_networksize: 25
  zigbee_linkkey: 5A6967426565416C6C69616E63653039
  zigbee_childtimeout: 86400
  zigbee_networkkey: BBB2723BED9247AC0F80AD8C8082C556
  zigbee_meshupdateperiod: 86400

So the other with panid 65535 is probably still not correctly setup.

I have tried many times, I did manage to restore the backup from my Bitron stick onto one of the Itead sticks once.
But I could not replicate this.
I did not keep track on witch of my two Itead sticks it did go wellā€¦

Deleted the thing on the original stick and openHAB and created again and this time.

UID: zigbee:coordinator_ember:b8bed88295
label: Ember EM35x Coordinator
thingTypeUID: zigbee:coordinator_ember
configuration:
  zigbee_port: /dev/ttyUSB0
  zigbee_initialise: false
  zigbee_channel: 11
  zigbee_concentrator: 0
  zigbee_trustcentremode: TC_JOIN_INSECURE
  zigbee_extendedpanid: 616DC397BDCFF0BD
  zigbee_flowcontrol: 1
  zigbee_baud: 115200
  zigbee_panid: 22082
  zigbee_powermode: 1
  zigbee_txpower: 0
  zigbee_networksize: 25
  zigbee_linkkey: 5A6967426565416C6C69616E63653039
  zigbee_childtimeout: 86400
  zigbee_networkkey: 5F2296E7EFE8388B0EFA182ACBCF779D
  zigbee_meshupdateperiod: 86400

Hmm.
I kept getting that exception (see above) throughout two sticks, different OH and firmware versions and various settings.
When I changed that panid and reset the controller it started working. Panid with my stick was 65535 before, too.

For new thing it is all zero.

If flashed or fails to initialise first time does this need a new thing or resetting these values to initial values?

On the stick yes if from factory (and probably after flashing, didnā€™t try).
But PAN ID is stored in OH thing which then writes(?) it to the stick so unless you delete & recreate the thing itā€™s persistent.
Apparently 65535 is chosen for some reason I donā€™t know but is probably not a valid value.

EDIT: I had another thing for another controller albeit disabled that also had the PAN ID 65535 set.
Possibly that same ID 2 times was causing the exception ?

See also
Joining ZigBee networks or the full story
Silicon Labs Community

Thanks for the insights. I hope I have now got a working stick to test with but I must do some research about how panid is generated.

I have just intentionally created another thing also pointing at the same port knowing it would fail and ended up with panid 65535 so that value is possibly assigned on a failed initialisation.

Delete other thing and set panid to 0 and external to 0000000000000000 which shows auto and the device looks better again when it comes back online.

I did the same to the one time I managed to get backup/restore to work.
Do you have firmware with software flow control on one of the sticks?
I was thinking to try that.

Some observations:

The values seen in UI (these can be seen in /var/lib/openhab/jsondb/org.openhab.core.thing.Thing.json too)
and the output from:

openhab> zigbee netbackup

Should contain the same values.
(To get a better view of what is what try to restore the backup string. remember toput the string in quotes).
Sometimes they do not match, but the mesh will work anyway, because it is the values in the stick that is used.

Oh, I missed this editā€¦
The cts/rts connections might not be missing, but mybe not working 100%

I need to have a look. I saw a recent statement that said Silabs were going to change some packet formats, and this would break things as it wasnā€™t backward compatible. IT might be related to that - what version of firmware is this?

6.7.9

As the exception seems to have gone away when I changed PAN IDs on some controller things Iā€™m inclined to believe thatā€™s related to PANID 65535 or maybe that there were 2 things with the same PAN ID.

Sounds as if engineer did not add PCB lines? ā†’ https://github.com/xsp1989/zigbeeFirmware/issues/15

Hi,

Today my controller has panid 65535 according to the UI with no actions from me and as it has no devices so I donā€™t suppose a lot of interaction with the binding. I will set debug on to track what is happening.

What is the easiest way to check NVM on the stick to see if the value on the stick has changed?

I have now flashed one of the controllers with ncp-uart-sw_679_115200.gbl and the device has panid 53910 in the UI. Will monitor both sticks.

  zigbee_flowcontrol: 2
  zigbee_baud: 115200
  zigbee_panid: 53910

See above in one of my previous postings.
Use openhab-cli and execute zigbee netbackup

1 Like

Note! Developers and users who tested this as a Zigbee coordinator now believe that device paring issues with this Zigbee 3.0 dongle from ITead seem to be due to extreme sensitivity to component and environmental noise in the form of electromagnetic interferences as they discovered that device pairing works much better if use a long USB extension cable and get it as far away from other electronic appliances as possible (including the computer that you run your home automation application software on as well as any devices such as example external harddrives or storage devices, and power-supplies, etc.).

Their troubleshooting has revealed that CCA fail count gets much lower with a USB extension cord.

It is true that using a USB extension cable and trying to keep it away from other possible sources that can interfere with receiving signals is the general recommendation for all RF radio dongles for home automation control, but in this specific case, the interference symptoms are so extreme that users are reporting not being able to pair any devices at all unless getting it some distance away from their computer plus devices/appliances like external harddrives (and of course any WiFi access points, etc.).

Note! As you can see from the pictures the radio chip and the crystal does circuit does not have a EMF shielding (metal plate cover) which means that this board will be very sensitive with its current hardware design will have very high receive sensitivity to electromagnetic interference (EMI) / radio-frequency interference (RMI). This means that it will be extra important to keep it away from any other electronic devices or appliances that may generate an electromagnetic field (EM Field) or send our interfering radio signals. That includes the computer that you run your home automation application software on as well as any devices such as for example external harddrives or storage devices, power-supplies, etc., and of course any Wi-Fi access points or routers nearby. It also means that the dongle in its current hardware revision is unlikley to ever pass FCC certification. If adding electromagnetic shielding to your other devices/appliances is not possible then one workaround is to use the dongle with a long USB extension cable to get it away as far as possible from any sources of electromagnetic interferances.

PS! As you can see from the pictures the radio chip and the crystal does circuit does not have a EMF shielding (metal plate cover) which means that this board will be very sensitive with its current hardware design will have very high receive sensitivity to electromagnetic interference (EMI) / radio-frequency interference. This means that it will be extra important to keep it away from any other electronic devices or appliances that may generate an electromagnetic field (EM Field) or send our interfering radio signals. It also means that the dongle in its current hardware revision is unliley to pass FCC certification.

2 Likes