xsp1989 / zigbeeFirmware

204 stars 21 forks source link

[REQUEST] Suggest change to lower default transmit power like 8dBm or 9dBm by default? #45

Closed Hedda closed 1 year ago

Hedda commented 1 year ago

@xsp1989 To continue the discussion from https://github.com/Koenkk/zigbee-herdsman/issues/319

I would like to suggest that should consider lowering the firmware default for transmit power (TX power) to maybe 8dBm or 9dBm.

Since this value is still configurable via software and not hardcoded or locked, end-users who wish to set it higher will still have the option to specify other transmit_power / tx_power in Zigbee gateway applications like Home Assistant's ZHA integration, Zigbee2MQTT, and others. So to clarify this to end-users; lowering the default transmit power (TX power) does not remove the option for them to change it to a higher setting if they want, as all it does is set it to a standard setting if no other setting is set in the software application.

FYI, I read that ITead ship their Sonoff ZBDongle-P adapter with 9dBm RF Transmit Output Power, which they initially primarily set to meet the International and Federal Equipment Authorization specification requirements set by FCC and ETSI governance bodies to get the legal certification in order to sell those as radio equipment in the USA / North America, Japan, and the Europen Union.

By the way, I also read that Elelabs Zigbee adapter (which uses Silicon Labs chips) ship with firmware that has TX power 8dBm by default.

The main reason for wanting a lower transmit power setting by default is not a legal reason by rather due to the fact that the reception on the Zigbee Coordinator / Zigbee Router is not changed so just raising its transmit power only makes the Zigbee Coordinator / Zigbee Router ”scream louder” but not actually ”listen better”, and then users will normally get weird symptoms such as some very far away devices connecting directly to the Zigbee Coordinator / Zigbee Router since those can ”hear” the Zigbee Coordinator / Zigbee Router fine but when those same devices try to send back their weak signals the Zigbee Coordinator / Zigbee Router can not ”hear” them as good, because the Zigbee Coordinator / Zigbee Router has not improved.

Another reason why you want to lower the firmware default for transmit power (TX power) is that in many countries (not all) it is actually not legal to sell radios internationally that have too high transmit power set by default, especially in the USA / North America and Japan, however, that also depends heavily on which frequency range (e.i. Zigbee channel) that it will be transmitting on, (for example, in Europe the transmitter power will not exceed +3 dBm output on Zigbee channel 26 but for all the other Zigbee channels you can go to 20dBm in the European Union).

image

https://www.eetimes.com/sorting-out-zigbee-power-options/

https://docs.silabs.com/bluetooth/5.0/general/system-and-performance/tx-power-limitations-for-regulatory-compliance-etsi-fcc

https://community.silabs.com/s/article/maximum-allowed-power-for-zigbee-applications-under-etsi-en-300-328?language=en_US

https://www.digi.com/resources/documentation/Digidocs/90001506/reference/r_cmd_pl.htm%3FTocPath%3DAT%2520commands%257CMAC%252FPHY%2520commands%257C_____5

https://www.digi.com/resources/documentation/Digidocs/90002002/Content/Reference/r_cmd_PL.htm?TocPath=AT%20commands%7CRF%20interfacing%20commands%7C_____1

https://www.nxp.com/docs/en/application-note/AN2975.pdf

xsp1989 commented 1 year ago

When zigbee performs routing calculations, it will take into account both receiving and sending. In the routing device, there will be a neighbor table, and it will send the signal strength it hears to surrounding devices by broadcasting link status packets. For the terminal device, if the coordinator cannot hear the data sent by itself, will the coordinator send ack at this time, at this time, the terminal device will rejoin, so as to solve the problem that only the coordinator can hear the data , and the coordinator cannot hear the end device sending data.