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: 

Chumby Teardown by iFixit.com

(Photo courtesy of iFixit.com)

  • $129

To that

Nikon WT-4A

(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)

ChumBox



And started sawing

Chumbox incoming

(PCB tray)

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)

Airlink101

Then ripped it appart

(So that’s what it looks like…)

Little pieces of fun

Then I prepared the case for it and the battery

case mod

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)

USB port

 And finally, “On”

Naked ChumbyWFT

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

ChumbyWFT

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:

  1. Open the Control Panel, select [Settings], then [Chumby Info]
  2. In the upper right, you’ll see a “pi” symbol. Touching it will reveal the hidden screen.
  3. Touch [SSHD]

On your computer:

  1. scp your-driver.ko root@your.chumby.ip.address:/mnt/storage/your-driver.ko
  2. ssh root@your.chumby.ip.address
  3. cd /mnt/storage
  4. mount -o remount,rw /
  5. install -p -m 644 your-driver.ko /lib/modules/2.6.28-chumby/kernel/drivers/net/wireless/
  6. depmod -a
  7. 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.gz

mount -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: 

Chumby Teardown by iFixit.com

(Photo courtesy of iFixit.com)

  • $129

To that

Nikon WT-4A

(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)

ChumBox



And started sawing

Chumbox incoming

(PCB tray)

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)

Airlink101

Then ripped it appart

(So that’s what it looks like…)

Little pieces of fun

Then I prepared the case for it and the battery

case mod

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)

USB port

 And finally, “On”

Naked ChumbyWFT

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

ChumbyWFT

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:

  1. Open the Control Panel, select [Settings], then [Chumby Info]
  2. In the upper right, you’ll see a “pi” symbol. Touching it will reveal the hidden screen.
  3. Touch [SSHD]

On your computer:

  1. scp your-driver.ko root@your.chumby.ip.address:/mnt/storage/your-driver.ko
  2. ssh root@your.chumby.ip.address
  3. cd /mnt/storage
  4. mount -o remount,rw /
  5. install -p -m 644 your-driver.ko /lib/modules/2.6.28-chumby/kernel/drivers/net/wireless/
  6. depmod -a
  7. 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.gz

mount -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 2 years ago

About:

"2.012 - En logique, rien n'est accidentel: quand la chose se présente dans un état de choses, c'est que la possibilité de l'état de choses doit déjà être préjugée dans la chose."
L.Wittgenstein

Why all the languages?
Because I can, and want to be better at each one of them.

Following: