Skip to main content

Getting Started with FoBE Breakout ADS1115

FoBE Breakout ADS1115 Main

Introduction

The FoBE Breakout ADS1115 integrates the TI-ADS1115 16-bit ADC with programmable gain amplifier and the EEPROM for calibration data storage. The module provides multiple measurement capabilities including 0-10V voltage measurement, 4-20mA current measurement, and NTC temperature measurement with built-in 2.5V reference. Multiple connectivity options are provided for easy integration into various applications.

Applications

  • Portable instrumentation and measurement systems
  • Battery monitoring and power management
  • Temperature sensing and monitoring
  • Factory automation and process controls

Key Features

  • ADS1115

    • 16-bit high resolution analog-to-digital conversion
    • 4 single-ended inputs or 2 differential inputs
    • Programmable data rate: 8 SPS to 860 SPS
    • Internal programmable gain amplifier (PGA): up to x16
    • Internal low-drift voltage reference and oscillator
    • I²C interface with programmable address
    • Interrupt/ready pin for conversion completion
  • M24C64 EEPROM

    • 64Kbit (8KB) data storage capacity
    • I²C interface with programmable address
    • Calibration data storage capability
  • Built-in Reference

    • 2.5V precision voltage reference
    • NTC measurement and ADC calibration support
  • Connectivity

    • MFP-IIC interface (JST-SH1.0 4-Pin)
    • 6 x 2.54mm Pin Header
    • 4 x 3.81mm Screw Terminal Block

Measure Channels

ChannelMeasurement TypeDescription
04-20mA currentMeasured via 120Ω shunt resistor to ground
10-10V voltageMeasured through voltage divider (10kΩ/39kΩ)
2NTC temperatureMeasured via voltage divider with 100kΩ resistor and 2.5V reference
3NTC ReferenceConnected to internal 2.5V voltage reference

Hardware diagram

The following figure illustrates the FoBE Breakout ADS1115 hardware diagram.

FoBE Breakout ADS1115 Hardware Diagram

Mechanical dimensions

FoBE Breakout ADS1115 is a single-sided 25.4mm x 25.4mm (1" x 1") 1.6mm thick PCB with two SH1.0 4-pin connectors and a set of 6-pin 2.54mm header holes. Fixing by 4 x 1.6mm Screw holes.

FoBE Breakout ADS1115 Mechanical Dimensions

Interfaces

The module provides dual 6-Pin JST SH1.0 connectors, compatible with STEMMA QT / Qwiic.

2.54mm 6-PinJST-SH1.0Features
NCNot connected
GNDGNDGround
3V33V3Power supply, Only 3.3V
SDASDAI2C-Data line
SCLSCLI2C-Clock line
INTADC conversion ready, Active Low

Advanced

Address Selection

ADS1115 I2C Address

The ADS1115 I²C address can be configured using solder pads B0-B3:

PadI²C Address
B00x48 (Default)
B10x49
B20x4A
B30x4B

EEPROM I2C Address

The M24C64 EEPROM I²C address can be configured using solder pads A0-A2:

A2A1A0I²C Address
0000x50 (Default)
0010x51
0100x52
0110x53
1000x54
1010x55
1100x56
1110x57

Jumper

The module features one jumper pad:

InterfaceDescription
ADC-INTConnect this jumper to enable INT pin functionality for ADC conversion ready signal

Measure Connections

ChannelTypeConfiguration
04-20mA current120Ω shunt resistor to ground
10-10V voltageVoltage divider: 10kΩ (top) / 39kΩ (bottom)
2NTC temperatureVoltage divider with 100kΩ resistor, 2.5V reference
3CalibrationInternal 2.5V voltage reference

Programming

Running with FoBE Quill ESP32S3 Mesh

Let's get started with the FoBE Quill ESP32S3 Mesh using the MFP interface.

  1. Connect the FoBE Breakout ADS1115 to the FoBE Quill ESP32S3 Mesh using the MFP interface.
FoBE Breakout ADS1115 Connection
  1. Create a sketch or PlatformIO project, or follow the FoBE Quill ESP32S3 Programming Guide for pre-configuration.

  2. Install the necessary library in your project:

adafruit/Adafruit ADS1X15@^2.5.0
  1. Copy the following code into your sketch or PlatformIO project:
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_ADS1X15.h>

#define ADS1115_ADDR 0x48

#define IIC_SDA_PIN PIN_MFP3
#define IIC_SCL_PIN PIN_MFP4

Adafruit_ADS1115 ads;

void setup() {
Serial.begin(115200); // Start serial communication at 9600 baud rate
delay(3000);

pinMode(PIN_PERI_EN, OUTPUT);
digitalWrite(PIN_PERI_EN, HIGH); // Enable peripheral power

Wire.begin(IIC_SDA_PIN, IIC_SCL_PIN);

if (!ads.begin(ADS1115_ADDR)) {
Serial.println("Failed to initialize ADS.");
while (1);
}
}

void loop() {
int16_t adc0, adc1, adc2, adc3;
float volts0, volts1, volts2, volts3;

adc0 = ads.readADC_SingleEnded(0);
adc1 = ads.readADC_SingleEnded(1);
adc2 = ads.readADC_SingleEnded(2);
adc3 = ads.readADC_SingleEnded(3);

volts0 = ads.computeVolts(adc0);
volts1 = ads.computeVolts(adc1);
volts2 = ads.computeVolts(adc2);
volts3 = ads.computeVolts(adc3);

Serial.println("> FoBE Breakout - ADS1115");
Serial.print("\033[H\033[J"); // Clear terminal
Serial.printf("\033[7m%-12s%-12s%-12s%-12s%-12s\033[0m",
"Channel", "Value", "Voltage", "Result", "-");
Serial.println();
Serial.print("\033[0m");

Serial.printf("%-12s%-12d%-12.6f%-12s%-12.6f", "AIN0", adc0, volts0, "4-20ma:", volts0/120*1000);
Serial.println();

Serial.printf("%-12s%-12d%-12.6f%-12s%-12.6f", "AIN1", adc0, volts1, "0-10V:", volts1 * (100000.0f + 39000.0f) / 39000.0f);
Serial.println();

const double Rp = 100000.0; // 分压电阻
const double R0 = 10000.0; // 10k NTC
const double T0 = 273.15 + 25.0; // 25℃
const double Bx = 3950.0;
const double Vref = 3.056250; // 参考电压
double Rt = volts2 / ((Vref - volts2) / Rp);
double tempK = 1.0 / ( (1.0/T0) + (1.0/Bx) * log10(Rt / R0) );
double tempC = tempK - 273.15;
Serial.printf("%-12s%-12d%-12.6f%-12s%-12.6f", "AIN2", adc2, volts2, "NTC(˚C):", tempC);
Serial.println();

Serial.printf("%-12s%-12d%-12.6f%-12s%-12.6f", "AIN3", adc3, volts3, "REF-3V", volts3);

delay(1000);
}
important

This example code shows basic ADC channel reading. Your terminal must support the output format to display the measurements correctly.

# platformio.ini
[env:fobe_quill_esp32s3_mesh]
platform = FoBE Espressif 32
board = fobe_quill_esp32s3_mesh
framework = arduino
lib_deps =
adafruit/Adafruit ADS1X15@^2.5.0
monitor_speed = 115200
monitor_raw = true
  1. Build and upload the project. You should see the FoBE Breakout ADS1115 ADC channel data output in the serial monitor (raw mode).
Channel     Value       Voltage     Result      -           
AIN0 0 0.000000 4-20ma: 0.000000
AIN1 0 0.002625 0-10V: 0.009356
AIN2 1136 0.213000 NTC(˚C): 27.849865
AIN3 16300 3.056250 REF-3V 3.056250
note
  • If you want to use custom pins, you can change the IIC_SDA_PIN and IIC_SCL_PIN definitions to your desired GPIO pins.
  • The ADS1115 is configured to use the default I²C address 0x48. You can change the address by soldering the appropriate jumper pads on the board.

Resources

[PDF] FoBE Breakout ADS1115 Datasheet

[PDF] FoBE Breakout ADS1115 Schematic

[PDF] FoBE Breakout ADS1115 Dimension

[OBJ] FoBE Breakout ADS1115 3D Model