Low Power PC

I have had a mini-itx PC kicking around for a while that I use to play mp3s at parties. Now I have space in Mr Stick Legs for it to fit I will be putting a sensible operating system on it, making it fit in the smallest space possible, and attempting to reduce power consumption.

The board is a mini-itx EPIA 800 which is only 17cm square, it has a fan for cooling but is very low power. It’s only second from bottom of range – the lowest spec is the EPIA 5000 board which has no fan for cooling and runs at 500Mhz.

I plan to install Damn Small Linux on the PC which will boot from a USB key or compact flash drive as it only requires 128Mb of space to operate. Here’s the PC in it’s plastic box which I bought from Maplin:

Currently everything is inside including a 2.5″ laptop hard disk and a 60W PSU which takes an external 12V mains adapter rated at 5A to power it from the mains:

The board itself uses a VIA chipset and processor which is very low power. I measured the current it drew with a multimeter, it peaked at 1.9amps when it was booting, but when idle it ran at only 800mA, even with the hard disk connected (the meter is on the 10A range and in series with one power rail on the 12V side):

This means it’s only using 9.6 watts idle and 22.8 watts with disk activity. I didn’t try playing a DVD or anything to see how CPU performance affected power consumption but I don’t plan to make it do anything very taxing anyway. The power required should be much less without the hard disk – just using a flash drive to run linux.

The plan now is:

-Take it out of the existing box and mount it on a ‘layered chassis’ so that the whole thing is square with the power supply on a mounting layer on top/below the board.
-Get a special mini-itx USB connecter for the extra ports so that the USB key doesn’t stick out from the edge.
-Find a Wi-Fi card that works with Damn Small Linux. There is one PCI slot on the board so this shouldn’t be too hard.
-Sort out the power on Mr Stick legs to run it, 12V shouldn’t be too hard to find.
-Mount it somehow to resist shock, although there will be no disk/moving parts it’s still going to get shaken around a bit by the android walking.

The Wi-Fi network will probably end up as an alternative to the ‘IR remote control extender’ that I described in the android head article.

I have now made the PC boot from a USB key running Damn Small Linux and put it on the network. Here it is running, the current consumption is about 850mA:

However, after playing with Damn Small Linux I have drawn the following conclusions and done these things:

-Damn Small Linux is fine for USB booting provided you don’t need to make too many system changes to the image. You can save data and settings to a separate partition but users accounts seem to get lost(?)
-The alternative is to do a ‘Frugal’ install although I couldn’t get this to boot from the USB key in either Grub or iLo mode.
-I tried a straight HD install to the USB key, this worked but wouldn’t boot even with the BIOS set to USB-HDD.
-So, I tried making a actual hard disk partition of 256Mb to match my USB key to see if it would fit on there along with Python which is required to program the robot. It doesn’t, as well as there being no C compiler to build the Python source.
-So, it looks like 512Mb would be the minimum size partition to use it for what I want. It is possible to get an IDE-Flash drive from mini-itx.com which is seen by the system as a hard disk but is solid state. These come up to 1Gb in size.

Next steps

I would like to get the Pc working from a solid state storage device to save wrecking the harddisk by moving it around with it powered on. However, I already have Vector Linux installed on the 2.5″ hard disk currently in the PC…

This is another light distro of Linux but really requires more space. It does however boot more quickly from hard disk than Damn Small Linux boots from USB pen-drive. I already have Python installed on it and it’s pretty easy to use. So, as the disk is small and light I’ll probably just use that for now and investigate flash drives at a later date (when I have ?99 spare). Mr Stick Legs is powered by the mains anyway so the extra power isn’t really an issue for now.

So anyway, time to get on with the layered chassis, here’s the actual board itself at just 17cm square:

The bottom layer will hold the board, the top layer will hold the power supply and hard disk until I swap it for compact flash:

They are spaced apart about 4.5cm with 4mm threaded rod which fits through the mounting holes of the motherboard:

An that’s pretty much it, it will be covered by a cardboard or plastic shell if I can find something suitable. I’ll cover it with aluminium foil to screen it, or just screen the stomach of Mr Stick Legs. It will be mounted on it’s end in the android like this:

For now I’ll be using the onboard conventional network card, although I’ll switch to Wi-Fi when I get a wireless base station as the Wi-Fi USB adapters are only about ?20…

The PC is now fitted into Mr Stick Legs and powered from the mains power supply already on his back. I have also added a Belkin USB to Serial adapter which worked first time. It can be seen by typing ‘lsusb’:

It can be addressed as ‘/dev/ttyUSB0’, the device can be seen in the hardware roundup by typing ‘dmesg’:

 

I have SSH server running on the PC so I can SSH to it with Putty or another SSH client. Startup daemons (services) can be set to start automatically using the ‘vasm’ config utility.

Next will be getting IP/Sockets communication from the remote ‘AI’ and vision processing PC which I will detail in another article along with the majority of the programming.