Lora E32 receive false message

Viewing 6 reply threads
  • Author
    Posts
    • #28875
      mwir123
      Participant

        I’m using 2 Lora e32 and 2 node MCU v3 to test send data with your example. However my receiver not receive what my transmitter send T.T
        this is my transmitter code( I wire the same as in the code):

        /*
         * LoRa E32-TTL-100
         * Send fixed transmission structured message to a specified point.
         * https://mischianti.org
         *
         * E32-TTL-100----- Arduino UNO or esp8266
         * M0         ----- 3.3v (To config) GND (To send) 7 (To dinamically manage)
         * M1         ----- 3.3v (To config) GND (To send) 6 (To dinamically manage)
         * TX         ----- PIN 2 (PullUP)
         * RX         ----- PIN 3 (PullUP & Voltage divider)
         * AUX        ----- Not connected (5 if you connect)
         * VCC        ----- 3.3v/5v
         * GND        ----- GND
         *
         */
        #include "Arduino.h"
        #include "LoRa_E32.h"
         
        // ---------- esp8266 pins --------------
        
        SoftwareSerial mySerial(D2, D3); // e32 TX e32 RX
        LoRa_E32 e32ttl(D2, D3, D5, D7, D6);
         
        
         
        void printParameters(struct Configuration configuration);
        
        //The setup function is called once at startup of the sketch
        void setup()
        {
            Serial.begin(9600);
            while (!Serial) {
                ; // wait for serial port to connect. Needed for native USB
            }
            delay(100);
            pinMode(14,INPUT);
            pinMode(12,OUTPUT);
            pinMode(13,OUTPUT);
            digitalWrite(12,LOW);
            digitalWrite(13,LOW);
            // digitalWrite(13,HIGH);
            // digitalWrite(12,HIGH);
            e32ttl.begin();
            // After set configuration comment set M0 and M1 to low
            // and reboot if you directly set HIGH M0 and M1 to program
            ResponseStructContainer c;
            c = e32ttl.getConfiguration();
            Configuration configuration = *(Configuration*) c.data;
            configuration.ADDL = 0x02;
            configuration.ADDH = 0x02;
            configuration.CHAN = 0x21;
            configuration.OPTION.fec = FEC_1_ON;
            configuration.OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION;
            configuration.OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS;
            configuration.OPTION.transmissionPower = POWER_20;
            configuration.OPTION.wirelessWakeupTime = WAKE_UP_750;
         
            configuration.SPED.airDataRate = AIR_DATA_RATE_010_24;
            configuration.SPED.uartBaudRate = 9600;
            configuration.SPED.uartParity = MODE_00_8N1;
            configuration.OPTION.fixedTransmission = FT_FIXED_TRANSMISSION;
            e32ttl.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
            printParameters(configuration);
            // ---------------------------
            
        }
        
         
        int i = 0;
        // The loop function is called in an endless loop
        void loop()
        {
            sendata("prova");
        }
        
        void sendata(String str){
          String s=str + ":" + String(i);
          i++; 
          ResponseStatus rs=e32ttl.sendFixedMessage(0x01,0x01,0x21,s);
          Serial.println(s);
          Serial.println(rs.getResponseDescription());
          delay(1000);
        }
        void printParameters(struct Configuration configuration) {
            Serial.println("----------------------------------------");
         
            Serial.print(F("HEAD : "));  Serial.print(configuration.HEAD, BIN);Serial.print(" ");Serial.print(configuration.HEAD, DEC);Serial.print(" ");Serial.println(configuration.HEAD, HEX);
            Serial.println(F(" "));
            Serial.print(F("AddH : "));  Serial.println(configuration.ADDH, BIN);
            Serial.print(F("AddL : "));  Serial.println(configuration.ADDL, BIN);
            Serial.print(F("Chan : "));  Serial.print(configuration.CHAN, DEC); Serial.print(" -> "); Serial.println(configuration.getChannelDescription());
            Serial.println(F(" "));
            Serial.print(F("SpeedParityBit     : "));  Serial.print(configuration.SPED.uartParity, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTParityDescription());
            Serial.print(F("SpeedUARTDatte  : "));  Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTBaudRate());
            Serial.print(F("SpeedAirDataRate   : "));  Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getAirDataRate());
         
            Serial.print(F("OptionTrans        : "));  Serial.print(configuration.OPTION.fixedTransmission, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFixedTransmissionDescription());
            Serial.print(F("OptionPullup       : "));  Serial.print(configuration.OPTION.ioDriveMode, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getIODroveModeDescription());
            Serial.print(F("OptionWakeup       : "));  Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getWirelessWakeUPTimeDescription());
            Serial.print(F("OptionFEC          : "));  Serial.print(configuration.OPTION.fec, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFECDescription());
            Serial.print(F("OptionPower        : "));  Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
         
           
         
            Serial.println("----------------------------------------");
         
        }
        

        this is my receiver code:

        
        /*
         * LoRa E32-TTL-100
         * Receive fixed transmission structure message and read first part and load the rest of structure.
         * https://mischianti.org
         *
         * E32-TTL-100----- Arduino UNO or esp8266
         * M0         ----- 3.3v (To config) GND (To send) 7 (To dinamically manage)
         * M1         ----- 3.3v (To config) GND (To send) 6 (To dinamically manage)
         * TX         ----- PIN 2 (PullUP)
         * RX         ----- PIN 3 (PullUP & Voltage divider)
         * AUX        ----- Not connected (5 if you connect)
         * VCC        ----- 3.3v/5v
         * GND        ----- GND
         *
         */
        #include "Arduino.h"
        #include "LoRa_E32.h"
         
        // ---------- esp8266 pins --------------
        
        //LoRa_E32 e32ttl(D2, D3); // Config without connect AUX and M0 M1
         
        //#include <SoftwareSerial.h>
        SoftwareSerial mySerial(D2, D3);
        LoRa_E32 e32ttl100(D2, D3, D5, D7, D6); // e32 TX e32 RX
        
        void printParameters(struct Configuration configuration);
        
        //The setup function is called once at startup of the sketch
        void setup()
        {
            Serial.begin(9600);
            while (!Serial) {
                ; // wait for serial port to connect. Needed for native USB
            }
            delay(100);
            pinMode(14,INPUT);
            pinMode(13,OUTPUT);
            pinMode(12,OUTPUT);
            digitalWrite(13,LOW);
            digitalWrite(12,LOW);
            e32ttl100.begin();
            
         
        //  e32ttl.resetModule();
            // After set configuration comment set M0 and M1 to low
            // and reboot if you directly set HIGH M0 and M1 to program
            ResponseStructContainer c;
            c = e32ttl100.getConfiguration();
            Configuration configuration = *(Configuration*) c.data;
            configuration.ADDL = 0X01;
            configuration.ADDH = 0X01;
            configuration.CHAN = 0x21;
            configuration.OPTION.fec = FEC_1_ON;
            configuration.OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION;
            configuration.OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS;
            configuration.OPTION.transmissionPower = POWER_20;
            configuration.OPTION.wirelessWakeupTime = WAKE_UP_750;
         
            configuration.SPED.airDataRate = AIR_DATA_RATE_010_24;
            configuration.SPED.uartBaudRate = 9600;
            configuration.SPED.uartParity = MODE_00_8N1;
            configuration.OPTION.fixedTransmission = FT_FIXED_TRANSMISSION;
            e32ttl100.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
            printParameters(configuration);
            // ---------------------------
            Serial.println();
            Serial.println("Start listening!");
            //e32ttl.setMode(MODE_2_POWER_SAVING);
            // digitalWrite(13,LOW);
            // digitalWrite(12,LOW);
         
        }
        
        // The loop function is called in an endless loop
        void loop()
        {
            revdata();
        }
        String revdata( ){
          String res="" ;
          if (e32ttl100.available()  > 1){
                ResponseContainer rs = e32ttl100.receiveMessage();
                // First of all get the data
                res = rs.data;
                Serial.println(rs.data);
                Serial.println(rs.status.getResponseDescription());
                Serial.println(res);
            }
            return res;
        }
         
        void printParameters(struct Configuration configuration) {
            Serial.println("----------------------------------------");
         
            Serial.print(F("HEAD : "));  Serial.print(configuration.HEAD, BIN);Serial.print(" ");Serial.print(configuration.HEAD, DEC);Serial.print(" ");Serial.println(configuration.HEAD, HEX);
            Serial.println(F(" "));
            Serial.print(F("AddH : "));  Serial.println(configuration.ADDH, DEC);
            Serial.print(F("AddL : "));  Serial.println(configuration.ADDL, DEC);
            Serial.print(F("Chan : "));  Serial.print(configuration.CHAN, DEC); Serial.print(" -> "); Serial.println(configuration.getChannelDescription());
            Serial.println(F(" "));
            Serial.print(F("SpeedParityBit     : "));  Serial.print(configuration.SPED.uartParity, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTParityDescription());
            Serial.print(F("SpeedUARTDatte  : "));  Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTBaudRate());
            Serial.print(F("SpeedAirDataRate   : "));  Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getAirDataRate());
         
            Serial.print(F("OptionTrans        : "));  Serial.print(configuration.OPTION.fixedTransmission, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFixedTransmissionDescription());
            Serial.print(F("OptionPullup       : "));  Serial.print(configuration.OPTION.ioDriveMode, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getIODroveModeDescription());
            Serial.print(F("OptionWakeup       : "));  Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getWirelessWakeUPTimeDescription());
            Serial.print(F("OptionFEC          : "));  Serial.print(configuration.OPTION.fec, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFECDescription());
            Serial.print(F("OptionPower        : "));  Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
         
            Serial.println("----------------------------------------");
         
        }

        My receiver receive “Ok” not “Prova” and I’m struggle for days now T.T. I really need help

      • #28929
        Renzo Mischianti
        Keymaster

          Hi,
          remove all unneeded lines like

          
          SoftwareSerial mySerial(D2, D3);
          

          pin declaration etc. and retry.
          Bye Renzo

        • #29144
          Elkez
          Participant

            I have a similar problem. I need to send 3 bytes of data from the transmitter and receive it at the receiver. The data does not need to be in the form of a structure. However, the receiver displays nonsense. Have you been able to solve the problem? Thank you
            Elkez

          • #29206
            Renzo Mischianti
            Keymaster

              Hi Elkez,
              It can be a wiring problem, or there is a read or write problem in the sketch code, or a configuration problem.
              Bye Renzo

            • #29550
              Elkez
              Participant

                Hello
                receiver and transmitter must have the same ADDH and ADDL addresses? I noticed that this is not the case in the examples. I assume the channel must be the same.
                Elkez

              • #29554
                Renzo Mischianti
                Keymaster

                  Only in the transparent transmission is the same.
                  In fixed transmission, you can use the values you want but they must also be set in the receiver and transmitter.
                  Bye Renzo

                • #29751
                  Elkez
                  Participant

                    Hi Renzo
                    I want to ask about connecting E32 to Arduino UNO.
                    In the schematic pins 2,3,4,5,6 are connected but in the LoRa_E32 e32ttl(2, 3, 5, 7, 6) declaration pins 2,3,5,6,7 are used.
                    Also in your program the pins are not defined, i.e. the pinMode command.
                    Is there a bug or is it correct?
                    Thank you for the info
                    Elkez

                Viewing 6 reply threads
                • You must be logged in to reply to this topic.
                Exit mobile version