Upload message does not respect gateway channel

Home Forums mDot/xDot Upload message does not respect gateway channel

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #19118
    Mark Ruys
    Participant

    I have trouble to get the xDot (2.0.17-1-mbed139) send upload messages on the proper channel. Currently I have a Conduit configured on freq subband 1. The xDot uses freq subband 0 (all 64 channels). After some missed attempts the gateway gets a join request on a channel it listens to, and the xDots gets the jon accept.
    So far so good. But then I would expect the next upload message would be send to one of the 8 channels the gateway is configured to. The xDot however still uses one of all 64 channels. Apparently, the channel mask is not correctly set on the xDot. How should I fix that? Is the gateway I got not properly configured? Or is it my xDot application which is wrong?

    I tried both AUTO_OTAA as OTAA.

    Feedback much appreciated,

    Mark

    TRACE] Join Network – Auto OTA
    [TRACE] Join attempt #3
    [INFO ] Send join request RxDelay: 5 Rx1Offset: 0 Rx2Freq: 923300000 Rx2Dr: 8
    [TRACE] DevEUI: 00800000040010e2
    [TRACE] AppEUI: 70b3d5dc9def0001
    [TRACE] AppKey: xxxxxxxxxx
    [WARN ] JoinDatarate setting channel group to 1 125k: 0005 500k: 0001
    [INFO ] Configure radio for TX
    [DEBUG] Session pwr: 20 ant: 2 max: 26
    [DEBUG] Radio Power index: 20 output: 19 total: 21
    [DEBUG] TX PWR: 20 DR: 0 SF: 10 BW: 0 CR: 1 PL: 8 CRC: 1 IQ: 0
    [TRACE] Sending 23 bytes
    [TRACE] Number of available channels: 8
    [DEBUG] Using channel 6 : 903500000
    [INFO ] Configure radio for TX
    [DEBUG] Session pwr: 20 ant: 2 max: 21
    [DEBUG] Radio Power index: 20 output: 19 total: 21
    [DEBUG] TX PWR: 20 DR: 0 SF: 10 BW: 0 CR: 1 PL: 8 CRC: 1 IQ: 0
    [INFO ] Configure radio for TX
    [DEBUG] Session pwr: 20 ant: 2 max: 21
    [DEBUG] Radio Power index: 20 output: 19 total: 21
    [DEBUG] TX PWR: 20 DR: 0 SF: 10 BW: 0 CR: 1 PL: 8 CRC: 1 IQ: 0
    [DEBUG] 15.639 mDotEvent – TxDone
    [TRACE] 15.642 Radio event: OK
    [TRACE] 15.645 Flags Tx: 1 Rx: 0 RxData: 0 RxSlot: 0 LinkCheck: 0 JoinAccept: 0
    [TRACE] 15.653 RSSI: 0 SNR: 0 Energy: 0 Margin: 0 Gateways: 0
    [TRACE] 15.658 Status: 0 ACK: 0 Retries: 0 TxDR: 0 RxPort: 0 RxSize: 0
    [TRACE] RX1 on freq: 926900000
    [TRACE] RX DR: 10 SF: 10 BW: 2 CR: 1 PL: 8 STO: 12 CRC: 1 IQ: 1
    [TRACE] Stats: Up: 3 Down: 0 DupTx: 0 CRC Errors: 0
    [INFO ] Rx Window 1
    [INFO ] RxDone 17 bytes RSSI: -41 dB SNR: 65 cB
    [TRACE] Payload: 20e8bc5d544b6ea5a2697c242ca0fd2a58
    [INFO ] Network joined
    [DEBUG] Computing session keys…
    [DEBUG] DL Settings: 0x08 0x08
    [DEBUG] RxOffset: 0 Rx2Index: 8
    [TRACE] NETWSKEY: xxxx
    [TRACE] DATASKEY: xxxx
    [TRACE] NetID: xxxx
    [TRACE] DevAddr: xxxx
    [TRACE] Rx1DatarateOffset: 0 Rx2Datarate: 8 rxDelay: 1
    [DEBUG] 20.765 mDotEvent – JoinAccept
    [TRACE] 20.769 Radio event: OK
    [TRACE] 20.771 Flags Tx: 0 Rx: 0 RxData: 0 RxSlot: 0 LinkCheck: 0 JoinAccept: 1
    [TRACE] 20.779 RSSI: 0 SNR: 0 Energy: 0 Margin: 0 Gateways: 0
    [TRACE] 20.785 Status: 0 ACK: 0 Retries: 0 TxDR: 0 RxPort: 0 RxSize: 0
    [INFO ] Packet RSSI: -41 dB SNR: 65 cB
    [DEBUG] 20.795 mDotEvent – RxDone
    [INFO ] 20.798 Version —————— 2.0.17-1-mbed139
    [INFO ] 20.810 Frequency band ———– US915
    [INFO ] 20.814 Frequency sub band ——- 0
    [INFO ] 20.818 Public network ———– on
    [INFO ] 20.822 Device class ————- A
    [INFO ] 20.826 Network join mode ——– AUTO_OTA
    [INFO ] 20.844 ADR ———————- on
    [INFO ] 20.848 Link check count ——— 24
    [INFO ] 20.852 Link check threshold —– 3
    [INFO ] 20.856 Channel mask ————- ffff ffff ffff ffff 00ff
    [INFO ] 20.862 Acks ——————— 0 attempts
    [INFO ] 20.867 Antenna gain ————- 2 dBm
    [INFO ] 20.871 TX power —————– 20 dBm
    [INFO ] 20.875 TX datarate ————– DR0
    [INFO ] 20.880 TX session datarate —— DR0
    [INFO ] 20.884 Uplink counter ———– 0
    [INFO ] 20.888 Downlink counter ——— 0
    [TRACE] 20.892 INT1_SRC: 0x15
    [DEBUG] 20.895 Check skip upload, divisor is 1
    [DEBUG] 20.899 Packed payload size: 11
    [DEBUG] 20.925 Temperature: 29.5
    [INFO ] 20.928 Vdd: 2947 mV
    [DEBUG] 20.930 Packed payload: e8877edb677dec377da41d
    [DEBUG] Send with tx timeout 5000
    [INFO ] Preparing frame
    [TRACE] NA: xxxx
    [TRACE] NSK: xxxx
    [TRACE] DSK: xxxx
    [TRACE] Adding MIC to frame
    [TRACE] Sending 24 bytes
    [TRACE] Number of available channels: 64
    [DEBUG] Using channel 48 : 911900000

    #19541
    Mark Ruys
    Participant

    Some experiences which might help you:

    – [US915] If configure the frequency sub band to 0 and enable ADR (a must on public networks), and when you joined successfully, upload a series of consecutive confirmed messages until you get an acknowledgement. You’ll get a new channel mask too through the ADR mac command LinkADRReq, so now you can switch to link checks. This way you can get your xDot working on a limited 8 channel gateway relatively easily.
    – Don’t use deep sleep in combination with ADR, the xDot forgets about the ADR after it comes back from deep sleep.
    – Beware that after a normal sleep (stop), timers run at the wrong pace, check out my post http://www.multitech.net/developer/forums/topic/timer-unreliable-after-a-dot-sleep/ on how to fix that.
    – Wait at least 3 seconds (and at least dot->getNextTxMs() msecs) between join attempts (so probably stay away from AUTO_OTA). Otherwise you may get strange “Link is busy” errors, sometimes even hanging the xDot. I guess this holds for normal uplink messages too.
    – If you use normal sleep (stop) and the ADC, call this code:

    void fixADC() {
    RCC_OscInitTypeDef RCC_OscInitStruct;
    HAL_RCC_GetOscConfig(&RCC_OscInitStruct);
    if ( RCC_OscInitStruct.HSIState != RCC_HSI_ON ) {
    RCC_OscInitStruct.HSIState = RCC_HSI_ON;
    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
    HAL_StatusTypeDef ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);
    if ( ret == HAL_OK ) {
    logWarning(“Fixed the HSI to clock the ADC”);
    }
    else {
    logError(“Failed to fix the HSI to clock the ADC: %d”, ret);
    }
    }
    }

    Cheers, Mark

    #19561
    Ajay K
    Participant

    Multitech team can you comment on what Mark has called out, is this something that could be an issue on the MDot as well. Especially the ticker problem that has been described in one of Mark’s earlier posts.

    Don’t use deep sleep in combination with ADR, the xDot forgets about the ADR after it comes back from deep sleep.

    This one worries me and again all though I am on the mdot, I am hoping the same issue isn’t occurring there, as we do use the deep sleep and the ADR.

    Thanks,
    Ajay.

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.