We needed pressure monitoring within a microfluidic system to diagnose and monitor plumbing issues. Finding the available units $$$, we set off to design our own. Like many good ideas, we aren't the first to try.
Others have demonstrated the use of pressure sensors, originally designed for smart watches, as microfluidic pressure sensors:
https://www.hardware-x.com/article/S2468-0672(20)30021-3/fulltext
or depth sensors:
https://bluerobotics.com/store/sensors-sonars-cameras/sensors/bar30-sensor-r1/
This work largely replicates previous art with some ruggedization improvements. The resulting device uses generic communication protocols and does not require interfacing with a specific control or driver board to communicate with a PC. Machined features for fittings support the pressure range of the transducer. Total cost per unit is under $200 USD.
Pressure sensor assembly consists of completed PCB, housing block, and shim.
The housing block CAD is available in ./CAD/Sensor block for 0.25-28 ports. This block accepts the assembled PCB and a inlet and outlet fluidics port. These ports are made to accept 1/4"-28 flat-bottomed connectors for 1/8" OD tubing (ex: Idex part XP-335). Material should be compatible with the solutions being used; parts machined from PEEK in Qty : 4 were $92 each from Quickparts.
The shim piece holds the PCB and housing block at the appropriate spacing. Without this shim it's easy to over-tighten the screws and destroy the pressure sensor component. The shim can be cut according to the included ./CAD/Sensor Block Shim.dxf file. Cut this outline from just about any stable material of 0.8 mm (0.03") thickness. Prototypes used a piece of scrap laminated card. Suggested material is any stiff material of appropriate thickness that can be cut on a laser cutter (ex: McMaster-Carr 5751T11).
Additional required hardware:
- Qty : 4 of 4-40 x 1/2" screws. McMaster-Carr part 92949A110 or similar is OK.
- Qty : 1 of sensor O-ring, 1.0 mm wide x 1.8 mm ID. McMaster-Carr part 9262K112.
For assembly, stack shim and PCB with shim hole over the pressure transducer base. Install O-ring on pressure transducer barrel. Insert the transducer and O-ring into the central hole of the housing block. Take extra care to seat the O-ring where it will form a seal. Install the 4-40 screws to secure the PCB and shim to the housing block. When tightening, go slowly and tighten each screw in turn.
The seal around the pressure transducer is critical for reliable readings. It's common for this seal to be incomplete and allow air to leak around the O-ring. This effect is visible when monitoring readings from the pressure sensor during assembly. With an assembled unit and the sensor readings visible in a real-time plotting window such as the Arduino Serial Plotter, squeezing the housing block at the two inlet ports will yield a spike in pressure. If this pressure level holds as long as the block is squeezed, then the seal is good. If this pressure spike decays quickly back down towards ambient pressure, there is a leak. Disassemble and reassemble the sensor and repeat the test.
Partlist
Part | Value | Package |
---|---|---|
C1 | 100 nF | C1206 |
J1 | QWIIC_RIGHT_ANGLE | JST04_1MM_RA |
R1 | 10k | M1206 |
R2 | 10k | M1206 |
U1 | MS583730BA01-50 | TE_MS583730BA01-50 |
Pressure sensor is one of several related products from TE Connectivity. The MS583730BA01-50 device was used here. These are ~$14 on Digikey for Qty : 1. Compatible products exist that have different pressure ranges and environment tolerances.
Resistors both 10k pull-ups. Cap 100 nF power decoupling. All 1206 packages.
Qwiic connectors make plugging between devices easy. Info here
https://www.sparkfun.com/qwiic
If you use the suggested QTPy board from Adafruit it includes the corresponding Qwiic connector. There are many other alternatives for microcontrollers with the same connectors, as well as a number of other accessories. Pick up a Qwiic cable to connect devices (https://www.sparkfun.com/products/17259 or similar).
All parts are surface mount. The pressure transducer is a fragile component and care must be taken in assembly. Solder paste and a small hotplate (ex https://www.sainsmart.com/products/miniware-60w-mini-hot-plate-preheater-soldering-station) makes soldering the transducer straightforward. The resistors and connector on the other side of the PCB can be soldered by hand.
Included .brd file can be shared with your favorite PCB fab house. PCB from OSH Park was $3 each for Qty 3.
CN-1000 board natively supports i2c. If your application requries a USB connection, it's straightfoward to insert a microcontroller as a repeater/translator in line with the sensor.
Suggested microcontroller is the QT Py from Adafruit (https://www.adafruit.com/qtpy) though nearly all modern microcontrollers support i2c and USB communication. This particular device includes a Qwiic connector for i2c, USB-C for serial comms and power, is fast, tiny, and cheap ($7.50 in Qty : 1). The USB-C connection is plenty to power the microcontroller and sensor. These typically ship w/ circuitPython but support the Arduino IDE + C/C++ code just fine (https://learn.adafruit.com/adafruit-qt-py/using-with-arduino-ide).
Arduino-format firmware available in .\pressureSensor reads the sensor, then relays the pressure reading on a USB serial port. This works well with the Arduino Serial Plotter function if you'd like a live monitor of system pressure.
Requires Blue Robotics MS5837 library, available through the Arduino IDE. In order to use this library the firmware code is written in C/C++.
Files are available for non-commerical use. If you would like to explore using this device commercially, please contact Cajal Neuroscience.