TTN EU inconsistent to LoRAWan Spec



  • I just stumbled over an inconsistency between TTN EU and the LoRa WAN specification. For Downlink messages with DR < 4 TTN uses the RX2 window with DR=3 (SF9BW125) at 869,525 MHz and a power level of 27. This does deviate from the LoRa Spec in two aspects:

    a) I would expect that for a downlink message at first the RX1 window ist used, with the data rate and frequency matching the Uplink message.
    b) If the RX2 windows is used, DR0 = SF12BW125 should be used. That is what the PyCom devices expect for the RX2 window.

    The Pycom devices seem to implement the LoRAWAN spec. As a consequence, downlink messages for low data rates are lost.

    @bmarkus : How is the behavior in the loriot network?
    According to the discussion in the TTN Forum, OTAA join messages are not affected.

    Edit: When using OTAA join, the RX2 window parameters are set be the server, which then allows devices to receive the downlink messages. I also have seen that the OTAA join response is sent in accordance to the LoRaWAN spec. So this glitch "only" affects ABP join. So maybe the optional dr=x parameter in lora.join() could be used to specify the RX2 datarate in case of ABP join.



  • @robert-hh said in TTN EU inconsistent to LoRAWan Spec:

    I just stumbled over an inconsistency between TTN EU and the LoRa WAN specification. For Downlink messages with DR < 4 TTN uses the RX2 window with DR=3 (SF9BW125) at 869,525 MHz and a power level of 27. This does deviate from the LoRa Spec in two aspects:

    a) I would expect that for a downlink message at first the RX1 window ist used, with the data rate and frequency matching the Uplink message.
    b) If the RX2 windows is used, DR0 = SF12BW125 should be used. That is what the PyCom devices expect for the RX2 window.

    The Pycom devices seem to implement the LoRAWAN spec. As a consequence, downlink messages for low data rates are lost.

    @bmarkus : How is the behavior in the loriot network?

    @robert-hh LORIOT EU868 settings are compliant to the LoRaWAN Regional Specification, see channel plan:

    0_1535355274463_918ed79a-4566-4454-a9be-ce3624589ddc-image.png



  • @jcaron The network is free to decide, whether the downlink is sent in the RX1 or RX2 window, but the LoRaWAN spec has a fixed setting for RX2, which is SF12BW125, and that is also the default in the Pycom firmware. That setting is not used by TTN. Instead they use SF9BW125, and to cope with the possibly worse reception condition, the transmit level is increased to 27dB max.
    This is a problem with devices set up with ABP join, since the RX2 parameters cannot be configured. With OTAA join, the network will transmit the changed RX2 parameters.



  • @robert-hh my understanding is that the network is free to use either RX1 or RX2.

    The channel and data rate for RX1 is based on the uplink settings + offsets set by the network and sent via MAC commands (too lazy to check right now if that’s in the join accept or a separate MAC command), while for RX2 they are based solely on network settings (same laziness).



Pycom on Twitter