Archive for the ‘chumby’ Category

Geek Tour China 2009

Tuesday, February 24th, 2009

Some readers of this blog may be familiar with my series on “Made in China” — my story of how chumby was manufactured in China. The series was very popular, and I’m glad for that because I think it’s important that the world know more about what’s happening out here in Shenzhen. Instead of just me writing more about the market, I felt the best way to get the word out is to bring more people like you and me out to this place and to show them around, and to have them describe it from their perspective as well. Last year at FOO Camp, I was batting this idea around with Dale and Sara from O’Reilly, and with their encouragement I decided to go for it. Dale connected me with a group of very talented geeks who could benefit from the tour, and PCH (chumby’s manufacturing management company) graciously hosted the event, providing logistical support, local knowledge, factory connections and good cheer to the tour. Currently we are in the heart of Shenzhen wandering around factories, markets and other interesting places.

Above is a group shot from when we visited the plastics factory that does chumby’s injection molding. The attendees on the tour include Leah Buechley, Tom Igoe, Jeevan Kalanithi, David Merrill, Windell Oskay, Eric Schweikardt, and Nathan Seidle. Check out their respective blogs for their perspective on technology in China!

(Photo above copyright Tom Igoe, posted with permission)

Quake on Chumby

Friday, August 29th, 2008

xobs, a developer at chumby, showed me one of the coolest things I’ve seen in a while on a chumby: a full port of Quake. He got the whole thing running under SDL and hacked up the event layer so that the accelerometer (tilting) is used to move in the game, the bend switch is used to fire, and a touch anywhere on the screen is used to jump/activate items. So now you can hug a Linux computer and frag bad guys at the same time. Practical? no. Cool? yes.

Below is a video of the loading screen plus a quick sample of the gameplay.

[flashvideo filename=http://files.chumby.com/hacks/quake_gameplay.flv /]

As you can see the frame rate is very playable on this little 350 MHz ARM9 i.MX21 CPU, although I had a little trouble holding the camera and playing at the same time, while finding a good angle for filming. I never really equated chumby in my mind with a video-game capable system like this, but that’s the joy of open source — people will do things with the hardware that you never expected or had in mind when you designed it. I love it!

You can find out more about how he did it in the chumby developer forum, and if you own a chumby you can download a USB dongle image that lets you play it (and if you don’t own a chumby, you can get one). And, xobs was fastidious about keeping compliant with the GPL and immediately posted the source tarball as well for you to peruse.

Chumby Tiger

Sunday, June 22nd, 2008

One of the rare pleasures of working in consumer electronics is bringing your work home and having your girlfriend coo in delight as a response. Below are some photos of a yet-to-be-released chumby “skin”. It slips over your chumby a bit like a sock. There are actually several in development, and all of them are equally sassy.

Guys, don’t worry; I hear chumby’s got something for you in the works, too.

Recent Chumby Reviews

Monday, May 19th, 2008

Well, time for a shameless Chumby plug. David Pogue gave a nice review of the chumby this past week. You can check out the written article at the International Herald Tribune or see a YouTube video of him talking about the chumby on CNBC:

From the back of a napkin to the streets of South China, and now to the newsroom at CNBC. What a journey!

Chumby Wifi Sniffer

Monday, April 7th, 2008

For ETech08, I built the “Chumby Tower” and one of the hacks featured in the tower is a version of the chumby that sniffs wifi and renders captured packets onto the display. The chumby is a great device for passively monitoring wifi signals, because it has a screen for rendering the data real-time, sufficient CPU power to do the data processing, and it’s cheap enough that you don’t mind dedicating it to that application. It’s handy, for example, to see if your neighbors are stealing your wifi link to surf the web; at a glance you can see what URLs are going by over the air.


Someone has their RSS feed reader set to wowinsider.com… ;-)

The sniffer application sets the wifi radio in the chumby to monitor mode, so it picks up any and all packets on the selected channel. The application then relies on a cross-compiled version of tshark and dumpcap to capture 802.11 packets in raw form. The dumps are processed with a perl script that identifies certain headers and keywords that delimit strings of interest. These strings are then output in an XML container, which is then read by a Flash movie and rendered to the screen. You can adjust what interesting strings are selected by modifying the perl script. Currently, the script just extracts http link strings, To/From/Subject of unencrypted POP mail, and HTML page titles and headers. However, it’s fairly easy to extend the script to do things like capture plaintext username/password pairs that are transmitted over wifi, which happens surprisingly often.

For those who just want to use the sniffer, you can download this zipfile and extract it to a blank USB drive, plug it into a chumby, reboot, and when the chumby comes back it should be running the application. At the point where the screen goes dark, it will take up to a minute for data to start appearing, as it takes about 20-30 seconds for the huge tshark executable to load (depending upon the performance of your USB drive), and then the script pools data over a few sampling periods before reporting summary information. For those who wish to hack the program a bit, here is a link to the Flash movie—it’s the only piece of code in the zipfile that isn’t available in source form some other way.

The default frequency of the radio will be the last frequency used, but you can add a line to the “userhook2” perl script right after monitor mode is set to configure the channel explicitly:

iwconfig rausb0 channel 3   # set channel number to desired number

The script is a little bit fragile, in that every time the firmware is updated something seems to break. I just repaired the script to work with firmware version 1.5, but let me know if you use the script and it doesn’t seem to work. Unfortunately, the only way to debug the script is via the serial port, because setting the wifi card in monitor mode makes it unable to transmit packets — although if you’re really clever you can hack the script to load drivers for a wired ethernet USB dongle and connect to the chumby via that interface.

For what it’s worth, cross-compiling tshark is a total pain in the butt. The make scripts really weren’t very friendly to the task, I had to do a lot of manual operations to facilitate the build. For example, it doesn’t differentiate between binaries that run on the host versus binaries that run on the target, so some helper programs meant to run on the x86 host would get complied to ARM (doh!); those cases had to be tweaked manually to get the whole thing to build right.