The Nokia #N900 and the Next Ideal Mobile Device
I have had a Nokia N900 cellphone for almost a year now, and for me, it has been the best mobile device I’ve had yet. There are lots of interesting developments continuing to go on with the phone, even though it and its operating system appears to be reaching the end of its life. So, I thought this would be a good chance to look at what ideas from the N900 and other devices ought to be carried forward to future devices. This is, perhaps, especially relevant with Nokia now selling the N8 and MeeGo developers having a conference right now.
First, I should note that everyone has different needs and desires of a mobile device. For some, simply making phone calls is enough. Others want texting, the ability to take pictures and videos, the ability to play music and games, the ability to run various apps, and some even want a device that is easy and fun to hack. As you add on more features, you also add on complexity and people who want simple devices may get frustrated with very complicated devices.
For me, the ability to talk, text, photograph, stream video, play music and games is essential. The interesting areas come when you start talking about apps and hacking. I’ll save some of that for a geekier part of this post.
Talking is pretty straight forward, not much to say there, other than the ability to talk over other networks, like SIP and Skype is important to me, although I don’t use it much. Texting is also pretty straight forward. For me, it includes having a nice slide out keyboard to use. On screen keyboards and T9 typing are fine, but if you really want to type, you want a decent keyboard. The N900 keyboard has been fine for me.
To me, photography from a mobile device is important. The N900 came with a 5 Megapixel camera. That sure beat the 1.3 Megapixel camera on my old phone, and was almost as good as the 7 Megapixel digital instamatic type camera I use. The N8 has a 12 Megapixel camera. I’m really interested to see what can be done with that.
The N900 has a perfectly functional camera app. However, I recently started using the BlessN900 camera app, and it makes a real difference. The pictures come out much nicer. It supports High Dynamic Range (HDR) photography and bracketing. To me, a 12 Megapixel camera and an application like BlessN900 are the baseline for an ideal mobile device.
I currently stream video using QIK which is fine for me, and I use the default music player on the N900. I do use uPnp so I play music off of my home Linux Server using Mediatomb through my N900 when I’m in range. I haven’t loaded up my home Linux Server with as much music as I would like, but I can easily imagine an audiophile putting a giant collection of music on some sort of uPNP player and listening via an N900.
In terms of games, I really like accelerometer based games and wish there were more of them out there. However, I don’t play games that much. However, this gets to the broader issue of apps.
The apps market is currently split up between iPhone apps, Android Apps, and everything else. The N900 does great in the everything else department. If the application is open source, there is a good chance that someone has ported it to the N900. For that matter, people have been putting together various emulators so you can run different apps on the N900. Yet this still leaves the iPhone and Android apps.
I have used Nitdroid, and if I want to run an Android app, I reboot my N900 to run Android. Not all the functionality has made it over to Nitdroid, so I only run it when I really want to test an app, and I know that not all the apps will function properly. If I want to run an iPhone App, as far as I know, I’m out of luck.
I’ve now experimented with several different ways of running different operating systems on my N900. Initially, I used bootmenu. Then I started using Multiboot, which works nicely with Nitdroid. Now, the ‘power kernel’ supports uBoot, which is supposed to work nicely with Meego and be a much cleaner way of booting different operating systems. I haven’t played with uBoot enough to really have much to say about it yet.
However, this does get to something important to me. I want to have the option to easily select which OS I want to boot. Multiboot gives me a nice menu. It would be great to see some similar menuing capability built on uBoot. I worry that the effort going into making the N900 a nice multiboot device might not be as readily accessible as multibooting currently is to the N900. I hope that whatever the idea next mobile device is, it comes with multiboot and I hope that MeeGo developers are looking at ways to make MeeGo based devices multiboot nicely.
Yet rebooting to run a different operating system is fine for geeks who have time to play around with things. Another approach is to use chroot. I’ve run Debian and Meego using chroot and it runs nicely. I don’t have to shutdown my device and restart it with a different OS. At times it can be slow or cumbersome, but it is a nice option.
In the chroot arena, I would like to be able to have a single operating system image that I could boot using uBoot, or bring up in Maemo (or ultimately MeeGo) with an easychroot program. At present, I have two different images of MeeGo on my device. One as an image file in my MyDocs directory and the other as a file system on my SD card. I tweeked the easychroot program to use the SD card file system and I think there may be some other nice tweeks coming in this direction. Ideally, I’d love to see the functionality of Multiboot, uBoot, and easychroot converge. I would like to use uBoot to chose which OS to boot, have it use configuration files and a menu similar to Multiboot and give me the ability to chroot from whichever OS I’m running to one of the other OSes that I have loaded on my machine. Yeah, it’s a tall order, but it illustrates what I’d like in my ideal device.
Of course for me, some of it is the joy of being able to hack in multiple operating systems. For other users, it could be as simple as wanting to run the widest array of applications. Ideally, I would like to be able to click on a menu item and run an Android App, a WebOS app, a MeeGo app, a Maemo app, or some other systems app and let the menu system chose what needs to be loaded to let the app running.
Now to some of the nitty gritty stuff. I like it that power kernel supports IPv6. I don’t do a lot with IPv6 yet, but I believe it is important. I also like the access to how the battery is functioning, the different types of file systems that can be mounted, the ability to be a mobile hot spot, and probably a bunch of other things with power kernel that I’m overlooking.
I am glad to see that host mode USB is now being tested. I’ve loaded it and just need to get a proper cable to be able to start testing it. Ideally it would be nice to have two different USB ports so host mode could be used along with traditional usb functionality. I’m interested in finding out if I can use a USB hub to support multiple USB devices.
For video out, the RCA type connection works well for me. At some point HDMI will be important, so my idea device would probably support both for the time being. I would also like to be able use a Wii remote as my mouse, or perhaps a different mobile device. I could easily imagine a gathering where everyone brings their mobile devices. They hook one up to the television and everyone else uses their mobile device as a remote for some very serious gaming.
So, I’ll continue to read the maemo discussions and might even start reading Meego discussions again sometime soon. I’ll chat with anyone who is interested how to take some of the great development energy from around the N900 to continue with whatever the next mobile device will be, and I’ll happy run my N900 as long as I can.
That said, I’ll skip over a lot of the posts about how complicated it is to get power kernel 45, uboot, hostmode USB, fcam drivers and and other components working. Yeah, it’s complicated, but it is worth it to find out how the device really works and get it do do lots of new things.
So, what do you think? What should be in your next ideal mobile device?