Openmokast: An open
mobile broadcasting
software stack for
handheld devices

                Presented at FOSSLC Summercam...
Summary

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

✔   Typical mobile phones only support applications that
    use the network operator co...
Broadcasting to handheld problem

✔   The solution to mobile innovation is to create open
    phone project based on open ...
Broadcasting to handheld problem

      ✔   Each project implements a complete software stack
          with a middleware ...
Broadcasting to handheld problem

✔   No stack supported broadcasting!
✔   The Openmokast project was launched to support ...
The Openmoko platform
- Why?

✔   The Openmoko project was selected for preliminary
    development for many reasons
     ...
The Openmoko platform
- What?

✔   The Openmoko project was initiated by FIC and
    Openmoko, Inc. in novembre 2006
✔   T...
The Openmoko platform
- Hardware

✔   Openmoko released two different devices so far
     ✔   A preliminary developer prev...
The Openmoko platform
- Hardware specifications
               ✔   High resolution touch screen 2.84” (43mm x 58mm)
      ...
The Openmoko platform
- Software architecture

✔   The typical software stack
    for embedded devices can
    be represen...
The Openmoko platform
- Software architecture




                          12
The Openmoko platform
- Software architecture

✔   Middleware services for Openmoko
     ✔   High level
           ✔ Usage...
The Openmoko platform
- Distributions
✔   The official Openmoko distribution is OM2008.12
     ✔   illume window manager
 ...
The Openmoko platform
- Distributions

                   ✔   Distributions can be
                       classified in th...
The Openmoko platform
- Applications

✔   Development for OM is really active in the community
✔   Main sources to find OM...
The Openmoko platform
- Applications examples

✔   Numptyphysics
     ✔   Drawing puzzle game
     ✔   Use a physics engin...
The Openmoko platform
- Is it for you?

✔   The Openmoko project is still a “work in progress”
✔   Intended audience
     ...
The Openmoko platform
- Possibilities
                                                     Neo FreeRunner
✔   Platform of ...
Openmokast project
- Scope

✔   Openmoko was selected as the first development
    platform for the project
✔   The missin...
Openmokast project
- Hardware

✔   Compatible broadcasting receiver
     ✔   MTECH UDR-A3L T-DMB/DAB (Digital Multimedia/A...
Openmokast project
- Hardware

✔   Internal USB test points can be
    used to integrate a USB
    component
     ✔   Sche...
Openmokast project
- Drivers

✔   Linux drivers
     ✔   Analysis of the communication between the USB receiver and
      ...
Openmokast project
- Software

✔   Broadcasting software stack
     ✔   Based on a software previously developed at CRC
  ...
Openmokast project
- Software




                     25
Openmokast project
- Software

✔   Openmokast software stack in action




                                          26
Openmokast project
- API

✔   Goals
     ✔   Make it possible to use broadcasting services from any
         applications
...
Openmokast project
- API

✔   D-Bus
     ✔   Used in many embedded and mobile software environment
         such as LiMo, ...
Openmokast project
- API




                     29
Openmokast project
- Integration

✔   The integration into the Openmokast device required
    the design of a case extensi...
Openmokast project
- Integration

✔   Extension prototypes were manufactured with a 3D
    printer by Cimetrix (http://cim...
Openmokast project
- Integration

✔   Final Openmokast prototype




                                 32
Conclusion
- Future work

✔   Google Android
     ✔   Linux based but all applications
         must be implemented in Jav...
Conclusion

✔   More information at:
     ✔   Openmokast - Resources for Open Mobile Broadcast Devices
         http://ope...
THANK YOU




            35
Upcoming SlideShare
Loading in …5
×

Openmokast: An open mobile broadcasting software stack for handheld devices

1,936 views
1,871 views

Published on

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

Published in: Technology, Business
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
1,936
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
34
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Openmokast: An open mobile broadcasting software stack for handheld devices

  1. 1. Openmokast: An open mobile broadcasting software stack for handheld devices Presented at FOSSLC Summercamp 2009 Ottawa, Canada by Jean-Michel Bouffard <jean-michel.bouffard@crc.ca>
  2. 2. Summary ✔ Broadcasting to handheld problem ✔ The Openmoko platform ✔ Implementing open mobile broadcasting in the Openmokast project ✔ Conclusion 2
  3. 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 3
  4. 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.openmoko.org www.trolltech.com 4
  5. 5. Broadcasting to handheld problem ✔ Each project implements a complete software stack with a middleware for mobile services www.openmoko.org www.android.com www.trolltech.com 5
  6. 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 6
  7. 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 and good communication was established over different online collaboration tools 7
  8. 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 8
  9. 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 1973 Neo FreeRunner codename GTA01 codename GTA02 (released July 2007) (released July 2008) 9
  10. 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 10
  11. 11. The Openmoko platform - Software architecture ✔ The typical software stack for embedded devices can be represented in Layers as depicted here ✔ The middleware layer provides: ✔ The standard services offered to 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 11
  12. 12. The Openmoko platform - Software architecture 12
  13. 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 13
  14. 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 14
  15. 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 15
  16. 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 16
  17. 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 17
  18. 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 18
  19. 19. The Openmoko platform - Possibilities Neo FreeRunner ✔ Platform of choice for: + Debian ✔ FOSS embedded development + ✔ Supports virtually any available high end Accton 802.11b/g software technology from the wifi card = “Linux world” Portable network security ✔ Advanced hardware capabilities testing platform ✔ Embedded system integration ✔ Available hardware specifications enables easy modifications ✔ OM is not a phone, it's a portable Linux computer that just happen to have phoning capabilities 19
  20. 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 20
  21. 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 21
  22. 22. Openmokast project - Hardware ✔ Internal USB test points can be used to integrate a USB component ✔ Schematics available from http://openmoko.com ✔ Marked on FreeRunner schematic as 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 the FreeRunner battery 22
  23. 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 23
  24. 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 24
  25. 25. Openmokast project - Software 25
  26. 26. Openmokast project - Software ✔ Openmokast software stack in action 26
  27. 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 27
  28. 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 for common programming languages such as C, C++, Python, Java, Vala, etc. 28
  29. 29. Openmokast project - API 29
  30. 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. 30
  31. 31. Openmokast project - Integration ✔ Extension prototypes were manufactured with a 3D printer by Cimetrix (http://cimetrixsolutions.com/) at an acceptable cost 31
  32. 32. Openmokast project - Integration ✔ Final Openmokast prototype 32
  33. 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 not available ✔ Underlying Linux distribution is missing common libraries 33
  34. 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 platform http://www.fosslc.org/drupal/node/157 34
  35. 35. THANK YOU 35

×