A device using AS923 region rules and DwellTime = 1 can receive only 11 bytes at DR2. I observe the TTN server sending 14 bytes of Frame Options. This packet is rejected by my device as violating the packet length rule, and consequently the device fails to operate.
Details follow: When my device has operated without a gateway, it has tracked the data rate/spreading factor down to DR2 and stored this in flash memory. AS923 region, DwellTime=1, DR2 has an 11 byte application payload limit. When the device boots again with a gateway connected to TTN V3 it joins properly (using DR2) . However its next uplink message receives a downlink message response from the server with 26 bytes: 12 bytes of header/MIC and 14 bytes of Frame Options (Fopts) MAC commands.
The device firmware detects the 14 bytes as being illegal (greater than 11 bytes) and so rejects the downlink message. The device cannot function.
The 14-byte Fopts field is as follows (raw data and parsed):
Raw data: 06 07 07 a0 af 8c 50 03 51 ff 00 01 09 35
06 = DevStatusReq (no payload)
07 = NewChannelReq (5 byte payload follows)
03 = LinkADRReq (4 byte payload follows)
09 = TxParamSetupReq (1 byte payload follows - including DwellTime = 1)
I suspect this is a bug - am I right?:
(a) The server should be aware of the 11 byte limit and not attempt to send 14 bytes.
(b) In any event, there is no need for the server to insist on DwellTime = 1 as there is no need for this restriction according to New Zealand regulations. (I posted on this here, but received no replies: Dwell Time and TxParamSetupReq for AS923 in New Zealand)
Is this a known problem? is there a work-around I can apply at the server level or device application level, without changing the LoRaWAN firmware?
Related post: How to set dwelltime to 0 at AS923 in lopy4?