Mysensors and BSFrance Lora32u4 ii



  • I have recently bought 2 units of the board BSFrance Lora32u4 ii and I have been unable to get Mysensors library working with this boards.
    The boards seems to be a clone of Adafruit Feather 32u4 RFM95
    The board has a SX1276 radio module and the following pinout:
    0_1570905602169_LoRa32u4II_Pinout.jpg
    If I set a Serial Gateway (controller is Openhab in RPI3) with one of the boards and the other board as a node there is no message received in the gateway.
    The problem seems related to the reception (the transmission seems to work) because if i use as a gateway the board TTGO ESP32 Lora v2.0 I can see in the gateway logs some messages from the Lora32U4 node requesting to engage (Find Parent) and that the gateway replays but in the node the answer is never received.

    If I use RadioHead library with sender and receiver sketch with the 2 Lora32U4 boards, the transmission works perfectly in both directions (Transmission and Receptoin), so the hardware seems to be OK and I believe the problem may be with MySensors.

    Has anybody have any success with these boards and MySensors.

    Gateway Sketch:

    /* MySesors Gateway with Lora32U4 II v1.2 board
    * Enable debug prints to serial monitor
    * Gateway configuration in openhab connected to RPI 3B+ : /dev/ttyUSB0
    * disable check in start up
    *
    * v0: 
    */
    
    //Activate debug prints in MySensors library
    // Enable and select radio type attached
    #define   MY_RADIO_RFM95
    #define   MY_DEBUG
    #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
    
    
    // Enables and select radio type (if attached)
    
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128     // Default, medium range
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW500CR45SF128   // Fast, short range
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW31_25CR48SF512 // Slow, long range
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR48SF4096  // Slow, long range
    
    // Definitions to improve RFM95 communication
    #define RFM95_RETRY_TIMEOUT_MS      (5000ul)      //!< Timeout for ACK, adjustments needed if modem configuration changed (air time different) in drivers/RFM95/RFM95.h (default: 500ul)
    #define MY_TRANSPORT_STATE_TIMEOUT_MS     (30*1000ul)   //!< 2 changed to RFM95W Ultra long Range enable general state timeout (in ms) in Mytransport.h (default: 2*1000ul)
    
    // For RFM95 connections in LoRA32U4 (Adafruit and BSFrance do not use the standard configuration)
    #define MY_RFM95_IRQ_PIN      7                
    #define MY_RFM95_IRQ_NUM      MY_RFM95_IRQ_PIN
    //#define MY_RF69_IRQ_NUM 4
    #define MY_RFM95_CS_PIN       8                
    #define MY_RFM95_RST_PIN      4                 
    
    //#define MY_SOFTSPI
    #define MY_SOFT_SPI_SCK_PIN   15                 
    #define MY_SOFT_SPI_MISO_PIN  14                
    #define MY_SOFT_SPI_MOSI_PIN  16                
    //#define MY_RFM95_POWER_PIN (3)                // What is this used for?
    
    // Enable serial gateway
    #define MY_GATEWAY_SERIAL
    // Enable inclusion mode
    // Set blinking period
    #define MY_DEFAULT_LED_BLINK_PERIOD 300
    
    #include <Wire.h>                 // I2C handling library
    
    // MySensors - Version: 2.3.2-Development (works with ESP32)
    #include <MyConfig.h>
    #include <MySensors.h>
    
    void setup()
    {
      static boolean state = HIGH;
      static unsigned char count = 0;
      // Set console baud rate to monitor
        Serial.begin(115200);
        while (!Serial && (count < 10) )
        {
          delay(100);     // Wait for serial port to connect with timeout. Needed for native USB
          //digitalWrite(LED_BUILTIN, state); LED Pin connected to SDA Pin. Do not use Builtin led in this device
          //state = !state;
          count++;
        }
    
      Wire.begin();         // Start I2C port in case used libraries do not open it
     
      delay(100);
    }
    
    void presentation()
    {
      // Present locally attached sensors here
    
      
    }
    
    
    void loop()
    {
    
    
    }
    

    Node Sketch:

    /*
    * MySesors Node LORA32U4II (adafruit feather equivalent)
    *
    * v0: 2 simulated child sensors attached to node
    *
    */
    
    //Activate debug prints in MySensors library
    // Enable and select radio type attached
    #define   MY_RADIO_RFM95
    #define   MY_DEBUG
    #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
    
    
    // Enables and select radio type (if attached)
    
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128     // Default, medium range
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW500CR45SF128   // Fast, short range
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW31_25CR48SF512 // Slow, long range
    //#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR48SF4096  // Slow, long range
    
    // Definitions to improve RFM95 communication
    #define RFM95_RETRY_TIMEOUT_MS      (5000ul)      //!< Timeout for ACK, adjustments needed if modem configuration changed (air time different) in drivers/RFM95/RFM95.h (default: 500ul)
    #define MY_TRANSPORT_STATE_TIMEOUT_MS     (30*1000ul)   //!< 2 changed to RFM95W Ultra long Range enable general state timeout (in ms) in Mytransport.h (default: 2*1000ul)
    
    
    // For RFM95 connections in LoRA32U4 (Adafruit and BSFrance do not use the standard configuration)
    #define MY_RFM95_IRQ_PIN      7                
    #define MY_RFM95_IRQ_NUM      MY_RFM95_IRQ_PIN
    //#define MY_RF69_IRQ_NUM 4
    #define MY_RFM95_CS_PIN       8                
    #define MY_RFM95_RST_PIN      4                 
    
    //#define MY_SOFTSPI
    #define MY_SOFT_SPI_SCK_PIN   15                 
    #define MY_SOFT_SPI_MISO_PIN  14                
    #define MY_SOFT_SPI_MOSI_PIN  16                
    //#define MY_RFM95_POWER_PIN (3)                // What is this used for?
    
    
    // Define a static node address, remove if you want auto address assignment 
    #define MY_NODE_ID   10 
    // Sensor Child ID of the NODE
    #define CHILD_ID_BA_Volt_Bateria         0  // Voltaje de Batería
    #define CHILD_ID_BA_Volt_Med_Bateria     1  // Voltaje del punto medio de la Batería
    
    // MySensors - Version: 2.3.2-Development (works with ESP32)
    #include <MyConfig.h>
    #include <MySensors.h>
    
    unsigned long lastmillis;
    float BA_Volt_Bateria;
    float BA_Volt_Bateria_last=0.0;
    float BA_Volt_Med_Bateria;
    float BA_Volt_Med_Bateria_last=0.0;
    
    boolean metric = true;          // Gateway uses metric system
    
    // MySensors message definition
    MyMessage msg_BA_Volt_Bateria(CHILD_ID_BA_Volt_Bateria, V_VOLTAGE);
    MyMessage msg_BA_Volt_Med_Bateria(CHILD_ID_BA_Volt_Med_Bateria, V_VOLTAGE);
    
    void setup()
    {
      static boolean state = HIGH;
      static unsigned char count = 0;
      // Set console baud rate to monitor
      Serial.begin(115200);
      while (!Serial && (count < 30) ) {
          delay(200);     // Wait for serial port to connect with timeout. Needed for native USB
          //digitalWrite(LED_BUILTIN, state);
          state = !state;
          count++;
      }
      Serial.println("Setup Complete");
      delay(100);
    }
    
    void presentation()
    {
      // Send the sketch version information to the gateway and Controller
      //sendSketchInfo("LORA32U4II & Node 10", "1.0");
    
      // Register attached sensors
      present(CHILD_ID_BA_Volt_Bateria, S_MULTIMETER);  
      present(CHILD_ID_BA_Volt_Med_Bateria, S_MULTIMETER);    
    }
    
    void loop() {
      // Get current readings for The defined interval POWER_MEASURE_INTERVAL
      float counter=1.2;
      if (millis()-lastmillis >= 10000) {
        // send message
        counter=counter*1.2;
        BA_Volt_Bateria = counter;
        Serial.print("Sending value BA_Volt_Bateria: "); Serial.println(BA_Volt_Bateria);
        
        BA_Volt_Med_Bateria = counter * 0.5;
        Serial.print("Sending value BA_Volt_Med_Bateria: "); Serial.println(BA_Volt_Med_Bateria);
        send(msg_BA_Volt_Bateria.set(BA_Volt_Bateria,2));
        send(msg_BA_Volt_Med_Bateria.set(BA_Volt_Med_Bateria,2));        
        lastmillis = millis();
      }
    }
    

    I have used the development version of MySensors because I have TTGO boards with ESP32 processors and those are only supported by the development version, but I have also tried the latest stable version with the same results.

    I have also increased the timeouts for the ACK as suggested in the following post, although is quite old:
    https://forum.mysensors.org/topic/8813/any-success-story-on-lora-rfm95-module-and-mysensors/9
    I have included the configuration in the sketches instead of the library files as can be seen in the sketches. Is this right? or should I do that in the library files?:Mytransport.h and drivers/RFM95/RFM95.h.


  • Mod

    Welcome to the forum @CarloMagno
    Yes, the configuration should be in the sketches. Otherwise, the configuration would be overwritten for each upgrade of MySensors, and you would not be able to have different configuration for different sketches.

    I don't think the timeout should be an issue, since you are using one of the faster LoRa modes.

    I have never seen include <MyConfig.h> in a sketch before. Not sure if it has a negative impact.

    Looking at debug logs from the node and the gateway is likely the best way forward.


  • Mod

    @carlomagno said in Mysensors and BSFrance Lora32u4 ii:

    Not sure if it is relevant in your case, but there seem to be quite some revisions around of your board, according to this: https://www.thethingsnetwork.org/forum/t/big-lora32u4-boards-topic/15273



  • @mfalkvidd Thank you for the support.
    You are right, I forgot to post the logs, and without the logs I can imagine it is impossible to guess what is happening.
    Find attached the logs from the Node (Node 10 in this case) taken from the serial output connected to a computer, and the logs from the Gateway taken from the Controller (Openhab) web log viewer to which the gateway is attached through the serial port (Serial gateway):

    Node 10 log:

    15:04:10.595 -> 7026 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:04:12.610 -> 9027 !TSM:FPAR:NO REPLY
    15:04:12.610 -> 9027 TSM:FPAR
    15:04:19.600 -> 16029 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:04:21.596 -> 18032 !TSM:FPAR:NO REPLY
    15:04:21.596 -> 18032 TSM:FPAR
    15:04:28.569 -> 25034 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:04:30.573 -> 27037 !TSM:FPAR:NO REPLY
    15:04:30.573 -> 27037 TSM:FPAR
    15:04:37.566 -> 34039 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:04:39.577 -> 36042 !TSM:FPAR:FAIL
    15:04:39.577 -> 36042 TSM:FAIL:CNT=1
    15:04:39.577 -> 36042 TSM:FAIL:DIS
    15:04:39.577 -> 36044 TSF:TDI:TSL
    15:04:49.559 -> 46045 TSM:FAIL:RE-INIT
    15:04:49.606 -> 46045 TSM:INIT
    15:04:49.606 -> 46061 TSM:INIT:TSP OK
    15:04:49.606 -> 46061 TSM:INIT:STATID=10
    15:04:49.606 -> 46063 TSF:SID:OK,ID=10
    15:04:49.606 -> 46063 TSM:FPAR
    15:04:59.001 -> 53065 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:04:59.001 -> 55068 !TSM:FPAR:NO REPLY
    15:04:59.001 -> 55068 TSM:FPAR
    15:05:05.576 -> 62070 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:05:07.591 -> 64073 !TSM:FPAR:NO REPLY
    15:05:07.591 -> 64073 TSM:FPAR
    15:05:14.578 -> 71075 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:05:16.610 -> 73078 !TSM:FPAR:NO REPLY
    15:05:16.610 -> 73078 TSM:FPAR
    15:05:23.594 -> 80080 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:05:25.614 -> 82083 !TSM:FPAR:FAIL
    15:05:25.614 -> 82083 TSM:FAIL:CNT=2
    15:05:25.614 -> 82083 TSM:FAIL:DIS
    15:05:25.614 -> 82085 TSF:TDI:TSL
    15:05:35.568 -> 92086 TSM:FAIL:RE-INIT
    15:05:35.568 -> 92086 TSM:INIT
    15:05:35.615 -> 92102 TSM:INIT:TSP OK
    15:05:35.615 -> 92102 TSM:INIT:STATID=10
    15:05:35.615 -> 92104 TSF:SID:OK,ID=10
    15:05:35.615 -> 92104 TSM:FPAR
    15:05:42.619 -> 99106 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:05:44.626 -> 101109 !TSM:FPAR:NO REPLY
    15:05:44.626 -> 101109 TSM:FPAR
    15:05:51.590 -> 108111 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:05:53.582 -> 110114 !TSM:FPAR:NO REPLY
    15:05:53.582 -> 110114 TSM:FPAR
    15:06:00.582 -> 117116 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:06:02.609 -> 119119 !TSM:FPAR:NO REPLY
    15:06:02.609 -> 119119 TSM:FPAR
    15:06:09.589 -> 126121 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:06:11.592 -> 128126 !TSM:FPAR:FAIL
    15:06:11.592 -> 128126 TSM:FAIL:CNT=3
    15:06:11.592 -> 128126 TSM:FAIL:DIS
    15:06:11.592 -> 128129 TSF:TDI:TSL
    15:06:21.571 -> 138131 TSM:FAIL:RE-INIT
    15:06:21.607 -> 138131 TSM:INIT
    15:06:21.607 -> 138147 TSM:INIT:TSP OK
    15:06:21.607 -> 138147 TSM:INIT:STATID=10
    15:06:21.607 -> 138149 TSF:SID:OK,ID=10
    15:06:21.607 -> 138149 TSM:FPAR
    15:06:28.620 -> 145152 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:06:30.594 -> 147156 !TSM:FPAR:NO REPLY
    15:06:30.594 -> 147156 TSM:FPAR
    15:06:37.610 -> 154157 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:06:39.606 -> 156160 !TSM:FPAR:NO REPLY
    15:06:39.606 -> 156160 TSM:FPAR
    15:06:46.607 -> 163160 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:06:48.582 -> 165163 !TSM:FPAR:NO REPLY
    15:06:48.582 -> 165163 TSM:FPAR
    15:06:55.595 -> 172163 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:06:57.580 -> 174166 !TSM:FPAR:FAIL
    15:06:57.580 -> 174166 TSM:FAIL:CNT=4
    15:06:57.580 -> 174166 TSM:FAIL:DIS
    15:06:57.580 -> 174168 TSF:TDI:TSL
    15:07:07.588 -> 184170 TSM:FAIL:RE-INIT
    15:07:07.588 -> 184170 TSM:INIT
    15:07:07.635 -> 184186 TSM:INIT:TSP OK
    15:07:07.635 -> 184186 TSM:INIT:STATID=10
    15:07:07.635 -> 184188 TSF:SID:OK,ID=10
    15:07:07.635 -> 184188 TSM:FPAR
    15:07:14.597 -> 191191 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:07:16.606 -> 193196 !TSM:FPAR:NO REPLY
    15:07:16.606 -> 193196 TSM:FPAR
    15:07:23.598 -> 200196 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:07:25.625 -> 202199 !TSM:FPAR:NO REPLY
    15:07:25.625 -> 202199 TSM:FPAR
    15:07:32.584 -> 209199 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:07:34.604 -> 211202 !TSM:FPAR:NO REPLY
    15:07:34.604 -> 211202 TSM:FPAR
    15:07:41.599 -> 218202 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:07:43.611 -> 220205 !TSM:FPAR:FAIL
    15:07:43.611 -> 220205 TSM:FAIL:CNT=5
    15:07:43.611 -> 220205 TSM:FAIL:DIS
    15:07:43.611 -> 220207 TSF:TDI:TSL
    15:07:53.620 -> 230209 TSM:FAIL:RE-INIT
    15:07:53.620 -> 230209 TSM:INIT
    15:07:53.620 -> 230225 TSM:INIT:TSP OK
    15:07:53.620 -> 230225 TSM:INIT:STATID=10
    15:07:53.620 -> 230227 TSF:SID:OK,ID=10
    15:07:53.620 -> 230227 TSM:FPAR
    15:08:00.605 -> 237230 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:08:02.590 -> 239233 !TSM:FPAR:NO REPLY
    15:08:02.637 -> 239233 TSM:FPAR
    15:08:09.599 -> 246233 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:08:11.591 -> 248236 !TSM:FPAR:NO REPLY
    15:08:11.591 -> 248236 TSM:FPAR
    15:08:18.613 -> 255236 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:08:20.594 -> 257239 !TSM:FPAR:NO REPLY
    15:08:20.594 -> 257239 TSM:FPAR
    15:08:27.584 -> 264239 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    15:08:29.623 -> 266242 !TSM:FPAR:FAIL
    15:08:29.623 -> 266242 TSM:FAIL:CNT=6
    15:08:29.623 -> 266242 TSM:FAIL:DIS
    15:08:29.623 -> 266244 TSF:TDI:TSL
    

    And the Gateway Log (serial messages received in Openhab):

    2019-09-11 15:01:34.805 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2400215 TSM:READY:NWD REQ
    2019-09-11 15:01:34.869 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2400266 TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    2019-09-11 15:04:05.668 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2551047 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:04:05.671 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2551053 TSF:MSG:BC
    2019-09-11 15:04:05.673 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2551058 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:04:05.676 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2551064 TSF:PNG:SEND,TO=0
    2019-09-11 15:04:05.678 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2551070 TSF:CKU:OK
    2019-09-11 15:04:05.681 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2551075 TSF:MSG:GWL OK
    2019-09-11 15:04:09.578 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2554976 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:04:14.652 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2560042 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:04:14.658 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2560049 TSF:MSG:BC
    2019-09-11 15:04:14.661 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2560054 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:04:14.668 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2560060 TSF:CKU:OK,FCTRL
    2019-09-11 15:04:14.677 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2560065 TSF:MSG:GWL OK
    2019-09-11 15:04:18.292 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2563672 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:04:23.658 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2569040 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:04:23.662 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2569046 TSF:MSG:BC
    2019-09-11 15:04:23.666 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2569051 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:04:23.670 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2569057 TSF:CKU:OK,FCTRL
    2019-09-11 15:04:23.673 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2569063 TSF:MSG:GWL OK
    2019-09-11 15:04:28.133 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2573528 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:04:32.646 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2578038 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:04:32.651 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2578044 TSF:MSG:BC
    2019-09-11 15:04:32.654 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2578049 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:04:32.659 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2578055 TSF:CKU:OK,FCTRL
    2019-09-11 15:04:32.665 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2578060 TSF:MSG:GWL OK
    2019-09-11 15:04:36.990 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2582384 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:04:51.662 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2597048 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:04:51.668 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2597054 TSF:MSG:BC
    2019-09-11 15:04:51.671 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2597059 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:04:51.676 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2597065 TSF:PNG:SEND,TO=0
    2019-09-11 15:04:51.680 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2597071 TSF:CKU:OK
    2019-09-11 15:04:51.687 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2597076 TSF:MSG:GWL OK
    2019-09-11 15:04:55.485 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2600884 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:05:00.659 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2606046 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:05:00.665 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2606052 TSF:MSG:BC
    2019-09-11 15:05:00.671 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2606057 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:05:00.675 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2606063 TSF:CKU:OK,FCTRL
    2019-09-11 15:05:00.679 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2606068 TSF:MSG:GWL OK
    2019-09-11 15:05:05.170 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2610572 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:05:09.646 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2615043 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:05:09.652 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2615049 TSF:MSG:BC
    2019-09-11 15:05:09.656 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2615054 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:05:09.665 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2615060 TSF:CKU:OK,FCTRL
    2019-09-11 15:05:09.668 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2615066 TSF:MSG:GWL OK
    2019-09-11 15:05:14.090 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2619492 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:05:18.651 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2624041 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:05:18.654 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2624047 TSF:MSG:BC
    2019-09-11 15:05:18.658 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2624052 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:05:18.662 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2624058 TSF:CKU:OK,FCTRL
    2019-09-11 15:05:18.670 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2624063 TSF:MSG:GWL OK
    2019-09-11 15:05:22.844 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2628248 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:05:37.654 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2643051 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:05:37.666 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2643057 TSF:MSG:BC
    2019-09-11 15:05:37.683 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2643062 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:05:37.695 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2643068 TSF:PNG:SEND,TO=0
    2019-09-11 15:05:37.702 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2643074 TSF:CKU:OK
    2019-09-11 15:05:37.706 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2643078 TSF:MSG:GWL OK
    2019-09-11 15:05:41.453 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2646848 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:05:46.656 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2652048 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:05:46.665 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2652055 TSF:MSG:BC
    2019-09-11 15:05:46.669 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2652060 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:05:46.673 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2652066 TSF:CKU:OK,FCTRL
    2019-09-11 15:05:46.680 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2652071 TSF:MSG:GWL OK
    2019-09-11 15:05:51.232 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2656636 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:05:55.659 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2661046 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:05:55.663 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2661052 TSF:MSG:BC
    2019-09-11 15:05:55.667 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2661057 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:05:55.671 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2661063 TSF:CKU:OK,FCTRL
    2019-09-11 15:05:55.675 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2661069 TSF:MSG:GWL OK
    2019-09-11 15:05:59.959 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2665356 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:06:04.653 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2670044 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:06:04.657 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2670050 TSF:MSG:BC
    2019-09-11 15:06:04.660 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2670055 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:06:04.664 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2670061 TSF:CKU:OK,FCTRL
    2019-09-11 15:06:04.671 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2670066 TSF:MSG:GWL OK
    2019-09-11 15:06:08.753 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2674148 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:06:23.669 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2689060 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:06:23.676 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2689066 TSF:MSG:BC
    2019-09-11 15:06:23.681 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2689071 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:06:23.685 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2689077 TSF:PNG:SEND,TO=0
    2019-09-11 15:06:23.696 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2689082 TSF:CKU:OK
    2019-09-11 15:06:23.711 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2689087 TSF:MSG:GWL OK
    2019-09-11 15:06:27.381 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2692780 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
    2019-09-11 15:06:32.656 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2698057 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    2019-09-11 15:06:32.660 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2698064 TSF:MSG:BC
    2019-09-11 15:06:32.675 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2698069 TSF:MSG:FPAR REQ,ID=10
    2019-09-11 15:06:32.679 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 0;255;3;0;9;2698074 TSF:CKU:OK,FCTRL
    

    The logs from the gateway is a little bit more dificult to follow because of the lenght of the messages due to the heading from Openhab preciding the debug messages.

    Regarding the <MyConfig.h>, I believe it is because I have used it in the first MySensors implementation I did... some years ago (version 1.4) it was required.. I think.. and I have copied it in this new implementation.

    EDIT: The logs received in the Gateway is using the TTGO ESP32 Lora as gateway and Lora32U4 as Node. If I use another Lora32U4 as gateway no messages are received. With the TTGO at least I see that when I power the Node, the Gateway starts receiving messages indicating that there is communication and that the transmission part in the Lora32U4 is working.



  • @yveaux Thank you for the replay.
    I read that post when I was testing the board but I don't know much about radio protocols and I get a little confused trying to extrapolate the information in that post to MySensors. The boards I have are version v1.2 (printed in the PCB).
    What I understood from the post (I could be totally wrong), is that if I want to implement LoRaWan protocol with that board I would need to solder DIO1 and DIO2 to some IO pins (preferably pin5 and pin6 using wire instead of the 1 and 2 that would be the easy ones with the soldering pads). But I believe for radio use with MySensors (no LoRaWan) I don't have to solder DIO1 or DIO2... (Is this assumption right?) as I got the boards talking to each other with the RadioHead library and the pin definitions I posted the sketch.

    RadioHead TX test sketch:

    // Feather9x_TX
    // -*- mode: C++ -*-
    // Example sketch showing how to create a simple messaging client (transmitter)
    // with the RH_RF95 class. RH_RF95 class does not provide for addressing or
    // reliability, so you should only use RH_RF95 if you do not need the higher
    // level messaging abilities.
    // It is designed to work with the other example Feather9x_RX
    
    #include <SPI.h>
    #include <RH_RF95.h>
    
    // for feather32u4 
    #define RFM95_CS 8
    #define RFM95_RST 4
    #define RFM95_INT 7
    
    
    /* for feather m0  
    #define RFM95_CS 8
    #define RFM95_RST 4
    #define RFM95_INT 3
    */
    
    /* for shield 
    #define RFM95_CS 10
    #define RFM95_RST 9
    #define RFM95_INT 7
    */
    
    /* Feather 32u4 w/wing
    #define RFM95_RST     11   // "A"
    #define RFM95_CS      10   // "B"
    #define RFM95_INT     2    // "SDA" (only SDA/SCL/RX/TX have IRQ!)
    */
    
    /* Feather m0 w/wing 
    #define RFM95_RST     11   // "A"
    #define RFM95_CS      10   // "B"
    #define RFM95_INT     6    // "D"
    */
    
    #if defined(ESP8266)
      /* for ESP w/featherwing */ 
      #define RFM95_CS  2    // "E"
      #define RFM95_RST 16   // "D"
      #define RFM95_INT 15   // "B"
    
    #elif defined(ESP32)  
      /* ESP32 feather w/wing */
      #define RFM95_RST     27   // "A"
      #define RFM95_CS      33   // "B"
      #define RFM95_INT     12   //  next to A
    
    #elif defined(NRF52)  
      /* nRF52832 feather w/wing */
      #define RFM95_RST     7   // "A"
      #define RFM95_CS      11   // "B"
      #define RFM95_INT     31   // "C"
      
    #elif defined(TEENSYDUINO)
      /* Teensy 3.x w/wing */
      #define RFM95_RST     9   // "A"
      #define RFM95_CS      10   // "B"
      #define RFM95_INT     4    // "C"
    #endif
    
    // Change to 434.0 or other frequency, must match RX's freq!
    #define RF95_FREQ 868.0
    
    // Singleton instance of the radio driver
    RH_RF95 rf95(RFM95_CS, RFM95_INT);
    
    void setup() 
    {
      pinMode(RFM95_RST, OUTPUT);
      digitalWrite(RFM95_RST, HIGH);
    
      Serial.begin(115200);
      while (!Serial) {
        delay(1);
      }
    
      delay(100);
    
      Serial.println("Feather LoRa TX Test!");
    
      // manual reset
      digitalWrite(RFM95_RST, LOW);
      delay(10);
      digitalWrite(RFM95_RST, HIGH);
      delay(10);
    
      while (!rf95.init()) {
        Serial.println("LoRa radio init failed");
        Serial.println("Uncomment '#define SERIAL_DEBUG' in RH_RF95.cpp for detailed debug info");
        while (1);
      }
      Serial.println("LoRa radio init OK!");
    
      // Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250, +13dbM
      if (!rf95.setFrequency(RF95_FREQ)) {
        Serial.println("setFrequency failed");
        while (1);
      }
      Serial.print("Set Freq to: "); Serial.println(RF95_FREQ);
      
      // Defaults after init are 434.0MHz, 13dBm, Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on
    
      // The default transmitter power is 13dBm, using PA_BOOST.
      // If you are using RFM95/96/97/98 modules which uses the PA_BOOST transmitter pin, then 
      // you can set transmitter powers from 5 to 23 dBm:
      rf95.setTxPower(23, false);
    }
    
    int16_t packetnum = 0;  // packet counter, we increment per xmission
    
    void loop()
    {
      delay(1000); // Wait 1 second between transmits, could also 'sleep' here!
      Serial.println("Transmitting..."); // Send a message to rf95_server
      
      char radiopacket[20] = "Hello World #      ";
      itoa(packetnum++, radiopacket+13, 10);
      Serial.print("Sending "); Serial.println(radiopacket);
      radiopacket[19] = 0;
      
      Serial.println("Sending...");
      delay(10);
      rf95.send((uint8_t *)radiopacket, 20);
    
      Serial.println("Waiting for packet to complete..."); 
      delay(10);
      rf95.waitPacketSent();
      // Now wait for a reply
      uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
      uint8_t len = sizeof(buf);
    
      Serial.println("Waiting for reply...");
      if (rf95.waitAvailableTimeout(1000))
      { 
        // Should be a reply message for us now   
        if (rf95.recv(buf, &len))
       {
          Serial.print("Got reply: ");
          Serial.println((char*)buf);
          Serial.print("RSSI: ");
          Serial.println(rf95.lastRssi(), DEC);    
        }
        else
        {
          Serial.println("Receive failed");
        }
      }
      else
      {
        Serial.println("No reply, is there a listener around?");
      }
    
    }
    

    RadioHead RX Test Sketch:

    // Feather9x_RX
    // -*- mode: C++ -*-
    // Example sketch showing how to create a simple messaging client (receiver)
    // with the RH_RF95 class. RH_RF95 class does not provide for addressing or
    // reliability, so you should only use RH_RF95 if you do not need the higher
    // level messaging abilities.
    // It is designed to work with the other example Feather9x_TX
    
    #include <SPI.h>
    #include <RH_RF95.h>
    
    // for Feather32u4 RFM9x
    #define RFM95_CS 8
    #define RFM95_RST 4
    #define RFM95_INT 7
    
    
    /* for feather m0 RFM9x
    #define RFM95_CS 8
    #define RFM95_RST 4
    #define RFM95_INT 3
    */
    
    /* for shield 
    #define RFM95_CS 10
    #define RFM95_RST 9
    #define RFM95_INT 7
    */
    
    /* Feather 32u4 w/wing
    #define RFM95_RST     11   // "A"
    #define RFM95_CS      10   // "B"
    #define RFM95_INT     2    // "SDA" (only SDA/SCL/RX/TX have IRQ!)
    */
    
    /* Feather m0 w/wing 
    #define RFM95_RST     11   // "A"
    #define RFM95_CS      10   // "B"
    #define RFM95_INT     6    // "D"
    */
    
    #if defined(ESP8266)
      /* for ESP w/featherwing */ 
      #define RFM95_CS  2    // "E"
      #define RFM95_RST 16   // "D"
      #define RFM95_INT 15   // "B"
    
    #elif defined(ESP32)  
      /* ESP32 feather w/wing */
      #define RFM95_RST     27   // "A"
      #define RFM95_CS      33   // "B"
      #define RFM95_INT     12   //  next to A
    
    #elif defined(NRF52)  
      /* nRF52832 feather w/wing */
      #define RFM95_RST     7   // "A"
      #define RFM95_CS      11   // "B"
      #define RFM95_INT     31   // "C"
      
    #elif defined(TEENSYDUINO)
      /* Teensy 3.x w/wing */
      #define RFM95_RST     9   // "A"
      #define RFM95_CS      10   // "B"
      #define RFM95_INT     4    // "C"
    #endif
    
    
    // Change to 434.0 or other frequency, must match RX's freq!
    #define RF95_FREQ 868.0
    
    // Singleton instance of the radio driver
    RH_RF95 rf95(RFM95_CS, RFM95_INT);
    
    // Blinky on receipt
    #define LED 13
    
    void setup()
    {
      pinMode(LED, OUTPUT);
      pinMode(RFM95_RST, OUTPUT);
      digitalWrite(RFM95_RST, HIGH);
    
      Serial.begin(115200);
      while (!Serial) {
        delay(1);
      }
      delay(100);
    
      Serial.println("Feather LoRa RX Test!");
    
      // manual reset
      digitalWrite(RFM95_RST, LOW);
      delay(10);
      digitalWrite(RFM95_RST, HIGH);
      delay(10);
    
      while (!rf95.init()) {
        Serial.println("LoRa radio init failed");
        Serial.println("Uncomment '#define SERIAL_DEBUG' in RH_RF95.cpp for detailed debug info");
        while (1);
      }
      Serial.println("LoRa radio init OK!");
    
      // Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250, +13dbM
      if (!rf95.setFrequency(RF95_FREQ)) {
        Serial.println("setFrequency failed");
        while (1);
      }
      Serial.print("Set Freq to: "); Serial.println(RF95_FREQ);
    
      // Defaults after init are 434.0MHz, 13dBm, Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on
    
      // The default transmitter power is 13dBm, using PA_BOOST.
      // If you are using RFM95/96/97/98 modules which uses the PA_BOOST transmitter pin, then
      // you can set transmitter powers from 5 to 23 dBm:
      rf95.setTxPower(23, false);
    }
    
    void loop()
    {
      if (rf95.available())
      {
        // Should be a message for us now
        uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
        uint8_t len = sizeof(buf);
    
        if (rf95.recv(buf, &len))
        {
          digitalWrite(LED, HIGH);
          RH_RF95::printBuffer("Received: ", buf, len);
          Serial.print("Got: ");
          Serial.println((char*)buf);
           Serial.print("RSSI: ");
          Serial.println(rf95.lastRssi(), DEC);
    
          // Send a reply
          uint8_t data[] = "And hello back to you";
          rf95.send(data, sizeof(data));
          rf95.waitPacketSent();
          Serial.println("Sent a reply");
          digitalWrite(LED, LOW);
        }
        else
        {
          Serial.println("Receive failed");
        }
      }
    }
    

    The receiver node got the message with this library and without soldering DIO1 and DIO2.
    Thanks again for the support!



  • I realize this topic is old, but not sure if it was ever resolved. I'm trying out one of these boards at the moment, this was the only topic I seen about the board and I encountered the same issues as above.

    This is how I got it to communicate in the end and I thought I'd leave it here in case anyone else is looking at the same.

    #define MY_RADIO_RFM95
    #define MY_RFM95_RST_PIN 4
    #define MY_RFM95_CS_PIN 8
    #define MY_RFM95_IRQ_PIN 7
    #define MY_RFM95_IRQ_NUM digitalPinToInterrupt(7)
    #define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128
    #define MY_RFM95_FREQUENCY (RFM95_868MHZ)

    Soft SPI isn't necessary, but the only issue in the code above was the missing digitalPinToInterrupt.
    #define MY_RFM95_IRQ_NUM digitalPinToInterrupt(7)
    I presume the following should work also:
    #define MY_RFM95_IRQ_NUM digitalPinToInterrupt(MY_RFM95_IRQ_PIN)



  • @FarmerEd Thank you very much for taking the time to post the solution!
    At the moment I have dismantled the gateway with RF69 (moved to a LoRa gateway) but I will try to find some time in the following months to test the code.



  • @CarloMagno, No problem, this is not an RF69 device, it is RFM95 which is LoRa. I'm only interested in LoRa radios at the moment as I'm building a sensor network across a farm.



  • @FarmerEd You are totally right 😊 .. I have left them so long ago that I forgot that I bought them when I changed from RF69 to LoRa. When i bought them (3 years ago they were a good solution if you want Lora in a pre-built board and don't need the power and price of ESP32 .. I have checked on-line shops for them now but the price advantage seems to have gone.



  • I can confirm the solution posted by FarmerEd works for me. I was able to transmit from a Lora32u4 ii (node) to a TTGO Lora32 gateway.
    As pointed in his post, the right line was:

    #define MY_RFM95_IRQ_NUM digitalPinToInterrupt(7)
    

    instead of #define MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
    or #define MY_RFM95_IRQ_NUM 7

    Thanks very much again for taking the time to post the solution.


Log in to reply
 

Suggested Topics

  • 87
  • 5
  • 7
  • 6
  • 10
  • 7

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts