Join Us in the Fight Against Air Pollution

Modbus Function Specification

by Achim Haug

Scope

Applies to AirGradient ONE Modbus (8PSLM) and AirGradient ONE Display Edition with Modbus (8PSLM-DE). Note that Modbus is not supported on the Standard model.

Applies to firmware version 9.2.6 onwards.

General

  • Protocol:
    Modbus RTU / RS-485

  • Number of addresses: 1 .. 247
    Factory default: 1

  • Transmission format: 8 bits, none / odd / even parity, 1 or 2 stop bits
    Factory default; 8-E-1

  • Baudrate: 1200 .. 256000
    Factory default: 19200

Timings

Scan Rate

Depending on settings the monitor will perform a measurement cycle every few minutes and provide the newly measured values on the Modbus interface once the cycle has successfully completed. When scanning at a rate of e.g. 10s then the maximum resulting latency is 10s.

Response Timeout

The monitors typically respond within 50 .. 60ms, hence a response timeout setting of 100ms is recommended. For baudrates < 9600 better results might be achieved with a higher setting.

Delay between Polls

A setting of > 50ms between slave polls is recommended.

Pinout

The connector pinout is

Voltage

The 12V .. 32V range is supported.

Function 04 Read Registers

These are the registers that the Master can read.

Register

Parameter

Data Type

Range

Unit

Comment

3x0000

current CO2

signed 16 bit

-1 .. 10,000

ppm

raw value
-1 indicates an error condition

3x0001

current PM2.5

signed 16 bit

-1 .. 1,000

ppm

raw value
-1 indicates an error condition OR the sensor is not ready yet

3x0002

current PM10

signed 16 bit

-1 .. 1,000

ppm

raw value
-1 indicates an error condition OR the sensor is not ready yet

3x0003

current temperature

signed 16 bit

-10001
-400 .. 900

tenth of °C, eg. 126 for 12.6°C

raw value
-10001 indicates an error condition

3x0004

current relative humidity

signed 16 bit

-1 .. 100

%

raw value
-1 indicates an error condition

3x0005

current TVOC

signed 16 bit

-1 .. 30,000

OR

-1 .. 500

ppb (SGP 30)

OR
SGP 40 index, see https://sensirion.com/products/catalog/SGP40/

temperature and humidity compensated
-1 indicates an error condition, in case of SGP 30 ppb’s are delivered, in case of the SGP 40 an index

 

 

 

 

 

 

 

 

 

 

 

 

3x0010

sensorId byte #1

16 bit

0x00 .. 0xff

 

MSB

3x0011

sensorId byte #2

16 bit

0x00 .. 0xff

 

 

3x0012

sensorId byte #3

16 bit

0x00 .. 0xff

 

 

3x0013

sensorId byte #4

16 bit

0x00 .. 0xff

 

 

3x0014

sensorId byte #5

16 bit

0x00 .. 0xff

 

 

3x0015

sensorId byte #6

16 bit

0x00 .. 0xff

 

LSB

3x0020

friendly name char #1

8 bit char

ASCII

 

a user friendly name, up to 24 chars

..

 

 

 

 

 

3x0038

friendly name char #24

 

 

 

 

Function 05 Write Single Coil

These are the single bit registers the Master can write.

Register

Parameter

Data Type

Range

Unit

Comment

Register

Parameter

Data Type

Range

Unit

Comment

0x0000

calibrate CO2 to 400ppm

bit 0

1 / 0

 

the calibaration is performed upon next measurement cycle, normally within a few minutes

0x0000

led test mode

bit 1

1 / 0

 

not implemented yet

0x0000

 

 

 

 

 

 

Function 16 Write Multiple Registers

These are the registers the Master can write.

Register

Parameter

Data Type

Range

Unit

Comment

0x0000

friendly name char #1

8 bit char

ASCII

 

a user friendly name, up to 24 chars

..

 

 

 

 

 

0x0018

friendly name char #24