Friday, September 18, 2009
QPID Software Is Now Open Source!
I've had several requests for the QPID source code and finally had some time to clean things up a bit and set up a code repository. So in case you're curious how QPID works or could borrow a code snippet for your own Arduino project, you can now access the source code on GitHub. Note that this repository only contains the QPID-specific code; the WiServer code is hosted separately in the Async Labs repo.
Wednesday, September 9, 2009
Time To Kick Things Up A Notch
Other than the lack of a real enclosure, I'm pretty satisfied with QPID at this point. It does everything I originally wanted it do, and it makes hours and hours of smoking at a precise temperature an easy, hassle free activity. Perhaps it's time to take things to a whole new level...
One of the longest-running debates in the history of food is the correct smoker temperature to use. Some people go with 225 for ribs, others say 250, while some think 200 is best. I think it's time for a little science and technology to turn this debate on its head.
I came across this very interesting (and very technical) article about sous vide cooking, which is French for 'in a vacuum'. The food is sealed in plastic in a vacuum and then slowly cooked in a water bath at a low temperature for a long period of time (sound familiar?). The article does a great job of explaining how heat affects the meat and why holding a lower temperature results in a more tender meat. The key to the whole process is keeping the temperature of the food within a precise temperature range... something that QPID could potentially do!
Sous vide employs water baths to heat the food; the higher specific heat of water allows for rapid heating of the food, and the food temperature will then mirror that of the water bath so maintaining the temperature is quite easy. I'm not about to dunk ribs in a vat of hot water, but I think the way in which the water heats the food can be approximated with some clever software.
Instead of setting the temperature of the smoker, QPID could be configured to quickly reach and hold a specific meat temperature. So perhaps the smoker would start out at 225 initially, but would then scale back to a lower temperature to keep the meat at just the right point. The hardware is already there to do this, all that's required is a little programming.
One of the longest-running debates in the history of food is the correct smoker temperature to use. Some people go with 225 for ribs, others say 250, while some think 200 is best. I think it's time for a little science and technology to turn this debate on its head.
I came across this very interesting (and very technical) article about sous vide cooking, which is French for 'in a vacuum'. The food is sealed in plastic in a vacuum and then slowly cooked in a water bath at a low temperature for a long period of time (sound familiar?). The article does a great job of explaining how heat affects the meat and why holding a lower temperature results in a more tender meat. The key to the whole process is keeping the temperature of the food within a precise temperature range... something that QPID could potentially do!
Sous vide employs water baths to heat the food; the higher specific heat of water allows for rapid heating of the food, and the food temperature will then mirror that of the water bath so maintaining the temperature is quite easy. I'm not about to dunk ribs in a vat of hot water, but I think the way in which the water heats the food can be approximated with some clever software.
Instead of setting the temperature of the smoker, QPID could be configured to quickly reach and hold a specific meat temperature. So perhaps the smoker would start out at 225 initially, but would then scale back to a lower temperature to keep the meat at just the right point. The hardware is already there to do this, all that's required is a little programming.
Monday, July 20, 2009
Log Data
With QPID's control algorithm now running quite nicely, I logged data during a recent rib smoking to see just how good it is. Weather conditions were cool and windy, so it was a good test for the system.
The plot shows that the actual temperature (red) stays within 2 degrees of the target temperature (blue), which is way better than I could ever hope to do adjusting the dampers by hand. The green line shows how the fan speed adjusts to maintain the desired temperature.
The yellow line shows the average fan utilization gradually increasing as the fuel is consumed. The QPID software monitors this value and sends an alert when it exceeds a preset threshold. Since I'd like a little advanced warning, I think 70% would be a good value.
The plot shows that the actual temperature (red) stays within 2 degrees of the target temperature (blue), which is way better than I could ever hope to do adjusting the dampers by hand. The green line shows how the fan speed adjusts to maintain the desired temperature.
The yellow line shows the average fan utilization gradually increasing as the fuel is consumed. The QPID software monitors this value and sends an alert when it exceeds a preset threshold. Since I'd like a little advanced warning, I think 70% would be a good value.

Wednesday, July 8, 2009
Twitter Kinda Sucks
At first I was thrilled about the prospect of using Twitter to send updates. It's free, it's easy to send updates via an HTTP POST, and it handles all of the configuration for devices and following options. But there's a catch. It's really unreliable. :-(
During the course of my testing, I've noticed that I get SMS messages about 50-60% of the time, and if the message is an urgent alert about the smoker needing attention, that's just not acceptable. So, perhaps I need to add an SMTP feature to WiServer and go straight to my carrier's gateway server instead...
On the plus side, I have greatly improved the control algorithm. It makes better use of temperate changes over time to control the fan, and it also has the capability to sense when the smoker's been opened (thus avoiding false alarms for a low fire).
During the course of my testing, I've noticed that I get SMS messages about 50-60% of the time, and if the message is an urgent alert about the smoker needing attention, that's just not acceptable. So, perhaps I need to add an SMTP feature to WiServer and go straight to my carrier's gateway server instead...
On the plus side, I have greatly improved the control algorithm. It makes better use of temperate changes over time to control the fan, and it also has the capability to sense when the smoker's been opened (thus avoiding false alarms for a low fire).
Friday, June 26, 2009
WiServer Lives!
When I originally wrote the WiServer for this project, I figured it might be useful for a lot of other projects. Async Labs thought so too, so I've been working with them over the last few weeks to incorporate WiServer as part of the official WiShield software stack. Today it finally went live and is now in their GIT repository on GitHub. At this point WiServer does pretty much everything that QPID needs it to do, but I'll continue to enhance WiServer by optimizing the code and maybe adding new features.
It's not everyday that tasty bbq results new open source software...
It's not everyday that tasty bbq results new open source software...
Sunday, June 21, 2009
QPID Shield
I've finally made some 'real' hardware for QPID. I created a custom Arduino shield that includes all of the special hardware and connectors required by QPID. It includes connectors for the temperature probes, a connector and power transistor for the fan, and seven SMT LEDs on the foil side that will serve as indicator lights.


I used software provided by ExpressPCB.com to design the board and match the Arduino dimensions and header layout. It was then printed on a transparency and etched via a positive-resist process. Homemade PCBs aren't the best, but they're cheap and easy to make for prototypes like this. And it sure beats a breadboard.


I used software provided by ExpressPCB.com to design the board and match the Arduino dimensions and header layout. It was then printed on a transparency and etched via a positive-resist process. Homemade PCBs aren't the best, but they're cheap and easy to make for prototypes like this. And it sure beats a breadboard.
Sunday, June 7, 2009
The Full Slab

With the new stack's client mode capabilities and some new code in WiServer, QPID now has all of its communication capabilities! In addition to serving up web pages, QPID can also send periodic status updates and urgent alerts via Twitter, which in turn can be forwarded to a mobile phone via SMS. At this point I've hit about 17k out of my 30k code budget including the favicon, so there's still plenty of room for more enhancements.
I really need to build some more permanent hardware. My plan is to design a PCB that'll plug right into the headers on the WiShield, only I'll place the components on the underside except for some surface-mount LEDs. That way I can mount the entire assembly against the front surface of an enclosure and be able to view the LEDs through a window. I'll also add jacks for the temperature probes and fan, and those will align nicely with the power and USB jacks on the Arduino board.
I'll include LEDs to indicate power, Wifi connection, data transmit, data receive, and three LEDs to indicate temperature state (blue, green and red, of course). One other feature will be feed Vin to an analog input using a voltage divider; in the future I may go with a solar panel and battery pack instead of an AC adapter, so it'd nice to have a way to monitor the supply voltage... and of course tweet if it starts to get low. :-)
Subscribe to:
Posts (Atom)