Skip to main content

Quick Start

This guide introduces the FoBE Breakout ADS1115 and how to use it.

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.