The Development Log


 
The 4.2 rocks man! The boards are nice and compact, my sliding back case measures just 127mm X 91mm and is only 29mm thick! (weighing in at 84 grams of ABS). Not to mention how clean the probes read with better component isolation and RC filters in place... really smooth. I feel the HM has taken some big leaps forward recently, both in hardware and software, love the new drop down for probe preset selection you are working on!
I've been pretty tied up with other commitments this week, but should be able to get around to doing some more tweaks and testing of the MOSFET servo booster tonight or tomorrow. Lets hope it doesn't end up to be worthless, but so far in my testing the NPN booster circuit is more effective.
 
I added support in the AVR firmware for reporting the ADC noise information which is passed through to the web interface. If there's more than a little noise, you get a yellow icon. If there's so much noise you really shouldn't be relying on the value (but you'd be mad if I took away the value) you get a red icon.
 
I've replaced the way the "degrees per hour" shown on the home page are calculated. Currently it scrolls back through the data and finds the first point that was more than an hour ago, subtracts the current point, and assumes that's a good estimate. This falls down if there are oscillations in the data because alllllllll the points in the middle aren't included. The temperature could have been rocks solid for the whole hour, you get a single ticks of temperature change and the calculation says that's your DPH.

I've changed it to do a least squares linear regression fit to the data on the server side. This provides a much more accurate representation of the overall trend as a line is drawn through the "center of mass" of all the points across the last hour, then the slope of that line is your degrees per hour. I've set it now that you need at least 30 minutes of data out of the hour before it will provide an estimate (however the 30 minutes doesn't need to be contiguous). Because of the complexity of the curve fitting it is also only run once per minute across all the probes. I may change these values before release.

I also think I've managed to track down and destroy the norestore bug. The issue was that when windows' notepad.exe edits the file it actually puts the "norestore" part on the second line but displays it on the first. In order for the command to work, it has to be on the first line so I've modified the config.txt and cmdline.txt to have DOS line endings so notepad won't be so gosh darn stupid.
 
Optimization! Listening to a Google I/O presentation about web page loading speed I was inspired to take another pass at optimizing the HeaterMeter home page load times. Because HeaterMeter is embedded and possibly isolated, it doesn't get a lot of the easy fixes that you can just turn on on a big internet server. Some problems only experienced by mobile users (namely high latency) happen even on local wifi due to the fact that the pages are dynamic and being served up by lua script running at 700MHz on a single CPU.

-- Moved all the javascript into a single file to reduce number of requests
-- Added some hidden img tags into the html to let the browser preload the images. It seems CSS-specified images aren't fetched until after the javascript has finished loading, which means the browser sits idle for half a second before it loads them. Adding them directly to the DOM means they'll be already in the pipeline.
-- Fixed the HTTP keepalive implementation in the server and then enabled it in the configuration. I knew it was disabled because it wasn't working but I dug in and fixed the bug that was preventing it from working. Upgrade users will need to turn the support on though with `uci set lucid.http.nokeepalive=0`
-- Removed the "bounce" when you hit the root page that occasionally would also hang for a second.

Don't want to hear about the labor pains but want to see the baby?
Page load on 3G 1.5Mbit 300ms latency was 8s now 2.8s, second visit 1.8s
Page load on "Cable" 5Mbit 50ms latency was 2s now 1.0s, second visit 0.7s
 
Nice. I always enjoy reading your updates. As a rule, I don't reply because it's not really contributing to the thread. But, I wanted to let you know that there are those of out here that do read them and enjoy reading about all of the great additions you add. I can't say thanks enough for all of your hard work.
 
Glad you guys are happy! I still get excited working on this project and it's cool to know other people do too.

@Rob: Unless you enjoy "daily build" sort of software and the possible bugs that come with it, the latest is v10
http://capnbry.net/linkmeter/release/bcm2708/10/openwrt-rpi.zip

and then flash the releases/v10 AVR firmware from the webui once you're up and running. All the development stuff is going in software v11 which will come out at the same time as the v4.2 hardware release (in as soon as 2-3 weeks).
 
Thanks Bryan, I'll go with v10. I deal with enough beta testing and experimentation with my company's stuff so I'm ok with leaving the debugging and development to you HM experts. By the way, before I forget, I need to say thanks to you and the others for the excellent project. I've really enjoyed the whole process of building one and been very pleased with the results. The simple fact we can control a charcoal fired device to +- a few degrees for over 20 hours is pretty amazing. The HM has made me a hero with outcomes and allowed my to get some sleep when doing long cooks. Bravo and keep up the good work.
 
Hi Bryan, one more question. To flash the AVR from the webui, would that be via the 'Reboot AVR' button? Thanks again for your help.
 
No that's the "AVR Firmware" tab, select "online repository", the flash release/bcm2708/10/heatermeter.hex

Reboot AVR just reboots the microcontroller without rebooting the Pi
 
Hardware testing all day every day, I've been working with the new 4.2.4 board. I've only had silk changes but I've seen some weirdness with regards to noise I'm going to investigate further. Burned a RaspberryPi B today when I mis-mated the connectors, so that's always fun. At least it was a B and not an A, which for some reason are super rare.

I started putting together a wiki page about what wifi adapters work with HeaterMeter. The new RT5370 support is actually better than the rtl8192cu adapters we've been using. They can switch between AP and STA mode without a reboot. They support multiple virtual interfaces in cfg80211 mode. I can't seem to find them in the same size and the Edimax we all use so if anyone knows of an easy source let me know.

I played with making the heatermeter an AP on initial install too. That works great (except windows 8.1 is super-helpful in that it will jump to another wifi connection after a while if the connection doesn't have internet access) although there's an oversight in OpenWrt in that it will leave the DHCP server running on a DHCP client interface when you switch from AP to STA from the webui so I'll have to fix that.

As an aside, I'm also investigating the RT5350 chip as a potential all-in-one standin for the Pi+SD Card+Wifi. That's months away before I even get my hands on a device, but could be a $20 1"x1" replacement for all those parts.
 
As an aside, I'm also investigating the RT5350 chip as a potential all-in-one standin for the Pi+SD Card+Wifi. That's months away before I even get my hands on a device, but could be a $20 1"x1" replacement for all those parts.

Wow, that would be another big move! It would drop the total cost for the HM quite a bit and I'm guessing it would allow an even smaller footprint than you have on the v4.2.X boards... Always marching forward, hats off to you for all your hard work Bryan!
 
So, I should hold off on building the 4.2.4 Monday, I already fried one of my Pi's lol

And just took a look at the RT5350 chip, the thing is smaller then a Ethernet jack:D
 
I don't think there was a problem with the HM board that fried the Pi, he mis-aligned the connectors and powered... poof!

If there was a move to the RT5350 chip that would mandate SMD soldering to build a HM though, or were you going to use a RT5350 card?
 
If there was a move to the RT5350 chip that would mandate SMD soldering to build a HM though, or were you going to use a RT5350 card?
I was looking at pre-built units that include the RAM, Flash, wifi chip antenna, and cpu in one package with pinheader connections on them. I'm concerned that the cpu might be a little underpowered but for the price, it's definitely worth experimenting with.
 
OK, that's kinda what I thought, cause I came across the fully loaded cards in my search but got to wondering after John posted about using just the chip....
 

 

Back
Top