All devices

Seeed Studio · Gas detector

S-NH3-01 industrial-grade RS485 ammonia sensor Modbus register map

Default configuration

Protocol
RS485
Port
502
Unit ID
15
Addressing
0-based
Byte order
Big endian
Word order
High word first
Baud rate
9600
Parity
None
Data bits
8
Stop bits
1

This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.

Register map

AddressCountNameTypeUnitScaleAccess
81922
NH3 concentration
32-bit IEEE-754 float, big-endian. Range 0...100 ppm; the document's example frame returns 3CBB282F = 0.0228 ppm.
Float32ppm1R
81961
Temperature
Signed 16-bit, divided by 100 in the document (0x0AF9 returned = 2809 = 28.09 °C). Range -40...85 °C.
Int16°C0.01R
81981
Relative humidity
Unsigned 16-bit, divided by 100 in the document (0x18BD returned = 6333 = 63.33 %RH). Range 10...95 %RH.
UInt16%RH0.01R
82001
Measurement range
Maximum NH3 range of the sensor, default 100 ppm.
UInt16ppm1R
82061
Zero calibration command
Write-only, function code 0x06: 1 = calibrate the user zero point, 0 = restore the factory zero point.
UInt16-1W
82242
User concentration calibration
Write-only, function code 0x10, two registers: the reference concentration as an IEEE-754 float (the document's example writes 1.2 ppm as 0x3F99999A to 0x2020).
Float32ppm1W

Read this device live with Modbus Connect, free for Windows, macOS and Linux

Related guides

Notes

Source: Seeed Technology 'NH3 Sensor Datasheet, Module: S-NH3-01, Version: V1.1' (17 pages, (c)2008-2021), vendor-hosted PDF at the URL above (opened 7 Nov 2026): section 3.1 framing, 3.2 register table, 3.3 register descriptions and worked frames, 3.5 calibration instructions. Factory serial settings from section 3.1: 9600 bps, one start bit, 8 data bits, no parity, one stop bit. Addressing: all rows are read with function code 0x03 and written with 0x06/0x10 to the hex addresses printed in the table (0x2000...), and every worked frame uses those numbers unchanged, so they are stored zero-based. The document contradicts itself on the factory slave address: section 3.2 states 'Default address: 0x0F (hex)' and all three worked read frames in section 3.3 and the calibration example in section 3.5 address the sensor as 0x0F, while the Modbus debugging-software screenshot text in section 3.4 says 'the default slave address is 1' and one calibration example frame in section 3.5 uses 0x01. This seed follows the explicit statement in the register section and the register-level examples: unit ID 15 (0x0F), range 0x01...0xF7. The 0x2020/0x2021 write block is entered as one Float32 row; the surrounding description of address 0x2030 in the calibration table is garbled in the document (it belongs to the 0x2020 example), so it is not claimed.

Related devices