Any success story on LoRa(RFM95) module and MySensors?


  • Plugin Developer

    I am trying to build LoRa setup as follows,

    • ESP8266 + RFM95 (MQTT gateway). Works perfectly
    • Arduino Uno(Atmega328P) + RFM95. Doesn't work.

    My Configurations (arduino UNO),

    // Enable and select radio type attached
    #define   MY_RADIO_RFM95
    
    #define   MY_DEBUG_VERBOSE_RFM95
    #define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW
    #define   MY_RFM95_FREQUENCY (RFM95_868MHZ)
    #define   MY_RFM95_MODEM_CONFIGRUATION (RFM95_BW125CR48SF4096)
    
    // Enable repeater functionality for this node
    #define MY_REPEATER_FEATURE
    
    #define MY_DEBUG
    

    My ESP8266 Configurations,

    
    // Enable and select radio type attached
    #define   MY_RADIO_RFM95
    
    #define   MY_DEBUG_VERBOSE_RFM95
    #define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW
    #define   MY_RFM95_FREQUENCY (RFM95_868MHZ)
    #define   MY_RFM95_MODEM_CONFIGRUATION (RFM95_BW125CR48SF4096)
    
    #define   MY_RFM95_IRQ_PIN 5
    #define   MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
    #define   MY_RFM95_CS_PIN 15
    
    #define MY_GATEWAY_MQTT_CLIENT
    #define MY_GATEWAY_ESP8266
    

    Debug message atmega328p,

    17 MCO:BGN:INIT REPEATER,CP=RLNRA---,VER=2.2.0-rc.2
    26 TSM:INIT
    28 TSF:WUR:MS=0
    29 RFM95:INIT
    30 RFM95:INIT:PIN,CS=10,IQP=2,IQN=0
    44 RFM95:PTX:LEVEL=13
    46 TSM:INIT:TSP OK
    48 TSM:FPAR
    49 RFM95:SWR:SEND,TO=255,SEQ=0,RETRY=0
    2053 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    4060 !TSM:FPAR:NO REPLY
    4062 TSM:FPAR
    4063 RFM95:SWR:SEND,TO=255,SEQ=0,RETRY=0
    6068 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    8075 !TSM:FPAR:NO REPLY
    8077 TSM:FPAR
    8078 RFM95:SWR:SEND,TO=255,SEQ=0,RETRY=0
    10083 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    

    Log message from gateway,

    327 MCO:BGN:INIT GW,CP=RLNGE---,VER=2.2.0-rc.2
    331 TSF:LRT:OK
    333 TSM:INIT
    334 TSF:WUR:MS=0
    335 RFM95:INIT
    337 RFM95:INIT:PIN,CS=15,IQP=5,IQN=5
    350 RFM95:PTX:LEVEL=13
    352 TSM:INIT:TSP OK
    354 TSM:INIT:GW MODE
    356 TSM:READY:ID=0,PAR=0,DIS=0
    359 MCO:REG:NOT NEEDED
    scandone
    f 0, 861 .1361 .1861 .2361 .scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 8
    cnt 
    
    connected with jee, channel 6
    dhcp client start...
    2861 .3361 .3861 .4361 .4861 .5361 .5861 .6361 .6861 .7361 .7861 .8361 .8861 .9361 .9861 .10361 .ip:192.168.1.113,mask:255.255.255.0,gw:192.168.1.1
    10861 .10861 IP: 192.168.1.113
    10863 MCO:BGN:STP
    10867 MCO:BGN:INIT OK,TSP=1
    10869 IP: 192.168.1.113
    10871 Attempting MQTT connection...
    pm open,type:2 0
    26601 IP: 192.168.1.113
    26603 Attempting MQTT connection...
    27633 MQTT connected
    27635 Sending message on topic: out_rfm95/0/255/0/0/18
    28247 Sending message on topic: out_rfm95/0/255/3/0/11
    

  • Hardware Contributor

    @jkandasa
    I have no arduino uno, but I think it's like the nano, a 5v board, so signals are 5v.
    RFM95 is not 5v tolerant.
    You need to use level shifter, or a 3v pro mini


  • Plugin Developer

    @scalz Thank you! I tried with 3.3 volts (with pro mini). no luck 😞


  • Plugin Developer

    When I change the following settings modem configuration(MY_RFM95_MODEM_CONFIGRUATION), works nice,

    RFM95_BW125CR45SF128
    RFM95_BW500CR45SF128
    

    Doesn't work with the following modem configurations,

    RFM95_BW31_25CR48SF512
    RFM95_BW125CR48SF4096
    

  • Hero Member

    If you were to write-up your project so that others may follow it in detail, I'm sure many people would be interesting in following the trail you're blazing. 🙂


  • Plugin Developer

    @neverdie I do not have any specific project at this moment. Just checking the performance and range of LoRa (RFM95) with MySensors library.

    Gateway(ESP8266 + RFM95):

    // Application details
    #define APPLICATION_NAME    "Gateway RFM95"
    #define APPLICATION_VERSION "1.0.0.Beta"
    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h
    #define MY_BAUD_RATE 115200
    
    // Enable and select radio type attached
    #define   MY_RADIO_RFM95
    
    #define   MY_DEBUG_VERBOSE_RFM95
    //#define   MY_DEBUG_VERBOSE_RFM95_REGISTERS
    //#define MY_RFM95_ATC_TARGET_RSSI (-70)  // target RSSI -70dBm
    //#define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW
    #define   MY_RFM95_FREQUENCY (RFM95_868MHZ)
    //#define   MY_RFM95_MODEM_CONFIGRUATION (RFM95_BW500CR45SF128)
    #define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128
    
    #define   MY_RFM95_IRQ_PIN 5
    #define   MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
    #define   MY_RFM95_CS_PIN 15
    
    #define MY_GATEWAY_MQTT_CLIENT
    #define MY_GATEWAY_ESP8266
    
    // Set this node's subscribe and publish topic prefix
    #define MY_MQTT_PUBLISH_TOPIC_PREFIX "out_rfm95"
    #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "in_rfm95"
    
    // Set MQTT client id
    #define MY_MQTT_CLIENT_ID "mys_rfm95_1"
    
    // Enable these if your MQTT broker requires usenrame/password
    #define MY_MQTT_USER "mqtt"
    #define MY_MQTT_PASSWORD "mqtt"
    
    // Set WIFI SSID and password
    #define MY_ESP8266_SSID "jee"
    #define MY_ESP8266_PASSWORD "password12345678"
    
    // MQTT broker ip address.
    #define MY_CONTROLLER_IP_ADDRESS 192.168.1.209
    
    // The MQTT broker port to to open
    #define MY_PORT 1883
    
    #include <ESP8266WiFi.h>
    #include <MySensors.h>
    #include <SimpleTimer.h>
    #include <ArduinoOTA.h>
    
    
    SimpleTimer timer; // Create a Timer object called "timer"! 
    
    #define OTA_PASSWORD "mycontrollerrfm95"
    
    #define SEN_INTERNAL 10
      
    
    void setup() {
      ArduinoOTA.onStart([]() {
        Serial.println("ArduinoOTA start");
      });
      ArduinoOTA.onEnd([]() {
        Serial.println("\nArduinoOTA end");
      });
      ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
        Serial.printf("OTA Progress: %u%%\r", (progress / (total / 100)));
      });
      ArduinoOTA.onError([](ota_error_t error) {
        Serial.printf("Error[%u]: ", error);
        if (error == OTA_AUTH_ERROR) {
          Serial.println("Auth Failed");
        } else if (error == OTA_BEGIN_ERROR) {
          Serial.println("Begin Failed");
        } else if (error == OTA_CONNECT_ERROR) {
          Serial.println("Connect Failed");
        } else if (error == OTA_RECEIVE_ERROR) {
          Serial.println("Receive Failed");
        } else if (error == OTA_END_ERROR) {
          Serial.println("End Failed");
        }
      });
      ArduinoOTA.setPassword((const char *)OTA_PASSWORD);
      ArduinoOTA.begin();
      
      timer.setInterval(1000L * 60 * 15, sendInternals); //  Here you set interval and which function to call
    }
    
    void presentation() {
    	sendSketchInfo(APPLICATION_NAME, APPLICATION_VERSION);
      present(SEN_INTERNAL, S_CUSTOM, "Internal:rssi");
      request(SEN_INTERNAL, V_VAR1);
      sendInternals();
    }
    
    void receive(const MyMessage &message) {
      //Do not process messages from other nodes
      if(message.sender != GATEWAY_ADDRESS){
        return;
      }
    }
    
    
    void sendInternals(){
      MyMessage _internal(SEN_INTERNAL, V_VAR5);
      char _msg[26];
      //rssiQuality
      snprintf_P(_msg, 25, "p:rssiAsQty=%d", getRSSIasQuality(WiFi.RSSI()));
      send(_internal.set(_msg));
    
      //ip
      snprintf_P(_msg, 25, "p:ip=%s", WiFi.localIP().toString().c_str());
      send(_internal.set(_msg));
      
      //Free Heap
      snprintf_P(_msg, 25, "p:heap-f=%d", ESP.getFreeHeap());
      send(_internal.set(_msg));
      
      //HostName
      snprintf_P(_msg, 25, "p:host=%s", WiFi.hostname().c_str());
      send(_internal.set(_msg));
    
      //rssi
      snprintf_P(_msg, 25, "rssi:%d dBm", WiFi.RSSI());
      send(_internal.set(_msg));
    
      //RFM95-rssi
      snprintf_P(_msg, 25, "RFM95-rssi:%d dBm", transportGetReceivingRSSI());
      send(_internal.set(_msg));
    
      _internal.setType(V_VAR1);
      send(_internal.set(getRSSIasQuality(WiFi.RSSI())));
    }
    
    int getRSSIasQuality(int RSSI) {
      int quality = 0;
      if (RSSI <= -100) {
        quality = 0;
      } else if (RSSI >= -50) {
        quality = 100;
      } else {
        quality = 2 * (RSSI + 100);
      }
      return quality;
    }
    
    void loop() {
      ArduinoOTA.handle();
      timer.run(); // SimpleTimer is working
    }
    

    Node source code(Promini + RFM95):

    #define SKETCH_NAME "Signal Monitor"                // Change to a fancy name you like
    #define SKETCH_VERSION "1.0"                    // Your version
    
    
    // Enable and select radio type attached
    #define   MY_RADIO_RFM95
    
    #define   MY_DEBUG_VERBOSE_RFM95
    //#define   MY_DEBUG_VERBOSE_RFM95_REGISTERS
    //#define MY_RFM95_ATC_TARGET_RSSI (-70)  // target RSSI -70dBm
    #define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW
    #define   MY_RFM95_FREQUENCY (RFM95_868MHZ)
    #define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128
    
    
    // Enable repeater functionality for this node
    #define MY_REPEATER_FEATURE
    
    #define MY_DEBUG
    
    //This Node ID
    #define NODE_ID (int8_t) AUTO
    
    #include <MySensors.h>
    #include <SimpleTimer.h>
    SimpleTimer timer; // Create a Timer object called "timer"! 
    
    int Send_rssi, Rec_rssi;                     // RSSI RFM95 chip
    #define CHILD_ID_RSSI_HIGH  7                // RSSI received signal level
    #define CHILD_ID_RSSI_LOW   8                // RSSI background noise level
    MyMessage msgRSSI1(CHILD_ID_RSSI_HIGH, V_LEVEL);
    MyMessage msgRSSI2(CHILD_ID_RSSI_LOW, V_LEVEL);
    
    //Sensor
    #define SEN_DUMMY    (uint8_t) 1
    
    //Pin number
    #define PIN_TEST    (uint8_t) A1
    
    
    MyMessage msg(SEN_DUMMY, V_STATUS);
    
    void setup() {
        pinMode(PIN_TEST, OUTPUT);
        timer.setInterval(1000L * 5, sendInternals); //  Here you set interval and which function to call
    }
    
    void sendInternals(){
      Send_rssi = transportGetSendingRSSI();  // read RSSI in RFM95. Measure reception signal from gw
      send(msgRSSI1.set(Send_rssi));          // send RSSI level
      wait(1000);                             // wait to get idle
    
      Rec_rssi = transportGetReceivingRSSI(); // read RSSI in RFM95. Wait and measure background noise
      send(msgRSSI2.set(Rec_rssi));           // send RSSI level
      wait(1000);                             // wait for next send
    }
    
    
    void presentation() {
      // Send the Sketch Version Information to the Gateway
      sendSketchInfo(SKETCH_NAME, SKETCH_VERSION);
      
      present(SEN_DUMMY, S_BINARY);
      request(SEN_DUMMY, V_STATUS);
    
      present(CHILD_ID_RSSI_HIGH, S_SOUND, "Tx-dBm");
      present(CHILD_ID_RSSI_LOW, S_SOUND, "Rx-dBm");
     
    }
    
    
    void loop() {
        timer.run(); // SimpleTimer is working
    }
    
    void receive(const MyMessage &message) {
        if (message.sensor == SEN_DUMMY && message.type == V_STATUS) {
            Serial.print("*** SWITCH: ");Serial.println(message.getInt());
            digitalWrite(PIN_TEST, message.getBool() ? HIGH : LOW);
        }
    }
    

  • Mod

    @jkandasa the default timeouts will not work with the slower LoRa modes. MySensors will timeout before the signal has been sent completely.

    My guess is this is the reason it doesn't work with 4096.


  • Plugin Developer

    @mfalkvidd Thank you! I tried with #define MY_TRANSPORT_STATE_TIMEOUT_MS (20*1000ul) and #define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR48SF4096, Now it is working 50% pass and 50% failed. I do not know how to make it 100% perfect.

    Node log messages:

     
     __  __       ____
    |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
    | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
    | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
    |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
            |___/                      2.2.0-rc.2
    
    17 MCO:BGN:INIT REPEATER,CP=RLNRA---,VER=2.2.0-rc.2
    26 TSM:INIT
    28 TSF:WUR:MS=0
    29 RFM95:INIT
    30 RFM95:INIT:PIN,CS=10,IQP=2,IQN=0
    44 RFM95:PTX:LEVEL=13
    46 TSM:INIT:TSP OK
    48 TSF:SID:OK,ID=1
    50 TSM:FPAR
    51 RFM95:SWR:SEND,TO=255,SEQ=0,RETRY=0
    1565 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    3462 RFM95:SAC:SEND ACK,TO=0,SEQ=2,RSSI=-30,SNR=9
    3527 TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    3532 TSF:MSG:FPAR OK,ID=0,D=1
    6810 RFM95:SAC:SEND ACK,TO=0,SEQ=2,RSSI=-30,SNR=10
    6876 TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    21572 TSM:FPAR:OK
    21573 TSM:ID
    21575 TSM:ID:OK
    21576 TSM:UPL
    21577 RFM95:SWR:SEND,TO=0,SEQ=3,RETRY=0
    23592 !RFM95:SWR:NACK
    23631 RFM95:SWR:SEND,TO=0,SEQ=4,RETRY=1
    24195 !RFM95:SWR:NACK
    24201 RFM95:SWR:SEND,TO=0,SEQ=4,RETRY=2
    24764 !RFM95:SWR:NACK
    24830 RFM95:SWR:SEND,TO=0,SEQ=4,RETRY=3
    25394 !RFM95:SWR:NACK
    25432 RFM95:SWR:SEND,TO=0,SEQ=4,RETRY=4
    25995 !RFM95:SWR:NACK
    26001 RFM95:SWR:SEND,TO=0,SEQ=4,RETRY=5
    28014 !RFM95:SWR:NACK
    28112 RFM95:PTX:LEVEL=14
    28114 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=NACK:1
    29158 RFM95:SAC:SEND ACK,TO=0,SEQ=4,RSSI=-31,SNR=10
    29223 TSF:MSG:READ,0-0-1,s=255,c=3,t=25,pt=1,l=1,sg=0:1
    29229 TSF:MSG:PONG RECV,HP=1
    29232 TSM:UPL:OK
    29233 TSM:READY:ID=1,PAR=0,DIS=1
    29236 RFM95:SWR:SEND,TO=0,SEQ=5,RETRY=0
    32423 !RFM95:SWR:NACK
    32457 RFM95:SWR:SEND,TO=0,SEQ=6,RETRY=1
    33021 !RFM95:SWR:NACK
    33024 RFM95:SWR:SEND,TO=0,SEQ=6,RETRY=2
    33587 !RFM95:SWR:NACK
    33625 RFM95:SWR:SEND,TO=0,SEQ=6,RETRY=3
    35639 !RFM95:SWR:NACK
    35705 RFM95:SWR:SEND,TO=0,SEQ=6,RETRY=4
    36269 !RFM95:SWR:NACK
    36303 RFM95:SWR:SEND,TO=0,SEQ=6,RETRY=5
    36867 !RFM95:SWR:NACK
    36873 RFM95:PTX:LEVEL=15
    36875 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=NACK:0100
    38870 RFM95:SAC:SEND ACK,TO=0,SEQ=6,RSSI=-30,SNR=9
    38935 TSF:MSG:READ,0-0-1,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    38940 RFM95:SWR:SEND,TO=0,SEQ=7,RETRY=0
    42658 !RFM95:SWR:NACK
    42696 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    45234 !RFM95:SWR:NACK
    45272 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    45835 !RFM95:SWR:NACK
    45841 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    46404 !RFM95:SWR:NACK
    46470 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    49007 !RFM95:SWR:NACK
    49105 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    49669 !RFM95:SWR:NACK
    49671 RFM95:PTX:LEVEL=16
    49673 !TSF:MSG:SEND,1-1-0-0,s=255,c=0,t=18,pt=0,l=10,sg=0,ft=1,st=NACK:2.2.0-rc.2
    49680 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    50244 !RFM95:SWR:NACK
    50310 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    52323 !RFM95:SWR:NACK
    52425 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    52989 !RFM95:SWR:NACK
    52992 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    53555 !RFM95:SWR:NACK
    53593 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    54156 !RFM95:SWR:NACK
    54158 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    54721 !RFM95:SWR:NACK
    54791 RFM95:PTX:LEVEL=17
    54793 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=2,st=NACK:0
    56799 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    57362 !RFM95:SWR:NACK
    57368 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    60168 !RFM95:SWR:NACK
    60174 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    62974 !RFM95:SWR:NACK
    62977 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    63540 !RFM95:SWR:NACK
    63606 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    64171 !RFM95:SWR:NACK
    64209 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    67009 !RFM95:SWR:NACK
    67079 RFM95:PTX:LEVEL=18
    67081 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=11,pt=0,l=14,sg=0,ft=3,st=NACK:Signal Monitor
    67089 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    67652 !RFM95:SWR:NACK
    67718 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    68281 !RFM95:SWR:NACK
    68352 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    70627 !RFM95:SWR:NACK
    70729 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    71293 !RFM95:SWR:NACK
    71296 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    71859 !RFM95:SWR:NACK
    71897 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    74172 !RFM95:SWR:NACK
    74238 RFM95:PTX:LEVEL=19
    74241 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=4,st=NACK:1.0
    74247 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    74811 !RFM95:SWR:NACK
    74881 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    75444 !RFM95:SWR:NACK
    75510 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    77524 !RFM95:SWR:NACK
    77623 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    78186 !RFM95:SWR:NACK
    78288 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    78852 !RFM95:SWR:NACK
    78854 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    80868 !RFM95:SWR:NACK
    80966 RFM95:PTX:LEVEL=20
    80968 !TSF:MSG:SEND,1-1-0-0,s=1,c=0,t=3,pt=0,l=0,sg=0,ft=5,st=NACK:
    80974 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    81539 !RFM95:SWR:NACK
    81545 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    82108 !RFM95:SWR:NACK
    82174 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    84188 !RFM95:SWR:NACK
    84286 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    84849 !RFM95:SWR:NACK
    84951 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    85514 !RFM95:SWR:NACK
    85520 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    86083 !RFM95:SWR:NACK
    86153 !TSF:MSG:SEND,1-1-0-0,s=1,c=2,t=2,pt=0,l=0,sg=0,ft=6,st=NACK:
    86159 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    86723 !RFM95:SWR:NACK
    86793 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    89068 !RFM95:SWR:NACK
    89166 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    89730 !RFM95:SWR:NACK
    89736 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    90299 !RFM95:SWR:NACK
    90369 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    92644 !RFM95:SWR:NACK
    92742 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    95019 !RFM95:SWR:NACK
    95057 !TSF:MSG:SEND,1-1-0-0,s=7,c=0,t=33,pt=0,l=6,sg=0,ft=7,st=NACK:Tx-dBm
    95064 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    95628 !RFM95:SWR:NACK
    95630 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    96193 !RFM95:SWR:NACK
    96263 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    98538 !RFM95:SWR:NACK
    98640 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    99204 !RFM95:SWR:NACK
    99206 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    99769 !RFM95:SWR:NACK
    99840 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    102115 !RFM95:SWR:NACK
    102217 !TSF:MSG:SEND,1-1-0-0,s=8,c=0,t=33,pt=0,l=6,sg=0,ft=8,st=NACK:Rx-dBm
    102223 MCO:REG:REQ
    102225 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    102790 !RFM95:SWR:NACK
    102792 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    103356 !RFM95:SWR:NACK
    103422 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    105437 !RFM95:SWR:NACK
    105535 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    106100 !RFM95:SWR:NACK
    106102 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    106667 !RFM95:SWR:NACK
    106705 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    107270 !RFM95:SWR:NACK
    107272 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=9,st=NACK:2
    109278 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=0
    109842 !RFM95:SWR:NACK
    109848 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=1
    111863 !RFM95:SWR:NACK
    111865 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=2
    112430 !RFM95:SWR:NACK
    112464 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=3
    113029 !RFM95:SWR:NACK
    113031 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=4
    113595 !RFM95:SWR:NACK
    113665 RFM95:SWR:SEND,TO=0,SEQ=8,RETRY=5
    115679 !RFM95:SWR:NACK
    115777 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=10,st=NACK:2
    115783 !TSM:READY:UPL FAIL,SNP
    115786 TSM:FPAR
    115788 RFM95:SWR:SEND,TO=255,SEQ=8,RETRY=0
    115853 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=11,st=OK:
    117783 !TSF:SND:TNR
    117999 RFM95:SAC:SEND ACK,TO=0,SEQ=25,RSSI=-35,SNR=10
    118065 TSF:MSG:READ,0-0-1,s=255,c=3,t=27,pt=1,l=1,sg=0:1
    118070 MCO:PIM:NODE REG=1
    121344 RFM95:SAC:SEND ACK,TO=0,SEQ=25,RSSI=-37,SNR=9
    121409 TSF:MSG:READ,0-0-1,s=255,c=3,t=27,pt=1,l=1,sg=0:1
    121414 MCO:PIM:NODE REG=1
    138073 !TSM:FPAR:NO REPLY
    138075 TSM:FPAR
    138077 RFM95:SWR:SEND,TO=255,SEQ=10,RETRY=0
    139591 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    141298 RFM95:SAC:SEND ACK,TO=0,SEQ=26,RSSI=-39,SNR=10
    141364 TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    141369 TSF:MSG:FPAR OK,ID=0,D=1
    144643 RFM95:SAC:SEND ACK,TO=0,SEQ=26,RSSI=-39,SNR=12
    144709 TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    159598 TSM:FPAR:OK
    159599 TSM:ID
    159601 TSM:ID:OK
    159602 TSM:UPL
    159604 RFM95:SWR:SEND,TO=0,SEQ=13,RETRY=0
    161619 !RFM95:SWR:NACK
    161690 RFM95:SWR:SEND,TO=0,SEQ=14,RETRY=1
    162255 !RFM95:SWR:NACK
    162321 RFM95:SWR:SEND,TO=0,SEQ=14,RETRY=2
    162885 !RFM95:SWR:NACK
    162951 RFM95:SWR:SEND,TO=0,SEQ=14,RETRY=3
    163515 !RFM95:SWR:NACK
    163585 RFM95:SWR:SEND,TO=0,SEQ=14,RETRY=4
    164149 !RFM95:SWR:NACK
    164215 RFM95:SWR:SEND,TO=0,SEQ=14,RETRY=5
    166230 !RFM95:SWR:NACK
    166328 !TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=NACK:1
    167288 RFM95:SAC:SEND ACK,TO=0,SEQ=28,RSSI=-35,SNR=9
    167354 TSF:MSG:READ,0-0-1,s=255,c=3,t=25,pt=1,l=1,sg=0:1
    167359 TSF:MSG:PONG RECV,HP=1
    167362 TSM:UPL:OK
    167364 TSM:READY:ID=1,PAR=0,DIS=1
    167367 MCO:BGN:STP
    167369 MCO:BGN:INIT OK,TSP=1
    182369 RFM95:SWR:SEND,TO=0,SEQ=15,RETRY=0
    184383 !RFM95:SWR:NACK
    184449 RFM95:SWR:SEND,TO=0,SEQ=16,RETRY=1
    185013 !RFM95:SWR:NACK
    185079 RFM95:SWR:SEND,TO=0,SEQ=16,RETRY=2
    185644 !RFM95:SWR:NACK
    185678 RFM95:SWR:SEND,TO=0,SEQ=16,RETRY=3
    187693 !RFM95:SWR:NACK
    187727 RFM95:SWR:SEND,TO=0,SEQ=16,RETRY=4
    188292 !RFM95:SWR:NACK
    188294 RFM95:SWR:SEND,TO=0,SEQ=16,RETRY=5
    188858 !RFM95:SWR:NACK
    188928 !TSF:MSG:SEND,1-1-0-0,s=7,c=1,t=37,pt=2,l=2,sg=0,ft=0,st=NACK:-256
    189934 RFM95:SWR:SEND,TO=0,SEQ=16,RETRY=0
    191949 !RFM95:SWR:NACK
    192015 RFM95:SWR:SEND,TO=0,SEQ=17,RETRY=1
    192579 !RFM95:SWR:NACK
    192649 RFM95:SWR:SEND,TO=0,SEQ=17,RETRY=2
    193213 !RFM95:SWR:NACK
    193280 RFM95:SWR:SEND,TO=0,SEQ=17,RETRY=3
    195294 !RFM95:SWR:NACK
    195392 RFM95:SWR:SEND,TO=0,SEQ=17,RETRY=4
    195957 !RFM95:SWR:NACK
    195959 RFM95:SWR:SEND,TO=0,SEQ=17,RETRY=5
    196524 !RFM95:SWR:NACK
    196558 !TSF:MSG:SEND,1-1-0-0,s=8,c=1,t=37,pt=2,l=2,sg=0,ft=1,st=NACK:-35
    197564 RFM95:SWR:SEND,TO=0,SEQ=17,RETRY=0
    199578 !RFM95:SWR:NACK
    199616 RFM95:SWR:SEND,TO=0,SEQ=18,RETRY=1
    200181 !RFM95:SWR:NACK
    200183 RFM95:SWR:SEND,TO=0,SEQ=18,RETRY=2
    200748 !RFM95:SWR:NACK
    200782 RFM95:SWR:SEND,TO=0,SEQ=18,RETRY=3
    

    Gateway Log messages:

    75051 TSF:MSG:READ,1-1-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    75056 TSF:MSG:BC
    75058 TSF:MSG:FPAR REQ,ID=1
    75060 TSF:PNG:SEND,TO=0
    75062 TSF:CKU:OK
    75064 TSF:MSG:GWL OK
    75379 RFM95:SWR:SEND,TO=1,SEQ=1,RETRY=0
    77393 !RFM95:SWR:NACK
    77462 RFM95:SWR:SEND,TO=1,SEQ=2,RETRY=1
    78026 !RFM95:SWR:NACK
    78095 RFM95:SWR:SEND,TO=1,SEQ=2,RETRY=2
    78659 !RFM95:SWR:NACK
    78728 RFM95:SWR:SEND,TO=1,SEQ=2,RETRY=3
    80742 !RFM95:SWR:NACK
    80839 RFM95:SWR:SEND,TO=1,SEQ=2,RETRY=4
    81403 !RFM95:SWR:NACK
    81408 RFM95:SWR:SEND,TO=1,SEQ=2,RETRY=5
    81972 !RFM95:SWR:NACK
    82037 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    96582 RFM95:SAC:SEND ACK,TO=1,SEQ=4,RSSI=-29,SNR=9
    96648 TSF:MSG:READ,1-1-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
    96653 TSF:MSG:PINGED,ID=1,HP=1
    96660 RFM95:SWR:SEND,TO=1,SEQ=3,RETRY=0
    99847 !RFM95:SWR:NACK
    99848 RFM95:SWR:SEND,TO=1,SEQ=4,RETRY=1
    100413 !RFM95:SWR:NACK
    100478 RFM95:SWR:SEND,TO=1,SEQ=4,RETRY=2
    101042 !RFM95:SWR:NACK
    101079 RFM95:SWR:SEND,TO=1,SEQ=4,RETRY=3
    103093 !RFM95:SWR:NACK
    103158 RFM95:SWR:SEND,TO=1,SEQ=4,RETRY=4
    103722 !RFM95:SWR:NACK
    103759 RFM95:SWR:SEND,TO=1,SEQ=4,RETRY=5
    104323 !RFM95:SWR:NACK
    104328 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
    105414 RFM95:SAC:SEND ACK,TO=1,SEQ=6,RSSI=-28,SNR=9
    105479 TSF:MSG:READ,1-1-0,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    105485 RFM95:SWR:SEND,TO=1,SEQ=5,RETRY=0
    108679 !RFM95:SWR:NACK
    108680 RFM95:SWR:SEND,TO=1,SEQ=6,RETRY=1
    110695 !RFM95:SWR:NACK
    110792 RFM95:SWR:SEND,TO=1,SEQ=6,RETRY=2
    112806 !RFM95:SWR:NACK
    112839 RFM95:SWR:SEND,TO=1,SEQ=6,RETRY=3
    113403 !RFM95:SWR:NACK
    113408 RFM95:SWR:SEND,TO=1,SEQ=6,RETRY=4
    113972 !RFM95:SWR:NACK
    114037 RFM95:SWR:SEND,TO=1,SEQ=6,RETRY=5
    114601 !RFM95:SWR:NACK
    114638 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=NACK:0100
    118228 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-27,SNR=10
    118293 TSF:MSG:READ,1-1-0,s=255,c=0,t=18,pt=0,l=10,sg=0:2.2.0-rc.2
    118299 Sending message on topic: out_rfm95/1/255/0/0/18
    122002 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-27,SNR=11
    122067 TSF:MSG:READ,1-1-0,s=255,c=0,t=18,pt=0,l=10,sg=0:2.2.0-rc.2
    122073 Sending message on topic: out_rfm95/1/255/0/0/18
    125318 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-28,SNR=10
    125384 TSF:MSG:READ,1-1-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
    125389 Sending message on topic: out_rfm95/1/255/3/0/6
    125884 Message arrived on topic: in_rfm95/1/255/3/0/6
    125889 RFM95:SWR:SEND,TO=1,SEQ=9,RETRY=0
    128845 !RFM95:SWR:NACK
    128910 RFM95:SWR:SEND,TO=1,SEQ=10,RETRY=1
    131187 !RFM95:SWR:NACK
    131288 RFM95:SWR:SEND,TO=1,SEQ=10,RETRY=2
    131852 !RFM95:SWR:NACK
    131853 RFM95:SWR:SEND,TO=1,SEQ=10,RETRY=3
    132418 !RFM95:SWR:NACK
    132487 RFM95:SWR:SEND,TO=1,SEQ=10,RETRY=4
    133051 !RFM95:SWR:NACK
    133120 RFM95:SWR:SEND,TO=1,SEQ=10,RETRY=5
    133684 !RFM95:SWR:NACK
    133749 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=6,pt=0,l=6,sg=0,ft=0,st=NACK:Metric
    135970 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-26,SNR=11
    136036 TSF:MSG:READ,1-1-0,s=255,c=3,t=11,pt=0,l=14,sg=0:Signal Monitor
    136042 Sending message on topic: out_rfm95/1/255/3/0/11
    140007 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-26,SNR=12
    140072 TSF:MSG:READ,1-1-0,s=255,c=3,t=11,pt=0,l=14,sg=0:Signal Monitor
    140078 Sending message on topic: out_rfm95/1/255/3/0/11
    143625 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-25,SNR=11
    143690 TSF:MSG:READ,1-1-0,s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
    143696 Sending message on topic: out_rfm95/1/255/3/0/12
    147170 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-25,SNR=11
    147236 TSF:MSG:READ,1-1-0,s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
    147241 Sending message on topic: out_rfm95/1/255/3/0/12
    150523 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-26,SNR=9
    150588 TSF:MSG:READ,1-1-0,s=1,c=0,t=3,pt=0,l=0,sg=0:
    150593 Sending message on topic: out_rfm95/1/1/0/0/3
    153867 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-26,SNR=9
    153932 TSF:MSG:READ,1-1-0,s=1,c=0,t=3,pt=0,l=0,sg=0:
    153937 Sending message on topic: out_rfm95/1/1/0/0/3
    157188 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-25,SNR=10
    157254 TSF:MSG:READ,1-1-0,s=1,c=2,t=2,pt=0,l=0,sg=0:
    157258 Sending message on topic: out_rfm95/1/1/2/0/2
    157627 Message arrived on topic: in_rfm95/1/1/1/0/2
    157632 RFM95:SWR:SEND,TO=1,SEQ=17,RETRY=0
    160453 !RFM95:SWR:NACK
    160518 RFM95:SWR:SEND,TO=1,SEQ=18,RETRY=1
    161082 !RFM95:SWR:NACK
    161151 RFM95:SWR:SEND,TO=1,SEQ=18,RETRY=2
    161715 !RFM95:SWR:NACK
    161752 RFM95:SWR:SEND,TO=1,SEQ=18,RETRY=3
    162316 !RFM95:SWR:NACK
    162317 RFM95:SWR:SEND,TO=1,SEQ=18,RETRY=4
    164333 !RFM95:SWR:NACK
    164430 RFM95:SWR:SEND,TO=1,SEQ=18,RETRY=5
    164994 !RFM95:SWR:NACK
    164999 !TSF:MSG:SEND,0-0-1-1,s=1,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=NACK:0
    168020 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-25,SNR=9
    168085 TSF:MSG:READ,1-1-0,s=7,c=0,t=33,pt=0,l=6,sg=0:Tx-dBm
    168090 Sending message on topic: out_rfm95/1/7/0/0/33
    171541 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-25,SNR=10
    171606 TSF:MSG:READ,1-1-0,s=8,c=0,t=33,pt=0,l=6,sg=0:Rx-dBm
    171612 Sending message on topic: out_rfm95/1/8/0/0/33
    175118 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-30,SNR=11
    175184 TSF:MSG:READ,1-1-0,s=8,c=0,t=33,pt=0,l=6,sg=0:Rx-dBm
    175189 Sending message on topic: out_rfm95/1/8/0/0/33
    178439 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-34,SNR=9
    178505 TSF:MSG:READ,1-1-0,s=255,c=3,t=26,pt=1,l=1,sg=0:2
    178515 RFM95:SWR:SEND,TO=1,SEQ=22,RETRY=0
    181704 !RFM95:SWR:NACK
    181773 RFM95:SWR:SEND,TO=1,SEQ=23,RETRY=1
    183787 !RFM95:SWR:NACK
    183888 RFM95:SWR:SEND,TO=1,SEQ=23,RETRY=2
    184452 !RFM95:SWR:NACK
    184453 RFM95:SWR:SEND,TO=1,SEQ=23,RETRY=3
    185018 !RFM95:SWR:NACK
    185087 RFM95:SWR:SEND,TO=1,SEQ=23,RETRY=4
    187101 !RFM95:SWR:NACK
    187198 RFM95:SWR:SEND,TO=1,SEQ=23,RETRY=5
    187762 !RFM95:SWR:NACK
    187863 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=NACK:1
    188683 RFM95:SAC:SEND ACK,TO=1,SEQ=8,RSSI=-29,SNR=9
    188749 TSF:MSG:READ,1-1-0,s=255,c=3,t=26,pt=1,l=1,sg=0:2
    188759 RFM95:SWR:SEND,TO=1,SEQ=24,RETRY=0
    191948 !RFM95:SWR:NACK
    192013 RFM95:SWR:SEND,TO=1,SEQ=25,RETRY=1
    192577 !RFM95:SWR:NACK
    192646 RFM95:SWR:SEND,TO=1,SEQ=25,RETRY=2
    193210 !RFM95:SWR:NACK
    193279 RFM95:SWR:SEND,TO=1,SEQ=25,RETRY=3
    195293 !RFM95:SWR:NACK
    195390 RFM95:SWR:SEND,TO=1,SEQ=25,RETRY=4
    195954 !RFM95:SWR:NACK
    196055 RFM95:SWR:SEND,TO=1,SEQ=25,RETRY=5
    196619 !RFM95:SWR:NACK
    196624 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=NACK:1
    213099 TSF:MSG:READ,1-1-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    213104 TSF:MSG:BC
    213106 TSF:MSG:FPAR REQ,ID=1
    213108 TSF:PNG:SEND,TO=0
    213111 TSF:CKU:OK
    213112 TSF:MSG:GWL OK
    213236 RFM95:SWR:SEND,TO=1,SEQ=25,RETRY=0
    215251 !RFM95:SWR:NACK
    215320 RFM95:SWR:SEND,TO=1,SEQ=26,RETRY=1
    215884 !RFM95:SWR:NACK
    215949 RFM95:SWR:SEND,TO=1,SEQ=26,RETRY=2
    216513 !RFM95:SWR:NACK
    216582 RFM95:SWR:SEND,TO=1,SEQ=26,RETRY=3
    218597 !RFM95:SWR:NACK
    218694 RFM95:SWR:SEND,TO=1,SEQ=26,RETRY=4
    219258 !RFM95:SWR:NACK
    219263 RFM95:SWR:SEND,TO=1,SEQ=26,RETRY=5
    219827 !RFM95:SWR:NACK
    219864 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    234631 RFM95:SAC:SEND ACK,TO=1,SEQ=14,RSSI=-28,SNR=10
    234696 TSF:MSG:READ,1-1-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
    234701 TSF:MSG:PINGED,ID=1,HP=1
    234709 RFM95:SWR:SEND,TO=1,SEQ=27,RETRY=0
    237896 !RFM95:SWR:NACK
    237965 RFM95:SWR:SEND,TO=1,SEQ=28,RETRY=1
    238529 !RFM95:SWR:NACK
    238598 RFM95:SWR:SEND,TO=1,SEQ=28,RETRY=2
    239162 !RFM95:SWR:NACK
    239231 RFM95:SWR:SEND,TO=1,SEQ=28,RETRY=3
    241245 !RFM95:SWR:NACK
    241342 RFM95:SWR:SEND,TO=1,SEQ=28,RETRY=4
    241906 !RFM95:SWR:NACK
    242007 RFM95:SWR:SEND,TO=1,SEQ=28,RETRY=5
    242571 !RFM95:SWR:NACK
    242576 !TSF:MSG:SEND,0-0-1-1,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
    257398 RFM95:SAC:SEND ACK,TO=1,SEQ=16,RSSI=-29,SNR=10
    257464 TSF:MSG:READ,1-1-0,s=7,c=1,t=37,pt=2,l=2,sg=0:-256
    257469 Sending message on topic: out_rfm95/1/7/1/0/37
    260708 RFM95:SAC:SEND ACK,TO=1,SEQ=16,RSSI=-31,SNR=11
    260774 TSF:MSG:READ,1-1-0,s=7,c=1,t=37,pt=2,l=2,sg=0:-256
    260779 Sending message on topic: out_rfm95/1/7/1/0/37
    264965 RFM95:SAC:SEND ACK,TO=1,SEQ=17,RSSI=-33,SNR=10
    265031 TSF:MSG:READ,1-1-0,s=8,c=1,t=37,pt=2,l=2,sg=0:-35
    265036 Sending message on topic: out_rfm95/1/8/1/0/37
    

  • Mod

    @jkandasa try adding

    #define RFM95_RETRY_TIMEOUT_MS			(5000ul)			//!< Timeout for ACK, adjustments needed if modem configuration changed (air time different)
    

    found it here: https://forum.mysensors.org/topic/5681/rfm95w-modem_configruation/3

    Github: https://github.com/mysensors/MySensors/issues/742


  • Plugin Developer

    @mfalkvidd You are right! Seems these lines did the magic. Now I see 90% of success. But still, see few failures in starting when sending presentation message. I guess presentation message takes a long time than the normal message. As it is a bigger message. Let me find out the root cause.

    Thank you for your support!

    Configuration used at this stage,

    #define MY_RADIO_RFM95
    #define MY_TRANSPORT_STATE_TIMEOUT_MS  (3*1000ul)
    #define RFM95_RETRY_TIMEOUT_MS  (3000ul) 
    #define MY_RFM95_FREQUENCY  (RFM95_868MHZ)
    #define MY_RFM95_MODEM_CONFIGRUATION  RFM95_BW125CR48SF4096
    

  • Mod

    @jkandasa great! Hopefully we can add a documentation page summarizing what's needed for LoRa.

    https://www.thethingsnetwork.org/forum/t/spreadsheet-for-lora-airtime-calculation/1190 has a calculator for seeing how much time a message takes using different spreading factors.

    Seems like the longest allowed packet (51 bytes) on SF12 will need almost 2900ms. I don't know how acknowledgements are handled though.


  • Plugin Developer

    @ricorico94 here is the hardware connection details, that I followed.

    Gateway Sketch:

      ESP8266         RFM95
    -----------      ---------
    (GPIO15) CS    <--> NSS
    (GPIO13) MOSI  <--> MOSI
    (GPIO12) MISO  <--> MISO
    (GPIO14) CLK   <--> SCK
    (GPIO 5) IRQ   <--> DIO0
             GND   <--> GND
             3.3V  <--> +3.3V
    
    Add this line on ESP8266 sketch,
    #define   MY_RFM95_IRQ_PIN 5
    #define   MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
    #define   MY_RFM95_CS_PIN 15
    

    Node Sketch:

      PRO-MINI       RFM95
    -----------     -------
    (10) SS    <--> NSS
    (11) MOSI  <--> MOSI
    (12) MISO  <--> MISO
    (13) CLK   <--> SCK
    (2)  IRQ   <--> DIO0
         GND   <--> GND
         3.3V  <--> +3.3V
    

  • Hero Member

    @jkandasa said in Any success story on LoRa(RFM95) module and MySensors?:

    Now I see 90% of success.

    Were you able to achieve 100%?


  • Plugin Developer

    @neverdie If I go with the default RFM95_BW125CR45SF128 settings I see the failure rarely. I ran the setup minimal time only. So do not know about stability.

    When I go with RFM95_BW31_25CR48SF512 or RFM95_BW125CR48SF4096, I see failure, when I request a payload from the gateway, because of gateway busy asking data from the controller, meantime node thinks message not received by the gateway and send a message once again, same time gateway sends ack to the node. Air/RF collision happens here, both side message not delivered.


  • Mod

    @jkandasa thanks for verifying the wiring. I compared with the instructions we had for RFM69 and the wiring is identical, so I just changed the headline on connecting the radio from RFM69 to RFM69/95 and added your defines. The same wiring probably works with 96, 97 and 98 as well but I am not sure so I have not added them.


 

288
Online

7.6k
Users

8.5k
Topics

91.3k
Posts