SparkFun DataLogger IoT - 9DoF

The SparkFun DataLogger IoT - 9DoF is a data logger that comes preprogrammed to automatically log IMU, GPS, and various pressure, humidity, and distance sensors. All without writing a single line of code! The DataLogger automatically detects, configures, and logs Qwiic sensors. It was specifically designed for users who just need to capture a lot of data to a CSV or JSON file and get back to their larger project. Save the data to a microSD card or send it wirelessly to your preferred Internet of Things (IoT) service!

Included on every DataLogger IoT is an IMU for built-in logging of a triple-axis accelerometer, gyro, and magnetometer. Whereas the original 9DOF Razor used the old MPU-9250, the DataLogger IoT uses the ISM330DHCX from STMicroelectronics and MMC5983MA from MEMSIC. Simply power up the DataLogger IoT, configure the board to record readings from supported devices, and begin logging! Data can be time-stamped when the time is synced to NTP, GNSS, or RTC.

The DataLogger IoT is highly configurable over an easy-to-use serial interface. Simply plug in a USB-C cable and open a serial terminal at 115200 baud. The logging output is automatically streamed to both the terminal and the microSD card. Pressing any key in the terminal window will open the configuration menu.

The DataLogger IoT - 9DoF automatically scans, detects, configures, and logs various Qwiic sensors plugged into the board (No soldering! No programming!). Currently, auto-detection is supported on the following Qwiic products (with the exception of the ISM330DHCX and MMC5983 which is built-in on the SPI port):

The DataLogger IoT - 9DoF uses common microSD cards to record clear text, comma separated (i.e. CSV), or JavaScript Object Notation (JSON) files. You probably already have a microSD card laying around but if you need any additional units, see the related items. Note that the DataLogger IoT is not able to use any size microSD card. The DataLogger IoT supports 4-bit SDIO with microSD cards formatted as FAT32 as well as the older FAT16 (i.e. FAT) formats up to 32GB.

Low-power logging is supported. The DataLogger IoT can be configured to take readings at about 26 times a second with the default sensors turned on, or as slow as 1 reading every 24 hours. You choose! The DataLogger IoT has built-in LiPo charging set at 500mA/hr. When sleep mode is enabled, the resulting sleep current is approximately 200µA.

With a 2.4GHz WiFi connection, you can also send data to the cloud! The following IoT services are supported:

  • MQTT Client
  • MQTT Secure Client
  • AWS IoT
  • ThingSpeak MQTT
  • Azure IoT
  • HTTP IoT
  • MachineChat
  • Arduino Cloud

New features are constantly being added so we've developed two methods of updating the firmware on your DataLogger IoT! If you have a microSD card, you can download the firmware binary to the memory card and update the board through the configuration menu. If you have a WiFi connection, you can also update the firmware over the air using the configuration menu! No need to install Arduino or a bunch of libraries.

The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.

  • ESP32-WROOM-32E Module
    • Integrated 802.11b/g/n WiFi 2.4GHz transceiver
    • Configurable via CH340C
  • Operating voltage range
    • 3.3V to 6.0V (via VIN)
    • 5V with USB (via 5V or USB type C)
    • 3.6V to 4.2V with LiPo battery (via BATT or 2-pin JST)
    • Built-in MCP73831 single cell LiPo charger
    • Minimum 500mA charge rate
    • 3.3V (via 3V3)
  • MAX17048 LiPo Fuel Gauge
  • Ports
    • 1x USB type C
    • 1x JST style connector for LiPo battery
    • 2x Qwiic enabled I2C
    • 1x microSD socket
      • Support for 4-bit SDIO and microSD cards formatted to FAT32
  • 9-axis IMU
    • Accelerometer & Gyro (ISM330DHCX)
    • Magnetometer (MMC5983MA)
  • LEDs
    • Charge (CHG)
    • Status (STAT)
    • WS2812-2020 Addressable RGB
  • Jumpers
    • IMU interrupt
    • Magnetometer interrupt
    • RGB LED
    • Status LED
    • Charge LED
    • I2C pull-up resistors
    • USB Shield
  • Buttons
    • Reset
    • Boot
  • Dimensions: 1.66in. x 2.00in.
  • Weight: 10.7g

SparkFun DataLogger IoT - 9DoF Product Help and Resources

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • garrettscooter / about 8 months ago / 1

    Another Question, I'm logging the battery charge % and the system is plugged in, I plan to be able to track when the power goes out because the battery will start to drop. The battery charge is at ~120%, I measured the voltage to be 4.332V at the plug. should the battery voltage be this high or is this thing about to burst into flames? Plot

  • garrettscooter / about 9 months ago / 1

    What would it take to connect to this device through a browser? For me (and I know I'm just one person) it would be nice if I could open a browser and navigate to the IP address and be able to get the data, maybe just download files. or SSH to it through the network and have the same control as the UART connection. I guess I just don't like the idea of having to sign up for AWS exc. Overall I do like this thing and the UART interface.

  • garrettscooter / about 10 months ago / 1

    I'm having the worst time with TIME. I'm logging the epoch time on the data logger and the time from the RTC (8803) at 1Hz. It seems every hour (3600 samples) the time jumps by 4 hours. It starts at the correct time. Both the RTC time and the epoch time do the same jump at the same sample. Here is a plot:

    • PaulZC / about 10 months ago / 1

      Hi. Thanks for reporting this. I have opened an issue for it on GitHub: . Can you please tell us which Time Zone you are using? A jump of exactly 4 hours suggests this might be a time zone issue. Please reply on GitHub if possible. Or here - and I will copy your reply across. Thank you.

  • Member #1662808 / about a year ago / 1

    We are exploring using the Datalogger_IoT_9DoF. We deploy our systems in secured locations and need to be able to present our source code as part of the project to get clearance. Do you plan to release the code for this system, or do we need to create our software solution?

    • adam.g / about a year ago / 1

      AFAIK the firmware for the Datalogger IoT is/will be proprietary/closed-source. It would be great if SparkFun could comment on this.

  • Member #227202 / about a year ago / 1

    Hi, where can I find the source code for this board? I'd love to learn a bit from how you've written the code. You have a couple of links to the source code on the Github Releases page but they only contain the bin files and some doco, unless I'm missing something? Thanks, PJ

  • Member #1662808 / about a year ago / 1

    Can I add my own sensors to the device?

Customer Reviews

3.8 out of 5

Based on 5 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Quick and Easy!

Very easy to connect and use. I have the QWIIC A/D devices connected and am very pleased. The menus are easy to understand and navigate. I communicate with the IoT device using a Mac.

1 of 2 found this helpful:

Lots of potential!

Great little device to easily record sensor data and send it over WIFI.

Initial impressions

Little success

Using Arduino IDE 2.1.0, Windows 11 ... whether the DataLogger, Arduino, Windows 11 or my computer; I could not connect with even marginal constancy to the DataLogger. Every once in awhile it would stay connected and I manage to set the year and date once. Otherwise ... fail. I've used another version of the datalogger and while connection wasn't totally consistent, at least it worked much of the time. This one was a total bust. I'll try it on another computer but I doubt it will improve.

Versatile and easy to get started with

Easy to get started collecting data. Doesn't allow access to the SD card via USB-C port or WiFi so not as useful as I would like for periodically retrieving data from a stand-alone embedded system without physically removing the SD card. Bluetooth is not implemented at this time. Overall easy to get started with and has a wide variety of sensors that it reads directly.

USB type C has poor quality

USB type C has poor quality . After using it one day , i started to have intermittent connections due to lack of quality of the USB type C onboard connector . Still waiting for a quick solution or replacement of this product . Thanks !

We have not had many reports of the USB-C connector having issues. If you could fill out a return we would like to take a look at it: