35
Openmokast: An open mobile broadcasting software stack for handheld devices Presented at FOSSLC Summercamp 2009 Ottawa, Canada by Jean-Michel Bouffard <[email protected]>

Openmokast: An open mobile broadcasting software stack for handheld devices

Embed Size (px)

DESCRIPTION

Slides about the Openmokast project that were presented at the fosslc.org event "Summercamp 2009" in Ottawa, Canada

Citation preview

Page 1: Openmokast: An open mobile broadcasting software stack for handheld devices

Openmokast: An openmobile broadcastingsoftware stack forhandheld devices

Presented at FOSSLC Summercamp 2009

Ottawa, Canada

by Jean-Michel Bouffard

<[email protected]>

Page 2: Openmokast: An open mobile broadcasting software stack for handheld devices

2

Summary

✔ Broadcasting to handheld problem✔ The Openmoko platform✔ Implementing open mobile broadcasting in the

Openmokast project✔ Conclusion

Page 3: Openmokast: An open mobile broadcasting software stack for handheld devices

3

Broadcasting to handheld problem

✔ Typical mobile phones only support applications that use the network operator controlled infrastructures:

✔ CDMA2000 -> 1X, EV-DO✔ GSM -> GPRS, EDGE, 3G

✔ For this reason, innovation in mobility is difficult✔ Broadcasting networks and applications have

traditionally been ignored by network operators and mobile devices manufacturers

ATSC-M/H

Page 4: Openmokast: An open mobile broadcasting software stack for handheld devices

4

Broadcasting to handheld problem

✔ The solution to mobile innovation is to create open phone project based on open source software

www.android.com www.trolltech.comwww.openmoko.org

Page 5: Openmokast: An open mobile broadcasting software stack for handheld devices

5

Broadcasting to handheld problem

✔ Each project implements a complete software stack with a middleware for mobile services

www.android.comwww.openmoko.org

www.trolltech.com

Page 6: Openmokast: An open mobile broadcasting software stack for handheld devices

6

Broadcasting to handheld problem

✔ No stack supported broadcasting!✔ The Openmokast project was launched to support the

creation of independent broadcast-enabled handsets by studying the specific requirements for mobile multimedia broadcasting (MMB) applications in the context of the previously mentioned open platforms and by integrating corresponding software building blocks into them

Page 7: Openmokast: An open mobile broadcasting software stack for handheld devices

7

The Openmoko platform- Why?

✔ The Openmoko project was selected for preliminary development for many reasons

✔ Completely open software stack based on Linux✔ Only hardware components with open API are part of the

devices✔ The complete specs and the CAD files for of the devices were

released under a CC license✔ The hardware engineering process is openly discussed in the

project's mailing lists and wiki pages✔ The community is largely involved

in the software development andgood communication wasestablished over different onlinecollaboration tools

Page 8: Openmokast: An open mobile broadcasting software stack for handheld devices

8

The Openmoko platform- What?

✔ The Openmoko project was initiated by FIC and Openmoko, Inc. in novembre 2006

✔ The project covers two main areas✔ Hardware devices design and engineering✔ Software development

✔ The mission of the project is to “free your phone” by allowing users to

✔ Add and modify the software to their needs✔ Add new hardware components✔ Have full access to the phone capabilities

Page 9: Openmokast: An open mobile broadcasting software stack for handheld devices

9

The Openmoko platform- Hardware

✔ Openmoko released two different devices so far✔ A preliminary developer preview, the Neo 1973✔ The current stable device, the Neo FreeRunner

Neo FreeRunner

codename GTA02 (released July 2008)

Neo 1973

codename GTA01 (released July 2007)

Page 10: Openmokast: An open mobile broadcasting software stack for handheld devices

10

The Openmoko platform- Hardware specifications

✔ High resolution touch screen 2.84” (43mm x 58mm) 480x640 pixels

✔ 128MB SDRAM memory✔ 256 MB integrated flash memory (expandable with

microSD or microSDHC card)✔ microSD slot supporting up to 8GB SDHC cards✔ Internal GPS module✔ Bluetooth✔ 802.11 b/g WiFi✔ 400Mhz ARM processor✔ 2 * 3D accelerometers✔ 2 LEDs illuminating the two buttons on the rim of the

case (one bicolor [blue|orange] behind the power button, 1 unicolor [red] behind the aux button)

✔ Tri-band GSM and GPRS✔ USB Host function with 500mA power, allowing to power

USB devices for short periods

Page 11: Openmokast: An open mobile broadcasting software stack for handheld devices

11

The Openmoko platform- Software architecture

✔ The typical software stackfor embedded devices canbe represented in Layersas depicted here

✔ The middleware layerprovides:

✔ The standard services offeredto the applications by the operating system

✔ The communication link between the applications✔ The middleware assures:

✔ Compatibility of the applications that uses the platform✔ Interoperability between the applications

Page 12: Openmokast: An open mobile broadcasting software stack for handheld devices

12

The Openmoko platform- Software architecture

Page 13: Openmokast: An open mobile broadcasting software stack for handheld devices

13

The Openmoko platform- Software architecture

✔ Middleware services for Openmoko✔ High level

✔ Usage, Event, Preferences, Context, Telephony, Networking, PIM

✔ Low level✔ Device Control, GSM

Defined and implemented under the FSO Framework at FreeSmartPhone.org

Page 14: Openmokast: An open mobile broadcasting software stack for handheld devices

14

The Openmoko platform- Distributions

✔ The official Openmoko distribution is OM2008.12✔ illume window manager✔ opkg package management system based on the Itsy Package

Management System for embedded devices

Page 15: Openmokast: An open mobile broadcasting software stack for handheld devices

15

The Openmoko platform- Distributions

✔ Distributions can be classified in three groups

✔ OM Inc. driven✔ OM Community driven✔ Non-OM driven

✔ OM community has generated a large contribution

✔ Other less significant distributions were also successfully ported for OM devices

Page 16: Openmokast: An open mobile broadcasting software stack for handheld devices

16

The Openmoko platform- Applications

✔ Development for OM is really active in the community✔ Main sources to find OM applications:

✔ Openmoko wiki's master application list for the Openmoko smartphones

✔ http://wiki.openmoko.org/wiki/Applications✔ 114 applications listed in 13 categories

✔ opkg - A software directory for Openmoko phones✔ http://www.opkg.org/✔ 79 applications listed in 10 categories

✔ Because OM2008.x is a full featured Linux based system including a full X server, almost any Linux application could be rebuilt and packaged for the distribution

Page 17: Openmokast: An open mobile broadcasting software stack for handheld devices

17

The Openmoko platform- Applications examples

✔ Numptyphysics✔ Drawing puzzle game✔ Use a physics engine

specifically written for games

✔ TangoGPS✔ Fast and lightweight mapping

application✔ Uses the FreeRunner hardware

✔ GPS for real-time positioning✔ Wifi connection for maps updates

✔ Uses maps data from the Openstreetmap project

Page 18: Openmokast: An open mobile broadcasting software stack for handheld devices

18

The Openmoko platform- Is it for you?

✔ The Openmoko project is still a “work in progress”✔ Intended audience

✔ Linux users✔ Software developers✔ And ultimately, general consumers (the project is not there yet)

✔ Usability✔ GSM voice calls functional but voice quality could be improved✔ SMS messaging functional✔ Wifi networking functional✔ GPS functional✔ Multimedia capabilities such as audio/video playout unstable✔ Buggy Sleep/resume capabilities, hence battery life is limited

Page 19: Openmokast: An open mobile broadcasting software stack for handheld devices

19

The Openmoko platform- Possibilities

✔ Platform of choice for:✔ FOSS embedded development

✔ Supports virtually any availablesoftware technology from the“Linux world”

✔ Advanced hardware capabilities✔ Embedded system integration

✔ Available hardware specificationsenables easy modifications

✔ OM is not a phone, it's a portable Linux computerthat just happen to have phoning capabilities

Neo FreeRunner+

Debian+

high end Accton 802.11b/g wifi card

=Portable network security

testing platform

Page 20: Openmokast: An open mobile broadcasting software stack for handheld devices

20

Openmokast project- Scope

✔ Openmoko was selected as the first development platform for the project

✔ The missing parts:✔ Compatible (SDIO, USB or ???) broadcasting receiver✔ Linux drivers for the receiver✔ Broadcasting stack to control the receivers and access the

data✔ Applications to decode the multimedia streams✔ Nice integration inside the Neo FreeRunner

Page 21: Openmokast: An open mobile broadcasting software stack for handheld devices

21

Openmokast project- Hardware

✔ Compatible broadcasting receiver✔ MTECH UDR-A3L T-DMB/DAB (Digital Multimedia/Audio

Boardcasting) USB Receiver for PC & Laptop✔ Capable of receiving high quality audio and video mobile

broadcasting services

✔ Fully compliant to ETSI EN 300 401 (Eureka-147)✔ RF frequency range:

✔ Band III: 174 to 240MHz✔ China band III: 168.160 to 221.568MHz✔ L band: 1452 to 1492MHz (UDR-A3L)

✔ Transmission mode: all modes with auto detection✔ Channel decoding: single channel decoding✔ Decoding capacity:

✔ Audio service: up to 384Kbps✔ Video service: up to 1.5Mbps

✔ RF input connector: 50 ohms RF SMA connector

Page 22: Openmokast: An open mobile broadcasting software stack for handheld devices

22

Openmokast project- Hardware

✔ Internal USB test points can beused to integrate a USBcomponent

✔ Schematics available fromhttp://openmoko.com

✔ Marked on FreeRunner schematicas H-TP4901, H-TP4902, H-TP4903,H-TP4904

✔ Configuration✔ USB port must be switched from

device to host mode of operation✔ USB power mode can be selected to

provide power to the device from theFreeRunner battery

Page 23: Openmokast: An open mobile broadcasting software stack for handheld devices

23

Openmokast project- Drivers

✔ Linux drivers✔ Analysis of the communication between the USB receiver and

its default Windows software was achieved using a USB sniffer application

✔ The communication protocol was reimplemented on Linux using:

✔ libusb-0.1 user space USB driver✔ “libusb_augment” extension

Page 24: Openmokast: An open mobile broadcasting software stack for handheld devices

24

Openmokast project- Software

✔ Broadcasting software stack✔ Based on a software previously developed at CRC✔ C/C++✔ User interface uses GUI library GTK+✔ Control interface:

✔ Text console✔ Telnet console✔ DBus interface org.openmokast.Receiver

✔ Data interface:✔ Standard UDP/IP or HTTP streams

✔ Decoder applications✔ Any technology that can use either of the control/data interfaces

Page 25: Openmokast: An open mobile broadcasting software stack for handheld devices

25

Openmokast project- Software

Page 26: Openmokast: An open mobile broadcasting software stack for handheld devices

26

Openmokast project- Software

✔ Openmokast software stack in action

Page 27: Openmokast: An open mobile broadcasting software stack for handheld devices

27

Openmokast project- API

✔ Goals✔ Make it possible to use broadcasting services from any

applications✔ Offer an Broadcasting component that could be integrated in

an open middleware stack✔ Technology

✔ D-Bus Inter-Process Communication (IPC) system

Page 28: Openmokast: An open mobile broadcasting software stack for handheld devices

28

Openmokast project- API

✔ D-Bus✔ Used in many embedded and mobile software environment

such as LiMo, Freedesktop.org, Maemo, etc.✔ Common in main desktop environments such as GNOME and

KDE 4.✔ Provides a collection

of binding libraries forcommon programminglanguages such as C,C++, Python, Java,Vala, etc.

Page 29: Openmokast: An open mobile broadcasting software stack for handheld devices

29

Openmokast project- API

Page 30: Openmokast: An open mobile broadcasting software stack for handheld devices

30

Openmokast project- Integration

✔ The integration into the Openmokast device required the design of a case extension based on the released CAD from Openmoko, Inc.

Page 31: Openmokast: An open mobile broadcasting software stack for handheld devices

31

Openmokast project- Integration

✔ Extension prototypes were manufactured with a 3D printer by Cimetrix (http://cimetrixsolutions.com/) at an acceptable cost

Page 32: Openmokast: An open mobile broadcasting software stack for handheld devices

32

Openmokast project- Integration

✔ Final Openmokast prototype

Page 33: Openmokast: An open mobile broadcasting software stack for handheld devices

33

Conclusion- Future work

✔ Google Android✔ Linux based but all applications

must be implemented in Java✔ Currently ported for the Openmoko

FreeRunner✔ An Android version of Openmokast

is currently in development✔ Challenges

✔ Main broadcasting codecs are notavailable

✔ Underlying Linux distribution ismissing common libraries

Page 34: Openmokast: An open mobile broadcasting software stack for handheld devices

34

Conclusion

✔ More information at:✔ Openmokast - Resources for Open Mobile Broadcast Devices

http://openmokast.org✔ Openmoko - Open. Mobile. Free.

http://wiki.openmoko.org✔ opkg - A software directory for Openmoko phones

http://www.opkg.org/

✔ Development tutorial:✔ Getting started with open mobile development on the

Openmoko platformhttp://www.fosslc.org/drupal/node/157

Page 35: Openmokast: An open mobile broadcasting software stack for handheld devices

35

THANK YOU