Small but powerful devices that run your code

Sometimes I work on art projects that require a little computer inside to do stuff – audio synthesis or analysis, video projection, motor control or sensors. Recently I’ve been a bit unnervingly interested in this new mostly ARM-based category of “small but powerful devices that will run your code.” While my peers are happy using Arduino or otherwise Atmel-type 8 or 16-bit microcontroller boards ($40) I assume they never once tried to run a fixed point FFT through a weight matrix to make beautiful music. Nor are they trying to cross compile BLAS or libmp3lame. From what I’ve seen, either you’re using a 1Mhz Lilypad or if you’re doing sound or video work, you just stuff a few mac minis in a box with a hole in it. Or maybe you buy a Mini-ITX board and protect it with bubble wrap. But those are so big, and loud, and need to be plugged in, and …

For a surprisingly small amount of money (these start at $50) you can get quite a lot these days in a very small plastic box from Korea or Taiwan. They have real processors with FP units, lots of RAM, mass storage card slots and USB, audio and video in and out, even wireless networking. They come with rechargeable batteries. They either do or can all boot into a real OS and you can write real code. You don’t need a programmer or JTAG or really anything but a computer with a USB port to get going on them. The only issue is that these things are not meant to be used this way. But things are changing rapidly and I don’t think anyone should overlook pre-built off-the-shelf devices to use as a platform for one-off art projects, installations, or even as a prototype for a “real” build later on.

The overarching downside is community, since for all of these (except the Gumstix) you are re-appropriating a device to do something else. So you get banished to a sort of space pirate world where everyone is either (1) great hackers but too distracted with their “day jobs” or (2) usually wrong, dangerously confident and jerky. (I’m a little of both.)

Below is my ongoing list of what’s out there: what you get for your money, how it all works, what it’s useful for. I am not reviewing these on their ability to play games or emulators, rather as devices that can do advanced video and audio processing and synthesis. In most cases I’ll be ripping the screen and D-pad right off. I have hacking experience with almost all of them (my Didj is on its way and I don’t think I’ll play with the Dingoo.) If you have any comments, changes, or other device suggestions, please drop me a line.

Dingoo


The Dingoo is a Gameboy Micro sized box that has one dominant feature: it’s cheap. It’s a bit meager on the CPU, a MIPS 400MHz, and it struggles with Super Nintendo emulators, for example. I doubt the floating point emulation is at all reasonable. But it’s cheap, got a nice screen, lots of storage, audio in and out.

How much: $83 (at least at DealExtreme, where you’ll never have to wait more than 6 months for your order to ship.)

Features: CPU is a MIPS 400 MhZ, audio in (mic) and out, 320×240 screen, D-pad + buttons, battery. 4GB flash internal and Mini-SD slot letting you add up to 8GB more. 32MB RAM.

Built by: Dingoo Digital from Shenzhen makes the Dingoo A-320. The actual purpose of the device is to be a portable video game emulator. Sold at Thinkgeek, Dealextreme, lots of places.

Community: A website called “Dingoo Scene”? Check. Openhandhelds seems to be sparse right now but there is some activity. For some reason GP32X.com also has a Dingoo support / developer forum.

Hackability: There is an official SDK. The default is a boot into MicroC/OS-II, a RTOS that I’ve never heard of before but they have all the pack-in emulators written for. But there is now Dingux, a bootloader that can go into a Linux replacement to the stock firmware. Pretty active blog for “Dingux” with a reassuring # of comments per post.

GP2X Wiz


The Wiz is the next generation of the venerable GP32/GP2X platform. It’s about the size of a chunkier Gameboy Micro, with a nice OLED screen, standard 4×4 button layout. GP2X had a very strong community that appears to be now constantly fighting about whether or not the Pandora is ever going to exist, and if it will, then why have the Wiz. This is a silly argument for people like us to get involved in: Since the Pandora does not exist, let’s use the Wiz, which is relatively cheap, with a great CPU + accelerated graphics, USB, SDHC support up to 32GB, boots already into Linux. The TV Out support is great for video artists…

How much: $179, you can even get it at Thinkgeek now.

Features: ARM9 @ 533MHz but can go up to 800, with the “MagicEyes Pollux” SoC for graphics acceleration (OpenGL ES) and video decoding. 64MB RAM. SDHC slot up to 32GB and 1GB built in NAND flash. USB, host mode as well. 2000mAh battery. Audio in and out, TV out. 320×240 touch screen OLED.

Built by: GPH, as a game device (not just emulators.) Apparently it is South Korea’s answer to the DS. Sold by play-asia, Thinkgeek, lots of import places.

Community: Active but bickering. The Wiz is new and people are just starting to get them in and playing with them. Since this device has a well known emulator and homebrew lineage you will run into a lot of people who want to know if they can overclock the memory bandwidth by soldering some pins together. Almost everyone on the main development board seems to be working on a homebrew game or emulator. But this is great because it means tools get built quick. You just need a good filter on.

Hackability: So far great. It boots into linux, the main menu is written in Flash even. You drop apps on your SD card or the NAND via the device and they just run. There’s a great on-board terminal that lets you type with the D-pad. (Make sure you have the Wiz version.) You’ll probably want a serial cable (a hacked up Samsung E810 data cable) if you want to see the output of your code in real time. Get your linux toolchain here, see a simple Makefile. The Wiz comes with an (accelerated?) version of SDL, so if you know that already, it’s dead simple to port over stuff.

iPod Touch


Have you heard of this thing? I think people in Croatia really love it there. Anyway, the iPod touch is a great device to use but also … might be a great device to build projects with. It’s a bit messier than the rest since you really have to jump through the parent corporation’s hoops in every way to run your own code on it.

How much: $229 to $399

Features: ARM11 533MHz with a PowerVR MBX lite GPU. 128MB RAM. 8, 16 or 32GB internal storage. Battery. Audio in and out. Video out. WiFi, bluetooth. Great 480×320 touchscreen. Accelerometer/tilt sensor.

Built by: Apple Corporation. It is supposed to be a world-dominating platform for all media. Sold by everyone.

Community: There are two: the “legitimate developers” who use the Apple SDK and are legion, with 50,000 unique apps built and sold on their store. But we’re not interested in those guys, because they can’t run any old syscalls or even really access the filesystem. No, if you’re making a standalone project with an iPod touch, you’re going to be jailbreaking. Since the same process is needed to steal legit apps and write your own code without encumbrances, you’re going to have to wade through a lot of crap to find actual information. But it’s out there.. mostly on IRC.

Hackability: After jailbreaking (doesn’t take long) you’re now running a device you can write code for on an OS and libraries you probably have no idea about and is not documented anywhere. OS X “Mobile” is great but requires a lot of hunting to find the good stuff. You’ll get used to your friends “class-dump” and even IDA to figure out how to get at lower-level hardware things. In an earlier life I spent a couple of weeks trying to get the thing to play audio properly. There is a nascent Linux port but it doesn’t look promising. The device will also be running a lot of things you don’t want and really have no control of. It may go to sleep at inopportune moments.

Didj


The Leapfrog Didj is special, mostly because I can guarantee that in Targets across the globe next summer there will be boxes full of them for $9.94 each. Just look at it, looks like a piece of garbage, right? Why are you asking me to read about this, you ask? Because for some reason the engineers at Leapfrog really over-spec’d the hell out of the thing, and even right now you can get it for forty dollars. It’s pretty much the same innards at the GP2X Wiz above, underclocked and with less RAM. But it’s forty dollars! You could buy 20 of them, take off the plastic casing, install your Media Art and sell them as one-off artworks for $5000 each (at least, people.)

How much: About $50 retail, but trust me, this will drop

Features: ARM926 393MHz CPU, the same “MagicEyes Pollux” SoC as the Wiz (!) w/ OpenGL acceleration, 32MB RAM, 256MB NAND storage, dpad+buttons, 320×240 screen. Proprietary cartridge slot (but read on), USB connector. No charging circuit, takes 4 AAs

Built by: Leapfrog, who think they’ll be able to compete with Nintendo in some manner. Sold in toy stores and Targets.

Community: pretty much nonexistent.

Hackability: It boots into Linux. Source downloads. Serial console seems easy to get going, with more pictures. Claude Schwarz is doing great work, including a custom made cartridge (!!) that has an SD card slot (!!!!)

Gumstix Overo


The Gumstix Overo is the latest board from The Gumstix people, who can also sell you all manners of almost-bare ARM chips with various connecting dongles that let you write code for them. Gumstix is in a bit of different league from everyone else: you’ll pay more and get less. But you are also paying for a large community of people that are doing non-games (robotics mostly) with these boards. You can get support (it’s not very good, but you can get it) because you’re doing what you’re supposed to be doing with these boards.

How much: $129 + $50 for the almost-required Summit dev board + $10 for a power adaptor.

Features: OMAP3503 w/ ARM Cortex @ 600MHz. 256 MB RAM, 256MB flash. microSD slot. Tiny. No battery. You can pay more for ones with wifi, bluetooth, graphics acceleration. Any development work needs to be done on the “Summit” expansion board that has USB, DVI out, audio in/out, PWM, I2C, SPI, 6 A->Ds.

Built by: Gumstix the company, who is a very small operation. Sold by them too. They are kind of hard to deal with sometimes.

Community: Very active mailing list. Often out-of-date wiki. “Official” docs. A great thing with the Gumstix is somehow they’ve encouraged a ton of academic users, like guys who build robotic submarines or war machines, which means lots of source code.

Hackability: It’s meant for development so there’s no real bad hoops to jump through. Default install boots into linux just fine and you get a console through some add-on-dongle. But they use Openembedded, which is a monster and took 8 hours (!!) to build on my Linux VM. Once you’ve got it going you need to learn how bitbake works, etc, but it’s not so bad. Lots of prebuilt packages for common stuff. It’s not fair to compare the other guys above to the Gumstix because the Gumstix was meant for this stuff. But still – the Overo will make it a lot easier to do hardware hacking type projects, but you’ll pay for things the other guys get you for free. For example, no batteries or even power adapters are included. You’ll usually need to do some SMT wiring to get things like audio to work properly or to get power to different parts of the board.

Conclusions

So far I am most pleased with the Wiz. It was easier to get simple C code written than even the Gumstix and it’s overall cheaper (when you include the necessary dev kit stuff like the Summit board, power supply, serial cables, weird USB mini B to micro A cable (WTF gumstix corporation?!) The TV out is great for projection / visuals, and the CPU can handle pretty good RT audio in / out processing. There’s the downside of the audio in not being accessible from the case (it’s a tiny electret mic) but that’s easily “fixable.”

But this all depends on what you want to do. If you’re going to using more than a couple, I’d try out the Didj. It can be coaxed to boot your own code just as easily, but you’ll need to do some soldering. The Didj seems EOL already (reports of them appearing in Costcos for $29 including game already abound!) so you may have to hurry to buy a bunch.

I’d avoid the iPod altogether. In my experience, unless you need the multitouch screen, you’ll be fighting an OS you can’t control that really, really wants to be itself.

If you’re integrating with hardware: sensors, motors, etc, the Gumstix is still the king. Their boards all come with some form of 1-wire serial, PWM, plain old digital pins that you can use to do whatever, and the lower end ones let you at an embedded Atmel for simple 10-bit A->Ds. But be prepared for a very finicky setup, both hardware and code.

Price Features Community Hackability Good for
Dingoo Cheap video & audio
Wiz Audio processing, video output
iPod Touchscreen installation stuff
Didj Selling a bunch hacked up
Gumstix Robotics, sensors

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s