An RS-485 Pressure Sensor Interface Board Compatible with Arduino
This project brief describes how to build and use an Arduino-compatible interface board that reads an on-board pressure sensor and reports the measurement over an RS-485 network.
This board is built around an ATmega328 microcontroller, an SN65HVD08DR half-duplex RS-485 transceiver, and an MPXV5010DP pressure sensor. Screw terminals bring out the RS-485 A and B lines for the twisted-pair bus cable, and the remaining I/O signals are available on pin headers for expansion (Figure 1).
The MPXV5010DP outputs an analog voltage proportional to applied pressure, which the ATmega328 samples and transmits over RS-485. A practical use case is a pressure-monitoring node on an RS-485 network, reporting back to a central controller or a companion display board.
This board suits pressure-sensing applications and other sensor nodes that need a reliable, noise-resistant RS-485 link, including hospital beds, HVAC systems, respiratory equipment, process control, and liquid-level or pressure measurement in appliances.

Figure 1. The assembled RS-485 pressure sensor interface board.
Specs and Features
- Supply voltage: 5 V DC
- MPXV5010DP pressure sensor on board
- Pressure sensor output: 0.2 mV to 4.7 V
- Half-duplex RS-485 communication (SN65HVD08DR transceiver)
- Screw terminal for RS-485 A/B connection
- Glitch-free power-up and power-down bus inputs and outputs
- Multiple Arduino I/O lines broken out to headers
- On-board power LED and function LED (tied to D13)
- Optional 0.96-inch OLED display footprint
- Optional 433 MHz RF module footprint
- Four 4 mm mounting holes
- PCB dimensions: 72.39 x 26.51 mm
How It Works
The ATmega328 reads the MPXV5010DP's analog output on pin A1 and drives the SN65HVD08DR transceiver to send the pressure reading out over RS-485. The transceiver connects to the microcontroller as follows:
- RO (Receiver Output) = Arduino D10
- RE (Receiver Enable) = Arduino D2
- DE (Driver Enable) = Arduino D3
- DI (Driver Input) = Arduino D11
The MPXV5010DP is a piezoresistive, monolithic silicon pressure sensor designed for microcontroller-based analog-to-digital measurement. It combines micromachining, thin-film metallization, and bipolar processing to produce an accurate, high-level analog output proportional to applied pressure. This device is rated for a 10 kPa range, with a sensitivity of 450 mV/kPa and an output swing from 0.2 mV to 4.7 V DC.
The SN65HVD08DR combines a three-state differential line driver and receiver in a single SOIC-8 package, compliant with the ANSI TIA/EIA-485-A and ISO-8482E standards. It operates from a 3 V to 5.5 V supply, draws less than 90 mW of quiescent power, and includes glitch-free failsafe biasing on its bus pins during power-up and power-down, so the bus stays clean when nodes are hot-plugged or power-cycled. An optional 0.96-inch OLED display can be soldered to the underside of the board for local status readout, and an optional 433 MHz RF module footprint is provided for wireless retransmission of the pressure reading.
The included test firmware receives pressure data over RS-485 and compares it to a threshold; the matching RS-485 relay driver board (published separately) can then trigger a relay once the reading crosses that threshold.
Schematic and Bill of Materials

Figure 2. Schematic for the RS-485 Pressure Sensor Interface Board.
The bill of materials is shown in Table 1.
Table 1. BOM for RS-485 Pressure Sensor Interface Board.
| REF | DESCRIPTION | QTY | MFG | SUPPLIER | PART NO. |
| ANT1 | Antenna (optional, not populated) | 1 |
|
|
|
| CN1 | 2-pin screw terminal, 5.08 mm pitch | 1 | Phoenix | Digi-Key | 277-1247-ND |
| CN2, CN3, CN5, CN6 | 4-pin male header, 2.54 mm pitch | 4 | Würth | Digi-Key | 732-5317-ND |
| CN4 | 8-pin male header, 2.54 mm pitch | 1 | Würth | Digi-Key | 732-5321-ND |
| CN7, CN8 | 6-pin male header, 2.54 mm pitch | 2 | Würth | Digi-Key | 732-5319-ND |
| C1 | 10 µF / 16 V ceramic, 0805 | 1 | Yageo/Murata | Digi-Key |
|
| C2, C3, C4 | 100 nF / 50 V ceramic, 0805 | 3 | Yageo/Murata | Digi-Key |
|
| C5, C6 | 22 pF / 50 V ceramic, 0805 | 2 | Yageo/Murata | Digi-Key |
|
| R6, R7, C7, R12 | Do not populate | 4 |
|
|
|
| D1, D2 | Red LED, SMD 0805 | 2 | OSRAM | Digi-Key | 475-1278-1-ND |
| R1, R2, R3, R4, R5 | 10 kΩ 5%, SMD 0805 | 5 | Yageo/Murata | Digi-Key |
|
| R8, R9, R10, R11, R14 | 0 Ω 5%, SMD 0805 | 5 | Yageo/Murata | Digi-Key |
|
| R13 | 1 MΩ 5%, SMD 0805 | 1 | Yageo/Murata | Digi-Key |
|
| R15, R16 | 1 kΩ 5%, SMD 0805 | 2 | Yageo/Murata | Digi-Key |
|
| U1 | SN65HVD08DR, SOIC-8 | 1 | TI | Digi-Key | 296-39173-1-ND |
| U2 | ATmega328, TQFP-32 | 1 | Microchip | Digi-Key | ATMEGA328-AU-ND |
| U3 | SM712, do not populate | 1 |
|
|
|
| U4 | MPXV5010DP pressure sensor | 1 | NXP/Freescale | Digi-Key | MPXV5010DP-ND |
| X1 | 16 MHz crystal | 1 | ECS Inc. |
|
X1103-ND |
Connections

Figure 3. Connector and pinout map for the pressure sensor interface board.
CN1 — RS-485 Bus (2-pin screw terminal):
- Pin 1 = RS-485 Channel B
- Pin 2 = RS-485 Channel A
CN2 — Optional, not used
CN3 — 0.96-inch OLED Display Header (optional)
CN4 — Bootloader/Programming Port (8-pin):
- Pin 1 = TX
- Pin 2 = RX
- Pin 3 = Reset
- Pin 4 = GND
- Pin 5 = VCC
- Pin 6 = D11
- Pin 7 = D12
- Pin 8 = D13
CN5 — 433 MHz RF Module Header (optional)
CN6 — I/O Header (4-pin):
- Pin 1 = VCC
- Pin 2 = D5
- Pin 3 = D6
- Pin 4 = GND
CN7 — I/O Header (6-pin):
- Pin 1 = VCC
- Pin 2 = A0
- Pin 3 = D9
- Pin 4 = D8
- Pin 5 = D7
- Pin 6 = GND
CN8 — I/O Header (6-pin):
- Pin 1 = VCC
- Pin 2 = D4
- Pin 3 = A3
- Pin 4 = A2
- Pin 5 = NC
- Pin 6 = GND
U4 — MPXV5010DP Pressure Sensor, analog output to A1
D1 — Function LED, tied to D13
D2 — Power LED
PCB Files

Figure 4. PCB layout for the pressure sensor interface board, 72.39 x 26.51 mm.
You can download the layout files for this project here:
RS-485 Pressure Sensor Gerber Files
All images used courtesy of Rajkumar Sharma