It was a rainy Boxing Day here in Connecticut, so I spent a bit of time playing with my Nokia N900. The N900 comes with a built in FM Receiver. However, software for running the FMRadio was not included on the N900. So, yesterday, I searched around and installed the fmradio package. To use the FM Radio package, you need to plug in headphones which it uses as the FM antenna. You can scroll up and down the radio dial, and when you find a station, add it to your presets. Even though you are using the headphones as an antenna, you can still use the speaker on the phone for the FM station. You are supposed to be able to get RDS as well, but I didn’t get any RDS messages. All in all, the fmradio package is fine for my use, but nothing special.
I also tried installing the Linux Infrared Remote Control, or LIRC. In theory, I should be able to set up my N900 as a universal remote. However, configuring it looks a bit complicated. I did manage to turn on the TV with it, but that is about all. I may spend time at some point trying to program it to better control my DVD player. The other thing that I’ve love to see it do is support TV-B-GONE. This is a simple device that turns off just about any type of television. As I read about people trying to set up TV-B-GONE functionality on the N900, I came across qtirreco. I tested that a little with even less luck.
Another thing that I did was visit Librivox. This site has recordings of many great works of literature that are in the public domain. I downloaded a poetry collection and now have around a hundred great poems that I can listen to on my N900. I hope to listen to much more great literature on my N900.
Then, there are the games. I’ve read about people working with various game console emulators, as well as potential copyright issues that this brings up. I’ve always told my kids they could play any game they could write and I started them off programming Logo years ago. More recently, I’ve been interested in Squeak.
Squeak is a modern, open source, full-featured implementation of the powerful Smalltalk programming language and environment. Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyze, and change. Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development.
I downloaded the source, compiled it in my Scratchbox on my Linux Laptop, and moved the package over onto my N900. Runs like a charm; almost. It brings up an Xwindow with Squeak in it. However on the small screen, it is nearly impossible to read the fonts. I tried checking around to find easy ways of changing the fonts, but without much luck. All of the instructions were based on clicking on the options within the window. However, the window is so small, it was very difficult to get the right options. I’m thinking of starting squeak on a different computer, and tweaking an image file to much more readable fonts and then trying to use that image file on the N900. If I can get all of this straightened out, I may try running Etoys on the N900.
If you’re doing anything interesting with the N900 or want to share applications or ideas, leave me a message.
“And so this is Christmas…” Last night, we ate the goose. This morning we opened the presents and now everyone is off in their own little worlds with various prized possessions. My big present of the year was the Nokia N900, which I received early and have used extensively. I expect to write much more about it over the coming days. Part of my horoscope summed it up nice, “Even though it's Christmas Day, you can't help but look at your phone”.
Other big gifts for me included a book on cider making and a hydrometer. I’ll use this to get a sense at how strong the cider I’m making really is. It will be estimates for this year. Next year I’ll perhaps get a little more precise in my cider making log and calculations about the cider.
I also received a painting that Miranda did of me as well as a comfy hat. Pictures of these will go up online at some point, and may already be up on one of my daughters’ social media sites.
Kim is reading a book about Serenity, Mairead is reading a book in Spanish, Miranda is watching Bones on her laptop, and Fiona is playing in Gaia with her new Linux laptop. Barley and Reilly are doing their dog and cat sort of things, and didn’t really get into their Christmas presents, although there is one treat that Barley did really like.
Social Media provided interesting present ideas. Miranda, who has gone by the name Gingerbread Ferret online, received ginger bread ferrets, and a ferret shaped cookie cutter. Mairead who had gone by the name Dragon Moon years ago, regifted the jacket Kim had embroidered a dragon against a full moon on to Fiona, after adding some decorations of her own.
A few virtual friends have stopped by and wished our family a Merry Christmas. Thank you. To all my readers today, I want to wish you a Merry Christmas. I’ll save the Happy New Year part till later when I get a chance to think about the year that is almost gone and the year that is coming.
Over the years, I’ve had a couple different GPS units. The first two were both made by Garmin and were incredibly rugged devices which served their purposes quite well. One was used primarily on my boat when sailing and the other was more designed for hiking and geocaching. Yet in the sake of ruggedness, they sacrificed one aspect that is very important to me, programmability. They both had wires that could be used to connect them to the serial port of a computer where a limited amount of data could be uploaded or downloaded, but that was about it.
My New GPS is my Nokia N900. I didn’t really get it to be a GPS and I’m not sure how much I’ll end up using the GPS functionality, yet I have had a bit of fun programming it. There is an API for getting to the GPS on the N900 called liblocation. The documentation is pretty good and provides a nice sample C program that can be compiled and run on the N900 to test things out. What is even nicer is the Python wrapper for the API. While not all the values that are available in the C API are available in the Python API, tweaking the Python script is very easy and provide a good way to rapidly prototype an application using liblocation.
I took the Python script from that page, changed the GPS location method to GNSS. While the GNSS mode takes a little longer to get an accurate fix, once it has connected to the satellites it is pretty accurate. In addition, it doesn’t require a network connection and unless I’m stationary where there is WiFi, I’m unlikely to have a network connection. I set the location interval to sixty seconds so I wouldn’t get flooded with information. Finally, I took out the data.stop call after the location fix was printed. This allows the program to run continuously printing out updates. I also added a timestamp, the altitude and the accuracy in my print statement.
I left it running and saved the data as we drove to Church. I cut and pasted some of the waypoints along the way into Google Maps to get this representation of the trip.
It is a good example of what can be done when the API is easily accessible from a scripting language like Python. I may expand on this a little more, as I explore different ideas of how Python gtk can be mashed up with liblocation on a Nokia N900.
Some of this investigation was prompted by a discussion on a mailing list of N900 users. While it is fairly easy to roll your own GPS applications using Python and liblocation, many of them would like to try and get existing applications that depend on GPSD to work. It may be that GPSD could be modified to support a call to liblocation for N900s, that an alternative GPSD could be written that would use liblocation and look like the original GPSD to other programs, or it might be that a shim could be written so that GPS data from liblocation could be made available on a virtual device that GPSD could listen to.
There is a project already in the works to create a miniGPSD. However, it is still in development and currently pieces appear to be missing.
Beyond the GPS programming, there is the Geolocation API for HTML5 that is likely to make all of this all the more interesting. So, another project may be to make my blog more location aware as HTML5 becomes more common.
Any way that you cut it, GPSes have sure changed a lot over the past decade. My old GPSes are still good for their purposes, but if you’re a geek wanting to play with location, the N900 sure is a fun toy.
Today, when I looked at my N900, I noted that it had little yellow square next to the battery indicator. It turns out that the Recorder application had an update. I ran the update and then tested the Recorder application again.
One very nice feature is that if you make a phone call in Speaker mode, you can record the whole discussion with the Recorder. I tried this on a call with Kim just to test things out, and then later on a phone call discussing a financial issue.
Sunday morning after the great blizzard of 09, which only brought us about five inches of snow, we have been digging out, making cookies and cake, and I’ve streamed some of it live on Qik.com from my new Nokia N900.
Unfortunately, the Internet was a bit slow, so the streaming did fall behind a few times. However, it did leave a digital footprint: