5

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! ;)

Dave M
  • 4,494
Álvaro
  • 173

9 Answers9

4

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.

bmdhacks
  • 159
3

Here are some interesting cards

Maybe you can have some fun with one of those?

Dave M
  • 4,494
Johan
  • 825
3

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.

wzzrd
  • 10,589
2

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.

David Pashley
  • 23,963
2

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.

1

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

elcuco
  • 367
1

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.

Bill B
  • 399
1

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

FitPC
http://fit-pc2.com/wiki/index.php?title=Main_Page

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

3dinfluence
  • 12,539
1

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"