Electronics > Open Source Hardware

Pax Instruments T400 thermocouple temperature datalogger

(1/10) > >>

charlespax:
Update: Right now you can purchase the T400 on Kickstarter

I'm super excited to share my project with you: the Pax Instruments T400 temperature datalogger. The Kickstarter campaign is launching in September.

The T400 simultaneously displays all four thermocouple temperatures, the ambient temperature, and a graph of the last 100 readings. It also saves the readings to a MicroSD card and prints the readings to the USB serial port.

 ;D I would be absolutely thrilled to get some feedback on the attached schematic. ;D I feel pretty confident with the design and I'm ready to have it scrutinized to bring it to the next level.

The main processor is the ATmega32U4 running at 8 MHz and 3.3V. The processor was chosen to give Arduino compatibility. Since it runs at 8 MHz and 3.3V it would be programmed as an Arduino Lilypad USB through the Arduino IDE.

The MCP3424 analog-to-digital converter measures the voltage produced by each thermocouple.

The MCP9800 temperature sensor is used for cold junction compensation.

The DS3231 real time clock is used to trigger readings. Between readings the device goes into low power sleep mode. The RTC wakes up the unit to take a reading, giving a longer battery life.

The T400 uses a standard BL-5C battery, great for battery replacement in the field.

As you can see in the attached screenshot, the device can display all four thermocouple temperatures while graphing the most recent 100 readings from all four channels. The graph can display each channel individually or all four together. If the ATmega32U4 has enough programming space, the T400 will also be able to display each channel in large numerals for easy viewing.

If you find this project interesting, learn more at Pax Insruments and sign up to be notified when the Kickstarter launches.

penfold:
I like it.  The concept is good, assuming the price point for an assembled one comes under a reasonable figure, I think I could find a place for one on my bench.

A couple of comments though...

Do you have a reason for pulling one side of the thermocouple high and the other low? if you're just trying to give each input a defined voltage then you'd probably be better off just holding one side between a 1Meg potential divider and not feeding any current (no matter how small) through the thermocouple... if you're using it to detect whether there's a thermocouple present or not, i think i can let you off.

I'm a little apprehensive to see that there isn't any external gain provided for the thermocouple signals.  There's a lot of error thats likely to occur, if your getting descent resolution and accuracy in your tests i'll concede but you could make so much better use of that 18 bit resolution

I like the idea of a graph showing the last 100 or so samples, but it would be nice if to see a longer period down sampled yet having all the data on the sd card

fcb:
The MCP3424 in 18 bit mode (3.75Hz sample rate!) gives an LSB of 15.625uV (PGA=1), type K thermocouple is approx. 39uV per degree C.

So whilst with PGA=8, you will have approx 0.05C per LSB, which is probably OK (although I think this is to close to a minimum resolution expected of 0.1C to be useful).  Also, you have a range of approx (PGA=8) 13,000C which is around 10 times more than the type K useful range - this seems like a poor match.

I would use the excellent MCP619 as a front end on each channel (perhaps with a gain of 20-40), and then a mux (4051) and then some more gain (jelly bean opamp perhaps) and use the ADC in your micro.  Or if you're not keen on redoing the work with the MCP3424, then at least add some gain from something like the MCP619 on the front of each channel, to give you a better match with the ADC.

Also, with a chunk more gain, you can have the option of using the PGA to set the range (0-1300C might not need better than 0.1C resolution, 0-100C could run at 0.01C resolution), or run at lower sample resolution for faster updates.

Incidentally, i have recently finished a design that uses a couple of MCP609's and a dsPIC for a four channel type K industrial control. The MCP609 as it was cheaper than MCP619 and met the spec I was after.  Each channel used two series gain blocks (g=24, g=10) as per the application example in the datasheet, however I only cared about positive temperatures. I also used the MCP9701A as the isothermal measurement.

charlespax:
Thank you so much for your feedback, penfold!


--- Quote from: penfold on August 10, 2014, 03:51:51 pm ---Do you have a reason for pulling one side of the thermocouple high and the other low?... if you're using it to detect whether there's a thermocouple present or not, i think i can let you off.

--- End quote ---
Yes, this is for detecting if a thermocouple is connected. I basically took the whole thermocouple filtration and detection circuit from the Texas Instruments ADS1118 application report.


--- Quote from: Texas Instruments ADS1118 application report ---The two 1-M? resistors (RPU and RPD) serve two purposes. First, these components offer a common-mode bias near midsupply. Connecting only one of the inputs to a common point decreases performance by converting common-mode noise into differential signal noise that is not strongly attenuated. The second purpose of these 1-M? resistors is to offer a weak pull-up and pull-down for sensor open detection. If a sensor is disconnected, the inputs to the ADC will extend to supply and ground and yield a full-scale readout that indicates a sensor disconnection.
--- End quote ---


--- Quote from: penfold on August 10, 2014, 03:51:51 pm ---I'm a little apprehensive to see that there isn't any external gain provided for the thermocouple signals.  There's a lot of error thats likely to occur, if your getting descent resolution and accuracy in your tests i'll concede but you could make so much better use of that 18 bit resolution

--- End quote ---
The MCP3424 has an internal PGA. I can boost the input up to eight times without any extra external components. Pretty sweet for minimizing the part count and keeping the board small.  :)  Do you think there would be any noise issues? From what I gather in the datasheet there shouldn't be any problems.


--- Quote from: penfold on August 10, 2014, 03:51:51 pm ---I like the idea of a graph showing the last 100 or so samples, but it would be nice if to see a longer period down sampled yet having all the data on the sd card

--- End quote ---
I totally agree and have added this to the list of possible features. Things are pretty tight with the ATmega32U4 programming space, so I hope we can squeeze it in. I've added your suggestions to the github repo: down-sample, plot from SD.

Did I cover everything?

charlespax:
Thank you, fcb. You've given me a few things to consider for the T400 and whatever the next device may be.


--- Quote from: fcb on August 10, 2014, 05:55:04 pm ---The MCP3424 in 18 bit mode (3.75Hz sample rate!) gives an LSB of 15.625uV (PGA=1), type K thermocouple is approx. 39uV per degree C.

So whilst with PGA=8, you will have approx 0.05C per LSB, which is probably OK (although I think this is to close to a minimum resolution expected of 0.1C to be useful).  Also, you have a range of approx (PGA=8) 13,000C which is around 10 times more than the type K useful range - this seems like a poor match.

--- End quote ---
I plan to have the T400 operate in 16-bit mode to get a 15 Hz sample rate. Loss in resolution, but an acceptable tradeoff to have the readings more quickly. The MCP3424 isn't necessarily the best system to use, but I started the design by leveraging other open source designs. I'm neither a programmer nor an electrical engineer, so there was some necessity to do this.

The full scale output range of the Type K thermocouple is about 62 mV. This provides 38 ?V/°C (= 62 mV/(1370 - -260)°C) of measurement resolution. In 16-bit mode the detectable signal level is 62.5 uV/PGA = 7.8125 mV (for PGA = 8 ). For the input signal level after a gain of eight, (38 ?V/°C) * 8 = 304 ?V/°C. The number of LSB/°C = (304 ?V/°C)/(62.5 uV) = 4.864 divisions per °C. This is mostly taken from the thermocouple example on  page thirty-four of the MCP3424 datasheet.

I can live with a 0.2 °C resolution for the ADC. I'm trying to get this out there for $150 or less.


--- Quote from: fcb on August 10, 2014, 05:55:04 pm ---I would use the excellent MCP619 as a front end on each channel (perhaps with a gain of 20-40), and then a mux (4051) and then some more gain (jelly bean opamp perhaps) and use the ADC in your micro.  Or if you're not keen on redoing the work with the MCP3424, then at least add some gain from something like the MCP619 on the front of each channel, to give you a better match with the ADC.

Also, with a chunk more gain, you can have the option of using the PGA to set the range (0-1300C might not need better than 0.1C resolution, 0-100C could run at 0.01C resolution), or run at lower sample resolution for faster updates.

--- End quote ---
I don't know if there's a right way to do it, but if there is, it probably sounds like that ;)  At this point in the design I won't be moving to using the microcontroller's ADC. However, I will consider adding some amplification to each channel if I can keep the added cost low enough. If the next device for Pax Instruments is a higher-end T400 type device, I'll definitely take the time and redesign like this.


--- Quote from: fcb on August 10, 2014, 05:55:04 pm ---Incidentally, i have recently finished a design that uses a couple of MCP609's and a dsPIC for a four channel type K industrial control. The MCP609 as it was cheaper than MCP619 and met the spec I was after.  Each channel used two series gain blocks (g=24, g=10) as per the application example in the datasheet, however I only cared about positive temperatures. I also used the MCP9701A as the isothermal measurement.

--- End quote ---
Sweet! Is that a design you can share? I'd love to see how the experts do it  :D  I'm using the MCP9800, which has an accurace of +/- 0.5 °C around room temperature.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod