New project - Megamometer


 

Gary Graham

TVWBB Fan
Hi,
I am new to the forum and it appears that the gravity from that 26 page post on the Homebrew controller and Tempmon and Heatermeter must have pulled me in.

I have an insulated cabinet smoker (32 sq ft cooking area) that I built in 2010 that burns lump charcoal and wood chunks in a gravity fed firebox. I use a 12v PID controller and a small stoker fan, and my largest cook so far was a just over 200 lbs of brisket, butts and ribs. This year, I want to run pellets and I am building a pellet drive system from scratch.

For some extra insurance, I wanted to build a super thermometer that would help me profile my cooker and see if I can get the heat spread out evenly. My 200lb cook in the "Fridge"

Since I want to start using the Megamometer quickly, it will start as a thermometer, and as I pick up the skills on the Ardiuno hardware and programming, I hope to grow it into a full blown data logging multi-fuel controller that can serve status up to a web interface.

I would like to build upon the excellent work by Brian Mayland and others on this forum that contributed to his project called Heatermeter. However, I will need to make some changes to adapt the hardware and software to burn pellets and support additional probes, etc.

Here is my punch list for the Megamometer project. <edit to prioritize a bit>

1) Purchased an Arduino MEGA 2560 for the main board. Will put those extra I/O ports to use...

2) Slight changes to use a 1602 display shield with 6 buttons. Having the buttons on this $17 part will save time and effort when building the unit. The 1602 can show 4 temperatures or parameters at once, and can also be used to view a log file with some navigation tweaks for scrolling with left/right buttons to see data for a point in time on all 8 probes. Anyone using a rotary encoder or joystick controller to help with navigation ?

3) Add support for more meat probes (bring the total up to at least 8 ). These probes can be used to profile temps in the cook chamber, or to monitor the cook temps for meats on each rack. The cost here is in the probes... I see Polders go for about $10 ea and Maverick HT for $18 ea. Also considering the use of LEDs in|near the probe connectors to show status-at-a-glance. The Mega has several digital pins, so 3-4 pins per probe could be used to light a LED to show status of the meat on that probe.(blue<40<yellow<140<red<cook target>=green)

4) Add a couple more pit probes - like one on the heat deflector over the pellet burn pot and maybey one in the exhaust stack to monitor and (attempt to) control efficiency. I hope to be able to report on lbs/hr or BTU/Hr or something like that instead of fan percentage.

5) Control mode for burning pellets. I want to keep the cooker at the target temp using a closed loop that will vary the heat from the burn pot as cooking conditions demand. More heat is needed at the start of a cook with all that cold meat, or during recovery after opening the door, so I would run the fan at 100% and give it pellets more frequently.
I am testing this type of control using a 12v PID that drives an on/off timer for the auger. (while PID J1 output is high, the timer blips the auger motor on/off to bring in pellets occasionally). This has a knob to alter on/off time, but no provision for fan speed control right now.

6) Thinking of using an Adafruit data logger board with real time clock support. That would give a 2GB flash card for web pages and logs, some ease in data portability, etc. Without this, it appears we have just a few kb of flash space for logs and need to set the time manually each run ?

7) Web capabilities - found some hacks for serial communication with a router. Planning to cook at home and away - it make sense to integrate with a router. I also saw some hacks for adding a SD card to a router...

8) Customize the setup menu where the control program and other parameters can be set using the display and buttons. Have "cook for temp" and "cook for time" with an option for "cook then hold" after meeting the target.

9) Considering the benefit to support an electronic servo damper. This may help with recovery times in a large cooker. My cabinet smoker is just like a refrigerator and I end up standing there with the door open sometimes. Although the cooker is insulated, there is a lot of volume that needs to be re-heated, so I think throttling the damper might help. (keeping the door shut will help too, right ?)

10) Have the ability to select the control modes for "stoker fan" or "electric element" or "pellet drive" so the controller can be used on different cookers.
 
Huzzah! I look forward to seeing what you come up with. The best part of these projects is seeing what new ideas I can steal and build back into my project!
 
I did my first springtime cook the other day and was able to use pellets for the first time ever. Here is a link to my home made pellet fired smoker project.

Gary's Pellet Drive

The system is 12v and uses a PID controller with an on/off timer circuit on the J1 output of the PID controller. There is a description of operation on page 1 of that thread, and what I am thinking of doing is to use some timer loops to emulate this type of control method in the Megamometer project.

Does the PID library for the the Arduino work close enough that we could use the same parameters from an auto-tuned physical PID controller and get a similar result ?

Other thoughts, ideas suggestions ?
I found these CDN AD-DTTC probes are pretty inexpensive but I could not find specs on them... I want to get a bunch of them but only after I know they will work. Anyone know about these ?
 
For my project, I am using the DFRobot keypad shield. I found some detailed specs at:
http://www.droboticsonline.com...d-keypad-shield.html

I spent about 3 hours figuring out these two parts just don't snap together, and some times I need to connect using pins and other times I have to use a wire on a spot elsewhere on the board, but it is very rewarding to post a picture of the Ardunio and display actually working.

Megamometer_1.jpg


I had to use the wires to connect it properly to the Mega and also had to turn up the contrast pot like 30 turns before I could see anything displayed, but I was able to run both of the example test sketches without modifications.
 
HI RJ, Thanks for dropping in. I have read some of your posts and value anything you would like to share relating to pellet cooking and the Ardunio controller. I have done only one cook and that was with my home made rig.

I have a charcoal cooker that I could try out Brian's HeaterMeter code on, and may start there - just getting it to work with my display and no network.

I have a PT100 thermocouple that I could use for the pit probe (3 wire) or a K type thermocouple (2 wire). Also have a digital food probe made by Taylor.

I have to go back and do some reading to see if you guys are using thermocouples for the pit probe. Do you know ?
 
Originally posted by Gary Graham:
HI RJ, Thanks for dropping in. I have read some of your posts and value anything you would like to share relating to pellet cooking and the Ardunio controller. I have done only one cook and that was with my home made rig.

I have a charcoal cooker that I could try out Brian's HeaterMeter code on, and may start there - just getting it to work with my display and no network.

I have a PT100 thermocouple that I could use for the pit probe (3 wire) or a K type thermocouple (2 wire). Also have a digital food probe made by Taylor.

I have to go back and do some reading to see if you guys are using thermocouples for the pit probe. Do you know ?

WE were using the Maverick thermal probes which are thermistors. Not as accurate but a lot cheaper.
 
I got 10 meat probes from Amazon that are made by Component Design Northwest, model AD-DTTC2010. These appear to be in the neighborhood of 220K ? (measured 218K at room temp).

Does anyone know how to find the coefficients needed to use the Steinhardt-Hart formula (or other method) on this model probe ?

I did some profiling and measured resistance for rising temp of probe in a pot of water on the stove with a Taylor digital meat therm to read the water temp and measured 74K at 124F, 49.7K at 150F, 34.6K at 170F....23.9K at 212F.
I have lots more data points that I could make into a table if the lookup method is the way to go.

I found a nice source for the 2.5mm 2-conductor mini jacks that fit these type of probes... they are around 3 bucks each at Markertek.com
Item number 30-713.
 
I used a program from an Application Note I found online. The page is dead now but here's the app. Just switch it to table mode and type in your datapoints (in celcius!). The more points you have the more accurate it will be.

I use these 2.5mm jacks from DigiKey ($1.17/ea) but these from Mouser are an ok substitute ($0.75/ea). The Mouser ones are slightly less sturdy on the electrical connection but work just fine.
 
Thanks for the link... that is exactly what I need to get moving again. I am working on this project now now because I have some questions about my cooker that will take several simultaneous measurements to answer.

Today I profiled the thermistor probe that I will be using. I wired the "unknown" probe together with my Taylor meat probe, and boiled a pot of water. Then I put the probes in and waited until they had time to stabilize for a reading in boiling water (212 degrees F). Then I turned the heat off and recorded the temperature and resistance measurements every 5 degrees

Here are the results using the resistance and temperature values that I recorded.
CDN_Probe.jpg


Next, I am using the ABC values in a code example that I found on the Ardunio forum for measuring temperature using a thermistor. That page is located at:
http://www.arduino.cc/playgrou...onentLib/Thermistor2

I am using the second example on the page, and was able to make some measurements with the Megamometer last night, but needed to re-calibrate the program using the proper ABC and resistance values that match my 200K NTC thermistor.... provided I have that correct, I should be able to generate a temperature log by combining some of the programming examples that I have used on this project so far.
 
A few weeks ago, I got the Adafruit Data Logger working. Here is a link to the Adafruit Industries Data Logger shield page http://www.adafruit.com/products/243

I found that I needed to do some manual wiring because the data logger board is not pin compatible with the Mega 2560 controller that I am using.

Here is a photo of how it looks.
Megamometer_logger.jpg


Well anyone can see that the two parts just "kinda" fit together. It is hard to know which pins are really important, but apparently the higher number digital pins in the Ardunio world have special significance, and are used for the SPI bus, which is used to activate the SD card.

The data logger is sitting piggy-back on the main controller board, and I had to bend out a few pins and use the green wires to make a few connections manually. It is only by grace and patience to figure something like this out. The internet had most of the info on using the Mega with and ethernet board, but it is the gift of grace and patience that helped me to use that information on this setup and once it was right, it worked !

On the left end of the unit is the 2GB SD card for temperature logs. That will probably hold a lifetime of temperature records for my cooks - even when capturing temperatures from all 10 probes at once . On the right side of the photo, you can see all those extra I/O pins that you get with the Mega 2560 board. I plan to use many of those digital pins to light up colored LEDs that show the status of each probe - similar to the ones on newer stokers, except I think I will just have the LEDs poking out of the case somewhere.

Next step is to get the logger to read a thermistor probe and log some real data, then scale that to 10 probes and log that, then add the keypad and display and write some code (and cut and past from other projects) to show the current temps for each of the probes and to browse a log file, etc...
 
Ok, so here is the first temperature log from the Megamometer project.
I have one probe connected to the Ardunio, and started the test at room temperature, then dropped the probe into a pot of hot water, then let it cool again.

Megamometer_test1.jpg

I was comparing the temperature recorded by the Megamometer to the Taylor meat thermometer reading and they appeared to be within 2-3 degrees of each other. (may need to adjust offset resistor value?)

The cool part of this is that I made the chart from data that was logged to a .csv file on the SD card... IT WORKS !!

A couple of things that I noticed and still don't understand:
1) The analog to digital converter (ADC) readings seem to fluctuate quite a bit, so there needs to be some averaging or smoothing of the [resistance=calculated temperature] readings over time.

2) I am not sure why the other two channels (analog 1 and analog 2) seem to follow the analog 1 channel that is hooked up to a voltage divider and probe. These may need to be tied up to keep from getting "noise" readings. There is nothing at all on analog1 and analog2.

Thanks for any tips or pointers on how to smooth the readings.
 
Originally posted by Gary Graham:
1) The analog to digital converter (ADC) readings seem to fluctuate quite a bit, so there needs to be some averaging or smoothing of the [resistance=calculated temperature] readings over time.

2) I am not sure why the other two channels (analog 1 and analog 2) seem to follow the analog 1 channel that is hooked up to a voltage divider and probe. These may need to be tied up to keep from getting "noise" readings. There is nothing at all on analog1 and analog2.
1) HeaterMeter averages 8 values over 2 seconds to get its values. I find the ADC readings to be quite stable though if the power line is clean. If I have a good solid 5V coming in, they may vary a by 1 ADC tick. I know initially I wrote a sketch that would read the 10 times per second then spit out the mean, standard dev, and variance because I too had a lot of fluctuation. That's gone now and I don't know why. I remember initially that if two of the probes had their metal wire jackets touching, it would mess up the readings. You may see if that's the case too.

2) Yup, any unused analog channels get a field effect from the other lines that cause them to float in a manner that mimics another channel. You can force them high by using the internal pullup resistors if you're not using them:
digitalWrite(A0, HIGH); // or whatever A? line
You should then get 1023 for any analogRead() on that line.
 
Here is a photo of the project after adding the voltage dividers and related wiring for each one of the meat probes.
Megamometer_box.jpg


For the software, I am having to re-learn programming, and know C better than C++, so I attempted to find sections that I needed in the Heatermeter code and related header files, but ended up using a couple of building blocks from the Ardunio Playground and from the SD Fatlib collection and smunged up a sketch that I understand well enough to scale the number of probes and change some of the formatting options and various parameters that fit my hardware. Not sure how to post the code, but if anyone is interested, I can post if you can help.

The sketch starts automatically when I apply power, and it records temperatures from 8 different meat probes and logs the data every minute to a .csv file on the SD card.

To use it, I plug in the 9v battery, snap the lid on the box, then plug in each of the meat probes and try to untangle the mess of wires and stick each meat probe into a piece of meat in my cooker. (just measures temp only for now - it does not do the PID control of the fan)
Megamometer_test2.jpg

This first meat test was during a really bad rain storm, and my project box eventually took on enough water that the Ardunio stopped working. I let it dry off the rest of the day and was able to power it on again the next day... will have to re-install the SD card and see if it is still working OK, but seeing the blue LED on the Mega main board was comforting...

Here is the log during the early morning hours of my Labor Day cook of 60lbs - 4 whole briskets and a bunch of small pieces of pork butts (all the whole ones were sold out).

Megamometer_log_090511_graph_2.jpg


Thanks for the help and ideas on the project.
 
Notes:
A) Noticed the temperature on my PID controller was set to 200 degrees, so I ramped it up to 250 and went inside to dry off and take a nap.
B) The PID controller is reading 250 at this point. I knocked the temp back down to 225 for a while.
C) Look at the blue temperature trace. Something happened about the same time I had lowered the temperature, and I think it was me tilting the enclosure to let water out of it. Apparently one of the wires may have gotten wet and I think that affected the resistance measurement for a while.
D) Logging stopped when too much water got in the enclosure.

After an exciting day of BBQ, I took the SD card out of the logger and opened the log file with my computer and did the formatting and other observations about the cook and some of the questions I had about my cooker.

I made the graph using the spreadsheet application in OpenOffice, and added the text baloons and colored lines using another image editing tool.

Observations:
1) Meats on the lower racks cook faster (already knew that.... just could not visualize or compare with other racks)
2) the temperature in the middle of my cooker is virtually the same temperature as the bottom rack of the cooker (I thought I would see a temp difference because of the meat cooling the air... but had only 60 lbs of meat in there this time)
3) It took several minutes of open door time to get all of the probes in the meat and on the racks while standing in the rain with 40mph wind gusts and 8 tangled meat probes... temp dropped to about 150, but you can see the recovery time right on the chart.
4) The cook temperatures on the graph are about 7 degrees lower than my PID thermocouple was reading. I am sure I can tighten this up on the next cook.

Other humorous story:
I was working on wrapping ribs later in the day, and I bumped my trusty Taylor digital meat thermometer and it came unplugged and it fell right into my grease bucket ! Very bad since I was not using catch pans under the meat and there was enough black, tarry grease and rain water in there that it was floating, and it only got worse when I tried to take it out - so it is a goner.
 
Did another cook this weekend for a picnic. There is some minor calibration work to be done, but I am getting some good information from the device.

Here is another temperature log from one of my best cooks to date. This one shows the warmup, loading up the meat up and the overnight portion of a 100 lb cook in my smoker. There is 50 lbs of Brisket and 60 lbs of butts, I trimmed most of the fat off the briskets and cooked all of the meat with no pans. I collected about 4 cups of grease in the drip bucket. All of the meat was done when I pulled it at Noon the next day.

Megamometer_log_091011.jpg


You can see how the recovery temperature is affected as the meat load is added. I learned last cook that the meats on the lower racks cook faster, so I made sure to put the largest pieces of meat on the lower racks.

To get an idea of the temperatures being reported, compare the thermocouple readings from the heat transfer tube (513 degrees) and the center of the cook chamber (232 degrees) before adding the meats for probes 5 and 6.

Megamometer_run_2_091011.jpg


This photo was taken around hour 2 after adding brisket#4, while I was prepping the first load of butts. I did not see brisket number 5 waiting in the refrigerator until I moved some of those butts out of the way. Brisket# 5 had kind of a late start and was the greatest distance from the bottom, but I moved it down when I started wrapping rack1, rack2 and rack3 at 8:AM.

Has anyone coded or used thermocouples ? I would like to add one or two to record the higher temperatures from the firebox and the very bottom of the cook chamber.
 
Originally posted by Gary Graham:
Megamometer_log_091011.jpg
This is like the greatest thing ever made. I've never seen 100lbs of BBQ being loaded into a smoker and this is just amazing. My hat's off to you for such a huge creation.
 
Thanks ! You guys have inspired me to learn how to apply some of my techie skills to learn more about making BBQ.

Anyways, I still need to get the display working and get it to read a thermocouple, then add the PID loop and it will function as a controller as well.

Do you know of any high temperature thermistors ? I need something that can take 1,000 degrees because I would like the option of running the PID off of the firebox or the cook chamber.

On the "full pull" portion of a larger cook, the stoker fan runs a long time and can push the firebox over 1000 degrees, so I want to be able to control that a little better.
 
@Gary Nice work Gary. You compete or a caterer, or both?
icon_smile.gif


@Bryan This is why I was looking at the mega, and the alert if parameter out of bounds, keeping the fire going for so long can be some work.
 
RJ,

Thanks !
I am gearing up for BBQ business, and have been practicing with some picnic style cooks. This cook was 5 briskets and 10 butts - the meat filled 5 of the 8 racks in my cooker and took 30lbs of lump charcoal from startup to the leftovers. My cooker is a cabinet style gravity fed charcoal burner and I am using the Megamometer to help understand the cooking zones inside.

One thing I notice is the air temps inside the cabinet are basically the same when comparing the top meat rack to the bottom meat rack, although meats on the lower racks always finish before the meats on the higher racks. The convection in the cook chamber is good, but there must be something else besides the air temp and contact with the racks going on... there must be another heat component (like infrared?) in the lower section of my cooker where the heat comes in from the firebox.

The fire temp from the charcoal firebox has a pretty wild ride - varying more than 400 degrees depending on load, while the chamber is creeping up after adding meat (850-1000), or holding steady(450) while the meat cooks with the door shut for hours. I want to catch that in the logs as well. I found a couple of places that sell thermocouple amplifier circuits, and will be adding one so I can track the fire temp.
 

 

Back
Top