tl;dr section
- The radios are too close to each other.
- When you’ve got a foghorn on one ear, you won’t hear the piano across the room.
- The cliff-effect: it works fine with a dozen devices. at 30, things get messy. at 100?
The Philosophy: Do One Thing Well
Part of it is probably philosophy… specifically what is commonly described as the UNIX philosophy…
Do one thing and do it well. Prefer simplicity.
But that isn’t a very compelling argument… most who hold this opinion came about it the hard way.
My Credentials (or lack thereof)
here’s my disclaimers first.
- I’m a sysadmin & software engineer by trade [specifically what Google labeled as Site Reliability Engineering back around 2010].
- I’m not an RF engineer, not a HAM, nor an EE [Electrical Engineer].
- I haven’t bought one, because the math doesn’t look good.
- I used Gemini to do some of the research, but didn’t copy/paste this post. It’s my words, refined by way of arguing with a clanker [consider it a more literate rubber ducky].
The Hardware
The basics: the SLZB-MR series is basically an ESP32, an Ethernet PHY [on the SLZB-06, probably a LAN8720], and multiple 802.15.4-capable radio SOCs [some combination of the TI CC2652/2674 series or the SiLabs EFR32 series], a PCB [natch], a few antenna connectors, and a bunch of much more minor components that mostly aren’t relevant to this discussion. I may introduce a few later though.
Zigbee, at least 3.0, uses the 2400MHz band. The wavelength at 2400MHz is roughly 12.5cm or 5 inches. This’ll be important later, but the only important part is the number.
There’s a teardown of the SLZB-MR1 here: SMLight SLZB-MR1 Multi-Coordinator Review - SmartHomeScene and there’s a photo of the PCB here.
A slightly more zoomed in photo.
These photos ground the discussion in an articulable reality. On the left side are two sections outlined in white, comprising the two Zigbee/Thread chips and some supporting components… they clearly are within an inch of each other, and if you remember that 12.5cm figure from earlier, you can see that they’re well within that.
The Physics
Why this matters: everybody remembers the inverse-square law from high-school science… but within one wavelength, the inverse-square law doesn’t apply to signal attenuation. Instead, the transmitters/antennae magnetically couple.
As such, when one radio is transmitting, the other radio is deafened… it can’t hear anything else. If you wish, consider someone yelling in one ear while somebody else across the room is whispering. You probably can’t clearly hear either of them.
Now, the SMLIGHT engineers aren’t dummies, they took some reasonable efforts to prevent damage, by way of a switch [MUX1574] that, when one radio is transmitting, the other is disconnected from its antenna.
But this just makes it deaf again…
So, when that radio is deaf but a far station is sending a message, clearly it won’t hear it. This is ok… to a point. Because it will be retransmitted by whichever router was doing the last-hop relay [this is worse if it’s a battery-powered device connecting directly to the coordinator]. So the message doesn’t get lost, just delayed. But it does use more battery power in some cases.
In the lightly-loaded case, you won’t notice other than 10s of msec delay, maybe 100 [barely noticeable to humans]. But as the number of devices in your Thread or Zigbee network goes up and the contention/duty-cycle goes up, the more likely messages will be lost entirely or at least delayed enough to be annoying.
The more retransmits there are, the contention factor goes up, the more noise there is, the less real messages will be received on time.
What’s worse… this will sneak up on you. It’ll go from barely noticeable to complete breakdown.
The “It Works for Me” trap
Of course, those who say “It Works For Me” may never have enough traffic to matter. But Richard P Feynman pops his head up about now… “For a successful technology, reality must take precedence over public relations, for Nature cannot be fooled”.
The Engineering Reality
For those who read this far and think I’m out of my mind… after all, the people who designed this have to be smarter than the author of this post…
It’s far more complicated than that. There’s a concept in engineering: anybody can build a bridge. Many people can build a bridge that won’t collapse under load. But an engineer can figure out the cheapest way to build a bridge that [barely] won’t collapse under load.
And yes, those folks have put in a lot of effort. They also wrote papers on the challenges and solutions.
e.g. this from Silicon Labs [they designed the EFR32 chips].
They have the following suggestions, albeit they’re largely about WiFi vs Zigbee:
- Keep the channels as far away as possible.
- This helps, but doesn’t eliminate the physics issues, it just reduces the worst of the impacts.
- Keep the antennas separated
- this better applies to a tablet which you can put one antenna on one edge and the other antenna on the other edge. Not when your entire device is about 6inches/15cm long.
- Have the radios aware of each other, have them ask permission from their neighbors via PTA [Packet Traffic Arbitration].
- this helps with letting your neighbor plug their ears first… but doesn’t help when it’s about hearing a zigbee sensor 20 feet away that won’t check for a different channel’s messages before sending its message.