RN2903 ADR channel bug

I have discovered the LinkADRReq commands aren’t being processed properly by the RN2903. After a factory reset and join, the RN2903 appears to be ignoring the first ADR mac command. Upon receiving the second downlink with the LinkADRReq, as you will see below, the RN2903 appears to be setting the channels in a strange way, completely unexpected. I hesitate to say the channels are being set randomly, because the channels are set the exact same way each time.

I have seen the ADR commands work fine with the 2903, but then they mysteriously stopped. If I switch to TTN, the channels are set properly.

In the capture below, it appears the mac command payload is right, but the 2903 channels aren’t getting set properly.

In the following capture is the 2nd ADR downlink, the first hex value is last part of the deveui, the next 3 hex values are the clock.) The mac commands are being displayed by a debug version of the firmware version 1.0.5.

The payload appears to be:

03 00 0000 70 (all channels off)

03 31 00FF 11 (subband 2 on, is that one transmission or 1 repeat- nbTrans or nbRep?)

05 0A (RX param DR offset 0, DR 10)

B8288D

D6C4 0000 0003 edcf lora<< mac tx cnf 4 00
D6C4 0000 0003 edd0 >
D6C4 0000 0003 edd0 lora<< D:Creating MAC Response
D6C4 0000 0003 edd2 24
D6C4 0000 0003 edd2 addnew skipping entry:7 dataSource:
D6C4 0000 0003 edd4 resultDataOverwrite:70
D6C4 0000 0003 edd5 lora<< D:App : 00
D6C4 0000 0003 edd6 11
D6C4 0000 0003 edd7 addnew skipping entry:7 dataSource:
D6C4 0000 0003 edd8 resultDataOverwrite:71
D6C4 0000 0003 edd9 lora<< D:Mac : 80D8A44A0380020004
D6C4 0000 0003 eddb 27
D6C4 0000 0003 eddb addnew skipping entry:7 dataSource:
D6C4 0000 0003 eddd resultDataOverwrite:72
D6C4 0000 0003 edde lora<< ok
D6C4 0000 0003 ee90 lora<< D:Processing MAC commands
D6C4 0000 0003 ee91 26
D6C4 0000 0003 ee94 lora<< D:MAC : 0300000070033100FF11050AB8288D

D6C4 0000 0003 ee9a 39
D6C4 0000 0003 ee9b lora<< mac_tx_ok

D6C4 0000 0004 12f9 cmd function:20
D6C4 0000 0004 12fa lora>> mac get ch status 0
D6C4 0000 0004 12fc lora<< off
D6C4 0000 0004 12fd lora>> mac get ch status 1
D6C4 0000 0004 12ff lora<< off
D6C4 0000 0004 1300 lora>> mac get ch status 2
D6C4 0000 0004 1302 lora<< off
D6C4 0000 0004 1303 lora>> mac get ch status 3
D6C4 0000 0004 1305 lora<< on
D6C4 0000 0004 1306 lora>> mac get ch status 4
D6C4 0000 0004 1308 lora<< on
D6C4 0000 0004 1308 lora>> mac get ch status 5
D6C4 0000 0004 130a lora<< on
D6C4 0000 0004 130b lora>> mac get ch status 6
D6C4 0000 0004 130d lora<< off
D6C4 0000 0004 130e lora>> mac get ch status 7
D6C4 0000 0004 1310 lora<< on
D6C4 0000 0004 1311 lora>> mac get ch status 8
D6C4 0000 0004 1313 lora<< off
D6C4 0000 0004 1314 lora>> mac get ch status 9
D6C4 0000 0004 1316 lora<< off
D6C4 0000 0004 1317 lora>> mac get ch status 10
D6C4 0000 0004 1319 lora<< off
D6C4 0000 0004 131a lora>> mac get ch status 11
D6C4 0000 0004 131c lora<< on
D6C4 0000 0004 131d lora>> mac get ch status 12
D6C4 0000 0004 131f lora<< off
D6C4 0000 0004 1320 lora>> mac get ch status 13
D6C4 0000 0004 1322 lora<< on
D6C4 0000 0004 1323 lora>> mac get ch status 14
D6C4 0000 0004 1325 lora<< off
D6C4 0000 0004 1326 lora>> mac get ch status 15
D6C4 0000 0004 1328 lora<< off
D6C4 0000 0004 1329 lora>> mac get ch status 16
D6C4 0000 0004 132b lora<< off
D6C4 0000 0004 132c lora>> mac get ch status 17
D6C4 0000 0004 132e lora<< off
D6C4 0000 0004 132f lora>> mac get ch status 18
D6C4 0000 0004 1331 lora<< off
D6C4 0000 0004 1331 lora>> mac get ch status 19
D6C4 0000 0004 1334 lora<< off
D6C4 0000 0004 1334 lora>> mac get ch status 20
D6C4 0000 0004 1337 lora<< off
D6C4 0000 0004 1337 lora>> mac get ch status 21
D6C4 0000 0004 1339 lora<< off
D6C4 0000 0004 133a lora>> mac get ch status 22
D6C4 0000 0004 133c lora<< off
D6C4 0000 0004 133d lora>> mac get ch status 23
D6C4 0000 0004 133f lora<< off
D6C4 0000 0004 1340 lora>> mac get ch status 24
D6C4 0000 0004 1342 lora<< on
D6C4 0000 0004 1343 lora>> mac get ch status 25
D6C4 0000 0004 1345 lora<< on
D6C4 0000 0004 1346 lora>> mac get ch status 26
D6C4 0000 0004 1348 lora<< on
D6C4 0000 0004 1349 lora>> mac get ch status 27
D6C4 0000 0004 134b lora<< on
D6C4 0000 0004 134c lora>> mac get ch status 28
D6C4 0000 0004 134e lora<< on
D6C4 0000 0004 134f lora>> mac get ch status 29
D6C4 0000 0004 1351 lora<< on
D6C4 0000 0004 1352 lora>> mac get ch status 30
D6C4 0000 0004 1354 lora<< on
D6C4 0000 0004 1355 lora>> mac get ch status 31
D6C4 0000 0004 1357 lora<< on
D6C4 0000 0004 1357 lora>> mac get ch status 32
D6C4 0000 0004 135a lora<< on
D6C4 0000 0004 135a lora>> mac get ch status 33
D6C4 0000 0004 135c lora<< on
D6C4 0000 0004 135d lora>> mac get ch status 34
D6C4 0000 0004 135f lora<< on
D6C4 0000 0004 1360 lora>> mac get ch status 35
D6C4 0000 0004 1362 lora<< on
D6C4 0000 0004 1363 lora>> mac get ch status 36
D6C4 0000 0004 1365 lora<< on
D6C4 0000 0004 1366 lora>> mac get ch status 37
D6C4 0000 0004 1368 lora<< on
D6C4 0000 0004 1369 lora>> mac get ch status 38
D6C4 0000 0004 136b lora<< on
D6C4 0000 0004 136c lora>> mac get ch status 39
D6C4 0000 0004 136e lora<< on
D6C4 0000 0004 136f lora>> mac get ch status 40
D6C4 0000 0004 1371 lora<< on
D6C4 0000 0004 1371 lora>> mac get ch status 41
D6C4 0000 0004 1374 lora<< on
D6C4 0000 0004 1374 lora>> mac get ch status 42
D6C4 0000 0004 1376 lora<< on
D6C4 0000 0004 1377 lora>> mac get ch status 43
D6C4 0000 0004 1379 lora<< on
D6C4 0000 0004 137a lora>> mac get ch status 44
D6C4 0000 0004 137c lora<< on
D6C4 0000 0004 137d lora>> mac get ch status 45
D6C4 0000 0004 137f lora<< on
D6C4 0000 0004 1380 lora>> mac get ch status 46
D6C4 0000 0004 1382 lora<< on
D6C4 0000 0004 1383 lora>> mac get ch status 47
D6C4 0000 0004 1385 lora<< on
D6C4 0000 0004 1386 lora>> mac get ch status 48
D6C4 0000 0004 1388 lora<< on
D6C4 0000 0004 1389 lora>> mac get ch status 49
D6C4 0000 0004 138b lora<< on
D6C4 0000 0004 138b lora>> mac get ch status 50
D6C4 0000 0004 138e lora<< on
D6C4 0000 0004 138e lora>> mac get ch status 51
D6C4 0000 0004 1390 lora<< on
D6C4 0000 0004 1391 lora>> mac get ch status 52
D6C4 0000 0004 1393 lora<< on
D6C4 0000 0004 1394 lora>> mac get ch status 53
D6C4 0000 0004 1396 lora<< on
D6C4 0000 0004 1397 lora>> mac get ch status 54
D6C4 0000 0004 1399 lora<< on
D6C4 0000 0004 139a lora>> mac get ch status 55
D6C4 0000 0004 139c lora<< on
D6C4 0000 0004 139d lora>> mac get ch status 56
D6C4 0000 0004 139f lora<< on
D6C4 0000 0004 13a0 lora>> mac get ch status 57
D6C4 0000 0004 13a2 lora<< on
D6C4 0000 0004 13a3 lora>> mac get ch status 58
D6C4 0000 0004 13a5 lora<< on
D6C4 0000 0004 13a5 lora>> mac get ch status 59
D6C4 0000 0004 13a7 lora<< on
D6C4 0000 0004 13a8 lora>> mac get ch status 60
D6C4 0000 0004 13aa lora<< on
D6C4 0000 0004 13ab lora>> mac get ch status 61
D6C4 0000 0004 13ad lora<< on
D6C4 0000 0004 13ae lora>> mac get ch status 62
D6C4 0000 0004 13b0 lora<< on
D6C4 0000 0004 13b1 lora>> mac get ch status 63
D6C4 0000 0004 13b3 lora<< on
D6C4 0000 0004 13b4 lora>> mac get ch status 64
D6C4 0000 0004 13b6 lora<< on
D6C4 0000 0004 13b7 lora>> mac get ch status 65
D6C4 0000 0004 13b9 lora<< on
D6C4 0000 0004 13ba lora>> mac get ch status 66
D6C4 0000 0004 13bc lora<< on
D6C4 0000 0004 13bd lora>> mac get ch status 67
D6C4 0000 0004 13bf lora<< on
D6C4 0000 0004 13bf lora>> mac get ch status 68
D6C4 0000 0004 13c2 lora<< on
D6C4 0000 0004 13c2 lora>> mac get ch status 69
D6C4 0000 0004 13c4 lora<< on
D6C4 0000 0004 13c5 lora>> mac get ch status 70
D6C4 0000 0004 13c7 lora<< on
D6C4 0000 0004 13c8 lora>> mac get ch status 71
D6C4 0000 0004 13ca lora<< on