OK, so this is mainly an issue with the ESPEasy template?
What should I do now? (apart from upgrading the FW)
I guess the preferred settings are: RX2 freq. at 869.525 and Rx2 data rate at DR3
The rest is OK I guess?
Just to be sure, I will also call out all mac get command on an OTAA node to see what is set during OTAA and compare it with the settings I am now using to make sure I don’t miss anything.
I took a bit more time to look at your device and actually it seems that the problematic part is the RX1 delay at boot time. Your device actually never received downlinks because of this mismatch.
If you look at the original picture of your MAC settings that you have posted above, both RX1 delay and Desired RX1 delay were set to 5 seconds, but your firmware I think actually has at boot time RX1 delay set to 1.
After I have edited out your RX1 delay to 1 (second) and resetted the MAC state I finally got responses to the RxTimingSetupReq and RxParamSetupReq, so the end device really is capable of answering these, provided that it hears them out at the right time.
I think that the current settings that are set on your end device should be good. In general I recommend trying to get the boot MAC state of the end device and compare it with the MAC settings - if the parameters don’t match, you get issues like these where the downlinks are sent too late because the end device expects them to arrive 1 second after the uplink, while the Network Server schedules them 5 seconds afterwards.
OK, and what are the “current” settings? After your post I noticed you have made some more changes to them.
So I need to double check that I am setting the correct RX1 delay (code seems to suggest it though) to 5 sec.
RX2 should be DR3 for sure as we want to use SF9 for RX2.
RX2 freq. should be 869.525 MHz (I noticed it is wrong in the ESPEasy template as is (was?) in many others due to an error in the sample config back when the vendor templates were introduced)
Anything else?
I’m not sure the mac state is actually saved on the RN2483 module, so I’m not sure if the module will return in the current state if I power cycle it.
So better to make sure the correct values are set to the module at boot by my software.
I’m also receiving a downlink message on the device when I send an “UNCONFIRMED_UP” message. Some notes:
the “UNCONFIRMED_UP” type is noted in the uplink json viewer on the gateway and device
my device live data does NOT show this downlink message
my gateway shows this downlink message is sent 0.4s after receiving the unconfirmed uplink message as “gs.down.send” and it looks like it’s an unconfirmed down message (starts with 60 in the payload):
60 6a f1 0e 22 8b 00 00 03 30 00 00 71 03 30 00 ff 01 06 ae 80 c9 cb
I get the same behavior when I send a unconfirmed message to the helium network.
It seems to be some kind of complaint response but not sure.
They seem to be LINK_ADR_REQ downlinks from the gateway. Apparently for > v1.0.4 the device needs to answer the request even if ADR has been disabled on the device. Odd though esp when trying to minimize downlinks.
Totally impossible to comment as you’ve not said what the device is beyond to say that there aren’t that many devices around with 1.0.4 and virtually none >1.0.4
Whereby the one work-around suggestion of “setting the DR before each uplink” seems a bit ambiguous or is it assumed to require TXParamSetupReq, RXParamSetupReq and various DR offsets etc.
Since TTN currently ignores ADR=0 and ADRACKAns 0, and continues to spawn a bunch of downlinks on every message send – it would be worthwhile to confirm the various data rate mac commands patches required by network prior to every uplink message. This seems to apply across all devices & lorawan v.
For now I’ll assume it’s a refresh to the data rate transmit and receive parameters: TXParamSetupReq & RXParamSetupReq.