Imagine the following situation: I want to have a tiny, light server that is able to run some services like basic Web, ftp, printing servers and pluging hard drives via usb.

I would like to use it as a tool for learning about embedded devices and programming for those architectures. I have the intention to test a home-security system with a webcam also...

What would be a good architecture, specific device, brand or any recommendation for a beginner? I have experience with both linux and C programming.

Limited budget proposals preferred! ;)

9 Answers 9


I've done a reasonable amount of hobbyist embedded hacking, and I've got two suggestions:

  1. Linksys WRT600N (which has usb) or Linksys WRT54GL with dd-wrt or some other custom firmware. Get the cross-compiling setup on your desktop and start porting some open-source software that you might want to run on them. Once you're comfortable with the build environment, you can move to develop your own apps. If you feel adventurous you can google around for some of the hardware hacking projects for the WRT54GL. For example, mine has a serial port sticking out the side. Another project adds an SD card slot to it, which should give you enough storage to perhaps not need a USB hard drive for file serving.

  2. Digium AA50 or the Free Telephony IP04 these are really fun embedded telephony platforms that run on the Blackfin processor. The blackfin has built-in DSP capabilities which opens up a lot of interesting media-processing possibilities in the telephony side of things. I know you wanted a file-server, but you'd be surprised how much you'll learn if you build your own embedded PBX.


If it's limited budget you want, you want the Sheevaplug. Mine has just been delivered a few hours ago and I can't wait to get home and start checking it out.

Basically, it's an ARM processor with 512MB of RAM, some flash memory, a USB port, a NIC. All built into a powerplug(!). Hence the name.

A very cool device, low power, low cost (less than $100).

There's a whole lot of Linux distributions that run on the ARM architecture. Debian, for instance, has a complete ARM port. It's a bit different that IA32, but it'll do the jobs you mentioned just fine.


Here are some interesting cards

Maybe you can have some fun with one of those?


I've used Soekris boxes before. My home router is one, mostly because it comes with 5 network interfaces.

You could use one of the home NAS devices that people have managed to install Debian on.

Simtec do some nice Arm based kit.

There's a whole host of System on a Chip boards that you could use if you really wanted a small environment to play with.


The WRT54G has already been mentioned, but I'm a big fan of the NSLU2. It's an very inexpensive NAS device.

  • 266 MHz
  • 32 MB of SDRAM
  • 8 MB Flash
  • 100 Mbit Ethernet
  • 2 USB.

The NSLU2 is fanless, which is a big plus for me.

There are several alternative firmwares and it can run debian: see NSLU2-Linux.


At a previous job, I used PC104 systems for various tasks-- very tiny, the ones we had were well-supported under Linux, and if you look long enough, you can find one with the appropriate mix of interface/memory/flash storage that you need.

One thing to consider when you're first starting in embedded work is to remember you're not on a multicore, multi-gigabytes-of-RAM machine. If you're really set on making a small fileserver, I'd go with a miniITX formfactor motherboard and a smallish case, and stay away from the 'embedded' form factors.


You can try some pc104 devices. But IMHO, just buy the cheapest MOBO you can and start hacking. The hardware can be changed latter on, and if you use Linux there is a good chance that you can even change the CPU type (ARM->x86/64bit...) without code change.

(I am writing this instead of commenting bellow, since it's long...)

Or use a toolchain and build a full system usinc uclibc. In my previous job we developed a small PBX based on BlackFin, which also had it's own DHCP server.

Once I accidentally connected the wrong port of the PBX to the LAN and the next time someone powered up his PC he could not surf the web. It was weird, since the DHCP server was giving him a correct lease. The problem was that the lease was comming from the embbeded PBX and not the full DHCP server we had (it was an IBM PC running Debian/Lenny).

The moral of the story, is that even when the embedded device is running on a small "cpu" (BlackFin does not really qualify as a CPU), it can sometimes "run" faster then full bloated PCs.

Start reading: http://www.uclibc.org/toolchains.html

  • I've learned a lot about dealing with 'limited resources' by taking a cast-off desktop PC from work, installing NetBSD on it, and using that as an auxillary testbed for some of my code-- if I can get things to run acceptably well on an old Celeron 433 with 64MB of RAM, it should do well on more modern boxes. It's also rather easy to throw a *BSD or a lightweight Linux distribution on a low-end system and throw it in a closet if you need a quick single-purpose server for stuff like network monitoring.
    – Bill B
    Jun 8, 2009 at 17:15
  • :) I have a small appartment and the point of testing new architectures is interesting... another thing is power consumption... those computers mean about ~8€ a month to keep 24h on (with Spain's cost in electricity).
    – Álvaro
    Jun 8, 2009 at 17:35
  • exactamente... electricidad es cara... IMHO, it seems like you are looking for pc104 or maybe just using qemu (it will work the same!)
    – elcuco
    Jun 8, 2009 at 19:47

If you're looking for something a bit more packaged here are two suggestions.


There are a number of netbooks that would work for this. And as a bonus you can use it for other things as well.

  • Cool! though a bit expensive... ;)
    – Álvaro
    Jun 8, 2009 at 18:03

if you want it really tiny, you could go for a foxboard: http://foxlx.acmesystems.it/ it's very lightweight. 200mhz and 2W power consumption. it can do webcam-streaming to internet and has gpios. very "solder friendly"

also have a look at pcengines alix... e.g. the 3d3... 500mhz amd, 256mb ram, 5W google for "alix 3d3"


Not the answer you're looking for? Browse other questions tagged .