Jump to content
  • 0

MCC 128 how to improve precision


Chuting

Question

Hello,

We hope to measure voltage of a laser sensor with MCC 128+Raspberry Pi 4 but found out the measurement precision is way worse than what we want to achieve.

To test the precision, we measured 3V DC voltage source with claimed ripple noise Vrms ~0.5mV and acquired 20000 samples with 1kHz sampling rate. The data shows standard deviation of ~7.7mV. The same source was measured with a different data logger (another maker, without filters) and standard deviation was ~0.19mV so the noise shouldn't come from the source. Attached are the python code for this test and measured data (ch1: 3V DC measurement, ch2: AGND measurement, ch3: open).

Are there any ways to improve the precision? Or is this what we should expect from MCC 128 boards?

We are new to analog to digital converters and any ideas would be appreciated.

 

3channelADC_trigger.py 1kHz_20000S_test_data.xlsx

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Hello,

The 5-volt range accuracy is +/- 3mV when operated at 25-degree C. However, the MCC 128 may not be at 25-degree because the Raspberry PI does get warm, and this heat warms the MCC 128. My recommendation is to first measure the laser sensor signal using a calibrated bench voltmeter to know the true value. Assuming this confirms the 0.19mV value, see if you can get a taller Raspberry PI header. This will lift up the MCC 128 allow a bit more air flow underneath. Modify your python script to produce an average value of 167 readings. 167 @ 1000 Hz is an average over one 60 Hz cycle. This helps reduce noise from the surroundings. If these suggestions don't pan out let me know the board's serial number. If you can't get to the serial number then please provide the sales order or purchase order number.

Best regards,

John

Link to comment
Share on other sites

  • 0

Hello John,

Thank you for your suggestions. We tried those out but unfortunately they didn't make much difference.

On 9/30/2022 at 10:56 PM, JRys said:

My recommendation is to first measure the laser sensor signal using a calibrated bench voltmeter to know the true value. Assuming this confirms the 0.19mV value, see if you can get a taller Raspberry PI header. This will lift up the MCC 128 allow a bit more air flow underneath.

We measured the 3V signal with a calibrated multimeter and confirmed the standard deviation is ~0.2mV (attached "3V_source_multimeter.jpg").

Measurements with MCC 128 and taller headers(board-to-board distance 25mm) showed data fluctuations similar to those with original headers, standard deviation ~7.2mV (attached "MCC128_25mm_distance.JPG").

On 9/30/2022 at 10:56 PM, JRys said:

Modify your python script to produce an average value of 167 readings. 167 @ 1000 Hz is an average over one 60 Hz cycle. This helps reduce noise from the surroundings. If these suggestions don't pan out let me know the board's serial number. If you can't get to the serial number then please provide the sales order or purchase order number.

It seems that the data (20000 samples, 1kHz sampling rate) does not have much 60Hz component(attached "FFT_data"). Sampling @ 60Hz didn't improve the noise.

The serial number is DB5E8B7 as shown in the attached image.

Thank you for your help,

Chuting

 

3V_source_multimeter.jpg

MCC128_25mm_distance.JPG

MCC128_serial_number.JPG

FFT_data.png

Link to comment
Share on other sites

  • 0

Thank you for the update.

Both the histogram and the FFT seem to show data that is within the stated specs.  For the +/- 5-volt range, the noise spec is 220uVrms (approximately +/-1.3mV) and DC accuracy is +/-3mV.

I can replace the board, but could you do one last test? First, let your system warm up for at least 30 minutes. Next, measure a single input connected to ground. If it's in differential mode, connect both inputs to ground. Average a few readings and see what you get. If the input is off by ~7mV, chances are you'll see a 7mV offset. Next, connect the input to a battery - AA, AAA or anything within +/- 5 volts.  Connect your DMM across the battery too making sure it's warmed up. Again, average a few readings and compare result to the DMM. If it is off by 7mV, I will get you an RMA number to return the board for a replacement. 

Best regards,
John

Link to comment
Share on other sites

  • 0

Update: I've reach out to the MCC 128 engineer about the DC accuracy. Turns out that you shouldn't need to average the data and that all the values should fall within the spec.

Measuring the ground and a battery is good way to determine the input performance. Let me know the results from the two DC measurents described above - with or without averaging. 

John

Link to comment
Share on other sites

  • 0

Hi John,

We tried measuring 4.8V from 3 batteries in series with MCC128 (single ended mode, +/- 5-volt range, after 30mins warm-up) and the result was great. As shown in attached figure, the standard deviation was ~0.095mV. The accuracy was also good. For accuracy comparison between MCC128 and calibrated DMM, maximum difference was <1.0mV within 20000 samples each (no averaging).

So it turned out MCC128 is working perfectly fine. Its precision and accuracy are well within the stated specs. Instead, the problem came from the source we measured previously. The other data logger used to verify the precision probably has some built-in noise filters, which users can’t turn off. So at first, we interpreted the data fluctuations as MCC128’s fault. We will consider adding a low-pass filter before inputs.

It was nice learning batteries can be used as stable testing sources. Thank you so much for your help!

battery_measurement.jpg

Link to comment
Share on other sites

  • 0
On 9/30/2022 at 11:56 PM, JRys said:

Hello,

The 5-volt range accuracy is +/- 3mV when operated at 25-degree C. However, the MCC 128 may not be at 25-degree because the Raspberry PI does get warm, and this heat warms the MCC 128. My recommendation is to first measure the laser sensor signal using a calibrated bench voltmeter to know the true value. Assuming this confirms the 0.19mV value, see if you can get a taller Raspberry PI header. This will lift up the MCC 128 allow a bit more air flow underneath. Modify your python script to produce an average value of 167 readings. 167 @ 1000 Hz is an average over one 60 Hz cycle. This helps reduce noise from the surroundings. If these suggestions don't pan out let me know the board's serial number. If you can't get to the serial number then please provide the sales order or purchase order number.

Best regards,

John

Hello, I have noticed that the heat of the Pi can offset the measurement by a few tenths of a voltage. Using a fan blowing to the top of the board can reduce the offset. Do you have any idea where exactly on the board should I point the fan to? Or do you have any solution for cooling the board? Thanks

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...