The Development Log


 
-- Worked on splitting the CSS from the HTML on the home page to allow easy overriding of the theme. I think there will also be a sort of file manager so you can upload your own background image or whatnot but I think that might be overkill vs just having a "background image" config item.
-- Fixed a couple bugs in the derivative control that were introduced last week.
-- Did 6 hour test burn to compare thermocouple output with values measured with a real thermocouple-reading device. Readings are within 2F, which is pretty good because the AD8495 has a 1.8F error tolerance.
-- I measured center of {A} grill (with heat diffuser) vs {B} dome vs {C} BGE thermometer-level (control) to see what the differences were. Over the 6 hour test, {B} was commonly lowest, followed by {A}. Max disparity {A}211F {B}215F {C}225F. Common disparity {A}220F {B}218F {C}225F. The {A} was not always cooler, but it was more commonly cooler. Max {A}231F {B}228F {C}225F.

BAD NEWS in my testing last night I was able to "out noise" the thermocouple probe by touching the braid. This is perplexing to me because I thought all these problems were gone. This occurred with both the Auber "washer probe" and $5 Amazon probe. The Thermoworks industrial probe was fine (its braid isn't conductive). It occurred to me that this is the first time I've tried it barefooted on the concrete so I put shoes on and the problem was gone. Also if I stand on a floor mat when touching it, the problem goes away. This might also be an interaction with the fact that the plug as a GFCI but I don't think so. I'm going to mess around with the probe grounding again tonight to see if I can eliminate it.
 
What kind of power supply were you running, switching or old school discrete? The reason I ask, when I learned to repair CRT televisions back in the day we used an isolation transformer (1:1 ratio) which would pass on the power but isolate it from real ground for safety. The old school power supplies are heavy because they use a step down transformer to reduce 110VAC down to about 12VAC, a side effect from the step down is isolation from real ground.
I'm glad to hear the thermoworks probe was unaffected, they did reply to me and confirm it is an isolated thermocouple... The Amazon thermocouple's don't usually indicate whether they are grounded or not, some do but most don't. I recall seeing a question about that posted on one particular unit and the seller said it was not grounded. I haven't ordered from Amazon yet, will have to look that one up and give it a try....
 
I've tried several power supplies but they're all newer switching adapters. The adapter I used last night was its first use outside, so that might be related. Oddly, the adapter I normally use (1A Netgear) is 12.00V and this "regulated" version is 12.10V. The circuit in v4.2 can take up to 13.5V without any potential problems so that's actually a bonus.
 
Turns out it was a combination of many things!

-- Barefooted means that I conduct
-- New ADC "dynamic range" support can triple the perceived noise due to higher accuracy
-- The 12.10V 2A power supply is much more susceptible to ground noise than my 12V 1A adapter is more susceptible to ground noise than my 12V 1.5A adapter (which has virtually none). They're all switching adapters.

I lowered the resistor again on the thermocouple cathode ground connection which makes it stop dropping off with the worst supply. I took it from 10k to 1k which just brings it under control. I tried 470, 330, and 47 ohm as well as straight ground but they showed no improvement or made it worse.

I tried to break open the adapter that works best to see if there's some magic inside, but it is sealed up really well. I'd hate to break it considering it is the best one I have. It came with a Netgear 10/100 switch so good luck finding another one of those.

I've also coded the LCD display so it displays "- Probe Noise -" instead of "- No Pit Probe -" when it drops off due to noise. Might do the other probes too. It also might be nice to push the noise range to the webui all the time. It is hard to tell a probe is on the verge of dropping off until it just disappears otherwise.
 
Bryan - Is there a simple way to control the sampling rate? As it stands, the HM software appears to sample over a 24h period continuously. It would be great if this could be configured for shorter (say 2h for mashing), or longer for controlling a fermentation chamber, etc. However, I'm not sure how the plotting routines are configured. Is this a simple matter of a single sample rate constant (e.g. sample temp every 60 seconds), or would this entail a difficult re-write of the graphing logic?
 
HeaterMeter continuously samples and outputs data once per second. The LinkMeter software aggregates this data into:
-- 360x 10 second average samples = 60 minutes
-- 360x 1 minute average samples = 6 hours
-- 360x 2 minute average samples = 12 hours
-- 480x 3 minute average samples = 24 hours

All three resolutions are run continuously in a round-robin fashion (the oldest sample is removed as a new sample is added). Eeeeeeeverything reporting-wise is based around these breakpoints in that that's how the webui knows what resolution to show, and it always fetches 100% of the data. You can change how much data is stored by just creating a different database definition, but it would require a rejiggering of some code to get it to display properly. I will also say you probably don't want to show more than 1 data point for every 2 pixels of graph.
 
Custom colored Home pages are now more easily accessible from the webui and saved between linkmeter versions.


Just override styles in the "User CSS" webui page
Code:
#content { background: #000; border: 1px solid #467; }
#backimage { background: #000 url('http://capnbry.net/~bmayland/fi/bbq/fire-hd.png'); }
#backoverlay { background: inherit; }
#probelist { background: rgba(100, 50, 50, 0.85); }
.pname { color: #fff; }
#fanl { color: #fff; }
#fancontainer { background: #333; }
#navcontainer ul { padding: 0; }
#navcontainer li { width: 150px; padding-right: 15px; }
#navcontainer li a { display: inline-block; width: 125px; }
 
HeaterMeter continuously samples and outputs data once per second. The LinkMeter software aggregates this data into:
-- 360x 10 second average samples = 60 minutes
-- 360x 1 minute average samples = 6 hours
-- 360x 2 minute average samples = 12 hours
-- 480x 3 minute average samples = 24 hours

All three resolutions are run continuously in a round-robin fashion (the oldest sample is removed as a new sample is added). Eeeeeeeverything reporting-wise is based around these breakpoints in that that's how the webui knows what resolution to show, and it always fetches 100% of the data. You can change how much data is stored by just creating a different database definition, but it would require a rejiggering of some code to get it to display properly. I will also say you probably don't want to show more than 1 data point for every 2 pixels of graph.

Okay, that's a very smart way to do this because it has high resolution within the near-term, and also long-term sampling. However, you've also used it to control fermentation temps, right? How do you follow the fermentation temps over say a week? Do you just monitor over 24h periods for this?
 
Yeah with fermentation it's pretty easy because you're controlling an appliance. What temperature is it? It's what you set it to be. The only times the graph is useful is when you're cooling it down before pitching and if you're considering adjusting the duty cycle of the fridge (for efficiency I try to only run the chiller at most once per hour). For both of these, 24h of data is more than sufficient. I don't do any long ramps in software though.

This is kinda off topic for the Development Log thread, if you want to talk about it more go ahead and start a new thread.
 
I modified the servo driver routine tonight. It always seemed so violent how the damper would snap to position (especially when sitting on my desk!). I modified it now so it moves in 50 small steps over the second between readings to get into position. I thought a linear easing would be smoother rather than an exponential. I think it looks a little more polished this way, right?
 
Glad the servo stepping is pleasing! I wish it were a bit smoother but there's no way to really know how much of a change in pulse duration will look when the servo moves, and I can really only change the position once per PWM cycle so that's as good as it can get without making it take forever to move to position.

Here's a comparison shot of the assembled v4.2.3 boards versus a HeaterMeter v4.0.


The good news is: so tiny! The bad news is that the LCD is so difficult to solder on that most users will probably never get it working properly. I may have to take this back to the drawing board. With the LCD mounted regularly below it is too low-- it isn't taller than the contrast pot. With it mounted flush to the underside of the board as I've done it in the photo, the height is just right I think but a real pain to attach.
 
The good news is: so tiny! The bad news is that the LCD is so difficult to solder on that most users will probably never get it working properly. I may have to take this back to the drawing board. With the LCD mounted regularly below it is too low-- it isn't taller than the contrast pot. With it mounted flush to the underside of the board as I've done it in the photo, the height is just right I think but a real pain to attach.

Ooh, that looks so tidy and small!
 
Well it is wider by like 0.6", shorter by 0.2", but thinner by a significant amount. The button should work without needing a special recess.

The LCD is installed by inserting the pinheader from below the LCD PCB, then through the HeaterMeter PCB so the two PCBs are flush. The problem is that on the LCD side, there's the black plastic portion of the pinheader which blocks the solder pad. It is somewhat easy to solder if you just use the pins, drop them into the holes, and solder them. I'm not 100% comfortable with asking people to do that though.

EDIT: What I'm thinking is that if you insert the pins through the LCD board from the top and prop them up using the PCB, solder the back, then pull the black part off before soldering it to the HeaterMeter PCB it will work. I'll have to try it tonight when I get home and see if it is easy enough.
 
Last edited:
They are pretty hard to remove(black plastic) when they are all connected without heating first. But, cut between each pin first and then it's much much easier to remove
 

 

Back
Top