A data logger like the SparkFun DataLogger IoT is a device for collecting and recording data from various sensors or sources over a period of time. Scientific, industrial, and environmental applications commonly use data logging to monitor and analyze data for research, analysis, or control purposes.

The SparkFun DataLogger IoT

SparkFun has a kind of history in designing and commercializing small data loggers to be used stand-alone or that can be incorporated in other systems. The SparkFun DataLogger IoT is the latest addition to their data logger family. It comes as a small board (38 mm by 52 mm; 1.5” by 2”) with an ESP32-WROOM-32E module on one side and a microSD card slot on the other. On each short side of the board is a row of solder pads that allow integrating the board into a larger system. A USB-C connector is available for connecting the board to a PC to configure it.
SparkFun DataLogger IoT with Qwiic humidity sensor board
A simple data logger system with a Qwiic humidity sensor board.

Qwiic (I²C) Sensors

Besides a 9-DoF inertial measurement unit (IMU) consisting of an accelerometer and gyro (ISM330DHCX) and a magnetometer (MMC5983MA), and a MAX17048 LiPo fuel gauge, the device does not have any other sensors. An I²C port in SparkFun’s Qwiic-style is available for connecting the sensors you need. Since I²C is a bus, multiple sensors can be daisy-chained (within the limits of the I²C specifications, of course), which makes it easy to set up a multi-sensor system (as long as you limit yourself to Qwiic boards). Interestingly, the IMU sensors are SPI devices, not I²C.

The power supply for the data logger can be a rechargeable single-cell LiPo battery (JST-style connector), USB-C, or through the pin headers. The board integrates a battery charger.

Tag alert: Subscribe to the tag data logger and you will receive an e-mail as soon as a new item about it is published on our website!

Plug ‘n’ Play

The DataLogger IoT is programmed with software that implements a kind of plug-‘n’-play data logger application. With its database of over fifty SparkFun Qwiic devices, it autodetects and configures the connected sensors automatically.
You can record the data (in CSV or JSON format) to a microSD card or transmit it wirelessly to your preferred Internet of Things (IoT) service. Device programming remains limited to configuring some parameters in a serial terminal. Those familiar with the (smaller) SparkFun OpenLog Artemis will feel at ease immediately.

Custom Sensors?

Now, the question that pops up immediately – at least in my mind – is: what if my sensor is not in the database? Well, then you’re on your own. I did not find any documentation on how to use the DataLogger IMU with custom sensors, and it is clearly not intended and even strongly discouraged. The source code for the preloaded application is not available, leaving you with a lot of work. Restoring the board to its factory default is possible, of course, but how to do it is up to you to figure out (try the standard ESP32 boot procedure, the board supports it). Therefore, it is much easier to buy a suitable Qwiic sensor board instead.

Serial Human Interface

After selecting and connecting your sensor(s), you must configure the DataLogger IMU. You do this on a computer in a serial terminal (115,200 baud). You may have to install a driver first, as the board has a WH340C USB-to-serial converter.

After connecting the data logger to the computer and setting up the serial terminal, you will see some status information and the list of the Qwiic devices that it has found. Data logging then starts immediately at the default rate of once per fifteen seconds.

Pressing a key will bring up the main menu. It has only three options (Settings, Device Settings and Exit). The Settings option opens a much longer menu, and you will probably want to spend some time on exploring it.
DataLogger Settings menu
The Settings menu has many entries (not showing the last, Firmware Update).

Many Configuration Options for the DataLogger IoT

In it you will find options for managing the SD card, the Wi-Fi and NTP connection, time settings, power consumption, data logging, IoT services and firmware updating, and more. Rather extensive.

Being an IoT device, the data logger supports AWS IoT and Azure IoT, MQTT (secure and normal), ThingSpeak IoT, HTTP IoT and MachineChat. You must copy any certificate files that the service may require on the SD card.

The Device Settings menu lets you configure each connected device individually. The length of the list of adjustable parameters depends on the sensor.

Tag alert: Subscribe to the tag IoT and you will receive an e-mail as soon as a new item about it is published on our website!

Two Data Formats

Captured data is automatically recorded to a file on the microSD card (if any). You can change the name of the file and the period before recording rolls over, but it seems that you cannot access the file over USB. You must pull the SD card out and stick it in a computer to read the file.

The data format defaults to CSV (comma-separated values) but JSON is possible too. The data format can be set individually for the recorded file and for the serial terminal.

Fault Detection

I had only one Qwiic sensor board for my experiments, an SHTC3 humidity sensor, and it worked fine. To simulate a malfunctioning, I pulled the cable out. This did not disturb the data logger at all, and no warning messages were displayed. The data values became nonsense values, however. After hot-plugging the sensor to the logger, the data stream simply integrated the real data values. Apparently, this sensor is simple and doesn’t require any configuration. It would be interesting to see what would happen in such a situation with a more complicated sensor or several sensors daisy-chained together.
JSON output in serial terminal
JSON-formatted data in the serial terminal isn't human-friendly, but IoT cloud services love it.

Custom Applications

For those who want to create their own application for the DataLogger, access to the SPI and I²C busses and the serial port is provided on the extension connectors together with three analog inputs and some LEDs. As the controller is an ESP32, any tool chain capable of producing executables for it can be used for writing programs (e.g. Arduino). But, once again, SparkFun strongly discourages doing this. Also, note that the SPI bus uses SparkFun’s (ridiculous) own naming scheme, making life a bit harder than necessary.

The board has a few solder jumpers to configure some options. One of them lets you disconnect the I²C bus’s 2.2 kΩ pull-up resistors. Please refer to the documentation on what exactly is possible and how.


The SparkFun DataLogger IoT (9 DoF) is, as its name suggests, a data logger targeted at IoT applications. It has Wi-Fi, and supports MQTT and easy connection to popular IoT services. Connecting sensors to the device is simply a matter of plugging in one or more Qwiic sensor modules. The DataLogger configures them automatically, which is very convenient indeed. This is, of course, the strongest point of the DataLogger, its plug-‘n’-play way of handling sensors and data logging. If you can work with the compatible sensors, then you’re in data-logging business almost immediately after powering up the device. Besides being small, it is also small enough to integrate into other systems for embedded data logging.

Strain Gauges

Even though more than fifty compatible sensors are available, they do not cover every possible application (strain gauges come to mind). Custom sensors can be added at the expense of writing your own application program. Doing so will, however, result in losing all the nice built-in data logger functions.

Also, fault handling seems a bit weak. Unexpectedly pulling out an SD card is detected but disconnecting a sensor (and what about the whole chain?) is not, at least not in my test environment.

Prefer Bluetooth?

The suffix ‘9-DoF’ in the name of the device suggests that more DataLogger IoT variants will follow. Until then, the SparkFun OpenLog Artemis is a similar data logger featuring Bluetooth instead of Wi-Fi.