The ChumbyWFT (en)
The Chumby is a little web widget displayer with Wifi connectivity, USB High Speed, a 2W speaker and a 3,5” touchscreen out of the shelf
But it can be a lot, lot more. Here are the interesting specs:
- • ARM9 processor
- • 64 MB of RAM
- • MicroSD card
- • “Linux”
- • Relatively Small footprint in your wallet
This (linux in particular) means that this little toy can be a nice and easy do-it-all hub, giving it what it needs.
And what would be needed to turn this:
(Photo courtesy of iFixit.com)
- $129
To that

(photo courtesy of Nikonusa.com)
- Around $749
Not just that, one compatibe with not only with Nikon cameras, but with Canon’s, Olympus’, Pentax’…
?
The guys at Chumby (chumbians :) are kind enough to give us all the tool required with detailed tutorials in their wiki and help in their forum.
First thing first: TEARDOWN!
It’s quite a bad habit, but almost everything I own, the first thing I do with them, once out of their box, is to dismantle, often without even checking if they even work correctly. Therefor I didn’t take any pictures of the chumby in its original case :p.
The folks at iFixit give a simple step-by-step guide with pictures pretty self-explanatory. But make sure that everything works as it should.
Prologue
If “vi, tar, mkdir, wget, cp, mv” don’t mean a thing to you, you’ll most definitely need lots of help/time to build everything on your own.
Hardware side
First I bought a digital camera battery and soldered it to the battery cable

The Wifi Adapter that comes with the Chumby draws so much power that the battery was not powerful enough (3,7V/900mAh) to switch on the chumby. There are some reports on Chumby’s forum about the poor reliability of its built-in antena, so I search for one less power hungry/linux compatible and order a mini Wifi b/g/n adapter.
While waiting for my shipment, I made a 3D draft of what I wanted with SketchUp (after some measurement)

And started sawing

(PCB tray)

As soon as the new adapter was here, I made a quick test on my computer to see if it worked. Then, after building a linux driver for it, I plugged it in the chumby and did some length/connectivity tests
(Boring state)

Then ripped it appart
(So that’s what it looks like…)

Then I prepared the case for it and the battery

And then cut Chumby’s fm radio antenna in 4 pieces and soldered the adapter to the unpopulated USB (which in fact had a header, but I played too much with them, and they were less sturdy than I thought)


And finally, “On”

Everything worked as it should, so I put everything in my handmade chumbox.

I’ll be building a couple of them for friends. Their case laser cut (sawing by hand REALLY takes times).
Software side
First of all, you’ll need a Linux environment (on Win/Mac, you can use VirtualBox and/or [kju:] [just for mac], both Opensource, or one of VMWare’s product).
Chumby’s wiki is very helpful for tools and tutorials in order to customize it. For more details, and to be sure to have the latest files/doc, I highly recommend to check out the wiki links.
You’ll need to set up an Arm Toolchain
[ -d /usr/arm-linux ] && sudo mv /usr/arm-linux /usr/arm-linux-4.1.2
[ -L /usr/arm-linux ] && sudo rm -f /usr/arm-linux
mkdir -p ~/dev/toolchain
cd ~/dev/toolchain
wget http://files.chumby.com/toolchain/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar xjvf arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
sudo mv arm-2008q3 /usr
sudo ln -s /usr/arm-2008q3 /usr/arm-linux
cd /usr/bin
sudo mkdir arm-linux-4.1.2
sudo mv arm-linux-[a-z]* arm-linux-4.1.2/
cd /usr/arm-linux/bin
for i in *; do sudo ln -s $i `echo $i|awk -F”-” ‘{print $NF;}’`; done
sudo rm -f 4.3.2
sudo ln -s arm-none-linux-gnueabi-gcc-4.3.2 gcc-4.3.2
Then get the Chumby-Linux source code and build a kernel
mkdir ~/chumby
cd ~/chumby
wget http://files.chumby.com/source/falconwing/build2370/linux-2.6.28.mx233.tgz
tar xzvf linux-2.6.28.mx233.tgz
cd linux-2.6.28.mx233-falconwing-1.0.7
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig #If wou want to build a custom kernel or just skip to the next line
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
- Wifi driver
If you want to put another wifi adapter, it might be available in the menuconfig under [Device_drivers]/[Network_Device_Support]/[Wireless_Lan]. If not, get your adapter’s driver source code. At this point you’ll be more or less on your own, depending on the chipset of your adapter. There’ll probably be most of the info you need in some kind of ReadMe text file that comes with the source code, but googling your chipset with “linux” can be ease some pain aswell. Once your driver is built, you’ll need to put it into the Chumby:
- Open the Control Panel, select [Settings], then [Chumby Info]
- In the upper right, you’ll see a “pi” symbol. Touching it will reveal the hidden screen.
- Touch [SSHD]
On your computer:
- scp your-driver.ko root@your.chumby.ip.address:/mnt/storage/your-driver.ko
- ssh root@your.chumby.ip.address
- cd /mnt/storage
- mount -o remount,rw /
- install -p -m 644 your-driver.ko /lib/modules/2.6.28-chumby/kernel/drivers/net/wireless/
- depmod -a
- mount -o remount,ro /
If you have an adapter with the RT2800 chipset, you should take a look in ladyada’s wiki
- “Untethering”
You’ll need Incentives pro’s softwares. The Linux ones are freewares while the Windows ones have licensing schemes. I’m only using the Linux versions, in CLI. The Windows ones seem to have a simple GUI. As of now there is no OSX version.
Using their instructions won’t work with the Chumby. The following describe how to build Incentives pro’s driver and where to put it (and the binaries) on the chumby.
On Linux:
wget http://incentivespro.com/usb-server-arm-le.tar.gz
tar -xzvf *arm-le*
cd usb-server/modules/src/tusbd/
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- KERNELDIR=~/chumby/linux-2.6.28.mx233-falconwing-1.0.7
This will create the tusbd.ko driver. Secure Copy it and access to the Chumby like explained above for the wifi driver then:
cd /mnt/storage
wget http://incentivespro.com/usb-server-arm-le2.tar.gz# don’t use the binaries from the download page but these ones
tar -xzvf usb-server-arm-le2.tar.gzmount -o remount,rw /
mkdir -p /usr/local/usb-server/bin/
cp usbsrv* /usr/local/usb-server/bin/
cp tusbd.ko /usr/local/usb-server/bin/
chmod 744 /usr/local/usb-server/bin/usbsrvd
chmod 644 /usr/local/usb-server/bin/tusbd.ko
chmod 755 /usr/local/usb-server/bin/usbsrv
ln -s /usr/local/usb-server/bin/usbsrv /bin/usbsrv
The following script can be useful to launch the daemon on startup
#!/bin/sh
#
# Start the USB Server daemon.
#
insmod /usr/local/usb-server/bin/tusbd.ko
/usr/local/usb-server/bin/usbsrvd
As explained here, it must be stored in /psp/rfs1/ with the name userhook2. You can either write directly on the chumby using the vi command, or on your desktop with vi, nano, emacs or whatever suits you. Don’t forget to make it executable
chmod 755 /psp/rfs1/userhook2
You’ll need ssh access each time you want to use the Chumby as a Wireless File Transmitter. The followin command can be used to start ssh at each boot
touch /psp/start_ssd
Using this command without password protection isn’t really secure, so in order to set one up enter
passwd root
Then you can safely plug your camera (Nikon, or Canon, or Sony, or Fuji, or …) or hard drive, or scanner/printer or… well there are USB devices for every kind of purpose these days.
And voila!
That’s it for the server side, for the client, get the files you need from the download page and follow the instructions.
Instructions on how to use usbsrv/usbclnt can be found here/here, or just type one of them in Terminal to get a list of options.
I’m still trying to find a work around to use the USB/IP project. But cross-compiling is anything but troubles with it. If only the chumby had the 2.6.31 kernel (@_@~)*
The one big caveat is that it only works with Linux and Windows, but there might be a way to make the ChumbyWFT work with Mac, so …
To be continued.
The ChumbyWFT (en)
The Chumby is a little web widget displayer with Wifi connectivity, USB High Speed, a 2W speaker and a 3,5” touchscreen out of the shelf
But it can be a lot, lot more. Here are the interesting specs:
- • ARM9 processor
- • 64 MB of RAM
- • MicroSD card
- • “Linux”
- • Relatively Small footprint in your wallet
This (linux in particular) means that this little toy can be a nice and easy do-it-all hub, giving it what it needs.
And what would be needed to turn this:
(Photo courtesy of iFixit.com)
- $129
To that

(photo courtesy of Nikonusa.com)
- Around $749
Not just that, one compatibe with not only with Nikon cameras, but with Canon’s, Olympus’, Pentax’…
?
The guys at Chumby (chumbians :) are kind enough to give us all the tool required with detailed tutorials in their wiki and help in their forum.
First thing first: TEARDOWN!
It’s quite a bad habit, but almost everything I own, the first thing I do with them, once out of their box, is to dismantle, often without even checking if they even work correctly. Therefor I didn’t take any pictures of the chumby in its original case :p.
The folks at iFixit give a simple step-by-step guide with pictures pretty self-explanatory. But make sure that everything works as it should.
Prologue
If “vi, tar, mkdir, wget, cp, mv” don’t mean a thing to you, you’ll most definitely need lots of help/time to build everything on your own.
Hardware side
First I bought a digital camera battery and soldered it to the battery cable

The Wifi Adapter that comes with the Chumby draws so much power that the battery was not powerful enough (3,7V/900mAh) to switch on the chumby. There are some reports on Chumby’s forum about the poor reliability of its built-in antena, so I search for one less power hungry/linux compatible and order a mini Wifi b/g/n adapter.
While waiting for my shipment, I made a 3D draft of what I wanted with SketchUp (after some measurement)

And started sawing

(PCB tray)

As soon as the new adapter was here, I made a quick test on my computer to see if it worked. Then, after building a linux driver for it, I plugged it in the chumby and did some length/connectivity tests
(Boring state)

Then ripped it appart
(So that’s what it looks like…)

Then I prepared the case for it and the battery

And then cut Chumby’s fm radio antenna in 4 pieces and soldered the adapter to the unpopulated USB (which in fact had a header, but I played too much with them, and they were less sturdy than I thought)


And finally, “On”

Everything worked as it should, so I put everything in my handmade chumbox.

I’ll be building a couple of them for friends. Their case laser cut (sawing by hand REALLY takes times).
Software side
First of all, you’ll need a Linux environment (on Win/Mac, you can use VirtualBox and/or [kju:] [just for mac], both Opensource, or one of VMWare’s product).
Chumby’s wiki is very helpful for tools and tutorials in order to customize it. For more details, and to be sure to have the latest files/doc, I highly recommend to check out the wiki links.
You’ll need to set up an Arm Toolchain
[ -d /usr/arm-linux ] && sudo mv /usr/arm-linux /usr/arm-linux-4.1.2
[ -L /usr/arm-linux ] && sudo rm -f /usr/arm-linux
mkdir -p ~/dev/toolchain
cd ~/dev/toolchain
wget http://files.chumby.com/toolchain/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar xjvf arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
sudo mv arm-2008q3 /usr
sudo ln -s /usr/arm-2008q3 /usr/arm-linux
cd /usr/bin
sudo mkdir arm-linux-4.1.2
sudo mv arm-linux-[a-z]* arm-linux-4.1.2/
cd /usr/arm-linux/bin
for i in *; do sudo ln -s $i `echo $i|awk -F”-” ‘{print $NF;}’`; done
sudo rm -f 4.3.2
sudo ln -s arm-none-linux-gnueabi-gcc-4.3.2 gcc-4.3.2
Then get the Chumby-Linux source code and build a kernel
mkdir ~/chumby
cd ~/chumby
wget http://files.chumby.com/source/falconwing/build2370/linux-2.6.28.mx233.tgz
tar xzvf linux-2.6.28.mx233.tgz
cd linux-2.6.28.mx233-falconwing-1.0.7
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig #If wou want to build a custom kernel or just skip to the next line
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
- Wifi driver
If you want to put another wifi adapter, it might be available in the menuconfig under [Device_drivers]/[Network_Device_Support]/[Wireless_Lan]. If not, get your adapter’s driver source code. At this point you’ll be more or less on your own, depending on the chipset of your adapter. There’ll probably be most of the info you need in some kind of ReadMe text file that comes with the source code, but googling your chipset with “linux” can be ease some pain aswell. Once your driver is built, you’ll need to put it into the Chumby:
- Open the Control Panel, select [Settings], then [Chumby Info]
- In the upper right, you’ll see a “pi” symbol. Touching it will reveal the hidden screen.
- Touch [SSHD]
On your computer:
- scp your-driver.ko root@your.chumby.ip.address:/mnt/storage/your-driver.ko
- ssh root@your.chumby.ip.address
- cd /mnt/storage
- mount -o remount,rw /
- install -p -m 644 your-driver.ko /lib/modules/2.6.28-chumby/kernel/drivers/net/wireless/
- depmod -a
- mount -o remount,ro /
If you have an adapter with the RT2800 chipset, you should take a look in ladyada’s wiki
- “Untethering”
You’ll need Incentives pro’s softwares. The Linux ones are freewares while the Windows ones have licensing schemes. I’m only using the Linux versions, in CLI. The Windows ones seem to have a simple GUI. As of now there is no OSX version.
Using their instructions won’t work with the Chumby. The following describe how to build Incentives pro’s driver and where to put it (and the binaries) on the chumby.
On Linux:
wget http://incentivespro.com/usb-server-arm-le.tar.gz
tar -xzvf *arm-le*
cd usb-server/modules/src/tusbd/
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- KERNELDIR=~/chumby/linux-2.6.28.mx233-falconwing-1.0.7
This will create the tusbd.ko driver. Secure Copy it and access to the Chumby like explained above for the wifi driver then:
cd /mnt/storage
wget http://incentivespro.com/usb-server-arm-le2.tar.gz# don’t use the binaries from the download page but these ones
tar -xzvf usb-server-arm-le2.tar.gzmount -o remount,rw /
mkdir -p /usr/local/usb-server/bin/
cp usbsrv* /usr/local/usb-server/bin/
cp tusbd.ko /usr/local/usb-server/bin/
chmod 744 /usr/local/usb-server/bin/usbsrvd
chmod 644 /usr/local/usb-server/bin/tusbd.ko
chmod 755 /usr/local/usb-server/bin/usbsrv
ln -s /usr/local/usb-server/bin/usbsrv /bin/usbsrv
The following script can be useful to launch the daemon on startup
#!/bin/sh
#
# Start the USB Server daemon.
#
insmod /usr/local/usb-server/bin/tusbd.ko
/usr/local/usb-server/bin/usbsrvd
As explained here, it must be stored in /psp/rfs1/ with the name userhook2. You can either write directly on the chumby using the vi command, or on your desktop with vi, nano, emacs or whatever suits you. Don’t forget to make it executable
chmod 755 /psp/rfs1/userhook2
You’ll need ssh access each time you want to use the Chumby as a Wireless File Transmitter. The followin command can be used to start ssh at each boot
touch /psp/start_ssd
Using this command without password protection isn’t really secure, so in order to set one up enter
passwd root
Then you can safely plug your camera (Nikon, or Canon, or Sony, or Fuji, or …) or hard drive, or scanner/printer or… well there are USB devices for every kind of purpose these days.
And voila!
That’s it for the server side, for the client, get the files you need from the download page and follow the instructions.
Instructions on how to use usbsrv/usbclnt can be found here/here, or just type one of them in Terminal to get a list of options.
I’m still trying to find a work around to use the USB/IP project. But cross-compiling is anything but troubles with it. If only the chumby had the 2.6.31 kernel (@_@~)*
The one big caveat is that it only works with Linux and Windows, but there might be a way to make the ChumbyWFT work with Mac, so …
To be continued.
Posted 9 months ago