Pimoroni MCP9600 very noisy

Hi, I have 2x Pimoroni MCP9600 breakout boards which I am using a Raspberry Pi4 with the Pimoroni breakout garden.

I am able to read thermocouple values using Python, from a K type thermocouple (unknown brand, it’s part of my coffee roaster). However the values are really noisy. It seems like it jumps around between some base value and the actual value. The base value moves as the actual temperature increases.

I have been able to smooth it out to some degree with heavy software filtering, but that doesn’t seem like the right approach and means it doesn’t respond quickly to changes.

I also tried adding a 100nF ceramic capacitor across the +/- terminals right where the thermcouple wires enter the MCP9600 terminals, but that didn’t help either.

I’ve attached a chart to show what I am seeing. The upper spikes are the ‘real’ temperature readings while the bottom spikes are the false floor that it seem to jump down to (which changes depending on the actual temperature)

Does anyone have any suggestions to get rid of this noise?

image001

Hey James,

Interesting, what’s the data filtering that you’ve run so far? I’d say that the two easiest forms of data filtering, in this case, would be to either run a Kalman filter as I’ve linked below or a little more sophisticatedly, you can check the reading as compared to the previous (essentially the gradient) and then add a limiting point at which when the difference is too large make the value the same as the previous. This would appear similarly to the image I’ve linked below if it runs properly. This seems like too much noise from a sensor alone, I’d also recommend switching the connections you’re using from the Pi, as well as any other peripherals, and power the Pi from a battery to see whether that’d be interfering with the signal. Please let me know how you go!

image

Bryce
Core Electronics | Support

2 Likes

Thanks Bryce, after posting this, I came across this post : https://forums.pimoroni.com/t/mcp9600-breakout-pim437/13129/3

Seems that the issue was caused by the baud rate. I reduced the I2C baud rate to 40000 as per that post and now it’s far cleaner. Still the odd spike here and there, but it’s like night and day and the occasional spike is easy to filter with a gradient filter as you mentioned. Might be worth adding a note to the product listing to tell people to reduce the baud rate on the RPi4 (I haven’t tried it on an RPi3, but I’m guessing it’s the same).

2 Likes

Excellent Idea James,

I’ve added it to the site! Have a great day!

Bryce
Core Electronics | Support

2 Likes