Eliminating interference with external module

As I have been prototyping a project using the Adafruit MAX31855 thermocouple amplifier breakout, I have been noticing some varying behavior. Initially, I had and Imp, April and the MAX31855’s laying out flat in a half open enclosure, and my data was very consistent and within the margin of error for K-type thermocouples.

My current prototypes are placing the boards much closer together, and sometimes directly over or under the April/Imp. The circuit also includes an LCD with a serial backpack, and a LiPo charging circuit from Adafruit.

I am noticing these specific behaviors.

  1. I read the temperature from both boards back to back from SPI189. I am using pins 2, and 8 as CS. Occasionally I will get a temperature reading that is way off the charts. From reading comments on the MAXIM site about the chip, it does seem that some people have experienced RF interference, though it appears that Adafruits board includes all of the recommended components to reduce interference.

  2. With my new prototype, if I turn on the circuit with all of the boards and the probes settled to room temperature, I initially get an accurate reading. Then over a period of about 15 minutes at the same room temperature, the readings of both probes rise about 8-10 degrees. My initial thinking is that the air inside the enclosure is warming up and changing the reference temperature at the cold junction, though I don’t understand why it can’t compensate for the change in reference temperature.

I certainly don’t expect answers about other companies products, though I’m quite sure the Hugo has some very interesting insight. :slight_smile:

I do have this question: Assuming that the occasional random bad reading is caused by the Imp communicating during the SPI reads, is there a way to prevent any any other communication during the SPI read to prevent interference.
Or, is there a position or shielding that I could use around the thermcouple amps to prevent RF interference?

I am reading the chips with the MAX31855 code in the Electric Imp GitHub repo. Thanks!

It could well be communication; the RF can couple onto the thermocouple wires. It’s usually possible to deal with this by adding capacitors to a low inductance ground (generally in the 10pF-33pF range) to push the RF energy to ground. I don’t see any of these on the adafruit board.

If you don’t change the send policy (ie, it does automatic connect), disconnect from the server (with server.disconnect), then sample, then do something which will bring the link back up (eg log) then you can ensure that there are no transmissions during the sample.

Shielding can help too, but grounding is really important and hard to achieve with multiple boards in a housing.

MAXIM makes its own peripheral module for the 31855, and I think I’ll order some of those. I’m comparing it to the Adafruit breakout. The datasheet references several caps. I see (2) 10 uF caps across 3.3v and GND, and a .01uF cap across T-&T+. (Adafruit board) Two other caps are referenced, but not installed on either board as far as I can see.

I’m going to move the boards away from the Imp and right next to the tcouple jacks. Maybe I’ll get less heat disturbing the reference junction. Not much room there.

Also going to implement server.disconnect and see if the random bad reads go away.


Would it be worthwhile to connect the imp to the thermo amps with cat 6 cable? I’ve added code to pull the reference temperature from the chips to study it as well.

Unless you think you’re getting data errors on the SPI, I’d say not. If you do use twisted pair cable, don’t twist data and clock together - use gnd+data and gnd+clock on two pairs.