Extra meat probes


 

Gary Graham

TVWBB Fan
Great progress on HM in the past few years !

I am ready to build a HM v4.2 when it is released and plan to use the thermocouple for the fire and a thermistor for the pit, but would like to use a bunch more meat probes.

I built a 10 channel data logging controller called "MegaMometer" back in 2011, and am ready to upgrade to a HM with all the snazzy graphics and WiFi web server... but does the HM v4.2 board or the Pi have any unused IO pins so I could add more meat probes ?

If there are no extra pins, I am interested in your thoughts about "if or how" some kind of a meat probe multiplexer could work. Is it possible to add some Bluetooth gadget on a USB port on the Pi and have bunch of wireless thermistors that way ? Trying to keep the cost down because everything is 8x more expensive because of the number of probes, so I don't mind using wires if they are long enough.

Or read 8 analog inputs controlled by 3 IO pins like this http://playground.arduino.cc/Learning/4051
Or have up to 16 analog inputs using a ADS1158 over the I2C ?
 
Last edited:
There is one spare digital pin remaining on the ATmega and no ADC pins remaining. The Raspberry Pi doesn't have any ADC at all. Your best bet would be to get an external ADC that connects over I2C or SPI and have it do all the grunt work for you from the Pi.

The problem you're going to run into though, is that the software is designed for 4 probes. I'm not kidding when I say there are 50 places you'd have to modify to add another input and the're not all as trivial as changing a 4 to a 10.
 
You could build two HMs, that would give you extra probes. You'd just have two webpages to look at.

david
 
Thanks for the suggestions. Sounds like building one HM to start with would be a good first step.
Is there going to be a big difference between v4.2 and v4.2.1 shopping lists ? https://github.com/CapnBry/HeaterMeter/wiki/HeaterMeter-4.2-Hardware


So with 4 probes, we could measure the fire (thermocouple?), the pit, ambient and one probe could be used to read the meatprobe array from the A-D chip.

Sorry for these questions before looking at the code, but I did not see the HM code out on GIT Hub, just the 4.0 WRT images. Are you still using an array of probe objects to collect the temp data ? What do you think about a modified probe class that would allow one of the probes to return the extra readings from the A-D chip on the I2C bus ? Seems like that would work in stand alone mode if there is an I2C on the HM board. (and enough digital IO pins available to drive the A-D addressing... it would return the readings to the analog pin for one of the (4) standard probes.

Not sure how to address the A-D chip on the I2C that is on the Pi though... Is it just a matter of calling the Pi address and then send the commands over the I2C to read from the A-D chip and catch the output on the analog pin into a new meatprobe array?

The 16 channel multiplexer can be configured to do (8) differential readings if a thermistor can be wired that way. I think I saw an ambient temperature could be returned from the chip. I just picked the first A-D converter I saw on googie, I really do not know much about which part would be best to use or easiest to code for, but does this approach seem like a reasonable one ?
 
DO NOT BUILD 4.2. The current release is 4.1 and 4.2 is in development. Wait until release because all the documentation and hardware is still in flux.

The code for heatermeter is on github. On the right side of the wiki there a button for "code". Or you can just click "heatermeter" on the top of the page and it takes you to the code.

I really do not want to be involved in trying to add more probes to the codebase. The webpages are designed to show 4 probes. The internals of HeaterMeter are designed for 4 probes in both the reading and menu system. The database holds 4 probes. It's non-trivial and code you change will not be usable by folks with 4 probes because you're going to have to change layouts of the webui. So I'm sorry, you're completely on your own on this. I just don't have the time to try to work through it with you.

Hardware-wise. The ATmega doesn't have enough pins to drive anything but an SPI chip. 1 digital pin isn't enough to handle anything but a 2-bit multiplexer. I2C requires 2 pins. The SPI will work because you can hop on the SPI bus and use the one digital pin as your !chip select pin.

If the Pi is the I2C host, then you'll have the pins it. I'm sure someone has the user-space code for that somewhere by now. You'd need your own process to read it there and feed it into linkmeterd somehow once you've modified everything else to support the number of probes you want.
 
I am wondering why you (Gary) don't just build a standard HM and use it to run your pit and use your MegaMometer to monitor your 10 food probes?
 
Thanks Ralph

I am wondering why you (Gary) don't just build a standard HM and use it to run your pit and use your MegaMometer to monitor your 10 food probes?

I really want to be able to see the meat temps (and graphs) using my phone or computer, that is the main reason I am interested in building the HM. I will learn what I can building a v4.1.x HM and see if I can get one of those multiplexing A-D chips to work on the side.

<Edit> So here's the rest of the story...
I am currently running a version of code on my Megamometer that has a bug when the hour changes and that stops it from logging more than one hour of data.
About a month after I noticed the bug, I had a hard drive crash and lost the source code for the project, so all I have right now is running on the Mega and the code I copied to the SD card is a couple of versions older. I spent a few hours attempting to locate all the library files and get "in the zone" again to see if I could get it to compile without disabling my controller but decided to just leave it alone (for a couple of years) since that's all I have to cook with for now. I have been cooking without logs, but still able control the fan speed, pit temp and look at the temps for all meat probes I care to hook up, but limited to doing that on the LCD screen. (no web GUI, no logs : (

Besides, I always wanted a HM, and figure building one will help me learn some more new stuff rather than just spinning my wheels working on my old stuff.
 
Last edited:
it would probably be better just to build 3 or more HM's and with each having a RPi and its own webpage. One to control the smoker+3 food probes and the other 2 they can be all food probes 3 HM would give you 11 food probes
 
I ordered most of the parts tonight... got a v4.1 board off this forum and ordered the HM 4.1 parts list from mouser, and while I was at it, I added one of these 8 channel A-D converters to the order for $14 bucks.... (may end up being cheaper than building multiple units...especially with multiple Pi's.. those are expensive)

Mouser #: 595-ADS1256IDBR
Mfr. #: ADS1256IDBR
Desc.: Analog to Digital Converters - ADC 24Bit 30kSPS Very Lo-Noise Delta-Sigma

Not sure if it will work, but the plan is to drive it with the Pi and use the probes I already have (not Maverics). I am in over my head already. This is exciting.
 
Holy crap a 24bit 30ksps ADC? Wowie! At 3.3V reference, that's 0.0000002V per LSB. For comparison the ATmega is 10bit and we run it at about 10ksps. I'm interested to see what you come up with but you can certainly save some money by getting a lower-spec part if you ever make another one.
 
I other A-D mux I was looking at on Mouser was a 16 channel one in the smaller form factor that looks like it would be harder to solder. I think it was a 16bit part. About the same price as this one +- a buck or two (I think it was around 12 bucks). I was mostly going on the I2C and number of probes I could monitor with the part.

Thanks for the specs and the Wowie heads up on what is actually needed for a low and slow temp monitor.
 
Hooray !
The parts for my first Heatermeter build have finally come in !

I spent several hours on a train with wifi today, and researched the HM Wiki and lots of external stuff I needed to explore.

My plan is to build the HM 4.1 using all the defaults and get it working. Then I would like to do some experimenting to add 8 more probes....

>> Would it be possible to add a new page in the Heatermeter web GUI to display a graph of a properly formatted CSV file showing time and several temperature readings ?

I found several decent examples of programming ADC multiplexers (for SPI and I2C devices) and the Steinhart Hart conversion and data logging using Python, so I am pretty sure I can borrow from these examples and make a multiple channel temperature logger using the Pi that will write the measurements to a CSV file.

This would be running in a terminal window, or during startup. (assuming the Pi will run the Lucid / OpenWRT and can also provide a terminal window)

Having more probe inputs would make the HM a great research tool for people that need to log multiple channels, from showing cook time for a batch of chicken wings in a small smoker to logging a brisket on each rack in a large smoker... or to visualize 8 meat probes, and a temp sensors on the two stacks, and a few thermocouples for the fire, pit and drip pan, pit and the cooler etc...

HM would still be controlling everything and this "MeatMux" or "ProbeMUX" plug-in would be a measurement and data logging extension on the Pi.
 
Hooray !
>> Would it be possible to add a new page in the Heatermeter web GUI to display a graph of a properly formatted CSV file showing time and several temperature readings ?
Already there
Code:
http://heatermeter/luci/lm/hist?rrd=X&nancnt=X
The key parts are the base url /luci/lm/hist and the parameter rrd which is which file to dump. The current file is /tmp/hm.rrd or if you omit it the current file is used. There's also the parameter nancnt which sets the range to select, like it does on the regular home page.

EDIT: Oh wait I think I misunderstood what you wanted. The graph already does take a CSV file as input but the location is fixed to the "hist" url.
 
Last edited:
Thats cool.
I am thinking to write a csv file that has time and temp data collected by an ADC MUX on the Pi. (but it would have more than 4 temp traces per time interval).
This could be a way the HM web GUI and VB could display "external" data not dumped/created by the base HM code without interfering with normal HM operations or messing with the established probe names, order, web pages, etc....

EDIT: Is this something could be written <eventually> ? Click a button to "Load external data" then pick an csv file by name.
Could the graph page read the csv file header and know how to set up the legend for as many traces are represented ?
 
Last edited:
Update... I built most of my v4.1.4 heatermeter on the 11th, but my ATMEGA chip and one red LED is on backorder from Mouser, ETA middle to end of August. I ordered what I need from e-bay and should be able to complete my first HM build and learn to use it next week.

I plan to use a thermocouple to monitor fire temperature for my application, but hit a temporary impasse with the v4.1.4 thermocouple board due to uncertainty about my soldering skills on the SMT components (although it may be OK...) and lack of adoption of that version of the board. I went ahead and ordered a breakout board form Adafruit because I used one of them on my 10 channel logger in 2011. (~11 bucks.. a good value considering the hours I spent fussing over the v4.1.4 thermo board)

I am returning the over-spec ADC ship - the ADS1256 (~15 bucks less shipping), and now looking at a more complete solution... an 8 channel 12 bit I2C ADC from Robot Shop (~20 bucks less shipping). http://www.robotshop.com/en/8-ch-12-bit-i2c-analog-digital-converter.html

The RS part may be slightly over-spec as well, but all the tiny soldering is done and the header pins should be easy to take out and replace with wires, and it is much smaller than that ADS1256 chip, so it may fit in a tiny HM case, but I am not sure about the space to add (8) panel mount jacks.... Also note that additional modules can be added to bump the probe count from 8 to 16, 24 or 32 extra probes over the (4) that are standard with the base HM unit. (as if anyone would need 32 temp probes).

Once all my hardware is in, I can start using my HM base unit and then poke around to get python running on the pi, and try some of the code samples I have collected to read from the I2c-ADC breakout and write to a .csv file. (RobotShop has Arduino code, but no python examples, so I gathered the I2C Python examples from elsewhere)

Trying to get this all done for a cook for my techie friends at work in two weeks, but not wanting to go into stressful overload over the extra meat probe project because I am sure the HM is going to be a hit. (well, my 32 sq ft smoker too...)
 
Success !! Another Heatermeter is born.

It did not come up the first time because I did not follow the directions to the letter.... I had attempted to power up the unit a couple of times before installing the ATmega chip that was on backorder. I got my chip from an alternate supplier and installed it last night and attempted to power on, and got about 30 seconds into the boot where the i2c bus is initializing and it would hang there. I checked the display potentiometer and made sure I was seeing everything the LCD would show me.... the top row of LCD characters was showing solid blocks. I did some research on startup issues and found the tip to run the avrupdate command to flash the hm.hex file to the HM hardware. After a trip to the store to get a USB keyboard (we have laptops and PS2 types here), I hooked it up, hit enter and ran the avrupdate command and in a few seconds, everything came to life !

I installed a couple of probes and let 'er idle for a bit. Now headed back out to the Wiki to do the wifi setup and see if I can locate the web page and start checking out the settings, etc. so I can profile my probes (non-maverick ones)

I am really impressed so far. Much better to build a HM than do anything from scratch. I can hardly wait to see some graphs and get this thing dialed in to run my cabinet smoker.

Great work Bryan and everyone that contributed to the HM project. It really rocks !!
 
Last edited:
Ok, so I have stalled out at wireless configuration.Been reading the how-to on wireless configuration on this forum, also a couple of wireless issue threads, also tried the Git Hub HM v4.x Software configuration page ot get ideas on what to try.... I could use some help if you have ran into issues and fixed it.

I have done the following:
1) Followed the instructions - configured using the LAN and 192.168.200.1 address.
2) tried the Edimax wifi adapter in a PC... loaded the utilitiy and did the one button config witht he Linksys, and got that to work.
3) Attempted again, clean wifi config, using the web browser, then re-tried it using the command line. neither would get a DHCP address.
4) Checked ifconfig and saw the frames are being dropped... right into the bit bucket, it seems.
5) noticed in the web browser on the LM config page there were a couple of serial errors, and some message about the checksum.
6) made a new SD card with the v11 image on a different SD card than I was using... its an 8GB card.
7) The first time up, it came up in AP mode with heatermeter as the ssid. Really good to see that work.
8) that would have been good enough to start profiling my probes near the stove, but I had to keep messin with it and attempted to get the client config to work.
9) Got in using the ET0 LAN and did a fresh wifi config in the browser, set the IP address as static, and it took it.
10) rebooted the HM, and it posted the IP address is 192.168.1.140 and there is no Ethernet cable attached...
11) Still not able to reach throughmy home router to other systems on wifi... so I am dead int he water again.

This is the 4th "session" where I have a couple of hours to try stuff.
Any tints, tips suggestions are really appreciated.

Updated the WRT and LM code to v11.



The issue seems to be that my Cicso Linksys E1000 Router is firewalling me a bit, and wifi-client with DHCP never gets an IP addres.
 
I've always found the AP mode of the rtl892cu chips to be sort of hit or miss. I just tried it again myself and I can't get the AP mode version to work reliably at all.

I also tried one Edimax in STA and one RT5370 adapter in AP, and it works fine. I can run them both at the same time, or if I only plug one in I get either client or an access point. I'd recommend trying a RT5370 for your AP adapter. Here's me relevant config, change for your macaddrs
Code:
/etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option channel 11
        option macaddr  80:1f:02:7e:59:f0
        option hwmode   11ng

config wifi-iface
        option network 'wwan'
        option ssid 'capnbry24'
        option encryption 'psk2'
        option device 'radio0'
        option mode 'sta'
        option key 'capnbrypwd'

config wifi-device  radio1
        option type     mac80211
        option channel  6
        option macaddr  7c:dd:90:54:75:29
        option hwmode   11ng

config wifi-iface
        option device   radio1
        option network  wwanap
        option mode     ap
        option ssid     heatermeter
        option encryption none

/etc/config/network
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'fallback'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.200.1'
        option netmask '255.255.255.0'

config interface 'lan'
        option ifname 'eth0'
        option proto 'dhcp'

config interface 'wwan'
        option proto 'dhcp'

config interface 'wwanap'
        option proto 'static'
        option ipaddr '192.168.201.1'
        option netmask '255.255.255.0'

/etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option ignore '1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config dhcp 'wwan'
        option interface 'wwan'
        option ignore '1'

config dhcp 'wwanap'
        option interface 'wwanap'
        option ignore '0'
 
Thanks for the tips.

Can you manually enter your edimax into your router's static IP list by MAC?
I dont mind setting a rule for one or two devices, but I have 8 devices on now, and people drop in with their phones, and dhcp takes care of that.... I can limit access based on a list of MAC addresses but it looks like I would need to manually enter them to provide access (taking away the benefit of having automatic IP)

I turned off wps so that may help....

I'd recommend trying a RT5370 for your AP adapter.
So there are a few out there... has anyone used the one with the antenna ? My cooker is far enough away from the house that I would like a bigger signal from the AP adapter. Do the antennas improve the range for AP mode ?

Any reviewers out there for something like an "Espow Mini USB Wifi Wireless N LAN Network Adapter with Ralink Rt5370 Chips"....so anything with the rt3570 chipset ?
 
Last edited:

 

Back
Top