In the first of our new ‘My Automated Home’ series, Soitjes Soit talks us through the idea behind his home brew Digital Home Server. Created using an inexpensive Mimo USB monitor and a mini-ITX PC, the system provides a variety of functions around the home…
The Hardware – I bought a mini-ITX motherboard (Intel D945gclf). I read on forum that the CPU was not very silent, and yes, it was not silent at all. So I threw out the fan, and
installed a passive cooler. I also replaced the PSU with fan with a PicoPSU, which has no fan. So now it was pretty silent. The last component which makes noise is the hard disk, but despite many attempts I never found a good alternative.
Although I tried many (booting from USB stick, booting from USB hard disk, booting from CF card etc), I’ll just have to wait until the SSD become cheaper. With a pair of speakers and a little hub my system was complete. Now I needed an operation system and an Internet radio player.
The Software – The operating system is Windows XP. I have made many attempts to reduce the OS size with XPLite and nLite, but in the end I had too many problems. Now I just use standard XP. Why XP ? I started on Linux, but there is simply no decent development environment for Linux. I tried Lazarus but that was very unstable. I have used Delphi about 15 years ago, and had very good memories. Now, would Delphi still exist ? Actually yes, although the product has gone through some difficult times. Now I was facing some interesting challenges :
- The USB monitor size is 7″, with a resolution of 800×480. That is a small monitor, believe me.
- No keyboard or mouse, only a touchscreen to operate all modules
- Multitasking : listen to audio, video or make phone calls, all at the same time
- The last time I programmed was 15 years ago, and I hate making designs and testing
But Delphi is an incredible powerful development environment. Combined with a good graphical library I was able to make some very nice screens, especially on a small screen.
I actually wrote the program twice. The first attempt was still rather ugly, and I had difficulties because it was so long ago I had programmed (I do something completely different in my professional life). When working on the Internet Radio Player I started to have other ideas, and this is what you can find today in my Digital Home Server :
Audio – A streaming MP3 player capable of playing local MP3 files and Internet radio streams. While listening to music, you can see the time, consult the weather forecast, or look at the playlist. It can also parse the RSS feeds for podcasts, so that I- can follow a few podcasts to which I listen regularly.
Photo – Such a small 7″ monitor looks like a kind of photo frame, so I programmed a photo slideshow. The module has 172 transitions that are rendered between images.
Video – This module would not have made a lot of sense on a 7″ monitor. Instead, the small monitor is used to control the movie which is displayed on a second monitor. Note that this is not a video streaming module, it’s just playing a local video file.
Calendar – From a software point of view a real nightmare. I use Google Calendar a lot (free SMS notification, handy !!). But the Google API is cumbersome and very badly documented. But my module allows to consult my Google Calender.
Calculator – A little calculator. Not much to tell about this.
Phone – Another very difficult module. The idea was to control Skype via the little monitor. I finally succeeded, and if you use video in Skype it’s displayed on the second monitor. I experimented a lot with bluetooth for this module.
Stopwatch – A stopwatch, counting down from any number of minutes. Actually a request from my girlfriend. She needs this when she is baking bread.
Things I like in the current setup – The choice for the small 7″ usb touchscreen was defninitely a good idea. It forced me to be careful in not putting too much on the screen, and at the same time it had to look nice because it’s standing in my living room ! It really looks cool. The mini-ITX PC was good as well, and quite cheap. You can make them silent, and they are still quite powerful. More than enough for what it’s doing now.
What needs improvement – The focus is multimedia, but I would like to extend my Digital Home Server in a real Home Automation server, but then the current architecture has some limitations. I’ve already done quite a bit of research with USB connectors, Arduino microcontrollers, X10 and all that other home automation stuff. The main problem is to find an open solution, which I can integrate in my Digital Home Server v2.0.
More details and screenshots, and explanation of what going on can be found on www.digitalhomeserver.net