Nokia Smartphones: platforms and OSes Martino Ruggiero martino.ruggiero@unibo.it Outline • Introduction to Nokia platforms • Mobile Computers: – Nokia N900 – Maemo • Smartphones: – Nokia N8 – Symbian • Nokia application development: – Qt Nokia platforms & strategy Nokia N900 HW specs • Display – The N900 has a 3.5 inch touch-sensitive widescreen display with a 800x480 pixel resolution (105 pixels/cm, 267 ppi). – The touchscreen is resistive (i.e. not multi-touch). – The 16M colors TFT LCD panel is a Sony ACX565AKM. – Content Adaptive Backlight Control: • It allows reducing backlight or brightness levels depending on the image being shown to save power. • For instance, if the image contains only dark pixels, the brightness of the backlight can be reduced. This will naturally boost the pixel value. N900 Processor • The N900 is powered by a Texas Instruments OMAP 3430 ARM Cortex-A8 running at 600 MHz. • The OMAP 3430 consists of: • ARM Cortex A8 processor running at 600Mhz: designed in 65-nm CMOS process – Imagination Technologies PowerVR SGX530 GPU: supports OpenGL ES 1.1/2.0, OpenVG 1.1, OpenGL 2.0/3.0, DirectX 9/10.1 and OpenCL – TMS320C64x DSP/ISP: Digital/Image Signal Processor running at 430 Mhz. – IVA 2+ accelerator: as described on TI web site, a second generation poweroptimized version of the imaging video and audio accelerator used in TI's DaVinci technology. Enables multi-standard (MPEG-4, H.264, WMV) encode and decode at DVD up to HD resolutions. IVA 2+ provides H.264-based video at greater than CIF resolutions. OMAP3430 Processor • • • • • • Superscalar ARM® Cortex™-A8 RISC core Processor designed in 65-nm CMOS process technology IVA™ 2+ (Image Video Audio) accelerator enables multi-standard (MPEG4, WMV9, RealVideo, H263, H264) encode/decode at D1 (720x480 pixels) 30 fps, and up to 720p resolutions Dedicated Imagination POWERVR SGX 2D/3D graphics hardware gives user interface and gaming developers the power to create rich graphics effects with cinematic realism Support for OpenGL ES 1.1, ES 2.0, and OpenVG Integrated Image Signal Processor (ISP) for faster, higher-quality image capture and lower system cost N900 Memory & Mass storage • The N900 has 256 MB of RAM. • The Nokia N900 has 32 GB eMMC and 256 MB NAND nonremovable storage. – The 256 MB NAND is formatted using UBIFS. It contains the bootloader, the kernel and root filesystem. – The 32GB eMMC is split into 3 partitions: • 768 MB of swap • 2 GB mounted as /home (ext3). • 25 GB of free space mounted as /home/user/MyDocs (VFAT). When the device is put in mass storage mode, this partition is the exported partition. • A microSDHC extension slot – not directly accessible, i.e. it requires removing the battery cover. N900 Power management • • The N900 includes a Texas Instruments TWL4030 which acts as an all-in-one audio and power manager. The key features include: – Audio • • • • • • • Integrated Voice and Audio Codecs Dual Stereo up-link and down-link Stereo and Mono support Audio Amplifiers Analog/Digital Mixing Speaker drivers Digital MICs support – Battery Charger • • • • Regulated supply support USB Charging Car Kit Back-up battery switch – Clocks • 32KHz Oscillator and integrated RTC – Transceivers • High Speed USB2.0 On-The-Go transceiver – Drivers • LED drivers • Vibrator drivers OMAP Power Management • • The PM branch is a development branch of the linux-omap kernel for the purposes of developing and stabilizing the PM infrastructure for OMAP and submitting it upstream. Features – – – – – full-chip retention in idle and suspend full-chip OFF in idle and suspend idle PM via CPU idle active PM via DVFS using CPU freq support for multiple OMAP3 boards N900 Sensors and connectivity • • • • The N900 has built-in STMicroelectronics LIS302DL accelerometers. The bluetooth chipset is a Broadcom BCM2048. The wifi chipset is a Texas Instruments WL1251. FM/RDS receiver support is provided by the Broadcom BCM2048 (which also provide the bluetooth support for the device). – • The FM transmitter support is provided by Silicon Labs Si4713 chipset. – • • 640x480 VGA resolution, 0.3 megapixel The GPS of the N900 is from TI. It supports: – – – • • • The main camera is associated with Carl Zeiss optics, Tessar lens. The front camera of the N900 is a ST Microelectronics VS6555. – • The FM Transmitter has an internal antenna and supports frequencies from at least 76.00Mhz to 108.00MHz. Infrared (IR) The main camera is a Toshiba ET8EK8 (5MP). – • No software is currently installed on the device to use the FM receiver but some are available as intallable apps. Integrated GPS, Assisted-GPS (via supl.nokia.com), and Cell-based receivers Pre-loaded Ovi Maps application Automatic geotagging Ambient Light Sensor (ALS) Proximity sensor The N900 has a 38 keys sliding backlit keyboard. Maemo • Maemo is a software platform that is mostly based on open source code and powers mobile devices • Maemo Community is an open source community developing software around the Maemo platform. • The Maemo community has over 22.000 registered members that contribute to more than 900 community development projects in the Maemo Garage. Maemo: Software Platform • • • The Maemo platform is the core software stack that runs on mobile devices such as the Nokia N900 The Maemo SDK provides an open development environment for applications The Maemo platform consists of the software stack from the Linux kernel to the Maemo APIs and the Hildon UI framework. – • Commercially available devices running on Maemo come with the pre-installed Hildon UI and a set of applications delivered by Nokia. It is possible to develop other UIs on top of the Hildon UI framework. Maemo platform is based on Linux operating system which itself inherits its architecture from the Unix operating system. – – Linux and other open source projects contributing to the Maemo platform embrace sharing of source code, collaboration and open development model. The Maemo community promotes these values by keeping the Maemo platform open wherever feasible, by sharing source code, and by contributing code directly to the upstream projects. Key Components of the Maemo Platform • The Maemo platform is based on the Linux operating system kernel. – Linux is a monolithic kernel that supports multiple hardware platforms and is able to support a wide range of different kinds of devices from wrist watches to large server systems. – Currently all devices running on the Maemo platform have an OMAP chipset, which contain a generalpurpose ARM processor and a DSP unit. • The user interface architecture of Maemo 5 is based on GNOME framework, especially the GTK+ widget set. – GNOME is a leading application framework for desktop Linux systems. – Maemo platform has inherited many central components such as GTK+, the GStreamer multimedia framework, the GConf configuration management, and the XML library. – The Maemo platform extends GTK+/GNOME technologies by providing extensions for a mobile desktop. Evolution of Maemo • A series of Internet Tablets with touch screen have been built until today with the Maemo platform. – The first device was the Nokia 770 Internet Tablet that was launched in November 2005. The Nokia 770 Internet Tablet allowed Internet access over WLAN connection. – The next device on the Maemo platform was the Nokia N800 Internet Tablet built on Maemo 3 release. It added Skype/VoIP-calls over WLAN and had an integrated camera. – Another step forward was the Nokia N810 using Maemo 4. It has also a full QWERTY keyboard beside the touch screen, a Mozilla technology-based Internet browser, GoogleTalk support, and GPS onboard. – Maemo 5 was a major step in the evolution of Maemo. Maemo 5 introduced a completely redesigned finger-touch UI, cellular phone feature, and live multitasking on the Maemo Dashboard. Maemo 5 is computer technology powering the latest Maemo device, the Nokia N900. Maemo Meego • • • MeeGo is a Maemo evolution Meego blends Maemo with Intel’s Moblin software to create an open platform for multiple processor architectures. Applications for MeeGo can be deployed on a range of mobile devices such as: – mobile computers, – netbooks, – tablets Nokia N8 • • N8 features a 680MHz ARM 11 processor along with a “3D Graphics HW Accelerator with OpenGL-ES 2.0 support”, it also features 256MB of SDRAM and 512 MB of NAND memory. AMOLED capacitive touchscreen, – – – – • Storage Memory – – • Bluetooth 3.0 HDMI Micro USB connector and charging High-Speed USB 2.0 (micro USB connector) FM Radio/Transmitter GPS and navigation – – – • Internal memory: 16 GB MicroSD memory card slot, hot swappable, up to 32 GB Connectivity – – – – – • 16M colors Size 360 x 640 pixels, 3.5 inches Multi-touch input method Proximity sensor for auto turn-off Accelerometer sensor for UI auto-rotate Integrated GPS, A-GPS receivers Ovi Maps with free car & pedestrian navigation Compass and accelerometer for correct orientation of display Camera – – – – 12 megapixel camera with Carl Zeiss optics Xenon flash Face recognition software Secondary camera for video calls (VGA, 640 x 480 pixels) Symbian • Symbian OS is one of Nokia's mobile operating systems for mobile devices and smartphones, with associated libraries, user interface, frameworks and reference implementations of common tools, originally developed by Symbian Ltd. – It is a descendant of Psion's EPOC and runs exclusively on ARM processors, although an unreleased x86 port existed. • In 2008, the former Symbian Software Limited was acquired by Nokia and a new independent non-profit organization called the Symbian Foundation was established. • Symbian OS and its associated user interfaces S60, UIQ and MOAP were contributed by their owners to the foundation with the objective of creating the Symbian platform as a royalty-free, open source software. Symbian Foundation • The platform has been designated as the successor to Symbian OS, following the official launch of the Symbian Foundation in April 2009. – The Symbian platform was officially made available as open source code in February 2010. • Devices based on Symbian OS accounted for 46.9% of smartphone sales in 2009, but the platform's market share dropped to 41% as of Q2 2010. – Some estimates indicate that the cumulative number of mobile devices shipped with the Symbian OS up to the end of Q2 2010 is 385 million. Symbian design guidelines • Symbian OS was created with three systems design principles in mind: – the integrity and security of user data is paramount, – user time must not be wasted, – all resources are scarce. • To best follow these principles, Symbian: – uses a microkernel, – has a request-and-callback approach to services, – maintains separation between user interface and engine. • The OS is optimized for low-power battery-based devices and for ROM-based systems • Symbian features pre-emptive multitasking and memory protection • Applications, and the OS itself, follow an object-oriented design: – Model-view-controller (MVC). Symbian and the limited resources • There is a strong emphasis on conserving resources • All Symbian programming is event-based – The CPU is switched into a low power mode when applications are not directly dealing with an event • Similarly the Symbian approach to threads and processes is driven by reducing overheads. • The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build a single-core phone around it – A phone in which a single processor core executes both the user applications and the signaling stack – This has allowed Symbian EKA2 phones to become smaller, cheaper and more power efficient than their predecessors Symbian System Model • The Symbian System Model contains the following layers, from top to bottom: – UI Framework Layer – Application Services Layer • Java ME – OS Services Layer • • • • generic OS services communications services multimedia and graphics services connectivity services – Base Services Layer – Kernel Services & Hardware Interface Layer Developing on Symbian OS • • • • • • • • Qt Symbian C++ Python Java ME Flash Lite Ruby .NET Standard C/C++ • Deployment – Applications must be Symbian Signed for Symbian OS 9.x in order to make use of certain capabilities (system capabilities, restricted capabilities and device manufacturer capabilities). – Applications not using these capabilities (including only requiring user capabilities) can instead be self-signed for free.