---
title: "EC-M11-EG-C5-LTE – USER GUIDE"
description: "## **Programming**  The NORVI EC-M11-EG-C5-LTE has a mini USB port for serial connection with the SoC for programming. Any ESP32-supported programming IDE can be used to program the controller. Follow this guide to programming NORVI ESP32-based Based Controllers with Arduino…"
url: "https://norvi.io/docs/norvi-ec-m11-eg-c5-lte-user-guide/"
updated: "2026-03-23"
category: "OTHER PRODUCTS / EC-M11-EG 4G LTE / EC-M11-EG-C5-LTE"
---

# EC-M11-EG-C5-LTE – USER GUIDE

## **Programming** 

The NORVI EC-M11-EG-C5-LTE has a mini USB port for serial connection with the SoC for programming. Any ESP32-supported programming IDE can be used to program the controller. Follow this guide to programming NORVI ESP32-based Based Controllers with Arduino IDE.

**SoC:** ESP32-WROOM32
**Programming Port:** USB UART

## **8-pin Connector and wire harness**

![](https://norvi.io/wp-content/uploads/2024/09/345-26.jpg)

## **Pin Description**

| 8P Male | Wire color | I/O Configuration |
| --- | --- | --- |
| 1 | White | SCL |
| 2 | Brown | SDA |
| 3 | Green | - |
| 4 | Yellow | - |
| 5 | Gray | 3.3V+ / 5V+ |
| 6 | Pink | - |
| 7 | Blue | Power+ |
| 8 | Red | Power- |

## **I2C Communication**

| IC Type | ADS 1115 |
| --- | --- |
| Module Address | 0x49 |
| SDA | GPIO16 |
| SCL | GPIO17 |

### ****Programming I2C Communication****

```cpp

                #include <Wire.h>
// Define the I2C device address
#define DEVICE_ADDRESS 0x49

void setup() {
  Wire.begin(16, 17);  // SDA on GPIO16, SCL on GPIO17
  Serial.begin(115200);
}

void loop() {
  // Write data to the I2C device
  Wire.beginTransmission(DEVICE_ADDRESS);
  Wire.write(0x01);  // Replace with your data
  Wire.write(0x02);
  Wire.write(0x03);
  Wire.endTransmission();
  delay(100);
  // Read data from the I2C device
  Wire.requestFrom(DEVICE_ADDRESS, 3);  // 3 bytes of data
  if (Wire.available() >= 3) {
    byte data1 = Wire.read();
    byte data2 = Wire.read();
    byte data3 = Wire.read();
    Serial.print("Read Data: ");
    Serial.print(data1, HEX);
    Serial.print(" ");
    Serial.print(data2, HEX);
    Serial.print(" ");
    Serial.println(data3, HEX);
  }
  delay(1000);  // Delay for demonstration purposes
}
```

### **LTE1 Communication**

| Model of LTE Modem | SIM7000-E |
| --- | --- |
| FCC ID | 2AJYU-SIM7000 |
| TAC | 86615402 |
| RXD  | GPIO25 |
| TXD | GPIO26 |
| RESET | GPIO32 |
| POWER | GPIO22 |

GPIO Connections of LTE1 Communication

## **LTE2 Communication**

| Model of LTE Modem | SIM7500 |
| --- | --- |
| FCC ID | 2AQ9M-SIM7500 |
| TAC | 86147503 |
| RXD | GPIO25 |
| TXD | GPIO26 |
| RESET | GPIO32 |
| POWER | GPIO22 |

GPIO Connections of LTE2 Communication

### **Programming LTE Communication**

```cpp

                #define MODEM_RESET 32
#define MODEM_FLIGHT 22
#define MODEM_RX 26
#define MODEM_TX 25
long timer1;
void setup() {           // initialize both serial ports:
  Serial.begin(115200);
  pinMode(MODEM_FLIGHT , OUTPUT);       // FLIGHT MODE ENABLE
  pinMode(MODEM_RESET , OUTPUT);       // MODEM RESET PIN
  digitalWrite(MODEM_FLIGHT, HIGH);   // FLIGHT MODE
  MODEM_RESET_CYC();
  delay(2000);
  Serial2.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
  Serial.println("SIM AT ATART >>>>>>>>>>>>>>");
  delay(2000);
  Serial2.println("AT");
  delay(2000);
  Serial2.println("AT+CPIN?");
  delay(2000);
  Serial2.println("AT+CNMP?");
}
void loop() {
  delay(3000);
  timer1 = millis();
  Serial2.println("AT");
  while(millis()<timer1+10000){
    while (Serial2.available()) {
    int inByte = Serial2.read();
    Serial.write(inByte);
    }
  }
  timer1 = millis();
  Serial2.println("AT+CPIN?");
  while(millis()<timer1+10000){
    while (Serial2.available()) {
    int inByte = Serial2.read();
    Serial.write(inByte);
    }
  }
  Serial.println("AT SCAN DONE");         // read from port 0, send to port 1:
  while (Serial.available()) {
    int inByte = Serial.read();
    Serial2.write(inByte);
  }
  while (Serial2.available()) {
    int inByte = Serial2.read();
    Serial.write(inByte);
  }
}
void MODEM_RESET_CYC() {
  digitalWrite(MODEM_RESET,HIGH );
  delay(1000);
  digitalWrite(MODEM_RESET,LOW );
  delay(1000);
  digitalWrite(MODEM_RESET, HIGH);
}
```
