The Development Log


 
Thanks for all of your hard work Bryan. These changes sound like great additions.

I was fixing a bunch of corner cases in the alarm page on a "clean" install, and hacked out a way to get Other provider working I think. Don't need all the world's cell providers after all.

I've also added a "Test" button to force a trigger of the specified alarm directly from the webui. If you're like me you had a hard time testing your email configuration by cooling and heating a probe just to get it to trigger. Just press a button and see if you get the message now. Also the output of the alarm system is sent to the "System Log" so you can check for what error occurred rather than sitting around for 10 minutes waiting for an email that never comes.

I've also fixed the issue where autobackup wasn't working on upgrade installs I think.

Been a busy week so far for HeaterMeter. Over 20 hours of work. 681 additions, 138 deletions.
 
Something I've been musing on and working on on and off, "unknown probe" calculation done on the device itself. It comes out with wildly different results than the existing application does but here's the results using the output from the auto-calibration


Hell I guess it works. I'm really not sure what to do it if didn't. The code is using the lmfit C code with a lua wrapper calling back to a lua least-squares fit function. Ideally this would have a cool webui that lets you see the data and the Steinhart coefficients as they're being calculated. The backend is there but that's a lot of work that not a lot of people would use.

Back to more useful things, I also spent a couple of hours on the v4.1 board this weekend. I tried a few different layouts to see which would be less complicated to route. Welp, none seemed to work out well. I have one that I think feels more logical which I'll probably try to make work. The board is about 20% larger, but occupies the same external footprint, but will allow a smaller case design and an overall smaller LinkMeter.
 
Neat!

Even better would be a way to name the probe and store the coefficients once they were calculated!
 
Very cool Bryan... On the subject of probe presets...

I have on occasion wished the selected preset name would remain visible for each probe. Having a drop down selection box for the presets (rather than a clickable link) that would allow the selected preset name to remain visible would be nice, specially as more probe types become supported...
 
I agree Ralph, I also would like to see which preset is being used. The reason it doesn't now is because once the values make the round trip to the HeaterMeter and back to javascript, they change due to rounding and the way javascript reformats the value. Still I think it can be done so it will go on the todo list. Probably not done until the webui gets redone though.

Fixed a bug that could cause the HeaterMeter to lock up if you set a Steinhart coefficient to zero.

Changed up the $LMUP handler a bit. Now it spits out JSON data about the process, coefficients, sample size, number of iterations to curve fit. This integrated code should be more accurate than the application note version because it keeps reiterating until the curve fit is within a few bits of error. The application note version only did 2 iterations no matter what. The LinkMeter code usually does about 10.

I've also changed the fit code to native rather than LUA. This reduces the calculation time from about a second to do 10 iterations on a 700 point sample size down to 50-100ms. The code is now fast enough to be called frequently without disrupting the normal service operation and at some point pipe it back to the webui so you can see the progress. I've also added code to be able to get a CSV dump of the data, suitable for a graph or something.
 
Do you have a nightly build those of us living on the edge that can help you? It's nice to have final releases, but some of us are willing to work off of your latest development build as long as we can see your changes and/or diffs. I'd be willing to set up Trac or an alternative for you.
 
I don't do nightlies but I do have a development system that I build packages and images on (my git machine). I don't always build all the packages though, just when I feel like it is getting close to working so I can install it on my secondary HeaterMeter. You can also build from source HeaterMeter github.

The reason I don't promote them is to prevent having to do tech support on unfinished features, or I might change how something is configured in an incompatible way that I'd then have to work around later, etc.
 
Getting close to completing the first step of the v4.1 boards: the first prototype


There is just one big thing that the v4.1 board needed to address: adding a servo output. This is done via an RJ11 jack located on the right side of the board which now also includes the blower output. Any 4 wire telephone cable can be used to connect the servo and blower. If you have a 6 wire RJ11 cable you can use the two extra pins to run probes if you want (just run a short jumper wire to the "pin 3" connector of the probe you want to replace). The +12V output is no longer +12V out, but PWM 12V and the PWM Ground is now actual ground.

The blower output being moved to the side was the half of the next minor feature, getting rid of all the connectors on the bottom of the case. The 12V input barrel jack for power is now on the left side rather than the bottom, which means you can sit your HeaterMeter up on the bottom edge without the cords getting in the way.

  • Buzzer now runs on 12V power for LOUDERness.
  • Header for attaching a switch to rPi GPIO. This can be used by a future software update to do something like switching network configurations.
  • Easily cuttable traces for the Pit probe to allow the jack to be used by a thermocouple. Are there thermocouples that come with mono audio jacks that would fit there?
  • The part of the PCB that extends down past the Pi has been decreased 0.05". Two holes for M3 screws have been added close to the edges. Moving the screws inboard may allow the cases to become around 0.2" smaller.

Bad news
  • You are required to remove the Composite RCA jack now
  • The LCD has moved up 0.3". I'm not sure if there's enough space to move it up this far without extending the enclosure.
  • The RJ11 jack is 16mm tall. I am pretty sure this will fit inside the enclosure but things never do fit the way I expect them to.
  • Boards are now $14.33 instead of $12.00. There's also another $1-2 worth of parts I think.
  • I still have to do all the damn silkscreen
 
Nice job Bryan. One thing, is it possible to bring the dc jack closer to the edge of the board? Actually, have it so that when it is mounted it extends off of the board? This way it could fit snugly into a hole in the side of the case and I won't have to make an over sized hole to accommodate the insulation of the plug.
 
Both the power jack and the RJ11 jack are sized so that at least 0.1" over hangs the PCB, which is the standard amount for extending through to be flush with the panel. I can maybe nudge it a fraction of a mm but I feel like it is in the right place now. The RJ11 jack probably won't engage the latch if the wall is too thick too.

Looking at the latest case I see the side wall on that side is 4.5mm which a pretty big distance to cover. I do prints with 2x0.66mm walls that are sorta sturdy, 4x0.66mm is super solid. Should the case be closer to that thickness? I'm willing to talk about it and compromise a little.
 
The excessive wall thickness right now is entirely to accomodate screws. Based om your proposed layout, we won't have that problem anymore because the top and bottom edges are entirely free.
 
That's good to hear, hopefully it works as well in practice as it does in theory. I've also made the holes for the two smaller feet of the power jack slightly (0.2mm) smaller. This should also help line it up a bit better because now I know it has a little bit of play that can lead to it being soldered further back in the footprint.

The new M3 screw holes are centered 0.15" back from the PCB edge on the bottom. Sorry about the imperial units but that's ~3.81mm. An M3 nut is 2.75mm radius to the closest flat, that should leave enough clearance right?
 
Looks really tight in there. Have you considered using an RJ45 and putting the probe jacks at the other end with the servo/blower? Course may reduce accuracy some. Just a thought.
 
You know me, man. I want it all to be integrated onto one board. An RJ45 instead of an RJ11 isn't entirely out of the question though.

And yeah it is packed pretty dang tight. I must have spent 20 hours rearranging components and I don't feel like it is as clean as the v4.0 board. I guess I'll see how I feel when they show up.
 
There are two problems with the RJ45 jack in my mind.
-- You'll then have two RJ45 jacks on the device. Plugging your blower and probe cable into the ethernet jack may not cause serious damage to the Pi or other parts but plugging the ethernet into the blower probe probe jack will certainly damage ethernet equipment.
-- It adds another 0.1" to the PCB.

There's no reason a variant couldn't be made that removes one or more probe jacks and uses an RJ45 instead though.
 
Last edited:
Probably not. It fits in but all the things you've got on your RJ11 are voltage/current sinks not sources. If you plug ethernet into the RJ45 out that is blower/probe, it will send 12V 1A into your switch or computer which is designed to handle 2.5V signals on those wires.
 

 

Back
Top