Total Posts: 1
Joined: Dec 2009
|
I am currently constructing a building controller with the following main specifications:
- Atom CPU
- Ubuntu Remix OS
- Java language used for the control application
Here is some discussion on why the above were chosen. First, Java was chosen as the programming language (versus C or C++) because it is one of the four languages for which I have significant experience. Java includes a rich API which allows for quicker development. I knew that I would be doing some XML parsing and Java supports it. I knew I would need lots of threads running, and Java's multithreading is simple and sufficient (I don't need real-time).
But of course Java does need some processing power. I was originally thinking of using the Maxim/Dallas Semiconductor TINI platform, but eventually the scope of the project became too great for a souped up 8051. Since the computer would be on 24/7, energy consumption is an issue. I could have run a netbook, but I don't believe those devices are reliable for 24/7 operation. I have decided to use the Intel D945GSEJT motherboard which includes the Atom (x86) processor. The motherboard is spec'd at 15-30watts depending on the load. Included with the hardware setup is a 500GB SATA drive (hard to find anything smaller that will not be EOL in the next year). External 2W powered speakers are included so that alarms are announced. I have attached an outline drawing.
The other key decision was what OS to use. I decided to go with a Linux OS because of the cost (of course). Ubuntu Remix is supposedly made for the netbook market, so my assumption is that it uses low power management techniques. I also chose a Linux OS because of all the readily available open source applications. For example, I plan on installing the ZoneMinder video surveillance application and using both wired and wireless IP cameras.
Right now I am trying to configure the system for the lowest power operation. It is primarily wall powered through a UPS; however, I do want it to remain fully functional for as long as possible on UPS power in the event of power loss.
Let me know what you think I can do to squeeze as much wasted power out of this system as possible. I'm sure there are both hardware suggestions (like manually disconnecting the mouse & keyboard) and settings in the OS. So far I've noticed that using Linux's "atop" and "iotop" utilities, my test Java application writes something to disk every 30 seconds. This test application does not include any file write operations, so it must be something in the JRE. Also, Linux's ext3 file system includes a disk journaling feature that occasionally writes data to a journal file. Both of these activities are preventing the hard drive from spinning down and reducing power consumption.
Any general suggestions on any settings or cost senstitive changes to the hardware that would reduce power consumption?
Posted on 2009-12-30 16:01:03 at 2009-12-30 16:01:03
|
Total Posts: 18
Joined: Dec 2009
|
It's a start...
Sounds like you had good reasons for using a PC motherboard, but if power is/was a concern, that would be the first thing I'd toss. "Intel" and "x86" and "low power" don't often go together.
Same goes for Java. As you point out, Java uses a lot of energy because it's an extraordinarily inefficient language. But again, it appears you had good reasons for choosing it.
I can't offer any advice on tweaking your particular flavor of Linux, so no help there. And unplugging the peripherals will help a tiny bit.
Switching from a hard disk drive to a flash drive (perhaps one that emulates a hard disk's interface) would save you a lot of power. It also won't go obsolete every six months. Or crash. Writing to the drive every 30 seconds or so will be frustrating because that's about the time a typical hard disk would spin down to save power, but then your application will wake it up again. I'd go with flash.
And if you later decide you don't really need Java, an x86 processor, or a PC motherboard, we can talk about how to really save a bunch of power.
Posted on 2010-01-05 00:46:20 at 2010-01-05 00:46:20
|