Home › Forums › The libraries hosted on the site › EByte LoRa e32 UART devices sx1262/sx1268 › Lora E32 receive false message
- This topic has 6 replies, 3 voices, and was last updated 1 year, 2 months ago by
Elkez.
-
AuthorPosts
-
-
27 December 2023 at 11:39 #28875
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
-
27 December 2023 at 12:22 #28929
Hi,
remove all unneeded lines likeSoftwareSerial mySerial(D2, D3);
pin declaration etc. and retry.
Bye Renzo -
11 January 2024 at 09:24 #29144
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 -
12 January 2024 at 12:54 #29206
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 -
29 January 2024 at 20:56 #29550
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 -
30 January 2024 at 08:57 #29554
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-
This reply was modified 1 year, 3 months ago by
Renzo Mischianti.
-
This reply was modified 1 year, 3 months ago by
-
14 February 2024 at 11:56 #29751
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
-
-
AuthorPosts
- You must be logged in to reply to this topic.