Category Archives: My Projects

JuiceBox Revisited…

My Pear Photo Transferred to the Mattel Juicebox

In a previous blog entry, I mentioned that I had picked up a $12 Mattel Juicebox that I was thinking about hacking. I’ve done relatively little with it since then, but this morning I felt compelled to at least convert a picture from normal jpeg format to the internal format used by the player, without of course using the Windows XP software they ship with the thing (I think I already threw away the CD in fact…)

The format is simple: 240×160 12 bit values, with 4 bits for each of red, green and blue. That’s it, no headers at all. Oh, and you must name the file with a .jbp extension (Juice Box Picture?). I wrote a simple program to convert ppm files to this format (without dithering, but with 4 bit color it isn’t terrible), mounted an SD card, copied the file over, unmounted it, and then put it in the juicebox.

Voila. Worked perfectly.

Unfortunately, I’m camera-less today, so I’ll update with a picture later today. Witness the picture to the right.

Why Blog about Random Stuff?

I do monitor various weblog indexers to see who is linking to this blog. Most of the time, they are really good at finding my own inter-site links, but occasionally I find out that I get links from unexpected sites. What was really cool was to discover that The MacAlba linked to me as one of the inspirations for his (successful) attempts at dropping some weight. Cool, and congratulations to Gordon.

I haven’t given an update to my attempts at weight loss recently, largely because there has been so little motion in that regard. I’m currently in a plateau. In fact, it’s more than a plateau, it is a plain, stretching as far as the eye can see. I had my weight down as low as 258 for a while, and am now (courtesy of some vacationing in Napa) bouncing around 264. To help snap the plateau, I’m beginning to augment my cardio workouts (which I do four times a week) with a short amount of strength training. I’m also trying to rededicate myself to journaling all the food I eat, and monitoring portion size.

Weight loss has never been harder or more discouraging than it is now. Still, I’m not gaining weight (at least, not much), I guess I’m not doing too badly.

I checked my BMI the other day, and found that I’m right on the borderline betweeen “overweight” and “obese”. Yahoo.

Life is better at 264 than it was at 323. I have to remind myself of that.

JuiceBox Hacking

The Mattel Juicebox (mine is red, not green).I can’t really stop geeking even when on vacation with my wife. We stopped in at the Target in Napa to pick up some toothbrushes (I always forget to pack ’em) and found that they had the Mattel Juicebox on the clearance aisle. The Juicebox is a tiny little media player intended for kids, but they were expensive, incompatible, and didn’t sell too well. But I got one for $12 or so, and another $11 for a compatible SD card reader for it, so I snapped it up. I was hoping to be able to turn it into a simple little video player, but it seems like the video functionality is difficult/impossible to access. Still, it is a cheap little mp3 player, and you can convert it into a photo viewer, so it might be fun to play with. The eLinux.org Wiki has the most information about its internals that I have found so far. Stay tuned for internal photos and further reports.

Heart Rate Log For Today’s Exercise

Heart Rate, Jun 04, 2005Well, today I wore my Polar heart rate watch to the gym, and downloaded this nice log of my 45 minute workout. I did 30 minutes on the treadmill, alternating a quarter mile at a four mile per hour pace, and a quarter mile of running at a five mile per hour pace. I then did 15 minutes on the elliptical trainer at a mostly easy pace.

I uploaded the data from my watch to the computer, exported it as a text file, and then wrote a simple little gnuplot script to graph it and dump it as a png file.

Groovy.

Remote Control of the Nikon 4500?

Hey folks, I’ve passed some of my helpful technical tidbits on to you, it is time that some of you work for me. 🙂

I have a Nikon Coolpix 4500 that I want to control from, well, some bit of hardware that I have lying around. Ideally that would be Linux/FreeBSD/some Unix, but Windows would be okay too. I’ve tried using cPix, but while I have got it to connect via the serial cable, it seems very slow to initialize, and the instant I do anything meaningful, it seems to hang the camera badly enough to require pulling the battery to reset it.

I basically want to be able to control all the common controls on the camera to do some time lapse and automated capture. Source code and/or scripting would be a big plus.

Anyone?

Fun with a digital camera, Gimp, and an action figure

Starcraft GruntI’ve got a lot of toys in my office. My friend Jeff and I used to play Starcraft online quite a bit, back when both of us were single guys living the high life. During that time I had just begun dating my wife, and so I have a number of toys that our son bought for me, including this cool Starcraft infantry guy. The action
figure is very cool and poseable. For whatever bored reason, I snapped a couple of quick shots, dragged them into gimp, removed the background, tweaked the color, improved the sharpness and converted it to an 8-bit png image. I think it looks pretty damned cool for 3 minutes of work.

I wonder if someone could do a complete comic strip using similar techniques. Beats drawing, at least the way I do it. 🙂

Video Encoding Experiments

I did some quick experiments to check the compatibility of video files that I converted and my new Philips DVP 642 DVD player. I wanted to check and see if ffmpeg would generate files which were compatible and at which bitrates and resolutions.

The long and the short of it: everything sensible I tried worked.

Details:

I downloaded a Superman cartoon from archive.org. The mpeg was 506 seconds long, and was a 397 megabyte MPEG2 file. I first tried converting it to a QCIF sized image with very modest bitmap rate using the following command:

ffmpeg -i billion_dollar_limited.mpeg -f avi -vcodec mpeg4 -acodec mp3 -b 200 -ab 56 -s qcif billion1.avi

And then a more high quality one, at full frame sized…

ffmpeg -i billion_dollar_limited.mpeg -f avi -vcodec mpeg4 -acodec mp3 -b 1000 -ab 128 billion2.avi

and then finally a two-pass conversion at the same bitrate:

ffmpeg -i billion_dollar_limited.mpeg -f avi -vcodec mpeg4 -acodec mp3 -b 1000 -ab 128 -pass 1 billion3.avi
ffmpeg -i billion_dollar_limited.mpeg -f avi -vcodec mpeg4 -acodec mp3 -b 1000 -ab 128 -pass 2 billion3.avi

I burned them onto a CD-R blank, and they all worked, with the variation in quality that you might expect. The two-pass version was pretty darned nice. Fun stuff.

More fun with reflecting balls

After yesterday’s post, I decided that I’d like to try to make some better reflection maps. So I shot this image of my office reflecting in a Christmas tree ball. The image is pretty noisy because my office isn’t brightly lit. (Addendum: I also had the camera set for outdoor white balance, which makes the overall image look pretty crufty. I just shot a different image, and got this better image, which has a magenta hue, but isn’t yellow orange at least.) I then cropped it to a square containing just the ball, and passed it through my unwarping program:

Cylindrical Projection of My Office

I have a different version of my program that produces a cube map, which is perhaps more intelligible (click on it for a bigger version):


Cube Map of My Office

It appears that the quality is pretty much limited by the poor surface of the reflecting ball. You can see a lump in the ball causes the book in the foreground to have a distorted outline.

Still, fun stuff.

Bay To Breakers

Well, according to the Bay To Breakers website, I came in 21,753rd. Carmen came in 21,747th. Yesterday it seemed to be different: we saw 2174 and 2175 which didn’t seem right to us (there were lots of people ahead of us) but maybe their website had a glitch. My official time was around 2:42:21, but we didn’t cross the start line for about twenty minutes, so I suspect our time should have been closer to 2:20:00 or so. I should have been able to tell you exactly what my time was, but my super spiffy PolarUSA heart rate monitor has an annoying feature that it only keeps track of the last exercise session, and I managed to bounce a key and accidently start a new session, which deleted all the detailed information for the race.

Sigh. Piece of crap. I was looking forward to seeing my pulse rate spike on the Hayes Street Hill.

I was carrying a GPS during the race, so I should have a Google Map track of the route sometime later this week. We should be able to derive all the timing info from the saved route.

Weekend Experiment

Infrared PhotographEric’s exploration of digital infrared photography over on flutterby has urged me to try to take some more infrared photographs. Toward that end, I’ve created Experiments in Infrared Digital Photography in my brainwagon photo gallery. So far, there are only three images, all derived from a single shot of some plants that I did yesterday. I was experimenting with changing the result using gimp. Let me know what you think.

A self-referential puzzle

I’m bored, so I decided to amuse myself with a self-referential puzzle. This post on brainwagon.org (including the title “a self-referential puzzle” but not any footers) contains thirteen As, four Bs, four Cs, seven Ds, fifty five Es, nineteen Fs, five Gs, ten Hs, twenty nine Is, fourteen Ls, four Ms, thirty three Ns, seventeen Os, five Ps, twenty Rs, thirty eight Ss, thirty five Ts, eleven Us, nine Vs, six Ws, two Xs, nine Ys, and seven Zs.