No response 12 check wiring Lora E220

I am trying to make a transparent transmission with esp32 and Lora E220T400D module but I am getting an error. I am sharing with you the code I used and my connection diagram.

// ESP32_02_sendTransparentTransmission

/*
 * EBYTE LoRa E220
 * send a transparent message, you must check that the transmitter and receiver have the same
 * CHANNEL ADDL and ADDH
 *
 * Pay attention e220 support RSSI, if you want use that functionality you must enable RSSI on configuration
 * configuration.TRANSMISSION_MODE.enableRSSI = RSSI_ENABLED;
 *
 * and uncomment #define ENABLE_RSSI true in this sketch
 *
 * You must uncommend the correct constructor.
 *
 * by Renzo Mischianti <https://www.mischianti.org>
 *
 * https://www.mischianti.org
 *
 * E220		  ----- WeMos D1 mini	----- esp32			----- Arduino Nano 33 IoT	----- Arduino MKR	----- Raspberry Pi Pico   ----- stm32               ----- ArduinoUNO
 * M0         ----- D7 (or GND) 	----- 19 (or GND) 	----- 4 (or GND) 			----- 2 (or GND) 	----- 10 (or GND)	      ----- PB0 (or GND)        ----- 7 Volt div (or GND)
 * M1         ----- D6 (or GND) 	----- 21 (or GND) 	----- 6 (or GND) 			----- 4 (or GND) 	----- 11 (or GND)	      ----- PB10 (or GND)       ----- 6 Volt div (or GND)
 * TX         ----- D3 (PullUP)		----- TX2 (PullUP)	----- TX1 (PullUP)			----- 14 (PullUP)	----- 8 (PullUP)	      ----- PA2 TX2 (PullUP)    ----- 4 (PullUP)
 * RX         ----- D4 (PullUP)		----- RX2 (PullUP)	----- RX1 (PullUP)			----- 13 (PullUP)	----- 9 (PullUP)	      ----- PA3 RX2 (PullUP)    ----- 5 Volt div (PullUP)
 * AUX        ----- D5 (PullUP)		----- 18  (PullUP)	----- 2  (PullUP)			----- 0  (PullUP)	----- 2  (PullUP)	      ----- PA0  (PullUP)       ----- 3 (PullUP)
 * VCC        ----- 3.3v/5v			----- 3.3v/5v		----- 3.3v/5v				----- 3.3v/5v		----- 3.3v/5v		      ----- 3.3v/5v             ----- 3.3v/5v
 * GND        ----- GND				----- GND			----- GND					----- GND			----- GND			      ----- GND                 ----- GND
 *
 */
#define ENABLE_RSSI true
#define FREQUENCY_868

#include "Arduino.h"
#include "LoRa_E220.h"

// ---------- esp8266 pins --------------
//LoRa_E220 e220ttl(RX, TX, AUX, M0, M1);  // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
//LoRa_E220 e220ttl(D3, D4, D5, D7, D6); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX AUX M0 M1
//LoRa_E220 e220ttl(D2, D3); // Config without connect AUX and M0 M1

//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(D2, D3); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
//LoRa_E220 e220ttl(&mySerial, D5, D7, D6); // AUX M0 M1
// -------------------------------------

// ---------- Arduino pins --------------
//LoRa_E220 e220ttl(4, 5, 3, 7, 6); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX AUX M0 M1
//LoRa_E220 e220ttl(4, 5); // Config without connect AUX and M0 M1

//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(4, 5); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
//LoRa_E220 e220ttl(&mySerial, 3, 7, 6); // AUX M0 M1
// -------------------------------------

// ------------- Arduino Nano 33 IoT -------------
// LoRa_E220 e220ttl(&Serial1, 2, 4, 6); //  RX AUX M0 M1
// -------------------------------------------------

// ------------- Arduino MKR WiFi 1010 -------------
// LoRa_E220 e220ttl(&Serial1, 0, 2, 4); //  RX AUX M0 M1
// -------------------------------------------------

// ---------- esp32 pins --------------
// LoRa_E220 e220ttl(&Serial2, 15, 21, 19); //  RX AUX M0 M1
//  ESP32
#define RXD1 16
#define TXD1 17

// ---------- esp32 pins --------------
LoRa_E220 e220ttl(&Serial2, 18, 21, 19);  //  RX AUX M0 M1

//LoRa_E220 e220ttl(&Serial2, 22, 4, 18, 21, 19, UART_BPS_RATE_9600); //  esp32 RX <-- e220 TX, esp32 TX --> e220 RX AUX M0 M1
// -------------------------------------

// ---------- Raspberry PI Pico pins --------------
// LoRa_E220 e220ttl(&Serial2, 2, 10, 11); //  RX AUX M0 M1
// -------------------------------------

// ---------------- STM32 --------------------
//HardwareSerial Serial2(USART2);   // PA3  (RX)  PA2  (TX)
//LoRa_E220 e220ttl(&Serial2, PA0, PB0, PB10); //  RX AUX M0 M1
// -------------------------------------------------

// test structure
struct _attribute_((packed)) Struct1 {
  int16_t seq;  // sequence number
  float temperature;
  float humidity;
  float pressure;
};

Struct1 struct1 = { 0, 25.6f, 50.9f, 100.0f };  // test values

void setup() {
  Serial.begin(115200);
  Serial2.begin(9600, SERIAL_8N1, RXD1, TXD1);  // for LoRa E220  delay(500);

  // Startup all pins and UART
  e220ttl.begin();
  sendData();
}

void sendData(void) {
// update data ready for next transmissiom - replace with code to read sensor
  struct1.temperature += 1.0f;
  struct1.humidity += 10.0f;
  struct1.pressure += 100.0f;
  Serial.print("\nESP32 > transmit > ");
  ResponseStatus rs = e220ttl.sendMessage(&struct1, sizeof(struct1));
  // Check If there is some problem of succesfully send
  Serial.print(rs.getResponseDescription());  // transmit structure and print vales transmitted
  Serial.print("  temperature ");
  Serial.print(struct1.temperature);
  Serial.print("  humidity ");
  Serial.print(struct1.humidity);
  Serial.print("  pressure ");
  Serial.println(struct1.pressure);
   struct1.seq++;
   }

void loop() {
  static long timer = millis();
  static int seqExpected = 0;
  // If something available
  if (e220ttl.available() > 1) {
    // read the structure message
    ResponseStructContainer rc = e220ttl.receiveMessageRSSI(sizeof(Struct1));
    // Is something goes wrong print error
    if (rc.status.code != 1) {
      Serial.println(rc.status.getResponseDescription());
    } else {
      // Print the data received
      Serial.print("ResponseDescription ");
      Serial.print(rc.status.getResponseDescription());
      Serial.print("  seq ");
      Serial.print(((Struct1*)rc.data)->seq);
      Serial.print("  temperature ");
      Serial.print(((Struct1*)rc.data)->temperature);
      Serial.print("  humidity ");
      Serial.print(((Struct1*)rc.data)->humidity);
      Serial.print("  pressure ");
      Serial.print(((Struct1*)rc.data)->pressure);
      Serial.print(" RSSI: ");
      Serial.println(rc.rssi, DEC);
      // check for sequence error
      if (struct1.seq != seqExpected) {
        Serial.print("*** Sequence number error ! expected ");
        Serial.println(seqExpected);
      }
      seqExpected = struct1.seq + 1;  // set up next sequence number
    }
  }
  if (millis() - timer > 5000) {
    timer = millis();
    sendData();
  }
}




You forgot to attach that.

I added it. You can review it.

Is the LoRa board compatible with 5V? Please post a link to the specs.

Why are pull-up resistors needed on Tx & Rx pins?

You forgot to share the error.

The E220-400T LoRa module typically used with Arduino operates at 3.3V for both its logic level and power supply and can draw up tp ~120 mA at maximum power. This board can be powered from 3.3 to 5V.

he said

I found a data sheet for the same module elsewhere, but with slightly different information on the optimum voltage supply:


If in doubt, try out whether you achieve better results with 5 volts.

in the doc he wrote he mentions those pins can be open drain or not.

I moved your topic to a more appropriate forum category @melloisa .

The Nano ESP32 category you chose is only used for discussions directly related to the Arduino Nano ESP32 board.

In the future, please take the time to pick the forum category that best suits the subject of your question. There is an "About the _____ category" topic at the top of each category that explains its purpose.

Thanks in advance for your cooperation.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.