Title: Extending, Expanding, and Porting Mobile
1Extending, Expanding, and Porting Mobile
Embedded Community Projects
- by Phil Bartholowww.bartholo.com/OSCON/
2Goals
- Learn how the core ME Community projects have
been the catalyst for numerous ports, extensions,
and expanded open source uses not previously
envisioned when the community launched.
3Java 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 DeployingJava Content 6
Million Developers
4Why 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
5Agenda
- Introduction to the Mobile Embedded Community
- Mobile
- Media
- Embedded
6www.mobileandembedded.org
7Community Structure
8Why Get Involved?
- 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
9Agenda
- Introduction to the Mobile Embedded Community
- Mobile
- Media
- Embedded
10Platform Scalability Evolution
11phoneME Feature Project
- OS version of commercial Sun Java Wireless
Client - Shipping on mass-market feature phones
- Target platforms Linux/ARM, Windows, Linux/x86
- 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
12phoneME Advanced Project
- Advanced phones and consumer devices
- Target platforms Linux/ARM, Windows, Linux/x86,
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)?
13Lightweight 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)?
14Who'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 N770/N800/N810
- 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
15ME Application Developers
https//meapplicationdevelopers.dev.java.net
16Project Marge
- 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/
17CQME Project
- Compatibility and Quality Testing Tools
- JT Harness
- Used by Java technology TCKs
- ME Framework
- Supports ME platforms
- Test Suite
- Compatibility to specification (JSRs) or
specification-like use-cases
18Agenda
- Introduction to the Mobile Embedded Community
- Mobile
- Media
- Embedded
19Media Projects
- Blu-Ray - http//hdcookbook.dev.java.net
- OCAP - http//opencable.dev.java.net
Media Delopment
20Agenda
- Introduction to the Mobile Embedded Community
- Mobile
- Media
- Embedded
21Buglabs
- 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
22Squawk
- 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
23Squawk Why Java?
- Embedded development is hard
- Leverage Java expertise and code-base
- Use standard tools
- Ease of porting and emulation
- Java technology end to end
24Squawk Design Goals
- Optimize for small devices
- Java technology enabler
- Java in Java
- Java on Java
- Research and production
25Squawk - Architecture
26Sun Spot
- Sun has licensed Java over billions of cell
phones - How do we encourage Sun Technology in whatever
comes next?
27Built 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
28Sun 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
29Sun SPOT Main board
- 180 Mhz 32 bit ARM920T core
- 512K RAM/4M Flash
- 802.15.4 radio
- USB interface mini b
- 3.6V rechargeable lithium-ion battery
- 36 µA deep sleep mode
- JavaME on the metal
30Sun SPOT eDemoboard
- 2G/6G 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
31Projects Covered
- squawk Java Virtual Machine
- spots-libraries libraries used by SunSPOTs
- spots-hardware -
- spots-applications demos and apps
- spots-curriculum instructional materials
32Trackbot
- 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
33Demo
DEMO!
34Extending, Expanding, and Porting Mobile
Embedded Community Projects
- by Phil Bartholowww.bartholo.com/OSCON/