QuantAQ Docs
QuantAQ Cloud
  • Welcome to the QuantAQ Docs!
  • Hardware
    • MODULAIR
      • MODULAIR (pre-2025)
      • MODULAIR
    • MODULAIR-PM
    • Solar Power System
      • Solar Power System (pre-2025)
      • Smart Solar Power System
    • Weather Station
      • Gill MaxiMet Weather Station
  • Software APIs & Libraries
    • QuantAQ Cloud API
  • Tools
    • Command Line Interface
    • py-smps
Powered by GitBook
On this page
  • 1. Introduction and Specs
  • 1.1 Specifications
  • 1.2 Certifications
  • 2. Sensor Overview
  • 2.1 Top View
  • 2.2 Base View
  • 2.3 Internal View
  • 3. Installation and Hardware Setup
  • 3.1 Unpacking
  • 3.2 Device Registration
  • 3.3 Configuring Wi-Fi
  • 3.4 Installation
  • 4. Software and Data
  • 4.1 Data Structure and Outputs
  • 4.2 Understanding the Status Flag
  • 4.3 Leveraging QuantAQ's Software Tools
  • 5. Maintenance and Service
  • 6. Changelog
  • 7. Appendix
  • 7.1 Status LED

Was this helpful?

Export as PDF
  1. Hardware
  2. MODULAIR

MODULAIR

Product manual for the 2025 generation of MODULAIR (i.e., MODULAIR-X).

PreviousMODULAIR (pre-2025)NextMODULAIR-PM

Last updated 7 days ago

Was this helpful?

Key
Value

Product Name

MODULAIR

SKU(s)

MOD-X-015-NORAM

For use in North America

MOD-X-015-GLOBAL

For use outside North America

Datasheet

1. Introduction and Specs

MODULAIR™ provides real-time estimates of particulate matter concentrations (PM1, PM2.5, and PM10), the particle size distribution, and four gas-phase pollutants (CO, NO, NO2, O3). MODULAIR™ uses the same patented particle measurement technology found in the MODULAIR-PM, which combines nephelometry with single-particle scattering to accurately measure aerosol loadings across a variety of environments.

MODULAIR™ is designed as an internet-connected device and does not work as intended without an internet connection. All MODULAIR™ devices are multi-radio and come equipped with an LTE modem and Wi-Fi, and can seamlessly transition between the two radios.

MODULAIR™ is designed to work with QuantAQ's add-on systems, including the and .

MODULAIR™ is protected by US Patent No. US 12,265,007 as well as multiple pending patents.

1.1 Specifications

1.1.1 Air Quality Measurements

PARAMETER
RANGE
ACCURACY

PM1, PM2.5, PM10

0 to 2,000 µg/m3

Please refer to spec sheet.

Particle Size Distribution

0.35 to 40.0 µm (24 size bins)

Not yet determined.

Ozone (O3)

0 to 250 ppb

5 ppb or 20%

Carbon Monoxide (CO)

0 to 13,000 ppb

70 ppb or 20%

Nitrogen Oxide (NO)

0 to 2,500 ppb

5 ppb or 35%

Nitrogen Dioxide (NO2)

0 to 2,500 ppb

5 ppb or 35%

For more information on the operating principle and performance of the MODULAIR, please refer to the following technical notes:

1.1.2 Power and Communications

PARAMETER
DETAILS

🔋 Power

12V 1.25W average consumption

🗼 Communication

North America LTE Cat M1 with 2G fallback Wi-Fi (2.4 GHz or 5 GHz) Global LTE Cat 1 with 2G/3G fallback Wi-Fi (2.4 GHz or 5 GHz)

📈 Data

Web interface (quant-aq.com) Programmatic access (QuantAQ API) Local storage (µSD Card)

1.1.3 Operating Specifications

PARAMETER
DETAILS

Weatherproof rating

IP67

Operating temperature

-20º to 45ºC

Operating humidity

5 to 95%, non-condensing

Dimensions

11.04" x 9.04" x 5.72"

Weight

6 lbs (2.72 kg)

1.2 Certifications

1.2.1 FCC 15(b)

The MODULAIR™ air quality sensor complies with part 15 of the FCC rules for class A devices. Operation is subject to the following two conditions: (1) this device may not cause harmful interference; (2) this device must accept any interference received, including interference that may cause undesired operation. The MODULAIR™ contains a pre-certified multi-radio modem (2AEMI-M404).

2. Sensor Overview

2.1 Top View

Below is a top-down view of the MODULAIR. Air flows in through the port on the sensor base (Figure 2.2) and flows out the upper-right side of the sensor.

2.2 Base View

The base of the MODULAIR highlights the air inlet port (center) and the three connection ports:

  1. M8 4P Solar Comms. The upper-left port is for connecting the M8 RS-485 communication cable between the Smart Solar Power System (if purchased) and the MODULAIR. If not in use, ensure the M8 dust cap is in place to prevent damage to the instrument.

  2. M12 4P Power. The lower-left port is for connecting the M12 power cable from either the Smart Solar Power System or the provided 12V power cable.

  3. M12 5P Weather Station. The port on the right side is for connecting a supported Gill Weather Station. If not in use, ensure the M12 dust cap is in place to prevent damage to the instrument.

2.3 Internal View

2.3.1 Front Panel

The front panel of the MODULAIR can be accessed by opening the lid of the enclosure. The panel provides access to the power switch, SD card, and Status LED, all of which are shown in Figure 2.3.

2.3.2 Core Board

Under normal operating circumstances, it should not be necessary to access the Core Board directly. You should only do so under the advisement of the QuantAQ support team.

To access the Core Board, open the front panel after unscrewing the screw located just above the µSD card. Once open, you can access the mode and reset buttons and the USB debugging port for streaming logs. When closing the lid, make sure it is aligned such that you do not break off the µSD card slot.

3. Installation and Hardware Setup

3.1 Unpacking

When unpacking your MODULAIR, you should expect to find the following:

  1. MODULAIR Air Quality Sensor

  2. 12V, 2A USB-C Power Brick

  3. USB-C to M12 Power Cable

  4. Device Registration Card

  5. MODULAIR Pole Mount Kit

If any of these components are missing, please contact QuantAQ Support via the in-app chat.

3.2 Device Registration

You do not need to physically have your MODULAIR present to complete the device registration process. The process can also be completed without powering up your device.

Each device ships with a Registration Card containing a QR code and a short confirmation code. Follow the instructions below to register your device:

1

Scan the QR code

Using an internet-connected phone, tablet, or computer, scan the QR code on your Registration Card. It is best to first log in to quant-aq.com on the same device. The QR code should direct you to the registration page on the QuantAQ Cloud.

2

Fill out the device registration form

Fill out the form presented on your screen.

3

Enter the claim code

The form will ask you for a Claim Code, which can be found on your Registration Card. It is a 6-digit alphanumeric code. This ensures only the person in possession of the device can register it.

Once completed, press "Register".

3.3 Configuring Wi-Fi

3.4 Installation

If the recommended installation hardware does not work for your deployment, please contact QuantAQ Support via the in-app chat, and we will help find a solution.

The MODULAIR should be mounted using the provided Pole Mount Kit. The Pole Mount Kit is designed to be installed using either the provided back plates and carriage bolts for smaller posts or hose clamps for larger posts. If an existing pole or post is not available in the location where you will be installing your sensor, we recommend acquiring a tripod or similar.

Method
Receommended Pole Diameter

Pole Mount Kit with Back Plates

1.25" - 2"

Pole Mount Kit with Hose Clamps or Straps

2" - 6"

To physically install your sensor, follow these instructions:

1

Secure the Pole Mount Kit

Secure the Pole Mount Kit to the pole or post using the included carriage bolts and backing plates, or hose clamps if securing to a larger post.

2

Pre-Install the 3/8" 10-32 screws to the MODULAIR

Using the four provided 3/8" 10-32 screws, partially screw install each one into the fasteneres in each corner of the back of the MODULAIR.

3

Secure the MODULAIR

Slide the four screws through the slots on the Pole Mount Kit and then secure.

4

Install the Power Cord and Power On

Plug in the M12 to USB-C power cable, open the front panel of the MODULAIR, and turn the device on by pushing the power switch into the on position.

At this point, the Status LED on your MODULAIR will begin to blink, and within a few minutes, should begin breathing cyan, which indicates everything is working.

4. Software and Data

4.1 Data Structure and Outputs

There are three ways in which you can access data for the MODULAIR:

  1. Raw, 5-second data is stored locally on the µSD card

  2. Data can be downloaded as a CSV via the QuantAQ Cloud console

  3. Data can be downloaded via the QuantAQ Cloud API

The data formats are slightly different, though largely consistent. Each approach is documented below.

4.1.1 Data stored locally (µSD Card)

Table 4.1 below documents the columns available in the downloaded data and what they mean.

COLUMN
UNIT
Description

timestamp

The sample timestamp in ISO format

fw

The current firmware version

flag

The status flag corresponding to this record

soc

%

The state of charge of the onboard LiPo battery

sample_temp

ºC

The in-box temperature

sample_rh

%

The in-box relative humidity

bin0

p/cm3

Number of particles per cubic cm in the OPC's bin0 (0.35 - 0.46 µm)

bin1

p/cm3

Number of particles per cubic cm in the OPC's bin1 (0.46 - 0.66 µm)

bin2

p/cm3

Number of particles per cubic cm in the OPC's bin2 (0.66 - 1.0 µm)

bin3

p/cm3

Number of particles per cubic cm in the OPC's bin3 (1.0 - 1.3 µm)

bin4

p/cm3

Number of particles per cubic cm in the OPC's bin4 (1.3 - 1.7 µm)

bin5

p/cm3

Number of particles per cubic cm in the OPC's bin5 (1.7 - 2.3 µm)

bin6

p/cm3

Number of particles per cubic cm in the OPC's bin6 (2.3 - 3.0 µm)

bin7

p/cm3

Number of particles per cubic cm in the OPC's bin7 (3.0 - 4.0 µm)

bin8

p/cm3

Number of particles per cubic cm in the OPC's bin8 (4.0 - 5.2 µm)

bin9

p/cm3

Number of particles per cubic cm in the OPC's bin9 (5.2 - 6.5 µm)

bin10

p/cm3

Number of particles per cubic cm in the OPC's bin10 (6.5 - 8.0 µm)

bin11

p/cm3

Number of particles per cubic cm in the OPC's bin11 (8.0 - 10.0 µm)

bin12

p/cm3

Number of particles per cubic cm in the OPC's bin12 (10.0 - 12.0 µm)

bin13

p/cm3

Number of particles per cubic cm in the OPC's bin13 (12.0 - 14.0 µm)

bin14

p/cm3

Number of particles per cubic cm in the OPC's bin14 (14.0 - 16.0 µm)

bin15

p/cm3

Number of particles per cubic cm in the OPC's bin15 (16.0 - 18.0 µm)

bin16

p/cm3

Number of particles per cubic cm in the OPC's bin16 (18.0 - 20.0 µm)

bin17

p/cm3

Number of particles per cubic cm in the OPC's bin17 (20.0 - 22.0 µm)

bin18

p/cm3

Number of particles per cubic cm in the OPC's bin18 (22.0 - 25.0 µm)

bin19

p/cm3

Number of particles per cubic cm in the OPC's bin19 (25.0 - 28.0 µm)

bin20

p/cm3

Number of particles per cubic cm in the OPC's bin20 (28.0 - 31.0 µm)

bin21

p/cm3

Number of particles per cubic cm in the OPC's bin21 (31.0 - 34.0 µm)

bin22

p/cm3

Number of particles per cubic cm in the OPC's bin22 (34.0 - 37.0 µm)

bin23

p/cm3

Number of particles per cubic cm in the OPC's bin23 (37.0 - 40.0 µm)

bin1MToF

ml/s

Time of flight for particles in OPC bin1

bin3MToF

ml/s

Time of flight for particles in OPC bin3

bin5MToF

ml/s

Time of flight for particles in OPC bin5

bin7MToF

ml/s

Time of flight for particles in OPC bin7

opc_sample_flow

ml/s

OPC sample flow rate

opc_temp

ºC

The internal temperature of the OPC

opc_rh

%

The internal relative humidity of the OPC

opc_pm1

µg/m3

The factory-computed PM1 value for the OPC

opc_pm25

µg/m3

The factory-computed PM2.5 value for the OPC

opc_pm10

µg/m3

The factory-computed PM10 value for the OPC

opc_laser_status

The laser power of the OPC

neph_bin0

p

Number of particles in bin0 of the nephelometer

neph_bin1

p

Number of particles in bin1 of the nephelometer

neph_bin2

p

Number of particles in bin2 of the nephelometer

neph_bin3

p

Number of particles in bin3 of the nephelometer

neph_bin4

p

Number of particles in bin4 of the nephelometer

neph_bin5

p

Number of particles in bin5 of the nephelometer

neph_pm1_std

µg/m3

The factory computed value for PM1 from the Nephelometer

neph_pm25_std

µg/m3

The factory computed value for PM2.5 from the Nephelometer

neph_pm10_std

µg/m3

The factory computed value for PM10 from the Nephelometer

neph_pm1_env

µg/m3

The factory computed value for PM1 from the Nephelometer

neph_pm25_env

µg/m3

The factory computed value for PM2.5 from the Nephelometer

neph_pm10_env

µg/m3

The factory computed value for PM10 from the Nephelometer

dd_operating_state

The operating state of the DualDetector

dd_measurement_state

The measurement state of the DualDetector

wx_ws

m/s

Vector wind speed measured by the Gill weather station, if equipped

wx_wd

deg

Wind direction measured by the Gill weather station, if equipped

wx_ws_scalar

m/s

Scalar wind speed measured by the Gill weather station, if equipped

wx_u

u component of the wind speed and direction measured by the Gill weather station, if equipped

wx_v

v component of the wind speed and direction measured by the Gill weather station, if equipped

wx_pressure

hPa

Ambient pressure measured by the Gill weather station, if equipped

wx_temp

ºC

Ambient temperature measured by the Gill weather station, if equipped

wx_rh

%

Ambient relative humidity measured by the Gill weather station, if equipped

wx_dew_point

ºC

Dew point measured by the Gill weather station, if equipped

co_we

mV

Working electrode signal for the CO sensor

co_ae

mV

Auxiliary electrode signal for the CO sensor

no_we

mV

Working electrode signal for the NO sensor

no_ae

mV

Auxiliary electrode signal for the NO sensor

no2_we

mV

Working electrode signal for the NO2 sensor

no2_ae

mV

Auxiliary electrode signal for the NO2 sensor

o3_we

mV

Working electrode signal for the O3 sensor

o3_ae

mV

Auxiliary electrode signal for the O3 sensor

4.1.2 Data stored remotely (QuantAQ Cloud)

Data are pushed to the QuantAQ Cloud with 1-minute time resolution and can be downloaded via the API or via the web app as a CSV. When downloading data, you can select whether you would like to download the raw data, final data, or raw+final data. Generally, the final data is what is desired, as it contains the final, cleaned data that is ready for analysis. The raw data is well-suited for researchers trying to investigate specific questions. When downloaded, the data is exported as a CSV and contains the following columns:

COLUMN
FILE LOCATION
UNIT
DESCRIPTION

timestamp

rawfinal

The sample timestamp in ISO format

timestamp_local

rawfinal

The local sample timestamp in ISO format

id

rawfinal

The record ID

sn

rawfinal

The device serial number

device_state

raw

The device state

lat

rawfinal

The device location, latitude

lon

rawfinal

The device location, longitude

sample_rh

rawfinal

%

The in-box relative humidity

sample_temp

rawfinal

ºC

The in-box temperature

wx_ws

rawfinal

m/s

Vector wind speed measured by the Gill weather station, if equipped

wx_wd

rawfinal

deg

Wind direction measured by the Gill weather station, if equipped

wx_ws_scalar

rawfinal

m/s

Scalar wind speed measured by the Gill weather station, if equipped

wx_u

raw

u component of the wind speed and direction measured by the Gill weather station, if equipped

wx_v

raw

v component of the wind speed and direction measured by the Gill weather station, if equipped

wx_pressure

raw

hPa

Ambient pressure measured by the Gill weather station, if equipped

wx_temp

raw

ºC

Ambient temperature measured by the Gill weather station, if equipped

wx_rh

raw

%

Ambient relative humidity measured by the Gill weather station, if equipped

wx_dew_point

raw

ºC

Dew point measured by the Gill weather station, if equipped

bin0

raw

p/cc

Number of particles per cubic cm in the OPC's bin0 (0.35 - 0.46 µm)

bin1

raw

p/cc

Number of particles per cubic cm in the OPC's bin1 (0.46 - 0.66 µm)

bin2

raw

p/cc

Number of particles per cubic cm in the OPC's bin2 (0.66 - 1.0 µm)

bin3

raw

p/cc

Number of particles per cubic cm in the OPC's bin3 (1.0 - 1.3 µm)

bin4

raw

p/cc

Number of particles per cubic cm in the OPC's bin4 (1.3 - 1.7 µm)

bin5

raw

p/cc

Number of particles per cubic cm in the OPC's bin5 (1.7 - 2.3 µm)

bin6

raw

p/cc

Number of particles per cubic cm in the OPC's bin6 (2.3 - 3.0 µm)

bin7

raw

p/cc

Number of particles per cubic cm in the OPC's bin7 (3.0 - 4.0 µm)

bin8

raw

p/cc

Number of particles per cubic cm in the OPC's bin8 (4.0 - 5.2 µm)

bin9

raw

p/cc

Number of particles per cubic cm in the OPC's bin9 (5.2 - 6.5 µm)

bin10

raw

p/cc

Number of particles per cubic cm in the OPC's bin10 (6.5 - 8.0 µm)

bin11

raw

p/cc

Number of particles per cubic cm in the OPC's bin11 (8.0 - 10.0 µm)

bin12

raw

p/cc

Number of particles per cubic cm in the OPC's bin12 (10.0 - 12.0 µm)

bin13

raw

p/cc

Number of particles per cubic cm in the OPC's bin13 (12.0 - 14.0 µm)

bin14

raw

p/cc

Number of particles per cubic cm in the OPC's bin14 (14.0 - 16.0 µm)

bin15

raw

p/cc

Number of particles per cubic cm in the OPC's bin15 (16.0 - 18.0 µm)

bin16

raw

p/cc

Number of particles per cubic cm in the OPC's bin16 (18.0 - 20.0 µm)

bin17

raw

p/cc

Number of particles per cubic cm in the OPC's bin17 (20.0 - 22.0 µm)

bin18

raw

p/cc

Number of particles per cubic cm in the OPC's bin18 (22.0 - 25.0 µm)

bin19

raw

p/cc

Number of particles per cubic cm in the OPC's bin19 (25.0 - 28.0 µm)

bin20

raw

p/cc

Number of particles per cubic cm in the OPC's bin20 (28.0 - 31.0 µm)

bin21

raw

p/cc

Number of particles per cubic cm in the OPC's bin21 (31.0 - 34.0 µm)

bin22

raw

p/cc

Number of particles per cubic cm in the OPC's bin22 (34.0 - 37.0 µm)

bin23

raw

p/cc

Number of particles per cubic cm in the OPC's bin23 (37.0 - 40.0 µm)

opc_pm1

raw

µgm-3

The factory-computed PM1 value for the OPC

opc_pm25

raw

µgm-3

The factory-computed PM2.5 value for the OPC

opc_pm10

raw

µµgm-3

The factory-computed PM10 value for the OPC

pm1_env

raw

µgm-3

The factory computed value for PM1 from the Nephelometer

pm25_env

raw

µgm-3

The factory computed value for PM2.5 from the Nephelometer

pm10_env

raw

µgm-3

The factory computed value for PM10 from the Nephelometer

neph_bin0

raw

p

Number of particles in bin0 of the nephelometer

dd_operating_state

raw

The operating state of the DualDetector

co_we

raw

mV

Working electrode signal for the CO sensor

co_ae

raw

mV

Auxiliary electrode signal for the CO sensor

co_diff

raw

mV

Difference between working and auxiliary electrodes for the CO sensor

no_we

raw

mV

Working electrode signal for the NO sensor

no_ae

raw

mV

Auxiliary electrode signal for the NO sensor

no_diff

raw

mV

Difference between working and auxiliary electrodes for the NO sensor

no2_we

raw

mV

Working electrode signal for the NO2 sensor

no2_ae

raw

mV

Auxiliary electrode signal for the NO2 sensor

no2_diff

raw

mV

Difference between working and auxiliary electrodes for the NO2 sensor

o3_we

raw

mV

Working electrode signal for the O3 sensor

o3_ae

raw

mV

Auxiliary electrode signal for the O3 sensor

ox_diff

raw

mV

Difference between working and auxiliary electrodes for the O3 sensor

pm1

final

µgm-3

Final PM1 value

pm25

final

µgm-3

Final PM2.5 value

pm10

final

µgm-3

Final PM10 value

co

final

ppb

Final CO value

no

final

ppb

Final NO value

no2

final

ppb

Final NO2 value

o3

final

ppb

Final O3 value

4.2 Understanding the Status Flag

4.3 Leveraging QuantAQ's Software Tools

5. Maintenance and Service

There are no consumable or user-replaceable components to the MODULAIR. If you believe a component is broken or not functioning correctly, please contact Customer Support via the in-app chat.

Additional maintenance and service recommendations are coming soon.

6. Changelog

7. Appendix

7.1 Status LED

QAN-003:

QAN-004:

Please see our for a full history of all firmware changes.

Smart Solar Power System
Gill Weather Stations
Evaluating the Performance of the MODULAIR-PM Particulate Matter Sensor in Jurupa Valley, CA
Evaluating the MODULAIR gas measurements against EPA Air Sensor Performance Targets
public changelog
Download
Figure 2.1. A top-down view of the MODULAIR.
Figure 2.2. The MODULAIR base.
Figure 2.3. The internal front panel of the MODULAIR.
Figure 2.4. The Core Board that runs the MODULAIR.

The Status LED on the front panel is used to communicate the status of the internet connection. The LED changes color and pattern, each of which indicates a different state as outlined below. The rate at which the LED blinks comes in two flavors: blinking and breathing, where breathing implies a slow pulse where the color of the LED fades in and out.

LED COLOR
PATTERN
MODE
DESCRIPTION

Green

Blinking

Looking for Internet

If your device is blinking green, it is trying to connect to the cellular network. There is no need to take any action.

Breathing

Cloud not Connected

If your device is breathing green, it has a cellular connection but has not been able to connect to the cloud.

Cyan

Blinking

Connecting to the Cloud

Blinking cyan indicates the device has a cellular connection and is attempting to connect to the cloud. There is no need to take any action. This will happen each time on device startup.

Breathing

Connected

When your device is breathing cyan, everything is good and you are happily connected to the internet and the QuantAQ Cloud.

Magenta

Blinking

Firmware Update

When your device is blinking magenta, it is undergoing an over-the-air firmware update. DO NOT power off when this is happening.

White

Breathing

Internet Off

If the LED is breathing white, the cellular connection has been turned off. If you did not explicitly turn off the cellular connection via the onboard switch, please notify QuantAQ.

Red

Blinking

System Failure

A system failure has occurred. This is likely caused by faulty on-board firmware or corrupted memory. Please contact QuantAQ for next steps.

Each record contains a status flag, stored as an unsigned integer, that describes the state of the device for that exact record. Flags contain encoded information about each of the sub-components onboard the device. They are generated via a bitmask and can be decoded by reversing the procedure. To determine whether a specific flag is set, you can use the bitwise AND operator. If the value of the flag is returned, then the flag is set. If a zero is returned, the flag is not set.

To make this a bit clearer, let's follow this example. Let's assume the value of the flag is set to "4". We can perform a bitwise AND operation to check the result to see if FLAG_STARTUP is set.

# bit AND - is FLAG_STARTUP set?
>>> 4 & 1
0

# bit AND - is FLAG_NEPH set?
>>> 4 & 4
4

The table below describes the available flags, flag values, and a description of what they mean and what action should be taken when they are set.

Flags are consistent across all QuantAQ products, so there may be flags in the table below that irrelevant to your product.

FLAG
VALUE
WHY IS IT SET?
WHAT TO DO?

FLAG_STARTUP

1

This flag is set when the device powers on.

Remove any rows where this flag is set.

FLAG_OPC

2

This flag is set when the OPC has indicated the data failed to transfer correctly. This can be caused by the fan being off, the laser being off, or the checksum not validating properly.

Remove any rows where this flag is set.

FLAG_NEPH

4

This flag is set when the nephelometer has indicated the data failed to transfer correctly.

Remove any rows where this flag is set.

FLAG_RHTP

8

This flag is set when the relative humidity and temperature sensor has failed.

Remove any rows where this flag is set.

FLAG_CO

16

This flag is set when the CO sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_NO

32

This flag is set when the NO sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_NO2

64

This flag is set when the NO2 sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_O3

128

This flag is set when the O3 sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_CO2

256

This flag is set when the CO2 sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_SO2

512

This flag is set when the SO2 sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_H2S

1024

This flag is set when the H2S sensor has failed or data does not meet initial on-board QA/QC.

Remove any rows where this flag is set.

FLAG_BAT

2048

This flag is set when the internal LiPo battery is low or dead.

None.

FLAG_OVERHEAT

4096

This flag is set when the OPC has overheated.

Contact QuantAQ.

FLAG_SD

8192

This flag is set when the SD card has failed.

Replace the SD card.

Data is collected and saved to an onboard µSD card every 5- 10 seconds (depending on product SKU). Each minute, these values are averaged and pushed to the QuantAQ Cloud, where they are available for you to view, interact with, and download. It is unlikely you will ever need the locally stored data, but it is available to you if you would like to use it.

On the µSD card, you will find data files with file names like DATA_{YYYYMMDD}@FW{VERSION}.csv where YYYYMMDD represents the UTC date and VERSION represents the firmware version of the device. In the event a firmware update happens, a new file for that date will be created.

Data files are written each day and can be read or analyzed using any programming language or spreadsheet program (e.g., Microsoft Excel). Each file begins with three metadata rows describing the device model (row 1), device ID (row 2), and device serial number (row 3). Row 4 contains the data column headers, and rows 5 and higher contain data. Each row corresponds to a new record.

To make data analysis easier, QuantAQ maintains several software programs designed to reduce the time it takes for you to go from data to insight. Below, we highlight several tools and their purpose:

QuantAQ CLI

The QuantAQ CLI is a simple Python-based tool for cleaning, munging, and interacting with data from QuantAQ devices.

py-smps

py-smps is a Python library for manipulating and analyzing size-resolved particle data from OPCs, SMPS, or other particle sizing instruments.

atmospy

atmopsy is a Python library for analyzing and visualizing air quality data.

py-quantaq

py-quantaq is a simple API wrapper for the QuantAQ Cloud API. It is the recommended method for downloading or interacting with data or devices when using Python.

r-quantaq

r-quantaq is a simple API wrapper for the QuantAQ Cloud API. It is the recommended method for downloading or interacting with data or devices when using R.

Please note that configuring Wi-Fi is *not* required for operation. All MODULAIR devices have cellular modems, and Wi-Fi is a fallback in the event you are operating in an area that does not have a reliable cellular connection.

To use our web-based configuration tool, you must use a computer operating system and browser that supports WebUSB technology. Examples include Chrome, Edge, and Opera browsers on Windows, Mac, Linux, or Chromebook devices.

To configure Wi-Fi credentials for your device, use our or visit . Complete instructions can be found in our . The MODULAIR can store up to ten separate credentials before they begin to be overwritten.

Figure 4.1. Sample of a data file header. The first three rows include meta data with subsequent rows containing data.
web-based configuration tool
https://app.quant-aq.com/wifi-setup
Help Center
LogoGitHub - quant-aq/cli: The QuantAQ CLIGitHub
LogoGitHub - quant-aq/py-smps: Python library for the analysis and visualization of data from a Scanning Mobility Particle Sizer (SMPS) and other similar instruments (SEMS, OPC's).GitHub
LogoGitHub - dhhagan/atmospy: visualization and analysis tools for air quality data in pythonGitHub
LogoGitHub - quant-aq/py-quantaq: A python wrapper for the QuantAQ RESTful APIGitHub
LogoGitHub - quant-aq/r-quantaq: The official R wrapper for the QuantAQ APIGitHub