Custom ADR outside from LoRaServer


I would like to start to implement my own ADR Algorithm (using metrics that are not provided to LoRaServer).
Any idea about a start point ?
As a first thing, I will have to disable LoRa Server ADR : how to proceed ?
Then I have to find gRPC modules that I can use to use my own ADR : is there documentation on ADR architecture some where ?



You can implement the network-controller interface to receive uplink mac-commands and meta-data. For downlink mac-commands you can call this method:


Thanks a lot for these information. How can I disable LoRaSERVER ADR to disable its mac-commands ?
I do not want 2 ADR MAC commands to be sent simultneously.


Please see the loraserver.toml configuration file :slight_smile:

I have just read loraserver.toml
The only section that deals with dr is :

So I guess that I have to set min_dr and max_dr for all frequencies to the same value ?
That’s correct ?

Nop Micro

I think he means these parameters:

  # Disable mac-commands
  # When set to true, LoRa Server will not handle and / or schedule any
  # mac-commands. However, it is still possible for an external controller
  # to handle and / or schedule mac-commands. This is intended for testing
  # only.

  # Disable ADR
  # When set, this globally disables ADR.
1 Like


I am back …
I still looking for information to call a MACCommandQueue using a Pyhon client.

I do not know how to start. I guess that LoRaServer gRPC server is listening on localhost:PORT.
What is PORT ?

Is ther any snippet code in python somewhere ?

I will then have to call this method :
rpc CreateMACCommandQueueItem(CreateMACCommandQueueItemRequest) returns (google.protobuf.Empty) {}