Getting Started with Anabit's AIoT Precision Logger

Getting Started with Anabit's AIoT Precision Logger

AIoT Precision Logger Summary:

The AIoT Precision Logger (AIPL) is an open source development platform with wireless communication, powerful computing, AI compatibility, and multi-channel 32 bit analog measurement capabilities. For wireless communication the AIPL's ESP32-S3 features Wi-Fi, Bluetooth Classic + BLE, and the ESP-NOW protocol for creating small low power mesh networks. The 32 bit ADC that interfaces with the ESP32-S3 via SPI communication, has an integrated programmable gain amplifier along with a MUX that allows it to support up to 10 singled ended and 5 differential measurement channels. It features two integrated current sources to support measuring resistance based sensors like RTDs and strain gauges. 

AIoT Precision Logger's Quick Start Guide:

The best way to get started with the AIPL is to use the example Arduino sketch linked below. To compile and run the sketch you will need the ADS126X Arduino library, this library is used to communicate and make measurements from the 32 bit ADC. See the link to the library on Github at the end of this section. Once you have downloaded ADS126X library, move it to the Arduino --> libraries folder. You will also need the "FastLED" library which you can install directly from the Arduino IDE or you can download it from Github using the link below. Once you have the AIPL's example sketch and the library dependencies, you can upload the code to the AIPL from the Arduino IDE using just a USB C cable. In the Arduino IDE be sure to select the "ESP32S3 Dev Module" in the board manager. 

The example code is filled with comments so you can understand how to setup and make measurements with the ADC. By default the example sketch is configured to make voltage measurements using ADC measurement pins AIN6 and AIN7 and the ADC's 2.5V internal voltage reference. The measurements are printed out via the Arduino Serial monitor (through the USB C cable). The measurements are also set over Bluetooth (BLE) using the UART service. The Bluetooth communication is handled via a local library that is in the example sketch's folder. You can connect to the AIPL with a smart device application that is able to work with Bluetooth LE's UART service to wireless read measurement data from the AIPL. Two example Android compatible Bluetooth apps that have been tested with this example sketch are "Adafruit Bluefruit LE Connect" or "Serial Bluetooth Terminal."

It is suggested that you read the next section in this guide entitled "AIoT Precision Logger's Pin / Connector / Jumper Descriptions" to understand the function of the various pins, connectors, jumpers, and switches found on the AIPL. For video tutorials and more example code that can be used with the AIPL refer to the section "Other Resources for Getting Started with the AIoT Precision Logger." This section includes a video tutorial on using the AIPL with the Arduino IoT Cloud platform. if you have any issue or questions using the AIPL go to Anabit's forum by clicking here.

Link to ADS126X.h library on Github: https://github.com/Molorius/ADS126X
Link to the FastLED library on Github (can also access via Arduino IDE): https://github.com/fastled/fastled
Link to AIoT Precision Logger Example Arduino Sketch: https://github.com/anabit-LLC/AIoTPrecisionLoggerExample

AIoT Precision Logger's Pin / Connector / Jumper Descriptions:

AIoT Precision Logger's front pins are 2.54mm (0.1') spaced. There are 30x total pins in the front pin header. All four mounting holes on the Logger have a 3mm diameter.

Figure 1. AIoT Precision Logger Front Pin Definitions 

  • Vin: Input power connector (5V), connects directly to the USB C connector 5V bus. Can also be used to power external circuits when USB C power is provided. Do not pull more that 200mA from this connector.
  • GND: There are 6x ground pins available on the front pin header, all tied to the same continuous ground plane of the Logger. 
  • 3V3: This pin connects to the Logger's 3.3V linear regulator. It can be used to power external circuits, but do not pull more than 200mA from the 3.3V rail.
  • RST: This pin is tied to the reset or enable on the ESP32-S3 module. It is pulled high by a 10kohm resistor. Pulling it low will put the ESP32-S3 in a reset state.
  • I2C: Connects to pins GPIO8 (SDA) and GPIO9 (SCL) on the ESP32-S3 and is meant to be used for I2C communication. These same two pins are also routed to the QWIIC connector on the Logger. 
  • SPI: Connects to SPI communication pins GPIO11(COPI), GPIO12(SCLK), and GPIO13(CIPO). These pins are connected to the Logger's 32 bit ADC SPI interface.
  • GPIO Pins: All "IO" pins on the Logger's front pin header are open ESP32-S3  GPIO pins. 

Figure 2. AIoT Precision Logger Back Pin Definitions 

The 12x 7.62mm pins on the back of the IoT AI Precision Logger are the analog measurement pins. Pins AIN0 through AINCOM map directly to the ADS126x ADC's MUX. The 12th pin is connected to the continuous ground plane. You can directly solder measurements to these pins or you can solder the screw terminal header to these pins.

  • AIN0 - AINCOM: These pins can be configured for single ended or differential measurements. Pin pairs A0/A1, A2/A3, A4/A5, A6/A7, and A8/A9 have a differential RC filter to attenuate noise. They are intended to be used as differential pairs. All measurement pins have a single ended RC filter to block noise. 
  • Jumper I Source: These jumper pin holes are found on all the even AIN pins. Shorting them together bypasses the 1kohm resistor used for the RC filter so you can use these pins as current source outputs (ADC has two built-in current sources). The precision current sources enable accurate measurements of resistors or resistance based sensors, such as RTDs or strain gauges. 
  • 1206 Pads: There are two unpopulated size 1206 pads between pins AIN2 and AIN3 as well as AIN4 and AIN5. The purpose of these pads are in case you want to add a precision resistor for ratiometric measurements (using a current source) or a current shunt resistor for making precision current measurements. 
  • AINCON Jumper: When using pins for singled ended measurements, the AINCON pin can be used as the ground pin. This jumper allows you to tie the AINCOM to ground. You can also tie it to the -2.5V rail which is as the negative supply for the ADC. 

Figure 3. AIoT Precision Logger Left Side Pin and Connector Definitions 

3 pin header 2.54mm (0.1') spacing:

  • GND: connected to Logger's ground plane
  • -2.5V: Allows user to access the -2.5V rail for external circuits, can only source up to 50mA
  • 2.5V Vref: Allows user to access the 2.5V internal precision voltage reference from the ADC. Do not pull more than 1mA from this reference. If you need more current 

Connectors:

  • QWIIC Connector: industry standard connector that allows you to connect various sensor and actuator boards from various manufacturers for solderless prototyping. Consists for four connections: I2C (SDA, SCL), 3.3V, and Ground.
  • USB C Connector: USB C connector that has three functions, the first is to power the IoT AI Precision Logger. It can be used for UART communication with the ESP32-S3 module and for programming the ESP32-S3 module. Note that the USB C connector is only configured as a power input, you cannot power devices from this connector. 

 

Figure 4. AIoT Precision Logger Right Side Pin, Connector, and Dip Switch Definitions 

AIPL can be directly programmed from the USB C connector without any additional hardware. But you can access its programming pins directly at the 6 pin 1.27mm spaced programming port using a programming tool such as the ESP-Prog. There is also a two pin header 2.54mm spaced, where you can connect to the optional high stability external 2.048V voltage reference.  This allows the user to access the voltage reference for external circuits. Do not pull more than 5mA from the voltage reference.

 

The two position DIP switch allows you to route the external voltage reference to the ADC. The external voltage reference is routed to ADC measurement pins AIN0 (2.048V) and AIN1 (ground). The DIP switch enables the user to disconnect the external reference if you want to use AIN0 and AIN1 as measurement pins. When using the optional voltage reference be sure to close both position on the DIP switch. If you did not get the optional high stability voltage reference option, the DIP switch and the voltage reference IC will not be populated on the AIPL. 

ESP32-S3 pins used on the AIoT Precision Logger:

  • GPIO1: used to control the onboard RGB LED
  • GPIO7: This pin allows the user to turn off the -6.2V, -2.5V, and 2.5V power rails, which are used to power the ADC. This allows the user to save power when not making measurements. Write a '1' to this pin to turn off the analog power rails. By default the rails are on. 
  • GPIO10: this is the chip select pin for communication with the ADC
  • GPIO21: This is connected to the ADC ICs reset pin. By default the ADC's reset pin is pulled high. Write a 0 to this pin to put the ADC in a reset state. It is recommended to put the ADC in a reset state when shutting off the analog power rails (GPIO7), this will further reduce power consumption.

Other Resources for Getting Started with the AIoT Precision Logger:

The follow video provides an overview of the AIPL along with a demo of connecting and sending data to the Arduino cloud. Below the video you can find a link to the Arduino Cloud code shown in the video

AIoT Precision Logger Arduino Cloud Demo Code: https://github.com/anabit-LLC/AIoT_Precision_Logger_Cloud_Example

The following are Anabit YouTube videos and an Arduino example sketch for Anabit's Precision Logger, which is similar to the AIPL but does not have an on-board ESP32-S3. 

This sketch demonstrates how to make K-Type Thermocouple measurements on Anabit's Precision Logger: Click here to access the sketch on github

Here is a video on using the ESP-Now communication protocol on the ESP32-S3 for creating a dynamic mesh network

AIoT Precision Logger Feature and Specification Overview:

AIoT Precision Logger Analog Measurement Features:

  • 32-bit high accuracy ΔΣ ADC with up to 26.9 ENOB, accuracy specs:
    • Offset drift: 1 nV/°C
    • Gain drift: 0.5 ppm/°C
    • Noise: 7 nVRMS (2.5 SPS, gain = 32)
    • Linearity: 3 ppm
  • Available with optional secondary 24-bit ΔΣ ADC
    • It can be routed to any input just like main ADC
    •  Max sample rate 800 SPS
    •  Built-in PGA with gains settings: 1, 2, 4 ,8, 16, 32, 64, and 128
  • Built-in multiplexer that automates routing the ADC to any 10 single ended or 5 differential channels
  • Bipolar measurement range: +2.5V to -2.5V with up to +/- 10V over voltage protection
  • Programmable gain amplifier (PGA): Gain settings of 1, 2, 4, 8, 16, 32. PGA can also be bypassed.
  • Built-in low-drift 2.5V reference, with option to add a 2.048V ultra-low drift reference (±0.04%)
  • Two precision current sources for performing accurate resistance measurements
  • Integrated temperature sensor for cold-junction or ambient compensation
  • Maximum Sample Rate: 38.4 kSPS with a maximum bandwidth of 7.74 kHz
  • Input analog pins can be configured as up to 8 general-purpose digital inputs/outputs
  • Digital filter settings: Sinc1, Sinc2, Sinc3, Sinc4, Sinc5, and a finite impulse response (FIR) filter
  • SPI Interface: Supports clock speeds up to 10 MHz

Summary of ESP32-S3 Features:

  • Xtensa® 32-bit LX7 dual-core processor that operates at up to 240 MHz
  • 2.4 GHz Wi-Fi (802.11 b/g/n), Bluetooth Classic + BLE 5.4, and the ESP-NOW protocol for creating small low power mesh networks
  • MCU supports vector instructions, which provides acceleration for neural network computing and signal processing workloads. Compatible with ESP-CLAW edge AI agent framework
  • Peripherals: GPIOs, SPI, I2S, I2C, PWM, RMT, ADC, DAC and UART, SD/MMC host and TWAI™
  • Deep and light sleep low power modes with real time clock (RTC) timing control

For more details on the ESP32-S3 refer to its  product page: https://www.espressif.com/en/products/socs/esp32-s3/

Power, programming, connection / communication interfaces:

  • USB C connection interface serves as a way to power the IoT Precision Logger and program the ESP32-S3. The USB C interface also support UART communication with the ESP32-S3.
  • Includes a QWIIC connector with 3.3V power and I2C communication to easily interface with Sparkfun and Adafruit sensor boards
  • Example Current and Power Draw:
    • When using Bluetooth, ADC, QWIIC Sensor, and LED: 110mA and 500mW
    • With ADC and analog power rails shutdown and ESP32 active: < 40mA and < 200mW
  • Analog measurement channels using a barrier block screw terminal interface for flexible and reliable analog measurement connections
  • Access to voltage reference outputs to support external sensor conditioning circuits like Wheatstone Bridges

Optional Voltage Reference: using ADR4520ARZ:

  • Output Voltage: 2.048 V, Initial Accuracy: ±0.04%, ==>Temperature Coefficient: 2 ppm/°C (typical)
  • Output Drive Capability: Up to 10 mA
  • Includes two position DIP switch so user can connect and disconnect voltage reference
  • Can be accessed externally to bias sensors or external amplifiers

Link to Texas Instrument's ADS126X ADC datasheet

 

Back to blog