Is it possible to configure the TX power for GWs on a per-GW basis? Say, if I have 2 GW, one of which supports up to 28 dBm TX power, while the other supports only up to 20 dBm. I would like both to transmit at the maximum, is there a way to configure this separately per GW?
I know you can change the TX power in the loraserver.toml config file, but that would change it for all GW within the Chirpstack server.
Thank you, @eugenev and @brocaar. Unfortunately, it is proving difficult to configure my GWs locally to accept 28 dBm but still transmit at their respective maximums. I have 2 GW: a Laird RG1XX capable of transmitting at 28 dBm, and a Pycom PyGate that has 20 dBm as the max. Unfortunately, when the Pygate receives the command to transmit at 28 dBm, it fails to do so because 28 is an invalid setting for this GW.
I don’t suppose any of you have experience with a Pygate and this specific dilemma?
Hi There is a problem with the UDP packet forwarder that causes this very same problem. I don’t know how the Pygate works, and I don’t know if the problem you are experiencing is coming from the packet forwarder but if it uses the standard Semtech SX1301 (SX1308) UDP packet forwarder then you can try this packet forwarder where I fixed that problem. https://github.com/JoToSystems/LoraPacketForwarder
@danalvarez, Here is an idea to try. The command which is sent to the SX1301 (SX1308) chip to set actual transmit power is the arithmetic subtraction of the power command from the server less the antenna gain. So, as an example, if you want to transmit at 20dBm and the server is commanding at +27dBm then set the antenna gain to be 7dB.
The arithmetic calculation is performed first and then the resulting value is checked against the tx_tul? values in the global_conf.json file. As an example of the transmit power table, here is the tx_lut value for a transmit power of 20dBm
So my suggestion would be to find the power the server is sending (which I think is +28dBm from you error message) and since you want to transmit at +20dBm then set Antenna Gain to 8dB.
One last check before you do. Check there is a tx_lut entry for 20dBm and if not then find the next lowest and adjust Antenna Gain so the resultant matches the value in the tx_lut table. As an example, if there is not entry for 20dBm but the next lowest is 18dBm then the Antenna Gain should be set to 28-18=10dB.
The problem with the packet forwarder code is it want to find an exact match in the tx_lut table whereas it should find the next lowest value and use that.
Thank you so much for your input! I prefer your solution significantly over what I had done to solve this, which was to change the rf_power param in the lookup table directly to "rf_power": 28. Your idea however seems a lot cleaner, tested it just now and it worked just fine.
One last question would be, have you any idea whether the EU868 lookup table works for US902 devices? That is, are the amplifier gains the same regardless of the region? Unfortunately, the config.json file for US902 in the Packet Forwarder repo does not have a LUT, only the EU868 file has one.