Extending, Expanding, and Porting Mobile & Embedded Community Projects

nutmegactSoftware and s/w Development

Nov 10, 2012 (4 years and 9 months ago)

174 views

Extending, Expanding, and Porting

Mobile & Embedded Community
Projects

by Phil Bartholo

www.bartholo.com/OSCON/


Learn how the core M&E Community projects
have been the catalyst for numerous ports,
extensions, and expanded open source uses
not previously envisioned when the
community launched.

Goals

Java Momentum





6 Billion Java
-
Enabled Devices

2.5 Billion Java
-
Enabled Phones

3.5 Billion Java Card

20 Million Java Set
-
top Boxes

800 Million Java Desktops

180 Operators Deploying

Java Content

6 Million Developers

Why Open Source?






Bring communities together
and extend them


Engage platform and
application developers, ISV's,
tools vendors, and operators


Industry
-
wide collaboration
on platform, tools, and
applications


Remove inefficiencies and
barriers to innovation


Drive common
implementation and
consistency


Introduction to the Mobile & Embedded
Community


Mobile


Media


Embedded


Agenda

www.mobileandembedded.org




Community Structure


The
only

place in the industry that brings together


Complete source code of Java ME implementations


Platform experts and spec leads


Testing tools


Experienced application and content developers


Lots of cutting
-
edge samples and source code under BSD


3rd party technology, collaboration, and code


Active community, very friendly and helpful


The best place to jump
-
start your involvement with Java ME

Why Get Involved?



Introduction to the Mobile & Embedded
Community


Mobile


Media


Embedded

Agenda

Platform Scalability & Evolution





MSA

JTWI

Java

Platform,

Standard

Edition

(Java SE)


Connected

Device

Configuration

(CDC)


Connected

Limited Device

Configuration

(CLDC)


Java

Card

Optional

Packages

Foundation Profile (FP)


Personal

Basis Profile

(PBP)


Personal

Profile

(PP)


Optional Packages

Optional Packages

Java Platform,

Micro Edition (Java ME)


Mobile

Information

Device Profile

(MIDP)


Capabilities

Resources


OS version of commercial “Sun Java Wireless Client”


Shipping on mass
-
market “feature” phones


Target platforms: Linux/ARM, Windows, Linux/x
86


CLDC/MIDP stack, including


Highly optimized performance with runtime compilation and
optimization


Advanced MIDlet multitasking


Advanced resource management


Modular, portable design


Most parts of MSA
248


phoneME Feature Project


Advanced phones and consumer devices


Target platforms: Linux/ARM, Windows, Linux/x
86
, Windows
Mobile
5.0
/
6.0
in beta


CDC/FP/PBP/PP stack, including


High performance with runtime compilation and optimization


Advanced application management


MIDlet support (“MIDP on CDC”)



JSR
75
(PIM), JSR
82
(Bluetooth), JSR
205
(WMA), JSR
135
(MMAPI), JSR
172
(Web Services), JSR
226
(SVG)


phoneME Advanced Project

Lightweight UI Toolkit (LWUIT)







Lightweight library bundled with
the application


Compelling UI, consistent across
platforms (CLDC, CDC, Java SE)



Minimal requirements


CLDC
1.1
+ MIDP
2.0
or


CDC + PBP or


Java SE
1.4
and upwards


Highly portable


Inspired by Swing, optimized for
mobile and embedded


Tools support: Resource editor,
NetBeans Matisse (soon)


Who's using phoneME


phoneME Feature usage examples


midPath: A desktop MIDP emulation


Sun SPOT & Squawk VM


Sony PlayStation Portable PSP


phoneME Advanced usage examples


MIDP stack for Windows Mobile


CDC for Nokia N
770
/N
800
/N
810


OpenCable (OCAP): Set
-
top box middleware


BUG: Configurable consumer electronics device


Cineca.tv: Interactive TV platform


Palm OS
5
port


... and much more in the pipe

https://meapplicationdevelopers.dev.java.net


ME Application Developers


Bluetooth (JSR
-
82
) framework


Inquiry for devices


Search for services


Connect and start exchanging messages


Default and auto connection alternatives


Project started in
2006


.
05
release


Mooo project


Set of tools for create/update/display ODF Documents using Mobile


http://marge.dev.java.net/


Project Marge

CQME Project

Compatibility and Quality Testing Tools

ME Framework

Test Suite

Test Suite

Test Suite

JT Harness

TestSuite
-
Specific
FW


JT Harness


Used by Java technology
TCKs


ME Framework


Supports ME platforms


Test Suite


Compatibility to specification
(JSRs) or specification
-
like
use
-
cases


Introduction to the Mobile & Embedded
Community


Mobile


Media


Embedded

Agenda

Media Delopment


Media Projects


Blu
-
Ray
-

http://hdcookbook.dev.java.net


OCAP
-

http://opencable.dev.java.net



Introduction to the Mobile & Embedded
Community


Mobile


Media


Embedded

Agenda

Buglabs


Enabling a new generation of
engineers to build any type of
device they want


Without having to solder


Learn solid state electronics



Open Source software


Entire stack is Java except for thin
Linux layer


Use phoneME Advanced


CDC/FP/PP/PBP


Extended to add their application APIs
and hardware modules



Java™ Operating Environment for small devices


Bootloader/Micro Kernel


Java™ ME CLDC
1.1
IMP
1.0


Java™ on the “bare metal”


Virtual Machine


Device Drivers/Interrupt Handlers


Sun Microsystems Laboratories project

Squawk


Embedded development is hard


Leverage Java™ expertise and code
-
base


Use standard tools


Ease of porting and emulation


Java™ technology end to end


Squawk


Why Java?


Optimize for small devices


Java™ technology enabler


Java™ in Java™


Java™ on Java™


Research and production

Squawk


Design Goals

Squawk
-

Architecture

Sun Spot


Sun has licensed Java over billions of cell phones


How do we encourage Sun Technology in whatever comes next?

Built to Inspire


Designed for flexibility


Make hardware projects into
software projects


Not designed for cost effective
deployment


We want to


Build a community of developers


Enable new Devices and services


Engage new customers


Sun Spot Device


Basic device has three layers


Battery


Processor Board with Radio


Sensor Board


Processor Board alone acts as
base
-
station


User programs the device
entirely in Java using std Java
tools



Sun SPOT Main board


180
Mhz
32
bit ARM
920
T core


512
K RAM/
4
M Flash


802.15.4
radio


USB interface


mini b


3.6
V rechargeable lithium
-
ion
battery


36
µA deep sleep mode


JavaME on the metal



2
G/
6
G
3
-
axis accellerometer


Light sensor


Temp sensor


2
push buttons


8
RGB
24
bit LEDS


6
analog inputs


5
general purpose I/O pings and
4
current output pins


Sun SPOT eDemoboard


squawk


Java Virtual Machine


spots
-
libraries


libraries used by SunSPOTs


spots
-
hardware
-



spots
-
applications


demos and apps


spots
-
curriculum


instructional materials

Projects Covered


8
built in sensors modules


Beaconing


Obstacle avoidance


Spatial awareness


Communication


Navigation


4
transducer stations for
optional/homebrew sensors


Designed specifically for
university
-
level education and
research


Trackbot

DEMO!

Demo

Extending, Expanding, and Porting

Mobile & Embedded Community
Projects

by Phil Bartholo

www.bartholo.com/OSCON/