In the waning summer days since my last blog update I suffered two crushing laptop failures. Although neither laptop is completely dead, both are pretty much useless to me in their current state. First, my ancient PIII thinkpad decided it would only run for 3 minutes before an abrupt shutdown. Very frustrating. I can just barely open all the windows needed for openwrt coding and then, bam, it's done. A mere 2 days later the NVIDIA graphics chip fritzed out on my old Dell 620 (the one with the IZ2S development VM). The poor thing still boots and runs, but I can't see what it's doing. I'm gonna try to dismantle it someday and reflow the solder to the graphics chip. But that won't likely happen for a long time, if ever...
So now I'm down to an early EeePC netbook and a bunch of zipits. That's just barely enough to workaround my laptop problem, but it'll have to do. Since I was fresh off a successful rockbox build on the openwrt zipit, I figured that I might as well soldier on with that compiler and see what else it could do. Unfortunately I tend to work much faster with a real keyboard. The EeePC keyboard is extremely cramped but I can still sorta touch type without too much pain. So the first thing I did was to build all the SDL libs on the netbook. Now I can tinker on the EeePC first, before committing to work on the zipit.
Around the time of the laptop meltdown I managed to convince slug to rebuild the SDL library on his jffs and drop DirectFB to save a whole bunch of space. I'm thinking a small build of the links browser would be a much better use of the precious jffs space. But anyhow, he got it working only to discover he needed a way to do the splash screen without DirectFB. So I poked around and found imgv, already in the openwrt packages. It uses SDL for the graphics and has some nice features, but was lacking a command line interface that would allow it to run a timed splash screen. I couldn't imagine an easier project to practice with the native compiler on the zipit. In almost no time we had a working SDL splash screen and slideshow program, and slug made us a new rc12 jffs with plenty of room to grow.
Then walrus45 followed up on my imgv work and pointed out there was also a zgv openwrt package that could use some lovin. Once upon a time I took a stab at building zgv for IZ2S because of the spiffy thumbnail image selector, but never got it to do much of anything. For some reason, this time it was easy. I just configged it to use SDL instead of svgalib, tweaked the fileselector to fit better in 320x240, and miraculously it all seems to work. I still gotta get my changes worked up into an openwrt patch for github and the official packages. Then maybe I'll try and build it with the native compiler on an IZ2S zipit.
You can fit up to 8 thumbnails on screen with the current set of hacks. Originally it was limited to 2 thumbnails at 320x240, which (as you could imagine) was not terribly useful. Here it is, zoomed to fullscreen on an old cell phone picture of the dog. I haven't yet played with the slideshow feature to see how it compares to imgv.
Speaking of beagles... Also around this time beaglebreath resurfaced and got me going again on the gpio code. We eventually worked out that the kernel needed a small patch to enable the CIF camera gpios for use in sysfs. Mozzwald supplied the patch, Slug whipped up a new kernel and voila, the gpios were working. I managed to build some gpio testing hardware (no solder required ;) and beaglebreath got his weather sensor working on his openwrt zipit. I'd still like to see if picoc can handle the timing requirements, because I think it'd be cool to have a full gpio prototyping setup on a zipit with no SD card.
open collector gpio pins work. The three clips on teeny tiny pins of the zipit connector had a habit of falling off whenever I tried to type a gpio sysfs command on the zipit.
"program": mpg123 -C@ %
I also unchecked something about X-Windows. It didn't work at first, so I went back to the setup menu and picked "Save Options". That seemed to do the trick. Now I need to figure out how to control it better. For example, Alsa Mixer lets me change the volume, but its a challenge to get there.
Here's the goodies (not much, really):
A zgv executable for openwrt (I still need to update the patches on github)
An imgv ipk for openwrt.