Saturday, September 17, 2011

SerialCouple V1 Demo

I've written about this project a little before, but I figured I would give an overview of it's capabilities all in one place.  The SerialCouple line of boards are simple, easy to use single-channel thermocouple adapters, meant to be an interface between a thermocouple and a computer or other embedded system.  Shown in the pictures are the model one boards, which are meant to be plugged into FTDI-like USB-to-Serial adapters, but a second model based on RS-232 is in the works.

I've been doing all of my testing with the most standard K type thermocouple, but the MAX31855 part I'm using also supports J, N, T, E, S, and R junctions, which differ in their rated accuracies and temperature ranges.  K thermocouples are rated for measuring temperatures between -200C and 1350C, so for most hobbyist projects, they're perfectly sufficient.  With thermocouples, you can typically expect precision on the order of 2C or 0.75%, and the SerialCouple board supports 2 bits of resolution below the decimal point (so temperatures are read in steps of a quarter degree).  If you're interested in higher resolution than that, I'd suggest you take a look at my analog K thermocouple amplifier, which must be connected to your own ADC, but can give much higher resolution readings.

Here is a closeup of the board populated with an Omega MPJ thermocouple jack.  I did make one routing error on the boards, which can be seen by the blue wire between the ATTiny2313 and the MAX31855.  This is the one downside of AVR ICSP being on the SPI bus, in that if any other SPI device doesn't want to stay in reset during programming, they'll keep you from being able to reflash the AVR.  (Fun side note: I didn't solder most of this board.  It was done by one of my friends as his first time doing surface mount.)

The design was done in Eagle, and I am working on making everything for it available on a Google Code page.

I have been having some problems with my USB adapter.  The ADC works fine, except when I'm receiving anything from the USB adapters.  Initializing the adapter (an MCP2200 in my case) adds a very high frequency broadband 200mV P-P noise on the 5V rail to the SerialCouple board, which manages to get through the regulator and by-pass caps, and causes the ADC to read 3-10 degrees low.

I've solved the incorrect readings issue. Maxim's claim that the MAX31855 chips require no input filtering is incorrect; two 10nF caps resolved all of the noise issues for the model one boards.

There has been some interest in people buying the board, so once I get some more bugs worked out and spin another revision, I'll be open to the possibility of selling the blank PCBs and possibly completed boards.  Sound off in the comments with any interest or questions.


  1. Hello Kenneth,

    You said, "the MAX31855 part I'm using also supports J, N, T, E, S, and R junctions".

    It should be noted that you have to use a different part for each thermocouple type you want to use. For example the MAX31855K is only for K-type, MAX31855J is only for J-type, etc.

    So it seems the Omega thermocouple is loose, not mounted fixed to the PCB? Why is this? Don't they make one that can be board mounted?

    Nice work though. Iron out the bugs and I'm in for a board. Pay by PayPal and send by registered mail (I live in Indonesia). Maybe do fulfillment through

    Best Regards, David

  2. A couple more things come to mind:

    According to Table-1 in the data sheet the MAX31855 supports thermocouple types K,J,N,S,T,E,R. It seems S and R-type are special order though.

    K-type is most commonly used. Finding MAX31855 parts that support other thermocouple types from Distributors seems difficult (often finding Maxim parts in-general is difficult IMO). At post time the only place I can find the MAX31855K in unit quantity is at Mouser; $7.80 USD each.

    This is a relatively new Maxim part. It was introduced only a month or so ago to replace the venerable MAX6674.

    Rgds, David

  3. Right on all respects. The MAX31855 only supports a single junction type, so that choice will have to be made at time of manufacture. K is the most reasonable default, but I've had interest in N type as well.

    The Omega MPJ jacks are panel mount, which I've been using for the prototype model two boards, so they just happened to be what I had laying around. I'm planning on switching to the PCB mount jacks for the model two boards as some point, but I'm pretty happy with just euroblocks for the model ones.

    The MAX31855 has been a little difficult to source. Maxims sampling program in the US is outstanding, so they sent me four of them for free, before I bought a tube of 25 a week ago (which is the next price point - a little under $4). I've generally never had any problems sourcing more typical MAX or DS parts. 3222, 1307, 1820, 1631, etc. This is the first time I've had to go elsewhere than Digikey.

  4. Hi,

    Any reason you don't just make a USB version instead of RS232? I'm not sure if the Atmega line of MCU's have a USB capable part, but the PIC line does, such as the 18F2550. It's actually quite easy, and I could help if you're interested.

  5. I'm only particularly interested in the TTL serial version, since it means the edge connector can be used as standard I/O, alternative to being just a serial interface. The RS-232 version only exists because a company in San Diego hired me to do it after seeing the TTL version. I've been toying with the idea of going USB directly, but don't have a particular need for it.

  6. Your schematic doesn't show the 10nf caps for noise reduction. Can you show how they are connected?

  7. @Anon: I placed the 10nF caps between pins 1-2 and 3-4 of the MAX31855.

    @Brian: I couldn't find a store page to direct readers to.

  8. Have you found a source for PCB mounted thermocouple jacks? Omega has got them but you've got to buy 100, and they are a couple of bucks each! Ouch! Also, is there any benefit thermally to using a bona fide thermocouple jack as opposed to a terminal block? Great project!

  9. You can get Omega PCC jacks in quantity 5 or 50 as well as 100; you just have to build the part number by hand. The thermocouple jack means you're compensated from that interface to the PCB, which isn't really a big advantage vs the terminal blocks, since the temperature difference across half a cm probably isn't that big. Having compensated jacks is most useful for panel-mount jacks (MPJ), while using thermocouple extension wire.

  10. "I've solved the incorrect readings issue. Maxim's claim that the MAX31855 chips require no input filtering is incorrect; two 10nF caps resolved all of the noise issues for the model one boards. "
    Indeed, it took me some hours to find out why it reads wrong values.

  11. Hi Ken,
    are you willing to share your C code?
    I was started with MAX6675 code from ReflowOven, but your code is probably finished :-)
    Thanks, Martin

    1. I'm afraid that my code is still not much more than a software SPI stack and a serial port hex print function. I'm graduating at the end of the month, and this project is towards the top of my list. I'll start posting the code and exploring the details then.

  12. Where is the code? Google code page is empty.

    1. In the source tab; I haven't done any tagged releases yet:

  13. Thanks Kenneth for sharing this information.
    I guess the capacitor you connected must be between pin 1-2 & 1-3 (instead 3-4). Did you add any series resistor/inductor before it?

    I have following inquiries:

    1. Does this IC supports grounded thermocouples?
    2. If I use MAX31850 which supports addressing, can I use up to 16 devices over SPI communicating a local unit?
    3. Since the IC is using CJC which will be close to thermocouple wires can I avoid omega connector?

    Thanks again!