IGEP's V2 board fits neatly into the space where the keypad was. The IGEP is a board similar to the BeagleBoard, but quite a bit smaller and featuring onboard WiFi. Otherwise it's similar - a Cortex-A8 ARM processor running at 720MHz, C64 graphics, 512MB of RAM, DVI, sound, a real ethernet socket and USB. This is usable as a desktop PC if you load Ubuntu onto it. It's also pretty low power, drawing about 5W at full load, which is great for a mobile application. Unfortunately, I found getting an OS with all the features I wanted quite tricky.
My best success was with the OpenBricks distribution, which is related to the Geexbox distribution mentioned on the wiki. OpenBricks will cross-compile a new linux distribution from scratch. It can specifically target the IGEPv2.
This is a list of the steps I took to get a bootable image with ttyACM and WiFi support. I've written this down from memory, and there may be steps missing - I will try and go through this from scratch to check it in future.
Create a wpa_supplicant.conf on your desktop with wpa_passphrase:
wpa_passphrase "your SSID" yourPassword > wpa_supplicant.conf
That creates the basic layout. You'll need to add "proto", "key mgmt" and "parwise"; the IGEP page suggests values for those, but I found I needed different settings and additionally the 'group' command. It will depend on your access point - trial and error got it for me.
This is my wpa_supplicant.conf:
network={
ssid="ikaria"
#psk=<passphrase>
psk=<long string of hex digits>
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
}
With that in /etc/wpa_supplicant, you should find that wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d& will bring up wlan0. You'll then need to assign an IP address to it. Try udhcpc -iwlan0 to get an address and ifconfig wlan0 <ip address> to assign it to the adapter.
Since I want my card to start on boot, I chose a fixed IP address and put this into /etc/wifi:
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d& sleep 60 ifconfig wlan0 192.168.80.216
You could write a script which parses the output of udhcpd to get the IP - but there's probably a better way to get DHCP working.
After that, it just remains to add something to /etc/init to get it started on boot. Create /etc/init/wifi.conf containing this:
author "JimM" start on started networking script sh /etc/wifi end script
This is pretty dirty, but it works. Any suggestions on how to do this more neatly are welcome.
The other part I constructed is a switchmode power supply. This is based on a MIC4576-5 chip. There's a datasheet at http://pdf1.alldatasheet.com/datasheet-pdf/view/74603/MICREL/MIC4576-5.0BT.html (You'll need to click through a few links). I've just built the example application from that datasheet, on stripboard - the only slight oddity is having to drill slightly larger holes in the stripboard to fit the diode's leads through. I also attached a piece of sheet copper to the chip to act as heatsink, with some thermal transfer paste, and used that to mount the whole circuit. With the heatsink, this easily powers the IGEP, hub, mbed and motor controllers without getting warm, off a 7.2V NiCd racing pack.