TapHome

QDW90A Pressure Transmitter

Modbus RTU
Submitted by
Last updated: 06. 2026

Requires external gateway

TapHome Multi-Protocol Gateway — product page

QDW90A Pressure Transmitter

The QDW90A is a generic piezoresistive pressure and level transmitter manufactured by Qidian (Anhui Qidian Automation Technology Co., Ltd.). It communicates via Modbus RTU over RS-485 and connects to TapHome through the Multi-Protocol Gateway. The same hardware platform supports pressure, level, temperature, and pH measurement depending on the installed sensor element.

The template reads the measurement value from holding register H:4 with automatic decimal scaling based on H:3. Four service attributes display the current device configuration (slave address, baud rate, measurement unit, and decimal format), and one service action allows remote slave address changes.

Hardware connection

RS-485 wiring

Connect the QDW90A to the TapHome Multi-Protocol Gateway using the RS-485 terminals:

Sensor wireConnectionDescription
RED+24 VPower supply positive
BLACKGNDPower supply ground
BLUEA (RS485+)Modbus data line A
YELLOWB (RS485-)Modbus data line B

Wire colors may vary between OEM variants. Always verify the wiring against the documentation included with your specific unit before connecting.

Communication parameters
ParameterDefault value
Baud rate9600
ParityNone
Data bits8
Stop bits1
Slave ID1

The baud rate is configurable from 1200 to 115200 via register H:1. The slave address range is 1–255 and can be changed remotely using the Rewrite the Slave Address service action in TapHome.

After changing the slave address or baud rate, the transmitter replies using the original settings before switching to the new values. You must also write H:15 = 0 to persist changes to non-volatile memory.

Device capabilities

Pressure/level measurement

The template exposes one device — Pressure Level — that reads the measurement value from holding register H:4 (Int16). The raw value is automatically divided by 10 raised to the power of the decimal point setting from H:3:

1
actual_value = raw_value / 10^(decimal_points)

The measurement unit depends on the sensor configuration stored in H:2. The transmitter supports 23 different units:

CodeUnitCategory
0MPaPressure
1KPaPressure
2PaPressure
3barPressure
4mbarPressure
5Kgcm2Pressure
6PSIPressure
7mH2OPressure
8mmH2OPressure
9inH2OPressure
10H2OPressure
11mHgPressure
12mmHgPressure
13inHgPressure
14atmPressure
15TorrPressure
16mLevel
17cmLevel
18mmLevel
19KgWeight
20°CTemperature
21pHpH value
22°FTemperature

The template script applies an additional conversion for meters (code 16) and centimeters (code 17) to handle their specific scaling requirements.

Service attributes

The module exposes four service attributes for monitoring the device configuration:

  • Slave Address (H:0) — current Modbus slave address (1–255)
  • Baud Rate (H:1) — decoded baud rate from the internal code (1200, 2400, 4800, 9600, 19200, 38400, 57600, or 115200)
  • Unit (H:2) — currently configured measurement unit displayed as its abbreviation (MPa, KPa, bar, PSI, mH2O, °C, pH, etc.)
  • Decimal Points (H:3) — decimal point format (####, ###.#, ##.##, #.###, or .####)
Service action
  • Rewrite the Slave Address — writes a new slave address (1–255) to H:0 and saves to non-volatile memory by writing H:15 = 0. The transmitter responds using the original address before switching.
Additional capabilities

The QDW90A also provides a Float32 measurement value at registers H:22–H:23 (IEEE 754, big-endian ABCD byte order) which gives the direct reading without decimal scaling. Additional registers include the range zero point (H:5), range full point (H:6), zero offset calibration (H:12), serial parity configuration (H:37), and a factory reset command (H:16). These can be added as custom Modbus devices in TapHome if needed.

Available devices

QDW90A Pressure Transmitter Module
Service Attributes
Slave AddressCurrent Modbus slave address (1-255, default 1)
Baud RateCurrent baud rate decoded from internal code (1200-115200)
UnitCurrently configured measurement unit (MPa, KPa, Pa, bar, mbar, PSI, mH2O, mmH2O, °C, °F, pH, etc.)
Decimal PointsDecimal point display format (####, ###.#, ##.##, #.###, .####)
Service Actions
Rewrite the Slave Address

QDW90A Pressure transmitter - in

Service Attributes
Slave Address
modbusr(H, 0, int16);
Baud Rate
SWITCH(modbusr(H, 1, int16),
	0, 1200,
	1, 2400,
	2, 4800,
	3, 9600,
	4, 19200,
	5, 38400,
	6, 57600,
	7, 115200,
      NaN
);
Unit
switch(modbusr(H, 2, int16),
	0, "MPa",
	1, "KPa",
	2, "Pa",
	3, "bar",
	4, "mbar",
	5, "Kgcm2",
	6, "PSI",
	7, "mH2O",
	8, "mmH2O",
	9, "inH2O",
	10, "H2O",
	11, "mHg",
	12, "mmHg",
	13, "inHg",
	14, "atm",
	15, "Torr",
	16, "m",
	17, "cm",
	18, "mm",
	19, "Kg",
	20, "°C",
	21, "PH",
	22, "°F",
	NaN
);
Decimal points
SWITCH(modbusr(H, 3, int16),
	0, "####",
	1, "###.#",
	2, "##.##",
	3, "#.###",	
	4, "#.###",
	NaN
);
Service Actions
Rewrite the Slave Address
Parameters: Slave Address (1–255 SlaveAddr)
modbusw(SH, 0, int16, SlaveAddr);
modbusw(SH, 15, int16, 0);  # Save to user area
Pressure Level Variable Read-only

Measurement value with dynamic decimal scaling — reads H:4 divided by 10^(H:3) with unit-specific conversion for m and cm

Register: H:4 Int16 numeric

Pressure Level

Read
VAR val := MODBUSR(H, 4, Int16)/power(10, modbusr(H, 3, int16));

switch(modbusr(H, 2, int16),
	16, val,
	17, val / 100, 
	val
);
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (7)
  • H:22-23 Float Measurement Value — Float32 IEEE 754, big-endian ABCD byte order — direct measurement without decimal scaling. Alternative to H:4 integer method used by template.
  • H:5 Range Zero Point — Transmitter zero calibration value — useful for diagnostics
  • H:6 Range Full Point — Transmitter full scale calibration value — useful for diagnostics
  • H:12 Zero Offset — Int16 R/W, factory default 0. PV output = calibration value + offset. Writable via FC 0x06.
  • H:37 Serial Parity — Int16 R/W; 0=None, 1=Odd, 2=Even. Configures RS485 serial parity.
  • H:1 Baud Rate (write) — Int16 writable; code 0-7 to change baud rate. Readable as service attribute but no write action in template.
  • H:16 Factory Reset — Write 1 to restore factory parameters. Caution: reverts address, baud rate, and calibration data.

Sources

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Verified by TapHome

Want to use this in your TapHome Core?

Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog.

Open in portal