Monday, October 30, 2006

ZipIt, the WiFi music player

Here's what I've been fooling around with today.I wanted to turn the zipit into a music player since I got the first one but for reasons I've already detailed in another blog entry it will never make a good standalone music player, however it makes a great wireless network jukebox.

I modded and compiled Relief which is a text-mode file browser, playlist manager and music player frontend, and now have it running fine on the zipit.

So why not MOC, cplay, ? Well I've been looking for frontends for a while now but besides cplay and MOC I couldn't really find anything worth mentioning. I didn't want to use cplay because it needs python and MOC would've needed tremendous rework. Relief is simple, small and does what it's supposed to.

As for the players, I'm using the Cirrus decoder for mp3s (of course) and a modified version of ffplay for FLACs.

I've tested with 320kbit/sec MP3 and random FLAC files, they play fine from NFS without a single skip or stutter.

I couldn't get OGGs to work with ffplay but didn't really bother either as I don't use OGG. As for Musepack it's too much for the CPU (libmpcdec is anyway, 15 seconds decompression for 2 seconds audio...)

Thursday, October 19, 2006

ViewML on the ZipIt

First I should probably mention that I only compiled Pixil which is just the graphical environment you see here, the whole idea of Linux on the ZipIt started here the place to get most information about it is the eLinux wiki and I'm using a slightly modded version of Stephanie's linux flash image (the server's running on her ZipIt) I didn't have anything to do with the linux part (besides adding an already existing pivot_root script to an already existing flash image :-)

I've managed to produce a buildroot that's uClibc is close enough to the one in Stephanie's image, so I can use dynamic linking now without stuff instasegfaulting.

I've managed to compile ViewML, Pixil's browser.. found some patches to get the source compiling with newer gcc versions but it's really ugly still, not to mention unstable. (an older libwww might solve that but it would be better to fix it and keep the new one :-) I've recompiled nano-X with libjpeg libpng libtiff and freetype2(didn't set that one up to work yet though)

Positive sideeffect of having a compatible buildroot is that Pixil screentop widgets (backlight and battery meter) and the Sysconfig's config pages work fine now as seen below. Well okay the backlight thing and the battery meter doesn't actually work but at least they start up and are visible. And the sysconfig pages don't really like 320x240 (problem not apparent on the one below)

ViewML can be controlled from the keyboard to some extent.. You can't actually open links you'd need a softmouse driver for that but you can scroll around and enter new addresses. Now forms appear to cause some problems and it segfaults if you try to submit them so that needs some serious fixing.

Images (even really large ones) show up fine, tables are rendered correctly as well, and while it's no Gecko it beats using lynx or the PalmOS4 browser. However it takes 30 seconds or possibly more to render some sites.

So I decided to try it out live and briged the wifi stick's connection with the server's.

Submitting the query from the google mainpage generates a segfault but if I open the url directly the result page shows up fine.. Oh and I've decided to try and take a few pictures of the screen again.

and the picture below shows why a softmouse driver is needed

Tuesday, October 17, 2006

Pixil on the ZipIt

Okay so I've been playing around with Pixil which is like a syncable PDA operating system running on linux, and of course I wanted to compile it for the ZipIt.

First I had to get nano-X working correctly, there was a patch but that actually made things worse(screen corruption), ended up disabling the ZIPIT_TRANSLATION driver it added. Tried the INVERT4BPP driver which also appeared to cause some glitches so in the end I tried the SA1100_LCD_LTLEND driver and ran lcdpal 0 after the nano-X server Pixil WM started up, it worked perfectly.

I also compiled in SERMOUSE support, and connected a serial mouse through a max232 as I noticed in prior tests that Pixil is pretty much useless without a mouse :/

I was also having problems taking good pictures of this screen (this one's the one I did the crappy backlight mod on and I still have no inverter for it)

so I coded up a quick tool to convert 4bpp raw bitmap data directly from the framebuffer (cat /dev/fb0 >file) to 8bpp raw bitmap data (exe, source) which can already be opened and converted with Irfanview.

The outcome: Pixil on the Zipit (altough with an old serial mouse hooked up)


Fixed them :-) Couple of things don't work (that includes the web browser sadly that doesn't even compile) but the basic PDA functions work fine. Games on the other hand do not. Neither does anything that uses dynamic libraries (but that's probably a problem with my buildroot which I am too lazy to look into)

the OSK is kinda broken.. the keys get a bit wonky after pressing, the scribble tool works fine though (yeah.. neither is of any use on the ZipIt)

Friday, October 13, 2006

Zipit Modding Cleaner, Faster, Stronger

Got two more ZipIts off ebay, one for an average price slightly used, the other broken (in great condition though) I opened the broken one up and quickly diagnosed the problems, firstly the 3.3volt stepdown was burnt, still having a free sample from Linear tech I replaced it and the zipit started up, I noticed that it didn't charge the battery so the next step was replacing the LiIon charger ic (gotta love free samples)

and I had a completely functional ZipIt. Learning from past mistakes I decided on a few things.I wanted from modding this.

Firstly I really didn't want to worry about the stability of the MMC socket mount so I decided to use 5 minute epoxy but not wanting to rely just on glue I also applied a bit of sulphuric acid and soldered the socket onto the RF shield.

I can pretty much trust it now without worries.

Secondly I wanted to do the MMC mod's "soldering to resistors thing" only ONCE and I wanted to forget about it afterward.

So I used better wiring than last time and a blob of transparent 5 minute epoxy instead of hot glue to secure it

and last but not least I wanted the slit that I had to cut out from the casing to "just fit" without the tremendous amount of excess that I cut out last time.

and for the sake of keeping it clean I didn't do a serial port mod. I also didn't commit the mistake of dismantling the screen to do the backlight mod. That turned out horrendously last time.

I'm really satisfied with this one