Skip to main content

Getting Started with FoBE Breakout SHT40

FoBE Breakout SHT40 Main

Introduction

The FoBE Breakout SHT40 integrates the Sensirion SHT40 digital temperature and humidity sensor, featuring high accuracy and ultra-low power consumption with 16-bit data output. Multiple connectivity options are provided for easy integration into various applications.

Applications

  • Climate monitoring and control systems
  • Cold chain data loggers
  • Smart thermostats
  • Anti-fogging applications

Key Features

  • SHT40

    • Relative humidity accuracy: up to ±1.5 %RH
    • Temperature accuracy: up to ±0.1 °C
    • Supply voltage: 1.08 V to 3.6 V
    • Average current: 0.4 µA (at measurement rate 1 Hz)
    • Idle current: 80 nA
    • I²C fast mode plus interface
    • CRC checksum for data integrity
    • Operating range: 0 to 100 %RH, -40 to 125 °C
    • Fully functional in condensing environment
    • Variable power heater for dehumidification
    • NIST traceability certified
    • JEDEC JESD47 qualification
  • Connectivity

    • MFP-IIC interface (JST-SH1.0 4-Pin)
    • 4 x 2.54mm Pin Header

Hardware diagram

The following figure illustrates the FoBE Breakout SHT40 hardware diagram.


FoBE Breakout SHT40 Hardware Diagram

Mechanical dimensions

FoBE Breakout SHT40 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 4-pin 2.54mm header holes. Fixing by 4 x 1.6mm Screw holes.


FoBE Breakout SHT40 Mechanical Dimensions

Interfaces

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

2.54mm 4-PinJST-SH1.0Features
GNDGNDGround
3V33V3Power supply, Only 3.3V
SDASDAI2C-Data line
SCLSCLI2C-Clock line

Advanced

Jumper

The module features one jumper pad:

InterfaceDescription
LED-JUMPERDisconnect this jumper to turn off the power LED for further power saving

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 SHT40 to the FoBE Quill ESP32S3 Mesh using the MFP interface.

FoBE Breakout SHT40 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:

sensirion/Sensirion I2C SHT4x@^1.1.2
  1. Copy the following code into your sketch or PlatformIO project:
#include <SensirionI2cSht4x.h>

#define I2C_SDA_PIN PIN_MFP3 // SDA pin for MFP to I2C cable, change if needed
#define I2C_SCL_PIN PIN_MFP4 // SCL pin for MFP to I2C cable, change if needed
#define PERI_EN_PIN PIN_PERI_EN // Peripheral enable pin, change if needed

SensirionI2cSht4x sensor;

void setup()
{
// Initialize serial communication
Serial.begin(115200);
Serial.println("Serial initialized");

// Initialize peripheral power
if (PERI_EN_PIN >= 0)
{
pinMode(PERI_EN_PIN, OUTPUT);
digitalWrite(PERI_EN_PIN, HIGH); // Enable peripheral power
Serial.println("Peripheral power enabled");
}

// Initialize sensor
Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN);
sensor.begin(Wire, SHT40_I2C_ADDR_44);
Serial.println("I2C bus initialized");

// Initialize SHT4x sensor
sensor.softReset();
delay(10);
Serial.println("SHT4x sensor initialized");

// Start measurement (equivalent to startStandardMeasure)
// SHT4x is ready for measurements after reset
}

void loop()
{
delay(1000); // Wait equivalent to sensor.wait()

float temperature = 0.0;
float humidity = 0.0;

// Equivalent to sensor.update() == RESULT_OK
int16_t error = sensor.measureLowestPrecision(temperature, humidity);
if (error == 0) // 0 means no error
{
// Equivalent to sensor.hasNewData()
if (temperature != 0.0 || humidity != 0.0)
{
// Display data on screen
Serial.print("\033[H\033[J");
Serial.println("> FoBE Breakout SHT40 Monitor");
Serial.println();
Serial.print("\033[7m");
Serial.printf("%-12s%-12s%-12s\n", "INDEX", "VALUE", "UNIT");
Serial.print("\033[0m");
Serial.printf("%-12s%-12.2f%-12s\n", "TEMP", temperature, "°C");
Serial.printf("%-12s%-12.2f%-12s\n", "HUMIDITY", humidity, "%RH");
}
}
}
important

This example code uses ANSI output formatting. Your terminal must support ANSI escape codes to display the output correctly.

# platformio.ini
[env:fobe_quill_esp32s3_mesh]
platform = FoBE Espressif 32
board = fobe_quill_esp32s3_mesh
framework = arduino
lib_deps =
sensirion/Sensirion I2C SHT4x@^1.1.2
monitor_speed = 115200
monitor_raw = true
  1. Build and upload the project. You should see the FoBE Breakout SHT40 Monitor output in the serial monitor (raw mode).
> FoBE Breakout SHT40 Monitor

INDEX VALUE UNIT
TEMP 26.65 °C
HUMIDITY 66.84 %RH

Resources

[PDF] FoBE Breakout SHT40 Datasheet

[PDF] FoBE Breakout SHT40 Schematic

[PDF] FoBE Breakout SHT40 Dimension

[OBJ] FoBE Breakout SHT40 3D Model