Extra meat probes


 
Between my wife, me and our sons, when they stop by, we've got four ipads, two droid tablets,
five or six laptops, three kindles, iPhones, droid phones, Roku, and various
BeagleBones, Pis, Arduino wifi shields and serial/terminal servers.
I fix the ip of most of 'em - in the router.
As far as the devices know, they're on dhcp.
I run a bunch of external sync/streaming/server applications.
Even though the router can handle the various port forwarding rules by mac or machine name,
I like knowing who's what and where when something inevitably goes "sproing."
 
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 ?
I have the one linked from the wiki which has an external antenna. I haven't put the HeaterMeter on a battery and seen which has more range, but it shows up as having roughly the same signal level at the router as an Edimax dongle when used from a distance of about 30ft w/ a few walls.
 
I have this one on my beaglebone
http://www.logicsupply.com/components/networking/wireless/uwn200/
it get's about the same as the RPi w/Edimax, but the BBB has some interference issues (Edimax is sketchy at any distance). It might be a bit better than the edimax, but not substantially. Tx power is probably the limiting factor. I now have an outdoor AP & using a router w/DD-WRT as a bridge repeater - that will get me 100+yds from the AP. (not for Heatermeter, for my fireworks controller)
 
Thanks... I tried my (2) Edimax adapters one at a time in my PC and they are no longer working to get a DHCP address form my home router. Will have to spend more time or more money to get the Wi-Fi working...

In the mean time, back to the topic of adding more meat probes.

Here are the ADC parts that I got to try to use for expansion... I have parts for adding probes on the i2c or on the SPI bus...

probe_multiplexers.jpg


I asked Bryan about the i2c pins and there is no breakout on the HM main board, so I will have to solder onto the main connector to pick up the power, ground and 2 wire bus. I am assuming the same would be true to try and connect using the SPI bus, but that is plan "b" for now.

I located some tutorials on using I2C ADC and tried loading a couple of modules for i2c support and to get some python scripts for operating the devices and creating a CSV file with the readings, and here's what I found....

There is a wget command, but I could not do a "apt-get" to install a package from GIT.
It looks like there may be some spi modules on the Linux/wrt side, but I could not tell if there is any i2c support in the version of Linux we are using.

Any advice on how to download and add modules to the BCM linux ?
 
Last edited:
Hey MCP3008s, I have some of those too (and the S variety as well). Don't put anything on the SPI bus, HeaterMeter owns the SPI bus and it's not a cooperative bus.

If you need a kernel module, chances are you'll have to set up your own openwrt build environment. OpenWrt's apt-get is called opkg but it can only install ipks, not debs. Here's all the packages for our target
http://downloads.openwrt.org/attitude_adjustment/12.09/brcm2708/generic/packages/

I2C probably is not there if the bcm2708 requires an additional module for it, so you'll have to build it yourself.
 
Thanks for the tip Bryan, and congratulations on the HM v4.2 release.
HM is a really great project and it is really amazing to see all the effort that goes into the Wiki and all the other support that you do on this forum, etc. I have trouble getting this stuff out of my head - cant imagine how crowded it must be there in your noggin.

I am learning embedded systems as I go, and most of what I have read up to this point is on the Debian or Raspian distributions. lots of stuff out there on the web about those distributions. I just assumed BCM was your initials and you wrote the kernel too : )

...so I see this on the download page: i2c-tools_3.0.3-1_brcm2708.ipk . Is there some table of contents or "build sheet" that lists all the ipks in the build you are using ?
 
Go to System -> Software on the device and it shows all the packages included. i2c-tools is just tools though, not a kernel driver. BCM stands for broadcom, the system-on-a-chip manufacturer, but is also coincidentally my initials. I did not recognize that until you just said it! For some reason OpenWrt named the build targed brcmXXXX rather than bcmXXXX which is how it is named in the kernel.
 
Bryan,

On the topic of extra meat probes. Have seen the Stoker bbq controller? the way he does his probes the have some type of electronics board inside the plug of the sensor. this allows a stoker user to have multiple probes plugged into one device port with a splitter.
 
I've definitely seen the Stoker. It was what made me start on this project in the first place!

Yeah their probes are pretty boss in that they can be plugged into any port and you can use splitters and what not. I think the blower can actually be inserted into any port as well. I originally went with the using maverick probes because I had them, they're cheapish, and at the time they seemed reliable (I've since broken one or two). I don't have the ability to manufacture my own probes so I would have been stuck buying directly from Rock. 4 probes is $150 alone, yikes!
 
Had some time to try downloading the i2c modules that it seems I need...

I tried this from command line and using the HM GUI with similar results.

Command line using the command:
opkg download http://downloads.openwrt.org/attitu...c/packages/kmod-i2c-core_3.3.8-1_brcm2708.ipk

Also tried System -> Software on the device (this seems like the best way to do this because you can copy and paste!)

Downloading http://downloads.openwrt.org/attitu...c/packages/kmod-i2c-core_3.3.8-1_brcm2708.ipk.
Installing kmod-i2c-core (3.3.8-1) to root...
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-i2c-core:
* kernel (= 3.3.8-1-eec613807fe13b8b6e091b5fe004126b) *
* opkg_install_cmd: Cannot install package kmod-i2c-core.

I tried installing several other packages named kmod-i2c-* and they complained that core was not installed...
Downloading http://downloads.openwrt.org/attitu...ic/packages/kmod-i2c-mux_3.3.8-1_brcm2708.ipk.
Installing kmod-i2c-mux (3.3.8-1) to root...
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-i2c-mux:
* kernel (= 3.3.8-1-eec613807fe13b8b6e091b5fe004126b) * kmod-i2c-core *
* opkg_install_cmd: Cannot install package kmod-i2c-mux.

Could use some guidance on the correct order to install packages.

Update: I searched the forum and found this suggestion to try --force-depends

The force command ran, but the output was similar. The module did not install.

I checked with lsmod and can see that the i2ctools package installed ok, but no kernel stuff.

Kept poking around and tried the 'opkg install --nodeps' option to keep it from following dependencies.
This worked(?) and now I see some more i2c modules are installed, but I doubt they are complete.

...
i2c-tools 3.0.3-1
iw 3.6-1
iwinfo 36
jshn 2013-01-29-0bc317aa4d9af44806c28ca286d79a8b5a92b2b8
kernel 3.3.8-1-e8e6fa9ac8067f366614dc5f030c5244
kmod-8192cu 3.3.8+3.4.3-2
kmod-crypto-aes 3.3.8-1
kmod-crypto-arc4 3.3.8-1
kmod-crypto-core 3.3.8-1
kmod-fs-vfat 3.3.8-1
kmod-hid 3.3.8-1
kmod-i2c-algo-bit 3.3.8-1
kmod-i2c-algo-pca 3.3.8-1
kmod-i2c-algo-pcf 3.3.8-1
kmod-i2c-core 3.3.8-1
...

The messages during the i2c package installs indicated several symbols are unknown. Looks like important stuff may be missing ? (I took a screen shot and can eventually post if needed)

Is there some other package I need for i2c ?
 
Last edited:
Yeah any of the kernel modules from the Attitude Adjustment repository aren't going to like the HeaterMeter version kernel but may work once --force-depends is added. This is because unless the kernel md5sum matches exactly, it assumes they're not compatible, which isn't always the case.

The packages you've installed are for i2c but there's two parts to i2c: the generic protocol (the modules you've installed) and the hardware module. There's no package for the bcm2708 i2c module, which is why I said you'd have to set up your openwrt build environment and build it yourself.

Ok well there's 3 parts to i2c, the third being user space tools for messing around with it.
 
Hi Bryan,
Thanks for taking the time to point me in the right direction.... I found a set of the low level i2c drivers (i2c-mips-gpio) but it is for another hardware and software version and will not install. (link is on page 3 of this thread)

Next, I found a post on building HM4 and RPi from source here on this forum.

Using that as an example, it seems I need to use a linux system to set up a build environment, and the only one I have is my HM. Will that work ?

I saw some other posts out on the dd-wrt forum on how to Setup a development environment for OpenWRT using a vmware image and vmware player, but those were for another version of hardware and different flavor of linux.

...so I am still looking for instructions that match what I have at my disposal to work to build the i2c stack driver for brcm2708 running on pi. Am I on the right track looking for this ?

Found this Buildsystem on VirtualBox method documented on the OpenWRT forum.
 
Last edited:
You _probably_ can't build OpenWrt on the HeaterMeter. It might be possibly but I wouldn't want to even attempt it. The full build takes like an hour on my quad core 3.2GHz CPU with an SSD, I can't imagine it on a SD card single CPU at 700MHz.

Definitely set up VirtualBox or VMWare and install ubuntu or debian into it and then build from there.
 
Definitely set up VirtualBox or VMWare and install ubuntu or debian into it and then build from there.
Ok, made some progress with the build enbironment. Have a "HM_Builder" Linux VM now running in openbox, and started installing packages for the OpenWRT Builroot environment. Ran into a snag trying to install zlib or libz...

When I run 'make prereq' all but one of the packages check out OK. I am missing zlib.
Build dependency: Please install zlib. (Missing libz.so or zlib.h)

I installed the libz packages I could find, but none have satisfied this check.
I searched for files that contain libz.so and installed all of the packages that have that file.
Same result.
Then I searched on the Debian site for packages with zlib.h and see a lot of packages using zlib.h...

Edit - Found the package in the table at the bottom of this page.

Now on to trying to build OpenWRT.
 
Last edited:
Made some progress with the i2C bus jumper and whipped up the multiplexer and thermocouple board. Aslo ha cked up a cheapie case to keep from shorting anything out on the sink or braided stainless probe wire shields. The case is nothing special, it is a 3x5 index card case for less than 2 bucks at WM.

Photos show the first generation "Megamometer", a 10 channel data logging arduino mega, but no wifi. It still works, but I am planning to pull the probe jacks and put them on the new Heatermeter based project.
HM_MM_compare.jpg


I trimmed, bent and soldered a ICSP header onto the back of the pi to bring over the 6 highest numbered pins... 3v3, scl,sda 5v and ground are used. I use 5v for the thermocouple board so it will measure higher temps (more millivolts=more range)
HM_MM_expansion.jpg


Thermocouple is in place of probe4 since I do not plan to use it to control the pit. Only the core HM is tested and completely functional at this point, and I plan to try it on my cabinet this weekend to get the PID dialed in and cook something.
 
Last edited:
Ok, so back to the software build. I am lost without instructions because I have never done this kind of stuff before.

I have been posting links that I used to build a build environment, am now up to the point of building openwrt and heatermeter. I followed the first three commands on this forum post,
http://tvwbb.com/showthread.php?38821-Building-HM4-rPi-openwrt-from-source&highlight=build+openwrt

and then used the instructions on the wiki for v4.x software at
https://github.com/CapnBry/HeaterMeter/wiki/Building-OpenWrt-from-Source .

There are some uppercase changes now... like I had to use ~/Heatermeter instead of ~/heatermeter as the wiki says. The script ./install.sh BCM2708 ~/openwrt commands run to a point, but it stops with the message below:

patch_screen.png



I hit enter and it asked if I wanted to skip this patch, and I did.. there were 4 or 5 files that it could not tell which version should be patched.
Is there a log file or something I can send you ?
 
Last edited:
Did you check out the attitude_adjustment_12.09 tag or the attitude_adjustment branch from svn? They're different I think. Everything should patch 100% cleanly with not even a single warning or failed hunk.
 
The svn command i used specified the branch with 12.09 as part of the name, as shown on the wiki. Is that the right one ?

Also, I noticed in make menuconfig is that I can go in and select the i2c drivers now.... Can I just make the package that is missing for brcm2708 instead of building the whole thing ?

.... And for the user space tools, do I need to locate a python package outside of this openwrt build environment, or is it somewhere in openwrt ?
 
Are the i2c "drivers" what you're looking for (i2c-bcm2708) or just the same generic drivers you already have installed? I can say with certainty that i2-bcm2708 does not have a package in openwrt's menuconfig.

I don't want to discourage you from doing your own thing, but as I've said, you're on your own for this project. If you find errors in the documentation or bootstrap scripts then I'd be happy to accept patches, but I can't step you through it.
 

 

Back
Top