12-11-2025 06:49 AM - edited 12-11-2025 07:35 AM
I’m working on assembling a digital pressure gauge, and I’ve run into a problem with the noise-filtering stage. I’m using an Arduino Uno R3 to read the data, and then I apply filtering in LabVIEW. However, the filtering doesn’t seem to work at all — it has no noticeable effect. At certain moments the readings suddenly drop to zero, and sometimes they spike unexpectedly, as shown in the pictures.
The pressure sensor I’m using is the MPS20N0040D, and I’m digitizing the signal with an HX711 module set to a gain of 32.
If anyone can help me figure out what’s causing these issues, I would really appreciate it.
Thank you.
12-11-2025 08:58 AM - edited 12-11-2025 09:01 AM
Most here cannot open LabVIEW 2025 VIs. To get better help, i recommend to "save for previous" (e.g. LabVIEW 2019) and attach again.
(Why are your charts so messed up? Each has a different size, axis formatting is all over the place)
12-11-2025 12:48 PM
here you are
sorry for messed up im noobie in labview
12-11-2025 02:18 PM - edited 12-11-2025 02:21 PM
Remove the bytes at port property node, use a number larger than you would expect for the serial read (maybe 1024) and make sure you are using println, not print in the Aduino code.
You are not framing/terminating the data correctly so whatever is on the port is being read at who knows when. Using Println() will append new line and carriage return. By default, VISA configure port will look for a carriage return character for framing.
12-11-2025 02:39 PM
Your problem is not with the noise filtering, but with the serial communication. Since we don't know you instrument, we cannot help, but I would recommend to start paying attention to the following talk
You are reading whatever is in the port buffer using "bytes at port" even though your communication is configured with a termination character. Your processing does not depend if there are zero or N bytes at port and it seems often you get nothing because the instrument is slow. Do you have a manual?
Why are you hiding the scrollbars on the front panel???
12-11-2025 02:48 PM
This is the code I use for Arduino. How should I modify my block diagram? I didn't quite catch that correctly
12-11-2025 03:13 PM
Thank you for your time. I just started working with LabVIEW a few days ago, and I don’t know much about it. I watched the video up to a point, but it was too advanced for me, and I didn’t understand much. I didn’t hide the scrollbars; I just cropped them because I didn’t think they were important. Now, what should I do to prevent it from reading zero data and remove it? Another issue I’m facing is with measuring my pulse rate using a sensor. Even with that, it still can’t detect it. Could this be related to the fact that it sometimes reads zero, or is the problem coming from somewhere else? If I need to change the block diagram, please explain simply so I can understand what to do. Thank you
12-11-2025 03:54 PM
Remove the bytes at port property node. Wire 1000 to the serial read bytes to read input.
The serial read will read data until:
By default, "Visa configure port" sets the line feed character as the termination character. When you use Serial.PrintLn() in Arduino, it sends the data, a carriage return and a line feed (\r\n).
12-11-2025 04:06 PM
I extracted this data from the Arduino using CoolTerm. I first connected the cuff loosely to detect normal noise, and then I placed it on my arm to capture both the noise and the pulse together. Now, I want to analyze it using LabVIEW to measure systolic and diastolic pressure using the Mean Arterial Pressure (MAP) method. However, I'm stuck and unable to proceed with training the system to distinguish between the pulse and the noise.
12-11-2025 04:33 PM
It looks like you are getting a bunch of 0's in your data because you are not reading it correctly from the Arduino. Remove the wait and the bytes from port property node. Also do you really need to write nothing to the port before reading it?