Class-B Frequency Hopping

I’m running a class B device with LoRa Server and a Multitech MTCDT-247A gateway.

Often times it works, but after some time I see where when a packet is downlinked, it’s not being sent on the frequency that the device is expecting it on. The device is tracking the beacon from the MTCDT-247A and maintains a beacon lock, and it’s listening for downlink data on the previous beacon frequency.

Is there a way to turn on debugging output in LoRa Server Docker to see what frequency and data rate for the downlink data it’s sending to the Multitech? I can tell the Multitech is transmitting, but the bandwidth on my software defined radio is only 1.5MHz, so I can’t watch all the standard downlink frequencies to see where it’s actually transmitting once it’s out of sync.

This probably won’t mean much, but this is a log from the device. At about 850s000 I queued a packet from LoRa Server, and the device received it at 857s208. I queued another about 933s000 (just after I knew it received the beacon), and it missed it. I saw in the logs that something was sent to the Multitech, but I don’t know what frequency it was trying to transmit on. After this, it never re-synced. In other tests, I’ve sent the same packet dozens of times and the device received each time, on all 8 downlink frequencies (not all at once, of course, but as the frequency changed with each beacon hop).

857s200: SrvMacCmd=SRV_MAC_LINK_ADR_REQ/3
857s201: SrvMacCmd=SRV_MAC_PING_SLOT_CHANNEL_REQ/17
857s204: APP> McpsInd STATUS: OK
857s206: Packet received on port 3
857s208: Received 0x00 0x00 0x00 0x0a (4 bytes) from host port 3
857s214:   Enabling strobe for 10 seconds
857s217: #= D/L FRAME 2 =# RxWin Multicast Ping-Slot, Port 3, data size 4, rssi -64, snr 8
872s163: RX on freq 926300000 Hz at DR 8 (maxPayload 53)
872s243: PHY rxTimeOut
887s522: RX on freq 926300000 Hz at DR 8 (maxPayload 53)
887s602: PHY rxTimeOut
902s882: RX on freq 926300000 Hz at DR 8 (maxPayload 53)
902s962: PHY rxTimeOut
918s243: RX on freq 926300000 Hz at DR 8 (maxPayload 53)
918s323: PHY rxTimeOut
932s892: PHY rxDone
932s893: APP> MLMEInd STATUS: Beacon locked
932s894: #= BEACON 1255903360 =#, GW desc 0, rssi -67, snr 1, freq 923900000
948s458: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
948s539: PHY rxTimeOut
963s819: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
963s899: PHY rxTimeOut
979s179: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
979s259: PHY rxTimeOut
994s540: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
994s620: PHY rxTimeOut
1009s899: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
1009s979: PHY rxTimeOut
1025s259: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
1025s339: PHY rxTimeOut
1040s621: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
1040s701: PHY rxTimeOut
1055s979: RX on freq 926900000 Hz at DR 8 (maxPayload 53)
1056s059: PHY rxTimeOut
1060s907: PHY rxDone
1060s908: APP> MLMEInd STATUS: Beacon locked
1060s909: #= BEACON 1255903488 =#, GW desc 0, rssi -69, snr 2, freq 924500000
1072s124: RX on freq 927500000 Hz at DR 8 (maxPayload 53)
1072s204: PHY rxTimeOut

You will see all the meta-data in the LoRaWAN tab of the device :slight_smile: