LinkMeter v2 Homebrew BBQ Controller - Part 1


 
Status
Not open for further replies.
Originally posted by D Peart:
How do I read the datasheet for the thermister and come up with the correct constants to get the right temperature?

Do we need to have co-efficients for the maverick probes or are they good to go?
1) I believe those coefficients are wrong. I think I had gotten the the actual part from mouser and mouser links the wrong datasheet from the product page so I used the wrong datasheet to calculate it. Try these: 1.14061e-3,2.32134e-4,9.63666e-8. You can calculate them using the table from the datasheet and a mean least squares recursive solver. If you have no idea how to do that, like me, you'll google up this tool which I illegally mirror here.

2) The default coefficients for the probes match the maverick ones so there's nothing to do there.
 
Originally posted by D Peart:
I noticed that when I switched from a Yes to a No the s from the Yes was left displaying on the screen.

As I was doing this, I wanted to create a hm.hex file to upload via LM, but could not figure out how to do it in the Arduino environment. Any pointers on how you do this?
Gah yes that's been bothering me forever, and I keep forgetting to change it. It is one of those things that you see it happen, it is easy to fix, but you forget it when you walk back inside. It is fixed and will be in my next push.

The hm.hex is actually called heatermeter.cpp.hex and "This file is built by the Arduino IDE and is located in a randomly named folder in the temporary directory %TEMP%/buildXXXXXXXXXXX"
 
Originally posted by Bryan Mayland:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by D Peart:
I noticed that when I switched from a Yes to a No the s from the Yes was left displaying on the screen.

As I was doing this, I wanted to create a hm.hex file to upload via LM, but could not figure out how to do it in the Arduino environment. Any pointers on how you do this?
Gah yes that's been bothering me forever, and I keep forgetting to change it. It is one of those things that you see it happen, it is easy to fix, but you forget it when you walk back inside. It is fixed and will be in my next push.

The hm.hex is actually called heatermeter.cpp.hex and "This file is built by the Arduino IDE and is located in a randomly named folder in the temporary directory %TEMP%/buildXXXXXXXXXXX" </div></BLOCKQUOTE>

I got it all in my project case today and it is actually running my smoker right now. I have a UDS smoker and at the moment I have my electric heater in it and it is working beautifully. I'll try a nice charcoal cook Thursday for the T-Day turkey.

very nice,
dave
 
Originally posted by D Peart:
When I put the HM into a manual LidOpen setting, it only stays there until the temp is at the set point. The issue is that when done manually the temp is at the setpoint so it comes back out immediately. This makes it not work well as I could never get the lid off fast enough to have a temp drop before leaving lid open mode. Maybe we put a 30s delay before leaving lid open mode, giving us time to open the lid?
My solution was to open the lid then press the button, which fixed the problem as far as I was concerned, but I like your solution better. It still could go wrong if the hysteresis is high enough that you think it turned off, closed the lid... then you walked away and it turned back on... but I guess in that case it doesn't matter anyway because it should be back in control mode. Good fix, I like it!
 
In-laws are in town so I have been seriously consumed! I have been able to keep up with reading the post but haven't had time to contribute anything useful.

Originally posted by Bryan Mayland:
That's crazy. The tolerances in the code are pretty wide. The target is 3.6V but it should accept anywhere between 3.2V and 3.9V which is closer to 10%. I wonder if the 390 resistor is off by that much? Or the other 1k on the line?

I tested three of the radioshack 5% 1/4 watt 390 resistors on the breadboard with the Linkmeter v3.1 board and they do not work. When I stuck the 1% in their place I was immediately able to scroll through the menu. I can take some voltage reading if you think that would be useful. When I use these resistors on my Arduino Duemilanove with the WiShield and r97 it does not do this.

To clarify you connect the one line from the router's ttys0 and ground through the resistor divider and you can see stuff on the serial console? Or you've got the HeaterMeter output coming in? If it is heatermeter output, the resistors aren't needed, if it is the router's you've got them on the wrong line. (it is kinda confusing because both are "transmit" depending on whose perspective it is) Data coming from the router ttys0 to the PC should be straight through (because it is 3.3V and that's good enough to count as far as the PC is concerned). Data going from PC to router ttys0 needs the resistors to knock the 5V PC signal down to 3.3V.

I connect Digital Pin 1 "TX" on the Arduino to the routers "TX" (or what I think is the router tx)and the ground on the router to the ground on the Arduino and I can see the router boot up. Is ttys0 the same as TX on the router or would the be RX? Sorry this is my first project with electronics anything so I am still learning.

In any case...I am sick of messing with the WRT150N. I am picking up a WRT54GL from a guy in downtown Seattle tomorrow for $30. Maybe I will play with the WRT150N another day.

Until I get the GL and I am able to install the Linkmeter board...I don't have much control over the probe names through the menu. I think it is a great idea to be able to manipulate the probe names through the menu, especially for Heatermeter only users. I tried to remove the comments to get the Probe Name menu to work but was unsuccessful. I am getting a LCD_ProbeName1 not defined in this scope error. I assumed this is now defined as ST_ProbeName1. I changed it but got some other errors. Is there an easy fix to this? I am still slowly digesting the menu code trying to understand how it works. This isn't easy with in-laws around
icon_frown.gif
 
My test run yesterday went really well. I played with opening the lid for automatic lid detection, using manual lid open.

Turned up and down the temp both on the HM and LM. On the LM I did it both on my phone and pc. It all worked flawlessly. I ran it for about 6 hours.

The temp never dropped below the set point when running, but was always within 2 degrees, not much over shoot at all when increasing the set point. Of course this was using my electric element so it should be quite stable.

Next round is charcoal.

My buddy is coming over today and we'll be building two more. woohoo!

dave
 
Originally posted by D Peart:
My test run yesterday went really well. I played with opening the lid for automatic lid detection, using manual lid open.

Turned up and down the temp both on the HM and LM. On the LM I did it both on my phone and pc. It all worked flawlessly. I ran it for about 6 hours.

The temp never dropped below the set point when running, but was always within 2 degrees, not much over shoot at all when increasing the set point. Of course this was using my electric element so it should be quite stable.

Next round is charcoal.

My buddy is coming over today and we'll be building two more. woohoo!

dave

I tested mine a couple days ago with my WSM 18.5". It was overshooting by about 9 degrees. I probably need to adjust the PID values. Again...the in-laws are slowing me down!

Did you use a relay to turn on your electric smoker? It would be cool to see a picture. My mom has a Bradley...the temps swing wildly on those. I am going to build her a basic version to control her Bradley.

Dave S.
 
Originally posted by Bryan Mayland:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by D Peart:
How do I read the datasheet for the thermister and come up with the correct constants to get the right temperature?

Do we need to have co-efficients for the maverick probes or are they good to go?
1) I believe those coefficients are wrong. I think I had gotten the the actual part from mouser and mouser links the wrong datasheet from the product page so I used the wrong datasheet to calculate it. Try these: 1.14061e-3,2.32134e-4,9.63666e-8. You can calculate them using the table from the datasheet and a mean least squares recursive solver. If you have no idea how to do that, like me, you'll google up this tool which I illegally mirror here.

2) The default coefficients for the probes match the maverick ones so there's nothing to do there. </div></BLOCKQUOTE>

Thanks for the pointer to the tool. I had tried a couple and they gave me awful results.

I put the entire table from the spec into this and got:
pc0=1.11415e-3,2.31978e-4,9.72209e-8,0,2

A=1.11415e-3
B=2.31978e-4
C= 9.72209e-8

Which put me with a final offset of 5 degrees. Not bad.

dave
 
Originally posted by Dave S (GeoDave):
I connect Digital Pin 1 "TX" on the Arduino to the routers "TX" (or what I think is the router tx)and the ground on the router to the ground on the Arduino and I can see the router boot up. Is ttys0 the same as TX on the router or would the be RX?
It still depends on what you're hooking up and how. Are you hooking an actual Arduino board to the router to use it as your serial connector? I'm not sure actually which pins are which there, but make sure you pull the ATmega chip out first, then hook up Router TX to Arduino Board Digital 1 (TX) and Router RX through the resistor divider to Arduino Board Digital 0 (RX) and the grounds together. I think that's how it should be.

I am getting a LCD_ProbeName1 not defined in this scope error.
Replace LCD_PROBENAME1 with PSTR("Set probe %1d name")
 
Originally posted by D Peart:
pc0=1.11415e-3,2.31978e-4,9.72209e-8,0,2

A=1.11415e-3
B=2.31978e-4
C= 9.72209e-8

Which put me with a final offset of 5 degrees. Not bad.
I also had typed in the numbers from the datasheet and got 1.14042e-3,2.32174e-4,9.61382e-8. Try those, because the offset should really be 0. Adjusting the offset only works for a linear response and assumes the slope is correct, but a thermistor is log curve with varying slope. If you set your offset for one scenario, it will be wrong at another temperature. Not that it matters for ambient because there's so little variation.

Theoretically, the thermistor can be off by 1% and the resistor can be off by 1%, but that should put you off by ~0.5C at 25C.
 
Hmm two good ones and one bad one. That's only 66%
icon_smile.gif


Hoping you can help me debug my bad board.

The issue I'm seeing is that the LCD is garbled. Just random looking characters. Here is what I've done to try and figure it out.

1. ohmed out all the 16 bits for the LCD interface.
2. swapped the LCD into a good one and it works fine.
3. unsoldered (what a PITA) the shift register and put it in a good board. Chip is fine.
4. ohmed out all the traces (2?) from the AVR to the shift register
5. ohmed out the traces from the shift register to the LCD interface
6. Checked power
7. put AVR into a known good board.
8. Compare good and bad board visually, under magnifying glass, to ensure diodes are placed correctly, etc.
9. Green LED does flash three times upon start up
10. Screen does change as I move through the menus.
11. Works fine through the LM
From this everything seems to be working as normal. Could I be missing a pull-(up,down)?
12. Swapped the LCD cable and not difference.

Not sure where else to look. I do have two running systems so part swapping is straight forward, but has just shown me that all the parts are good.
 
Originally posted by Bryan Mayland:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by D Peart:
pc0=1.11415e-3,2.31978e-4,9.72209e-8,0,2

A=1.11415e-3
B=2.31978e-4
C= 9.72209e-8

Which put me with a final offset of 5 degrees. Not bad.
I also had typed in the numbers from the datasheet and got 1.14042e-3,2.32174e-4,9.61382e-8. Try those, because the offset should really be 0. Adjusting the offset only works for a linear response and assumes the slope is correct, but a thermistor is log curve with varying slope. If you set your offset for one scenario, it will be wrong at another temperature. Not that it matters for ambient because there's so little variation.

Theoretically, the thermistor can be off by 1% and the resistor can be off by 1%, but that should put you off by ~0.5C at 25C. </div></BLOCKQUOTE>

we have a winner! Those put me right at my digital thermometer. Not sure how I did it wrong
icon_frown.gif
 
One more quick note before I call it a night.

The LCD is not really garbled. It is unreadable, but it is consistent. To the no pit probe message is the same everytime. I can move through the menus and they are the same as well. Probe Offset for example all show up the same.

On that note we should give each probe a number as it is the four show the same when you first go through the menu.

anyway if anyone has ideas, I"m open. I'm going to try and get a hold of my buddy that has an oscilloscope and see what I can see. I may have to go dust of my logic analyzer I build years ago for this very purpose, but really don't want to go find the software and get it running again
icon_smile.gif


dave
 
Ok gang, Got my linkmeter assembled; Getting Display on LCD Of -NO PIT PROBE -
PROBE 258

Don't have probes yet or blower; However 4 way Button works...

when I log into 192.168.200.1; I get screen still with no values... And I can't do wireless, because it says; "package libiwinfo required ", any advice???

Also, Anyway to really know if things are working in linkmaster without probe of fans?????
 
Originally posted by Scott Miz:
Ok gang, Got my linkmeter assembled; Getting Display on LCD Of -NO PIT PROBE -
PROBE 258

Don't have probes yet or blower; However 4 way Button works...

when I log into 192.168.200.1; I get screen still with no values... And I can't do wireless, because it says; "package libiwinfo required ", any advice???

Also, Anyway to really know if things are working in linkmaster without probe of fans?????

Download the latest linkmeter .bin file, it has the libiwinfo package now.

I hooked up my thermister to act as a pit probe to get more work done while waiting for my probes to arrive. Just hook it up, apply the A, B, and C values in the configuration page. Something like this in the bottom part of the page, then hit set:
pc0=1.14042e-3,2.32174e-4,9.61382e-8,0,2

If you are using the thermistor from Mouser that Bryan picked it should get you really close in temp.

One more thing, you should be able to change the setpoint in the webpage without a pit probe. You can also change the probe names and see them change on the LCD. If your serial is working.

good luck,
dave
 
Originally posted by D Peart:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Scott Miz:
Ok gang, Got my linkmeter assembled; Getting Display on LCD Of -NO PIT PROBE -
PROBE 258

Don't have probes yet or blower; However 4 way Button works...

when I log into 192.168.200.1; I get screen still with no values... And I can't do wireless, because it says; "package libiwinfo required ", any advice???

Also, Anyway to really know if things are working in linkmaster without probe of fans?????

Download the latest linkmeter .bin file, it has the libiwinfo package now.

I hooked up my thermister to act as a pit probe to get more work done while waiting for my probes to arrive. Just hook it up, apply the A, B, and C values in the configuration page. Something like this in the bottom part of the page, then hit set:
pc0=1.14042e-3,2.32174e-4,9.61382e-8,0,2

If you are using the thermistor from Mouser that Bryan picked it should get you really close in temp.

One more thing, you should be able to change the setpoint in the webpage without a pit probe. You can also change the probe names and see them change on the LCD. If your serial is working.

good luck,
dave </div></BLOCKQUOTE>

Thanks Dave, This is so confusing; I do not have any probe's hooked-up, but my tempeture rose of the LCD panel on router; but no disp[lay on webpage, UGH
 
Originally posted by D Peart:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Scott Miz:
Ok gang, Got my linkmeter assembled; Getting Display on LCD Of -NO PIT PROBE -
PROBE 258

Don't have probes yet or blower; However 4 way Button works...

when I log into 192.168.200.1; I get screen still with no values... And I can't do wireless, because it says; "package libiwinfo required ", any advice???

Also, Anyway to really know if things are working in linkmaster without probe of fans?????

Download the latest linkmeter .bin file, it has the libiwinfo package now.

I hooked up my thermister to act as a pit probe to get more work done while waiting for my probes to arrive. Just hook it up, apply the A, B, and C values in the configuration page. Something like this in the bottom part of the page, then hit set:
pc0=1.14042e-3,2.32174e-4,9.61382e-8,0,2

If you are using the thermistor from Mouser that Bryan picked it should get you really close in temp.

One more thing, you should be able to change the setpoint in the webpage without a pit probe. You can also change the probe names and see them change on the LCD. If your serial is working.

good luck,
dave </div></BLOCKQUOTE>

Also Dave, those values you said to input; can you please give me more details on where exactly to enter them..... Then if I name the probes; set to internal; how to I make those values saved???
 
Bryan,

Could you provide me a sketch that would allow me to just print a single character? I'll try to modify that to figure out what is going on with my LCD. Maybe if I could print some chars I could see what the data lines were doing and debug this issue.

I'm not familiar with the cpp stuff and have not been successful in trying to get that simple thing done
icon_smile.gif


thanks,
dave
 
Originally posted by Scott Miz:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by D Peart:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Scott Miz:
Ok gang, Got my linkmeter assembled; Getting Display on LCD Of -NO PIT PROBE -
PROBE 258

Don't have probes yet or blower; However 4 way Button works...

when I log into 192.168.200.1; I get screen still with no values... And I can't do wireless, because it says; "package libiwinfo required ", any advice???

Also, Anyway to really know if things are working in linkmaster without probe of fans?????

Download the latest linkmeter .bin file, it has the libiwinfo package now.

I hooked up my thermister to act as a pit probe to get more work done while waiting for my probes to arrive. Just hook it up, apply the A, B, and C values in the configuration page. Something like this in the bottom part of the page, then hit set:
pc0=1.14042e-3,2.32174e-4,9.61382e-8,0,2

If you are using the thermistor from Mouser that Bryan picked it should get you really close in temp.

One more thing, you should be able to change the setpoint in the webpage without a pit probe. You can also change the probe names and see them change on the LCD. If your serial is working.

good luck,
dave </div></BLOCKQUOTE>

Also Dave, those values you said to input; can you please give me more details on where exactly to enter them..... Then if I name the probes; set to internal; how to I make those values saved??? </div></BLOCKQUOTE>

the line in my message staring with pc0 is the command you send in the web browser to set probe 0 coefficients. To do this click on the configure link on the bottom of the main page. At the bottom of the configure page is a little dialog box with a "set" button next to it. Paste the line into that box, then click set. It will then print something to the screen saying it set the options. Now you should see a more accurate temperature setting.

As for the serial not working, make sure you have the pins connected correctly between the HM and LM. If you look at what Bryan did, he just plugs the HM directly into his LM. So make sure that pins 1,3,5,7,9 (for my routers these are the outside edge row of pins) on the router are directly connected to the same pins on the HM. The pins are labeled on the back of the HM. You should have:
Router HM
1 = 3.3v
3 - RX
5 = TX
7 = no connection (NC)
9 = Gnd

hope this helps,
dave
 
Originally posted by D Peart:
Could you provide me a sketch that would allow me to just print a single character? I'll try to modify that to figure out what is going on with my LCD.
When debugging my LCD I used a sketch like this
<pre class="ip-ubbcode-code-pre">
#include <ShiftRegLCD.h>
ShiftRegLCD lcd(8, 4, TWO_WIRE, 2);

const unsigned char lcdBacklight = 5;

void setup() {
pinMode(lcdBacklight, OUTPUT);
analogWrite(lcdBacklight, 255);
lcd.clear();
}

void loop() {
lcd.print("A");
delay(5000);
}
</pre>
That prints "A" every 5 seconds which gives you a known set of data to look at. I'm really not sure how to debug an LCD problem without a scope, or even with a scope for that matter. I've looked at the data 10 different ways and still a working LCD and a non-working LCD look the same to me. For the 4.0 board down the road I'm going to try with a latched register running on the SPI bus which should get away from the problem entirely I think.
 
Status
Not open for further replies.

 

Back
Top