Getting Started with Anabit's AIoT SenseNode
Share
AIoT SenseNode Summary:
Anabit's AIoT SenseNode is an open-source edge computing platform designed for next-generation IoT applications. It combines wireless connectivity, precision analog measurement, comprehensive battery management, and flexible power options into a single compact module. Powered by a single-cell lithium-ion battery, USB-C, or a solar panel, the AIoT SenseNode is equally suited for portable, remote, and permanently installed systems. Its high-accuracy analog front end, support for multiple digital interfaces, and detailed battery health monitoring make it easy to connect sensors, control actuators, and build intelligent IoT, AIoT, and IIoT solutions.
AIoT SenseNode's Quick Start Guide:
The best way to get started with the SenseNode is to test drive the example Arduino sketches which can be found on GitHub, see links below. Each example sketch has one or more library dependency, these required libraries are listed under each sketch link. Be sure to install these libraries in your Arduino programming environment or the sketch will not compile. Once you have one of the example sketch's along with the library dependencies, you can upload the code to the SenseNode 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.
Some of the example sketches use Bluetooth (BLE) to send data. These Bluetooth sketches use the BLE UART service. You can connect to the SenseNode via Bluetooth with a smart device application that is able to receive data from Bluetooth LE's UART service. Two free apps for Android that have been tested with these example sketches are "Adafruit Bluefruit LE Connect" or "Serial Bluetooth Terminal."
- Library dependency (can be downloaded via Arduino IDE): Adafruit_ADS1X15.h
Link to Sketch that measures / monitors battery state and sends data over serial and Bluetooth (BLE)
- Library dependency (can be downloaded via Arduino IDE): FastLED.h
- Library dependency (can be downloaded via Arduino IDE): INA226_asukiaaa.h
Link to Sketch that demonstrates how to use light and deep sleep modes on the AIoT SenseNode (ESP32-S3)
- Library dependency (can be downloaded via Arduino IDE): FastLED.h
It is suggested that you read the next section in this guide entitled "AIoT SenseNode's Dimensions and Pin / Connector Descriptions" to understand the function of the various pins and connectors on the SenseNode. For video tutorials refer to the section "Other Resources for Getting Started with the AIoT SenseNode." If you have any issue or questions using the AIoT SenseNode go to Anabit's ADC forum page by clicking here.
AIoT SenseNode's Dimensions and Pin / Connector Descriptions:
AIoT SenseNode is 89mm in length and 38mm in width with four mounting holes (one in each corner) that are 3mm in diameter. It has 2.54mm (0.1') spaced through hole pins on each side as shown in figure 1. There are 27 pins on the far side and 20 pins on the other side. All 2.54mm spaced pins that are labeled with numbers connect to the ESP32-S3 GPIO pin with the same number. All pins labeled "GND" connect to the SenseNode's common ground plane. The following is a list of pin and connector descriptions of the AIoT SenseNode shown in figure 1.
Figure 1. AIoT SenseNode Pin and Connector Definitions
Starting from the top left corner of the SenseNode and moving clockwise around:
- 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.
- Vin: Input power connector (5.5V max), connects directly to the USB C connector 5V bus. This power input serves as a power source for charging the battery and for powering the 5V and 3.3V onboard regulators.
- 5V: The 5V power rail that is generated by high efficiency DC to DC converter that is powered by the Vin bus or battery power. Can be used to power external circuits
- 3V3: 3.3V voltage bus generated using low dropout linear regulator. This power bus is used to power the ESP32, ADC circuit, and battery monitoring circuit. It can also be accessed from this pin and used to power external circuits.
- ADC Channels: Four ADC channels A0 to A3. Each channel can be configured as a single ended 12-bit ADC channel. And the following differential channel pairs can be formed: A0 = Pos & A1 = Neg; A0 = Pos & A3 = Neg; A1 = Pos & A3 = Neg; A2 = Pos & A3 = Neg.
- PD: The power down (PD) pin is pulled high by default. Pulling it low turns off the 5V regulator and cuts off power to most of the circuits on the SenseNode. The only circuit still active is the battery charging circuit.
- 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 as well as the onboard ADC and battery monitoring ICs.
- RST: This pin is tied to the reset or enable pin 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.
- ESP32 Programming Port: This 6 pin 1.27mm spaced pin header is meant to interface with an ESP32 programmer like the ESP-Prog for programming and debug of the ESP32-S3 module.
- BATT: This pin connects directly to the positive lead of the battery bus. When combined with a GND pin it can be used as an alternative connection point for a battery.
- CP: the charge port (CP) pin connects to the second charging input. It can be used as an alternative connection point for a charging source, such as a solar panel. It can also be used to monitor the input voltage to the battery charging IC.
- ISET: the ISET pin connects to a pin on the battery charging IC. It outputs a voltage value that is equivalent to the battery's charging current. This is not a very accurate way to monitor the charge current and we recommend you use the current measurement from the battery monitoring IC.
- Battery Connector: 2.0 mm JST male connector for interfacing with a single cell Lithium Ion or Lithium Polymer. Connects to same bus as "BATT" pin.
- Second Charging Input: Screw terminal connector for added battery charging power source other than USB C connector. Can be used with a solar panel, inductive charging pad, or any DC source (7V max). It only charges the battery and does not power the whole design. Can be used to partially charge the battery while the design is running off battery power.
- USB C Connector: USB C connector that has three functions, the first is to power the AIoT SenseNode and charge the battery. 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.
Note that all ESP32-S3 pins and all digital logic on the SenseNode are 3.3V logic based. Using higher voltage logic could cause permanent damage.
ESP32-S3 pins used on the AIoT SenseNode:
- GPIO0 and GPIO46: These pins are strapping pins and used for putting the ESP32-S3 in a programming state. Do not use these pins.
-
GPIO1: used to control the onboard RGB LED
- GPIO21: This pin is connected to the "CHG" or charging logic pin on the battery management IC. The charging pin is an active low when the battery is charging and it is high impedance when the battery is charged. Configure GPIO21 on the ESP32 as an input with an internal pull up resistor. If it reads low the battery is charging. If it reads high the battery is fully charged. Note that if no battery is connected this pin will read low.
Other Resources for Getting Started with the AIoT SenseNode:
The follow video provides an overview of the AIoT SenseNode's flexible power circuit design. Great resource to check out if you want to understand the multiple ways that you can power the SenseNode and ensure maximum battery life for remote IoT applications.
Here is a video on using the ESP-Now communication protocol on the ESP32-S3 for creating a dynamic mesh network
AIoT SenseNode Specifications Overview:
12-bit ΔΣ low power ADC (PN: ADS1015L):
- 4x single ended channels or 2x differential channels
- 3300 maximum sample rate
- Measure range settings: ±0.256V, ±0.512V, ±1.024V, ±2.048V, ±3.3V
- I2C address 1001 000b
Battery management and monitoring
- Peak battery charge current 400mA
- Max voltage of screw terminal charge port 7V
- Current is measured across a 30mOhm high side shunt resistor, bidirectional current measurements
- Battery connector: JST 2mm male
- Charge status pin interfaces with ESP32: low = charging and high Z = not charging
- INA226A measurement IC I2C address: 1000 100b
Power characteristics and specifications:
- Max current from USB-C or Vin pin with battery charging: 800mA
- Max current no battery charging: 400mA
- Max combined current draw from 5V and 3.3V buses: 150mA
- Nominal current with ESP32 in sleep mode: 2.0mA
- Nominal current power down state (PD pulled low): 16mA
For detailed specifications on the ESP32-S3 refer to its product page: https://www.espressif.com/en/products/socs/esp32-s3/