Ever since I got the BeagleBone working, I have pondered its hardware design, reconsidered my uses for the small system, and waited forever for software upgrades that didn't come. It has been more "hate" than a "love" affair. If you have been following my exploits and reading my articles, you will know that I have a solar powered system with all sorts of data collecting going on. I like to keep the constant load around an amp or 12 watts. I though the BeagleBone would cut the usage to half or less, but have since decided there are too many negatives about that change to now want to do it.
So what I have been doing lately is reconsidering my options, reviewing the negatives I uncovered, and basically deciding on a only slightly different direction. A quick review of my current setup will help you see where I am going and why. I have discovered a few surprises along the way and as such think the new approach might have some good advice for others.
What I have now is two solar collectors on the roof that charge three rather large solar batteries. I have a charge controller and a distribution panel that feeds 12 volts to all my ham equipment and a server that collects all sorts of data. I track the solar power in and out, as well temperature from several places, and use a weather system tracker to records various weather conditions. The solar power monitoring was orginally to see how much power could be obtained even on rainy days - surprisingly plenty. The weather and temp measurments were to see which olive tree varieties to plant based on lowest temperature we experienced over a couple of years.
I started using a regular PC for data collecting and web service, but decided that it all should run off the solar power since it would be going 24/7. I tried several systems to reduce power with mixed results. The first shots were with arm based netbooks, but they kept failing due to corrupted file systems. I I tried to use an arm tablet, but lack of I/O was a problem, as well as USB drive file corruption. The arm systems have all been great power wise, but it has only been lately that software support seems to be catching up to make them stable enough to use - or so I though.
About two years ago I started checking out the atom based netbooks and discovered the newer systems draw considerably lower power than I though. I ended up using an Eeepc atom system and currently it seems to draw about 8 to 10 watts in server mode if you will - no screen active. I have had no problems and all the software worked including the USB based voltage/current data program. When using the same software under arm, all the readings were coming out wrong, although I have yet to try the BeagleBone with HFP or hardware floating point support, to see if that corrected the bad values.
The major problem I have had with the current system is using USB to serial adapters, as the netbooks do not have any serial ports. We have had considerable issues with USB to serial adapters and their driver support. The FTDI devices seem to work best, but it is almost impossible to know what your getting until you hook them up to a system and see what dmesg reports. At that point it is pretty late to find out you can't use the device. We have as well seen cases where the handshaking and such doesn't work properly with USB devices. It seems that real hardware is needed if your doing serious serial communications.
I have other problems that are somewhat unique to my setup - RF getting into the USB devices. When I transmit on 80 meters, the serial converters can get scrambled up and cause failures. I fixed one serial input by switching to a serial to network adapter for my weather collecting as the software supports both direct serial or network connection. I suspect that some USB adapters might not provide good voltages and thus might be the problem with some serial based temperature devices I use. My bottom line is, I need to use only true hardware serial devices.
One problem that came up one night while testing BeagleBone, was a strong noise or interference on 3825 MHZ. This is my typical working frequency and the noise was making it hard to hear my remote contacts. I later tracked the problem to the BeagleBone and the fact that the system was not grounded. I had disconnected the USB console cable and thus had allowed the system to not be grounded at all. The un-grounding made it act like an antenna which went away as soon as I connected the USB console cable. It is important to note that the BeagleBone needs to be grounded in a shielded case to properly comply with FCC regulations about computer equipment radio emissions.
I have decided that I need to solve two serial I/O problems, one is simply to replace the netbook with some sort of motherboard that has true serial ports, and the other is getting more serial ports. Low powered motherboards come in many styles, lots of CPU types, and support several different types of peripherals. I have been unhappy with using USB hard drives for system files and thus want to use SATA drives both hard and solid state. Not all low powered motherboards support SATA. It would be nice to have at least one PCI or PCI-E interface socket to add more I/O or specialty interfaces.
Serial ports are pretty standard but their availablity is pretty rare. I really need at least 4 serial ports and would ideally like to see 6 on the system. I also have an old parallel port based data collecting dongel that might be nice to use - if there were such things anymore. The arm systems currently seem to ignore SATA and as such pretty much can't be used. I find the major direction of arm, due to big sales in the area, toward cell phones and video display systems. Take the raspberryPI - where most of the forum discussions are all focused on problems getting this or that video device to work properly. HDMI interfaces seem to be more important right now than finding serial ports or SATA drives.
I was really hot to use the BeagleBone until I tried to mount it and use it for real work - impossible. At the time I though the mint tin was cute, but not for real work, until I saw an add that said it was now a "standard" format. Somewhere I missed the docs on that standard which I would consider to be "not a good standard". For me however, the biggest issue is the location of interfaces on the board. To put all the I/O you need, the size means you have to put sockets on almost all sides of the board. The BeagleBone is not really bad, there are two sides that don't have sockets, but I saw an arm board the other day that has sockets on the top, bottom, and all four sides. How do you mount these things without having to un-mount them to change something. In the BeagleBone case, depending on how you mounted it, you might have to take it apart just to reset the cpu. To make things worse, adding the serial cape, extends one size by about a half inch to hold the serial connector. So with serial cape, now three sides have sockets, and the size of the stack varies depending on what type and how many capes you have.
I am finding the new arm systems just too specific in their designs. BeagleBone comes in one style, like that style or find something else. What seems to make the problem worse, is that variations in arm systems involves more that just size or layout - the feature sets vary much too widely for the cpu and thus some features are not supported by all chips. What it seems to me is - the arm chip design needs to change from putting all the I/O on the chip and go to a more typical design where the cpu and the I/O are separate chips. I would like to see the arm cpu have mutliple cores, while there would be some standard "gluechips" that provide the I/O we come to expect from standard desktop systems. I think if one of the arm vendors started selling multi-core arm cpus that fit some standard x86 cpu socket, then upgrades and plenty more soltuions might open the market to some meaningful changes. It is at this point that I had to re-evaluate my choices and start new the design process.
The old Moores Law sort of says, wait and something better will be available. The arm devices have put pressure on chip makers to reduce power usage and make standard systems more usable for other than desktops. The atom is one example of things getting better. To compete with arm, Intel has continued to refine and reduce the power used by their atom based systems. The manual for a atom system, shows as low as 6 watts when used in absolute minimum configuration. Power usage for an arm in similar configuration, can be below 1 watt, but can you use it in your design. I can't.
So I started checking out atom systems. If your not after serial ports, newegg carries an atom system from OEMProductions for $129 - barebone - no ram or hard drive. Yes - it does come with SATA, mini-ITX case, wall transofrmer, and runs on 12V. Nice design but too limited for me and after several emails with OEMProductions I found it is almost impossible to get one board or system from them for testing - buy 100 no problems. Getting documents about the systems - buy 100 and then you get it. I ran into another problem when asking about their motherboards, there sites list many boards, but the chip turnover is so fast, that many are no longer available and in some cases the new version isn't out yet. They want you to buy "systems" where the actual board will be changing based on their current board that supports the I/O for that style of system. Another way of putting what they want, is that you buy a set of "features" with the actual board changing every few months.
This is a problem that came up for me when working with the BeagleBone and I coined the phrase "board of the day". The idea that one week this is hot, while next week something else is on top. What bothers me is the idea that you might start a test cycle for a new system and half way through the project, the board you just tested is no longer being made. The vendors usually have a new version that supposedly is the same feature set, but you still need to test from the start again to just be sure it doesn't have a minor tweak that breaks your code. Another problem with the BeagleBone was the speed of software upgrades for a system that might only have less than a year of product life. It seems that full support of the BeagleBone hardware might never happen and users will need to make calls to /sys forever.
What I did find in my searching is Intel boards with the newer low power atom devices. In checking them out I saw an "E" on some of the boards, which stands for extended support. So here is one company that seems to have it right - buy an "E" system and it will be supported and produced for at least three years if not longer. So have one year development cycle, no problem as the same board will be available as when you started. Need them in batches of ten - no problem as they can be bought from several retailers in packs of ten. Cost - reasonable - the one I am getting is $96 for one, $950 for ten.
Will it work based on the manual, and in this case I could download the manual, and yes it has 4 serial ports, two on the back of the mini-ITX board, and two headers. It also has a PCI slot for another serial card if needed. It has two SATA ports, 2 RAM slots and more. It has all the port sockets on the back, and all the headers on the top, no funny stuff on the bottom or hanging off the sides to cause problems. It has an ATX power connector, again standard stuff to deal with and the mini-itx standard is a true standard that has been around for some time. There are so many ways it can be mounted and boxed that using it in a design should not be one of your problems.
The board I chose is the Intel D2500CCE and mine is now running my solar powered data collecting. It seems to draw about one amp using the mini-itx psu80 power supply. This is a small power supply that is just larger than the atx connector itself. It runs on 12 volts and as I found you must use 12 volts, as it shuts down if over 13 or under 12. mini-itx makes other small power supplies that will work with a larger range of input voltages, one handles 6 to 24 volts input, but I bought my psu80 before really reading the fine print. Which is a good example of why you need access to the real manual before you buy. Speaking of reading the fine print, the D2500CCE uses DDR3 SO-DIMMS and I had several SO-DIMM cards sitting around from previous upgrades. When the board arrived, I discovered that all my older cards were not DDR3s and thus I was forced to buy new ram. Although the cost was less than $20 for a set of two (4GB), I still was unable to use up my old chip sets - I really don't know if there are any atom boards with older ram options, but it is something to keep in mind when looking for your new board.
The motherboard and laptop hard drive are housed in an old half hight atx case and can be seen in the pictures linked latter in the article. You can buy mini-itx cases for about $20, but I like recycling my old cases, which is why atx/itx motherboards are nice to use. Using the old case provides plenty of room for interface boards, such as the SiLabs development boards. I use SATA laptop hard drives and installed linux by attaching a SATA DVD drive on the spare SATA port. After installing linux, you can remove the DVD drive and now run as a server with very low power usage. The board comes with VGA and mouse/keyboard support, that helps with the setup, but once running linux, you can remove the extra cables and remotely login using SSH. If your re-using an old PC case and AC power supply, not solar, and power demand is not an issue, than all the normal desktop features are there for your use.
If your looking to do 6 serial ports, the board will support that using the extra PCI slot. I put a cheap ($12) serial card in the PCI slot and was able to use it if I turned off two of the internal serial ports. The problem getting 6 ports is that by default, linux only supports 4 8250/16550 devices when booting. There are plenty of instructions on the web for changing that since it is only a hard coded value in the serial driver. Re-configuring the kernel and then re-compiling it with the multiport options selected solves the problem and actually isn't that hard. You might be able to use a PCI serial card that is not 8250/16550, since it would use another driver, but I haven't seen any of those cards lately - just USB adapters as the main option. Keep in mind that you could use a combination of real and USB serial devices depending on your needs, since the board comes with 4 USB sockets on the back panel and several more headers on board.
A quick review of headers and sockets shows that you have a parallel port on the back panel, and the, what seems to be now a standard, LCD screen interface support on the back corner of the motherboard. I haven't investigated the LCD interface, but it looks similar to that on the BeagleBone and as such might be possible to use the pins for stock I/O and not just LCD display. This brings up some other facts I saw having to do with the NM10 glue chip used on the board. When checking out some other boards, I found diagrams showing 6 serial ports coming from the NM10. So it seems to me there might be some "tweaking" possible when setting up the board and changing the NM10 to turn some functions on or off. This might open up some I/O or features not normally available in the current design usage.
I might comment on power usage at this point, as when I first saw the atom chips on boards, their power usage was actually very high for the whole system. When Intel first brought the atom to market, their only glue chips available were all big power users. The atom might use only 5 or 6 watts, but the early glue chips were consumming 10 to 20 watts. The current board - D2500CCE - is fanless, while the early boards needed fans for both the cpu and the glue chips with some needing bigger fans for the glue than cpu. So watch out when selecting atom boards and besure to read the manual closely for both power usage, ram type, and feature sets. There seems to be several glue chip options and not all glue chips are desirable.
At this point I am still working on changes to use the server for NFS and exporting my home directory such that logins from other locations bring up my normal home setup. It seems to be consumming power right at the 12 Watts value and all the serial devices keep working even after extended conversations on 80 meters. Switching to real serial ports has solved all the problems I was having using USB devices. Since the cpu is x86 based, all the software works as expected and no special tweaks have been required for any reason. The setup has been painless, easy to do, and seems extermely stable as well.
I had one unexpected feature pop up that I really like. Since using the PSU80 required the use of a 12V regulator or in my case a laptop power supply that provided 12 through 20 volts, I have a now almost diaster proof setup. The laptop supply, YTT-100W-A, has dual inputs - both 120VAC and 12VDC. At first I was just using it for regulation of 12 Volts. After a few days of heavy rain, the solar side was just not keeping up. So I tried plugging in the 120VAC cable while the 12V was still attached. The server didn't crash and I could see my load on the solar controller drop to "0" amps. I have since checked the logs and can see that when the 12V is high enough it runs on 12V, else it runs from the 120V side. I caught it also doing a split load, where I had both 120V current and solar current. The bottom line is that using the YTT supply makes my system very bullet proof. I now have automatic switching between AC and DC supplies that means my solar batteries will stay mostly charged and I will use considerably less AC power over the long run. Great extra benefits I wanted but hadn't planned for.
When looking back at using BeagleBone and all the problems I ran into, it is quite clear that using an atom system is the way to go for the present. I have seen comments and discussions suggesting that arm will be available in the future for real desktop and server applications. At the present however, with every vendor doing their own thing, arm usage is way too segmented and narrowly focused to provide any form of general purpose desktop or server soltuions. I expect that to change, just when is a major question. Clearly there is a need for lower powered server rooms, but for now the only option is atom based systems.
As one of the previous usages for BeagleBone, I showed how it could be used as an "interposer". That is basically a remote system that provides a real serial interface for talking to an SiLabs development board running MyForth. This atom board can do the same, for about the same cost, and without all the messy transformer supplies and needless cabling. If you have an older atx system, the mini-itx boards will fit right in and leave plenty of room for other interface boards and adapters. For me it really seems a better way to solve the embedded interface issue than using stacked boards with interfaces coming at you from so many angles you don't know what is what.
So when looking for the next setup to use for embedded or low power data collecting, be sure to check out the atom boards, you might just like what you find.
I have had a few comments on this article and it seems I need to comment on some topics not covered above. It would help to point out that one of my objectives for doing things the way I did, was to re-use loads of extra components just sitting on shelfs in my office. Recently, I have had several motherboard failures and a few systems just given to me. There have been two desktops and one laptop that failed and provided me with hard drives and cases.
Five years ago when I first started using solar power, I tried several options including a 12V ATX power supply. The ATX power supply was standard size and shape with fan, but the current on 12V was just too great, as it was rated 400 Watts, or put another way, could draw as much as 33 amps when fully loaded. I remember that it's normal load was about 10 to 15 amps, again way too much for any constant load. I next tried the 12V mini-itx 100W power supply and it was very reasonable, both in price and consumption. The picture linked below actually shows the 100W supply and not the PSU80 I talk about. I decided to use the PSU80, since the 100W current draw was 1.1 to 1.2 amps, and the PSU80 ran between .9 and just over 1 amp. The 100W unit is at least 5 years old, and thus I assume improvements in the PSU80 account for the slightly lower current drain.
I had other minor issues, such as the older supply didn't have SATA power connectors and thus using PSU80 removed the need for adapters for SATA drives as shown in the picture. I could have used one of my now empty cases, as one of them had been a SATA system, but I just used the DVD drive from it for loading linux, and the old laptop SATA drive as the system hard drive. I liked the half height case, although it has problems when using full height PCI cards. You need to make sure the cards used come with half height plates, which would not be an issue if you used an older full size PC destop case. I did some testing with the new board and an old ATX 200W SATA compatible power supply - the current draw was around 2 amps or between 20 and 30 watts.
I have talked about this topic before, but now is a good time to review system power usage and why you might want to use atom systems over regular PC systems. For me the issue is conserving solar power and being able to run the server for serval days during no sun or power failures. As a ham operator, emergency power and being able to operate all my equipment during diasters is important, but for most people, it is more likely cost that will be a major concern. I have done several tests using my Kill-O-Watt meter (you can buy one and should over the internet for about $20 or less) and know that most desktops use about 200 to 400 watts when on. So if you run a server 24/7, and your utility charges 20 to 30 cents a killowatthour or KWH, your desktop costs you about 1 or 2 dollars a day. For talking points, lets say your system averages 200W and your cost is $.20 per KWH, which is pretty close to what mine is. That works out to $30 a month, but if I were to take my used case and power supply, with the new board and ram - cost for me was about $110, the new load would be about 20W or one tenth the load. My cost then would be $3 a month and full payback would happen in less than six months. If I didn't use old parts just sitting around, my packback would be longer, say maybe two years for a system that might last 5 to 7 years. Keep in mind your rates will vary greatly and your payback time will vary accordingly.
A last bit of talk needs to cover my using linux over windows. One review added the cost of windows to a comparison of overall expense and as such there are several considerations to be covered. By using an atom system to replace failed systems, conceptually you could as well use the old windows (license at least) on the new hardware. In practice no one does that since windows will not work if you put an old hard drive in a new system (linux will). Should you actually still have the old media, pretty rare these days to have any media, you could re-load it, but most likely you will just buy a new version or as most do when their windows crashed, buy a whole new system even if all that is wrong is a corrupted hard drive. Linux however is free, there are plenty of distributions for older systems, you get all the tools one should ever need and they come at no extra cost. For me I like to work on systems that have no screen or keyboard and run programs that basically just work all the time. As a developer for windows programs the most frustrating problem was the popup boxes that windows throws up all the time. Those popup boxes which can not be turned off, stop anything that is running till someone clicks the mouse on it. For systems runing unattented and 24/7, having an operator watching the screen just doesn't work. You don't have any of those issues when using linux.
Some of you users might want to run windows on the D2500CCE system and let me say up front - don't do it. Besides the normal windows issues like those mentioned above, the atom chips and associated graphics is just not high performance enough for normal windows usage. Now I have made windows systems acceptable to use, by going into the system settings and selecting "program" performance over "look and feel". This turns off basically all the fancy desktop graphics and effects with the results being similar to older versions of windows. Performance becomes usable with those settings, but for a better graphic desktop you should try linux. linux is designed in a modular way and thus you can tweak the system to work very well with low memory and low performing chip sets. You don't want to run gnome or kde, the main desktops that try and usually do outperform windows at fancy graphics, since they are performance and memory hogs. Use what Linus and myself use, xfce4. xfce4 is a low demand desktop and comes with pretty much all the normal desktop tools and functions. You can select it when installing linux or find other distros that use it or similar small and light desktop engines. This is another advantage of using linux, you have many desktop options instead of only one choice for all users. Linux is all about choice and options that you can choose to fit your exact situation. A quick note about using ssh remotely on linux, use "ssh -X host", and when running graphic programs remotely, the graphic display will appear on your desktop as if you were running the program locally, something you can't do with windows.
Finally lets talk about buying versus re-use. When I bought my Eeepc at Fry's, it was on sale for $188 - a real bargin. If I was just putting together a media server and wanted to cut my power cost down, the Eeepc, even at normal prices - say mid $200 - would be a great option. Looking for serial ports, then a sale priced desktop, say mid $200 range with PCI or PCI-E sockets would do, since you could add real serial ports for well under $20. If your a windows only user, these new systems would all come with the latest version and at least $50 of the price you pay, covers the windows tax as well. At present, only laptops are made to consume very low power and as such you will not see utility saving by buying a newer desktop - althought overall power usage has gone down in desktops, it is nothing compared to that of lower powered laptops. The buying or replacing of a dead motherboard is a good option if all the old components are still good. What I have covered here is a lower power consuming option when selecting a replacement board that comes with real serial ports if needed. Depending on your needs and options, there currently is a solution available, you just need to do your homework and read the fine print, before selecting your next system.
My selecting the D2500CCE works for many reasons, all of which I hope I have covered well enough that you can make a selection that works for you.