1. Introduction

This document strives to give an overall picture of the maemo platform to developers willing to bring their applications to the Nokia Internet Tablets. These mobile devices run a Linux-based operating system on ARM architecture. The maemo software development kit (SDK) is currently provided natively for desktop GNU/Linux distributions, such as Debian and Ubuntu. The SDK can also be used in other operating systems through a virtual environment.

The main focus is to explain the basics necessary to create and port maemo-compatible software. It is simple to get started, even if concepts such as cross-compilation or touchscreen user interface design are not familiar. Those who are familiar with GNU/Linux, GTK+ toolkit and C programming language will feel right at home.

This document is also a good starting point for software development for any platform or device related to the GNOME Mobile family. As well as giving an introduction to the new frameworks, libraries and tools provided by maemo, it explains the overall design concepts for this new generation of Internet-capable devices.

History and Philosophy

Maemo uses known open desktop frameworks to enable easy software portability and familiarity. This strategy is quite different compared to many Linux-based media players and phones that are closed, or require special development tools. About 90% of the maemo platform is open, and the majority of that comes from upstream open source projects. The rest that is closed consists of e.g. parts of the user interface and device drivers, owned either by Nokia or third-party providers.

One important philosophy is to enable easy development and hacking. Developers can make modifications to the platform, e.g. to introduce their own kernel modules. Nokia also hosts an active open source maemo community around the platform (maemo.org).

Internet Tablet Overview

The devices are smaller than a laptop, larger than a PDA, and quite lightweight. Some of them (e.g. Nokia N810) have a small keyboard, and all of them have a stylus and a touch-sensitive screen. The stylus-driven GUI will cause some design challenges later on, since software will need to be designed with this in mind. There is also a possibility of using an on-screen keyboard with the stylus, including handwriting recognition and a predictive input system to aid the user. In all devices, there is a limited set of hardware buttons available for applications.

Figure 1.1: The Virtual Keyboard (VKB)
Image hildon_helloworld-5

As programmers appreciate knowing a bit about the fundamentals of the devices for which they program, table 1.1 presents a short list of the most important components.

Table 1.1: Internet Tablet components
N800 N810 N810 WiMax Edition
an 800x480 pixel, 225 pixels-per-inch (PPI) wide-screen touch screen display with 16-bits per pixel color depth
Hardware buttons with a layout optimized for Web surfing
Virtual Keyboard Small slide-out keyboard (& VKB)
Wi-Fi (802.11b/g)
  WiMAX 802.16e / 2.5GHz
External GPS via Bluetooth Integrated GPS (external also supported)
1500 mAh battery
3.5 mm stereo audio out socket (works also as mic input on N800/N810)
Built-in VGA resolution webcam
USB 2.0 port (in target mode by default)
128 MiB of RAM
256 MiB flash memory with JFFS2 file system
Two memory card slots, SD, MicroSD, MiniSD, MMC, and RS-MMC (some types with extender). One memory card slot, compatible with MiniSD and MicroSD (with extender).
Bluetooth 2.0
TI OMAP 2420 multi-core processor with maximum clock frequency of 400 MHz, with:
  • TMS320C55x DSP logic (Backward compatibility with the 54x-series)
  • ARM1136 core ("ARMv6") with an MMU (Backward compatibility with ARM926)

The USB port normally acts as a USB target, although the direction can be reversed, and the device can be the USB host (i.e. initiator). The port is not capable of providing USB power, so an external power feed is necessary. This allows various usage scenarios, when the R&D mode is enabled on a device. The default version of Internet Tablet software runs in target mode only.

Some noteworthy points about the hardware and software:

N.B. The above feature list holds for the "end user" version of the software that is shipped with Internet Tablets.

sponsored by Nokia Corporation