---
title: "EC-M11-BC-C4 – USER GUIDE"
description: "## **Programming**  The NORVI EC-M11-BC-C4 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 controllers with the Arduino…"
url: "https://norvi.io/docs/norvi-ec-m11-bc-c4-user-guide/"
updated: "2026-03-25"
category: "OTHER PRODUCTS / EC-M11-BC / EC-M11-BC-C4"
---

# EC-M11-BC-C4 – USER GUIDE

## **Programming** 

The NORVI EC-M11-BC-C4 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 controllers with the Arduino IDE.

SoC: ESP32-WROOM32
Programming Port: USB UART

### **Wiring Thermocouple Input,**and Solar.****

### **8-pin** **and 3-pin connectors and wire harness**

![](https://norvi.io/wp-content/uploads/2024/09/df-1024x348-34.jpg)

### **Pin Description**

| **8P Male** | **Wire color** | **I/O Configuration** |
| --- | --- | --- |
| 1 | White | Thermocouple + |
| 2 | Brown | Thermocouple - |
| 3 | Green | - |
| 4 | Yellow | - |
| 5 | Gray | - |
| 6 | Pink | - |
| 7 | Blue | - |
| 8 | Red | - |

| **3P Male** | **Wire color** | **I/O Configuration** |
| --- | --- | --- |
| 1 | Blue | Solar Panel + |
| 2 | Black | Not in Use |
| 3 | Brown | Solar Panel - |

## **Thermocouple Input**

| SPI MISO | GPIO19 |
| --- | --- |
| SPI SCK | GPIO18 |
| CS | GPIO5 |

### **Programming **Thermocouple Inputs****

```cpp

                #include <SPI.h>
#include "Adafruit_MAX31855.h"
#define MAXDO  19
#define MAXCS   5
#define MAXCLK 18                // Initialize the Thermocouple
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);

void setup() {
  Serial.begin(115200);
  Serial.println("MAX31855 test");             // Wait for MAX chip to stabilize
  delay(500);
  Serial.print("Initializing sensor...");
  if (!thermocouple.begin()) {
    Serial.println("ERROR.");
    while (1) delay(10);
  }
  Serial.println("DONE.");
}

void loop() {
  Serial.print("Internal Temp = ");
  Serial.println(thermocouple.readInternal());
  double c = thermocouple.readCelsius();
  if (isnan(c)) {
    Serial.println("Thermocouple fault(s) detected!");
    uint8_t e = thermocouple.readError();
    if (e & MAX31855_FAULT_OPEN) Serial.println("FAULT: Thermocouple is open - no connections.");
    if (e & MAX31855_FAULT_SHORT_GND) Serial.println("FAULT: Thermocouple is short-circuited to GND.");
    if (e & MAX31855_FAULT_SHORT_VCC) Serial.println("FAULT: Thermocouple is short-circuited to VCC.");
  } else {
    Serial.print("C = ");
    Serial.println(c);
  }
  //Serial.print("F = ");
  //Serial.println(thermocouple.readFahrenheit());
  Serial.println("");
  Serial.print("Analog Read : ");
  Serial.print(analogRead(36));
  Serial.println("");
  delay(1000);
}
```

## **Solar Input**

| Solar Powered Model | CN3083  |
| --- | --- |
| Maximum Charge Current |  600mA  |
| Maximum Voltage |  6V  |
| Input Voltage monitor |  ADS1115 - 0x49 - AIN2 |

## **Battery Input**

| Battery Type | 103040 Lithium polymer battery |
| --- | --- |
| Nominal Capacity  | 1200mAh   |
| Nominal Voltage | 3.75V |
| Overcharge | 4.2V |
| Over-discharge Cutoff Voltage | 3V |

### **Programming Solar and Battery**

```cpp

                #include <Adafruit_SSD1306.h>
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads1;
int analog_value = 0;

void setup() {
  Serial.begin(115200);// put your setup code here, to run once:
  Wire.begin(16,17);
  if (!ads1.begin(0x49)) {
    Serial.println("Failed to initialize ADS 1 .");
    while (1);
  }
}

void loop() {
  int16_t adc0, adc1, adc2, adc3;
  adc0 = ads1.readADC_SingleEnded(0);
  adc1 = ads1.readADC_SingleEnded(1);
  adc2 = ads1.readADC_SingleEnded(2);
  adc3 = ads1.readADC_SingleEnded(3);
  Serial.println("-----------------------------------------------------------");
  Serial.print("AIN1: ");
  Serial.print(adc0);
  Serial.println("  ");
  Serial.print("AIN2: ");
  Serial.print(adc1);
  Serial.println("  ");
  Serial.print("SOLAR: ");
  Serial.print(adc2);
  Serial.println("  ");
  Serial.print("AIN4: ");
  Serial.print(adc3);
  Serial.println("  ");
}
```
