Sunday, October 12, 2008

More important than Amateur Radio?

Yes, my oil usage, my carbon footprint, and ways to evade the financial meltdown. All these have taken me away from ham radio for the moment.

All these, plus one other. I won a little applications contest being held by a company called Plat'Home. They have a line of tiny Linux servers called the OpenMicroServer (OMS 400). These are headless, diskless Linux platforms, based on the RMI Alchemy au1550 chip -- a MIPS architecture device that runs at 400 MHz. A Compact Flash chip can be installed to serve as a hard drive. I use a 2 GB device. Plat'Home supplies a minimal Linux distribution called SSD/Linux, but you can also install Debian. (I haven't gone to Debian yet, but may do so.)

My application was a "Home Utility Support System" - a combination of hardware and software that would monitor operation of the home heating and hot water systems with an eye toward analyzing operations and reducing heating costs.

A prelimary report is available here as a PDF. The installation is shown in the photo at left. (Click on photos for high res.) Physical I/O is through Ethernet connected to a WiFi bridge that hooks into the household LAN, and through the USB to an inexpensive DLP-IO8-G 8-channel data acquisition and control module from DLP Design.

I built a number of interface devices that monitor the state (on/off) of the oil burner, the hot water circulator, and our three heating zone circulators. (Our hot water is supplied indirectly through a heat exchanger that receives hot water from the furnace "boiler".) The DLP interface also supports DS18B20 digital temperature sensors. I use two of these to monitor outside ambient temperature and hot water outlet (pipe) temperature.

The software is all developed in Python to log data every 30 seconds and to do analysis and data plots once a day. A sample run is shown here, as produced by gnuplot software running on the OMS400. The computer also runs the standard Apache web server to make data available to any authorized user anywhere on the Internet.

The work is still in progress, but I have a preliminary interesting, if depressing, result. The idle cycle of boiler (when no heat or hot water is demanded) is about one burst of several minutes every 3 hours. This just maintains the boiler's water temperature in its operating range. At a nominal 1.65 gallons per minute burn rate and with the current price of heating oil, that amounts to some $3.00 a day every day of the year!

Furnace people tell us never to let the system cool down, because of the thermal/mechanical cycling and because of possible corrosion problems, but paying ~$1,000 per year to idle is excessive. (I do dial down the operating temperature in the summer months, but we can't go too far or the domestic hot water will not come to full temperature.)

So there is some incentive to continue this project, potentially saving money (for ham work, of course), saving the environment, and having a little fun by the way.

Many thanks to Plat'Home for their support.


Anonymous said...


very interesting. I stumbled across the article when searching for a solution for my DLP IO 8 problem.

In short, I have designed an independent electricity supply for my summer home based on wind, solar and a backup gas generator. I try to use the DLP IO8 for monitoring
i) respective charge currents
ii) accumulator voltage
iii) consumption current (to inverters)
iv) outside & inside temperature
so that I can eventually optimize the system and establish a web-based remote control possibility with a second DLPIO.

I have designed a data logging program in C for the DLP, which more or less works nicely for Windows. In order to have better Web access (the house is approx. 120 km out of town in a rather remote area) & to use a more energy efficient PC, I would like to move the whole thing to an Asus eee PC (mostly due to its low 12W power consumption) running under Ubuntu Linux. How much power do your machines need btw. ?

Unfortunately the transfer of the C programs to the Linux machine proves difficult. I have tried to use the Perl code you published and access the DLP through /dev/ttyUSB0, but it does not work. In addition for the parameters I chose, there seem to be timing problems (my guess), which are not really reproducible. Sometimes it works, sometimes it does not

I would like to use raw mode (2 bytes received per read) rather than canonical. Did you have problems finding the right parameters ? Did you experiment with the stty parameters ?

How is the timing of your DLP read ? 30s intervals are rather long as I would miss gale like bursts of wind. I want to have 1 sec intervals. Apparently the DLP temp sensor takes 750 msec for temperature conversion, so I have only intermittent reads on both. Have you had timing issues with the temp sensors ?


Reinhard Kohleick

Martin AA6E said...

Hello Reinhard,

Thanks for your interest. I will try to give some answers here. Maybe it is time to report more details to the blog. (soon)

The Plat'Home Open Micro Server (OMS) requires about 8 watts. It is hard to tell (by heat) if it is powered on! The only negative feature (for me) is price, which is high for "amateurs". If you are interested in the product, I recommend talking to the vendor to see what is possible. Another consideration is that it is "headless" -- no video display -- so you have to work in text-only mode, just like the old days of minicomputers!

I use Python, not Perl, and I would be happy to share the code. I do not believe I have published it to the Internet yet, but I may do so. Are you thinking of someone else's project?

Yes, I use "raw" (binary) mode. I did not find any special problem there. For my purpose, 30 second sampling is sufficient. You are right that the temp. sensor is slow. I have some troubles with occasional (once or twice a day) wild temp. readings, and I have to retry the reading in that case. (It may be an electrical problem.) You can sample voltage and on/off much faster, of course. I have not tried to see how fast they can go.

Contact me by email if you have specific questions.

aa6e /at\

Anonymous said...

thank you,

sorry I get a delivery error when sending to aa6e /at\ Maybe I am just a bit ignorant. I assume it translates to aa6e§ where § is the asci 40 hex char ?


Martin AA6E said...

Reinhard -

That is the character "@" - which we pronounce "at". The idea is to prevent spammers from grabbing the email address, so we "code" it.

The address is

aa6e"@" (without the quotation marks "")