XStore
View Categories

EC-M11-EG-C5-S – USER GUIDE

2 min read

Programming  #

The NORVI EC-M11-EG-C5-S 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 #

Pin Description #

8P MaleWire colorI/O Configuration
1WhiteSCL
2BrownSDA
3Green
4Yellow
5Gray3.3V+ / 5V+
6Pink
7BluePower+
8RedPower-

I2C Communication #

IC TypeADS 1115
Module Address0x49
SDAGPIO16
SCLGPIO17

Programming I2C Communication #

#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
}

LoRa Transceiver Module #

SpecificationLong Range(LoRa)
RF TransceiverOrder depending on regional regulations
SPI MISOGPIO19
SPI MOSIGPIO23
SPI SCKGPIO18
NSSGPIO26
DIO0GPIO25
DIO1GPIO27
DIO2NOT CONNECTED
RESETGPIO15

Programming LoRa Modules #

#include <lmic.h>
#include <hal/hal.h>
#include <SPI.h>
#define CONFIRMED_MSG_RETRY_COUNT 3
static const u1_t PROGMEM APPEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
void os_getArtEui (u1_t* buf) {
  memcpy_P(buf, APPEUI, 8);
}
static const u1_t PROGMEM DEVEUI[8] = {0x4B, 0x11, 0x3F, 0xB1, 0x3C, 0xBE, 0xD6, 0x56};
void os_getDevEui (u1_t* buf) {
  memcpy_P(buf, DEVEUI, 8);
}
static const u1_t PROGMEM APPKEY[16] = {0xF9, 0x65, 0xE4, 0xED, 0xFF, 0x8A, 0x89, 0x27, 0x23, 0xA6, 0xB7, 0x42, 0x2F, 0x05, 0x8E, 0x9F};
void os_getDevKey (u1_t* buf) {
  memcpy_P(buf, APPKEY, 16);
}
static uint8_t mydata[] = "Hello, world!";
static osjob_t sendjob;
const unsigned TX_INTERVAL = 60;
const lmic_pinmap lmic_pins = {
  .nss = 26,
  .rxtx = LMIC_UNUSED_PIN,
  .rst = 15,
  .dio = {25, 27, -1},
};
void printHex2(unsigned v) {
  v &= 0xff;
  if (v < 16)
    Serial.print('0');
  Serial.print(v, HEX);
}