Logo   LOGGER Internet of Things Data Logging

Published Source License
Screen Shots
SD Card Issues
Updating Firmware

Reference Information
Airflow Setup
Development Environment
I2C Addresses
Module Switches Setup
Processor Module Pinning
WattNode Modbus Adapter

Development History
Project Status
Software Revisions

PJRC hardware
ESP8266 Information


Key People
Screen Shots
Sensors Supported
Use Cases


What does LOGGER do? The LOGGER is a stand alone IoT device that reads sensors and stores the data. The LOGGER captures 256 bytes of data on up to 128 sensors every few seconds. The data is stored on an SD card and kept permanently. About 20 years of data taken once every ten seconds fit on a 32Gb card.

The LOGGER is a 'last mile' Internet of Things sensor system. It captures sensor data from sensors and logs the sensor history permanently in local memory. The LOGGER is a Web Server allowing direct obseration of the data that has been logged. The LOGGER can also control output pins. The LOGGER then reports to standard cloud based Internet of Things services uplinking the sensor data to the cloud.

The LOGGER was motivated by prior work monitoring environmental parameters using Mesh Networks at Wireless Sensors and by consumption/production monitoring systems like Solar Log. Another seed was the availability of the extreemly low cost WiFi enabled processor the ESP8266. LOGGER provides a more complete set of tools and hits a dramatically lower price point than our prior efforts. While today's price is $200 with high volume production the cost could be less than $50, possibly quite a bit less. LOGGER also has a more open software strategy suited to customer enhancements than the predecessor products.

This is a web page directly from the LOGGER device showing a temperature history.

Capturing sensor history is often important. Many sensor systems capture only the current state. Without sensor history many control problems are difficult or impossible, for example controlling a furnace from a thermostat is much easier with a few minutes of history to make sure the furnace is not turned on and off too frequently.

The LOGGER seeks to combine sensing, actuation, and usage monitoring on a single platform and to meld those with long term history logging. Often missing in prior solutions is long term data capture (so history is not lost), actuation of outputs, integration of a large variety of sensors in a single device and a more general purpose software and sensor strategy. The display of the data is often not available at the point of data collection nor in real time.

The LOGGER is a slow sample rate data logger and controller for multiple sensors. The long term goal is to provide a complete 'last mile' software system that connects the world of inexpensive embedded system I/O devices (i.e. I2C, SPI and OneWire) to the Internet of Things middleware solutions that are starting to become available. (i.e. Amazon AWS IOT and MQTT)

The LOGGER has a built in basic integration to MQTT which allows sensor data to be posted to the cloud. The LOGGER also had an integration with the now discontinued AT&T M2X service which supported time series data logging. A replacement for that service is being implemented by the LOGGER engineering staff. See LOGGER MQTT for a discussion of the LOGGER MQTT implementation.

The LOGGER offers a developers kit that uses a plug and play philosophy for sensors. A variety of simple inexpensive sensor modules are plugged in to a processor module to configure a data logging node targeted at a specific purpose.

The LOGGER acts as a web server, the data collected is displayed on web pages hosted by the LOGGER itself. This data is also available as XML making it available in machine readable form to computers on the internet.

Suggested Use Cases

Animal Cage
Electric Power Usage
Environmental Monitoring
Sensor Manufacturer
Temperature Tracking
Water Usage

Supported Sensors

Part Interface Type of Sensor
DLVR/DLHR I2C 0x28 Differential Pressure (gas flow, airspeed)
DS18x20 Onewire 0x10 0x22 0x28 0x42 Temperature
DS2415 Onewire 0x24 Time
DS2417 Onewire 0x27 Time
ESP8266 Processor Pin ADC pin 0-1 volt
MAX11615 I2C 0x33 8 port ADC voltage
MAX31826 Onewire 0x3B Temperature
MS8607 I2C 0x40 0x76 Temperature, Humidity and Barometric Pressure
SI7006-A20 I2C 0x40 Temperature/Humidity
I2C 0x74 0x75 0x76 0x77 I/O pins including pulse counting and conversion to flow and Kwh
WattNode Modbus Modbus on I2C pins Current and other electric consumption parameters
Supported SparkFun Qwiiic sensors
BME280 I2C 0x77 humidity/pressure/temperature
CCS811 I2C 0x5B CO2 and Volatile gas
Environmental Combo I2C 0x5B and 0x77 BME280 and CCS811 on one module
VEML6075 I2C 0x10 Optical UV light
VCNL4040 I2C 0x60 Optical Proximity and UV light sensor
VL53L1X I2C 0x29 Distance
Known but unsupported Onewire devices
DS2450 0x20 Quad A/D converter
DS2438 0x26 Battery Monitor
DS2890 0x2C Potentiometer
DS28E07 0x2D PROM
DS2413 0x3A Dual I/O pin

Use Cases

Use Case: Temperature Alerts

The LOGGER keeps track of temperature over time. The base level processor module is capable of reporting temperature history and can send email alerts if the temperature is outside of a specified range.

Use Case: Temperature Tracking

Keep track of temperature over time. The history is a permanent record that can be used to make sure refrigeration is consistant or to watch a heating system. Track many locations and compare them. Report them to the cloud and combine many devices at different locations.

Use Case: Electric Usage/Production

Combined with current monitoring equipment like the
WattNode Pulse or WattNode Modbus
the LOGGER can watch electricity usage and/or Solar production.

The LOGGER plots graphs of usage over time on web pages.
This is live data watching energy consumption at our facility. Several years worth of data are available. We recommend selecting "10 minutes" for Adjust Columns To, choosing "Dragonnorth_KWH" for the Sensor to display and then clicking the "DAY" button to see the energy usage every 10 minutes. (NOTE: This system is an engineering system so it is not up all the time.)

A LOGGER manual specific to this task has been created: Electric Consumption Manual

Use Case: Water Usage

Connect a water meter to the LOGGER and the strategies used for electric consumption can monitor water consumption. Detecting a leaking toilet is no more than looking to see if intervals with no flow are absent. Sensors such as these can be directly connected with built in conversions to Gpm or Lpm.

Use Case: Controlled Environment

Medical supplies and foodstuffs have to be kept in controlled environments. Having a log of the environmental history can be critical to determining if the items are safe to use. A LOGGER manual specific to this task has been created: Food or Medical Manual

Use Case: Animal Cage

Research labs keep animals in carefully controlled environments. Typical research projects require knowlege that the environment was properly controlled throughout the experiment. The LOGGER can also be used to turn experimental systems on and off.

Use Case: Sensor Manufacturer

The maker of an embedded sensor typically makes a demonstration module to allow prospective users to experiment with the sensor and to see if the data measured suits their needs. The LOGGER allows a Sensor Manufacturer to build a trivial (wires only) adapter module and plug that into a LOGGER processor module. The same processor module can be used for all sensors made by that manufacturer.


Processor Module

Rev 2 Rev 3 (adds extra sockets)

The Processor Module contains an ESP8266 WiFi processor and an SD card slot. NOTE: the Cat-5 connectors are simple wiring between modules (not internet). The Processor Module is a WiFi Server hosting web pages that display the sample history. It also is a network client for tasks like automatic time setting and uplinking sensor data. Further it is an Access Point (like a WiFi router) to make it easy to configure. Built in to the processor module are a 0 to 1 volt ADC sensor and a temperature sensor.

I/O Expander Module

Each I/O Expander Module connects the LOGGER to 16 input/output pins. Two modules are supported for a total of 32 pins. Pins set up as outputs can be turned on and off from the internet. Just as the state of the inputs is logged the state of each output is part of what is logged every second.

Using the I/O Expander Module the LOGGER is capable of counting pulses on a subset of the digital inputs. For each such input the total pulses observed to date are logged every second. To calculate usage for an interval read the count at a start time and the count at an end time and subtract. Graphs of usage are available as web pages.

ADC Module

The ADC Module has 8 Analog to Digital converters. The voltage on each is logged every sample. The LOGGER supports one ADC Module.

Humidity Module

The Humidity Module captures relative humidity and temperature every sample. The LOGGER supports one Humidity Module.

Temperature Module

The Temperature Module contains a onewire temperature sensor. It captures temperature every sample. The LOGGER supports up to 8 Temperature Modules.

AC Power Module

The AC Power Module observes 4 AC lines to see if power is on. Think 'the lights are on'. The use case that motivated this module was watching a furnace and the associated thermostatically controlled circulators to determine why the furnace was being turned on and off too frequently. The connection between the AC lines being observed and the rest of the module is opto-isolated.

Developers Kit I/O Module

The LOGGER developers kit comes with a processor module and a set of I/O modules as an integrated package. The modules are interconnected but can be scored with a knife and snapped apart. Once snapped apart the modules can be interconnected with Cat-5 cables (wires not internet). Sensor modules in this kit are an I/O expander module, an ADC module, an AC power module, two temperature modules, a pressure/temperature/humidity module and a differential pressure module. The sensor on the differential pressure module is not populated, the appropriate range must be chosen to suit the needs of the user. This module is also intended to be the platform for connecting a customer supplied sensor.

Key LOGGER Goals

These are the basic ideas that motivate this project.

    Completed Goals
  • Inexpensive data logging that captures all samples at a sensor.
  • Fast access to samples in time linear to the number of samples read.
  • Easy local configuration.
  • Handle input pins.
  • Handle output pins.
  • Easily expandable I/O using I2C, SPI and Onewire interfaces.
  • Automatic detection of Onewire devices
  • Automatic detection of known I2C devices
  • Log pulse counting and frequency of pulses on at least two channels.
  • Report Pulse counts converted to Kilowatt hours.
  • Report Pulse counts converted to fluid flow.
  • Handle intervals correctly, measure the period by subtracting the count at the start sample from the count at the end sample.
  • Support XML read over the network.
  • Integrate with sensible Internet of Things middleware (such as Amazon's AWS IOT, MQTT) and Blynk). NOTE: the first integration was with AT&T's M2X now defunct service. The integration with MQTT is now operational. Consider other systems see ArduinoCloudProviderExamples for other posible services.
    Goals Under Development
  • Support XML read of changes larger than N.
  • With PC based code convert the database file to a file of XML data that dumps the content of the database.
  • Perhaps use Kickstarter funding similar to Blynk Kickstarter


Programmer Documentation extracted by DOXYGEN from the source code.
A developer suggested this Download Speed Hack don't know if it works.

Key People

Name Role Cell Land Line email
Michael NewmanCEO, Software 617-821-4608 617-566-7975 mnewman@dragonnorth.com
David M. TenenbaumMarketing   781-799-5148 dmt13@gmail.com
Will Thorn Hardware   781-413-1318 willard.thorn@verizon.net

Screen Shots

Data Sheet

LOGGER pages copyright 2016-2022 by Dragonnorth Group (Michael Newman).
Send comments and corrections to:
Webmaster: mnewman@dragonnorth.com