This page last changed on Jan 15, 2007 by stepheneb.

Cell Phones

Cell phones can be a platform for new innovative learning applications. Here are some notes about cell phones and their application development environments.

What's a low cost cell phone?

That's hard to figure out with the wacky pricing phone companies use to sell you plans. The cheapest phones are CDMA and have QualComms BREW application environment. There's a much larger class to target that's easily defined: the ones Googles new Java email application can run on.

This application runs on J2ME-enabled cell phones (Java 2 Micro Edition, the mobile version of Java) and requires the MIDP2 profile.

Short tech background: J2ME comes in many flavors but these are defined by three layers. The lowest layer is called the configuration and on these cell phones the configuration layer is the CLDC (connected limited device profile). On top of the CLDC is a layer called the MIDP (mobile information device profile). More profiles can be added at this layer to support more powerful applications. The top layer would be the application itself. See:

FYI Sun is open-sourcing the J2ME.

Here's what Google says a phone needs to have to use mobile gmail:

- You must be using a J2ME (Java) MIDP2 phone. You can view a list of supported devices. Note: Most Verizon phones do not support MIDP2.
- You'll need a mobile data plan, and your phone needs to be configured for data access. Note: The T-Mobile $5.99 plan doesn't support the Gmail for mobile application.
- Your phone needs the Verisign Class 3 public certificate with serial number:


Note: Not all phones allow you to check for this certificate.

Here's the FAQ for mobile gmail:

It's harder to figure out what these phones cost. Google has a page listing phones they know work here:

People have also found that phones not on this list work also.

None of this is indexed by price or carrier however.

Scanning though Sprint's page of phones available in zipcode 01002 I see that these phones work (urls might not work)

Motorola MOTORAZR V3, $30

Samsung MM-A940, $50 (only the 920 is listed for gmail but I'll bet this is an upgrade)

Cingular has these:

Nokia 6030, $20

Nokia 6061 (refurbished) $30

These seem to be on the expensive end (the prices listed above are what you pay after signing a multi-year contract) but they are still cheaper than PDA-class phones. However the capabilities in these phones are in the sweet spot of the technology improvement curve.  What I mean is that the electronics in these phones are in a similar place in the price/performance curve to the 3.3 Mpixel camera I bought 3 years ago for about $350. The same price now gets twice the capability in a camera but 3 years ago it wasn't top of the line just moderately expensive, and sitting on a curve with a considerable slope.

You can also go to this page from Sun and look for devices that have different J2ME capabilities:

Right now this seems to be the platform to target.

Can we make primitive character-graphics graphs?

Probably much better than that. Here's what I've found so far (though this appears to be only on better phones): A version of SVG graphics called TinySVG works on some phones. This is a very nice vector-based graphics format. See this page for an example of building an application with support for these graphics:

And here's a list of current phones which support these graphics:

Of course the ways these things are sold is completely backwards.  What I want to do is find a phone I can use that is a phone (of course) but also lets me run the applications I want. It's very hard to search this way. This will change when the carriers realize that support for apps like Google mail will help sell service plans.

Could we capture the input sound signal, detect the frequency (by simply counting peaks, say) and graph that? Then we could use a simple V-to-f converter to interface probes to the phone.

I haven't yet been able to find out if we can get access to the sound data. Definitely pictures and movies and bluetooth (if the phone has it). I'll keep looking.

What I'm thinking about is:
 [probe]--[amplifier and V-to-f kit] -- [any computer or cellphone].
[AC power detector with freq. output]-- [any computer or cellphone].

The connection to the computer could be acoustic or use the mic input. Any one of several different probes could be used (thermistor, thermocouple, phototransistor, thermoelectric cooler.) The kit could be relatively simple-a battery, opamp, gain pot, and 555 timer-no microcomputer. Perhaps we can use a solderless connection scheme.This might be a nice alternative approach for the ITEST project.  Or maybe it would be easier to ship the kit assembled, at least as an option.

How about uploading data from the cellphone to a central server? Large amounts could be sent as a phone message, small amounts as text messages. Feasible?

Not a problem with the J2ME phones (gmail does this) but the carriers can make this flat-rate, cheap, expensive, or block it all together.

How about software-only applications that addressed energy conservation? Could we program a "What if Maker", "Footprint calculator", or some simulation games?

Easy with J2ME-based phones.

Research done in September 2006

Here's the summary of my research so far about application development and deployment on mobile phones along with my recommendation for a development strategy for the project work.

I recommend that we have a two-track technical development strategy. Start the project fast with development and formative evaluation of the collaborative applications and activities using SuperWaba on PDA-class mobile phones such as the Palm Treo 700p and the HP iPAQ hw6515a Pocket PC. At the same time start serious development research to determine how to redevelop the largest subset of the applications possible for media-class cell phones. This second effort is complicated by a number of factors:

  1. Media-class cell phones have good color screens and more memory than regular cell phones but they are still not as powerful as PDA-class cell phones.
  2. Normally user access to downloadable applications is strictly controlled by the cell phone provider. Each provider has different policies and strategies for maximizing their profit. Unless users bypass the controls setup by the provider they have to purchase new applications from a portal controlled by the provider.
  3. There are different application frameworks in which to create applications and each has different affordances and are available from different overlapping groups of phone providers.

For example applications for Verizon phones must be developed and certified ($$) in Qualcomm's BREW (C/C+) environment and then purchased by users through the Verizon "Get It Now Shop" ( menu item on the cell phone. Cingular (merged with AT&T) have a similar portal ( for applications developed with J2ME (Java 2 Micro Edition). As a contrast to the limitations set by the service providers the manufacturer Nokia's S60 platform phones with the Symbian OS support applications development in J2ME, C+, Python, SuperWaba, C#, and Visual BASIC, see:,6566,010_40,00.html.

Ideally we should have support from a cell phone service provider for the proposal. From my research I think the J2ME application environment would fit best with our needs. The BREW environment is less widely adopted and is associated with providers like Verizon who have very strict paths for application deployment. T-Mobile, Cingular, and Sprint provide J2ME capable phones in the US.

J2ME, Java 2 Micro Edition, Mobile Information Device Profile MIDP 1.0 or MIDP 2.0
The Sun Java Wireless Toolkit is a toolbox for developing J2ME CLDC configuration applications. You can download both CLDC and CDC from the Sun J2ME Web site. Accommodating mobile resource-constrained devices requires using an optimized virtual machine called the kilobyte virtual machine. KVMs exist for Symbian OS, Palm OS, Embedded Linux, Windows Mobile, and BREW, which is a proprietary software platform developed by Qualcomm.

Phones supplied by AT&T, T-Mobile, Cingular, Sprint use J2ME. Most phones with J2ME use GSM network protocols.

Qualcomm BREW, Binary Runtime Environment for Wireless
BREW Developer Resources:
BREW Demos:
Starting with BREW:
Brew applications are written in C/C++. Verizon and Alltell phones use BREW applications. To distribute a BREW application a testing fee must be paid to Qualcomm. To test apps you write yourself you need a BREW phone that has been 'unlocked' by Qualcomm (or with a third-party application). Most phones that use BREW use a CDMA network protocols.
There are several other existing technologies we should investigate:

WAP and WML, Wireless Application Protocol and Wireless Markup Language

These are transport and markup specifications for simple web-like technologies (http and html) optimized from mobile phones. Think of it like a browser that talks through a proxy to regular web sites. The proxy is responsible for compressing and re-creating the html into WML markup for delivery to the phone.

Wireless Application Protocol (WAP) -

An open standard for communication between handsets and the Internet. WAP is a wireless communications environment for delivering web data to wireless terminals with minimal screen display. An initiative started by Unwired Planet, Motorola, Nokia and Ericsson to develop a standard for wireless content delivery on the next generation of mobile communicators. WAP strips all but graphics for display on small screens, such as mobile phones. A mini-browser is an integral part of WAP enabled phones. WAP enabled phones first appeared in Europe at the end of 1999.

Windows Mobile for Smart Phone (latest is v5.0):
Programming is done in either C# or Visual BASIC using Visual Studio.
Mobile2Market FAQ:
Build Applications for Windows Mobile-based Smartphones
A Practical Guide to the Smartphone Application Security and Code Signing Model for Developers

Mophun is a mobile phone game development environment built around the mophun run time engine. Both the 2D and 3D versions of mophun enables multi-player wireless gaming over Bluetooth, Infra-red, WLAN, GPRS, EDGE and 3G.
Mophun technology:
Mophun is available on some Sony-Ericsson phones. Mophon has also developed the ability to integrate the Runt Time engine (RTE) with BREW phones.
Developers Forum:

WIPI (Wireless Internet Platform for Interoperability):
This is a platform for development gaining popularity in the Asian market.

WIPI 2.01:
WIPI is the standard specifications for the mobile platform made by the Mobile Platform Special Subcommittee of the Korea Wireless Internet Standardization Forum (KWISF). These are standard specifications necessary for providing an environment for mounting and implementing applications downloaded via the wireless Internet on the mobile communication terminal.
The Wireless Internet Platform for Interoperability (WIPI), will be mandated starting April 1st in Korea by the Ministry of Information and Communications. WIPI was designed to create a standard wireless Internet platform to ease the development of content between different developers.
Most of the new handsets being released already support WIPI, but in the past cell phone manufacturers used different platforms that became a burden to developers who had to invest in multiple development platforms to support everyone. The adoption of WIPI will not create a complete interoperability of content between all of Korea's wireless providers, however it will reduce the time to bring everyone up to the standard.
Korea's Ministry of Information and Communications tried to get the US government to adopt WIPI earlier but they refused, mainly due to America's tie to mobile phone chipmaker Qualcomm who triggered a trade conflict with Korea. The US promised that Qualcomm will make the BREW platform meet WIPI standards.

Here are some technologies in development which we should watch:

Overview of MEGA: Mobile 3D Engine for Game API built on WIPI, by

Hoon-Young Cho, Senior researcher, ETRI (powerpoint)
A platform-independent mobile 3D game engine; Minimize APIs while maximizing the implementation of game applications; Expected to be 3D game spec of WIPI next standard; Will expand to include Networking and 3D sound functionalities

Mobile Linux Platform Group [vaporware: no web site yet]

Motorola, Samsung, and others form Mobile Linux Platform Group,
Thursday June 15, 2006.
Today in an announcement made in England, six major players in the mobile industry announced that they are forming a new foundation that will develop and promote an open source Linux based software platform for mobile devices. Motorola, joined by NEC, NTT DoCoMo, Panasonic, Samsung, and Vodafone, hope that the developments put forth by the as-yet unnamed foundation will help lower mobile device development costs while increasing flexibility and offering a better user experience.

The founding members of the group plan to be main force behind the initial reference design, but will encourage additional companies to become involved, as members, in the process for future releases. So far the group has not issued any sort of time line, but has expressed that they plan to eventually offer an API as well as a reference architecture and the supporting source code.

Qtopia: Qtopia is version of TrollTechs QT windowing toolkit for embedded linux systems. The development environment is free for groups releasing their applicaions under the GPL license.
Qtopia screenshots:

Here are more general resources that I found useful:

Industry mobile phone sites:

Community Forums:

HowardForums: Your Mobile Phone Community & Resource:
Modification of Motorola phones:


The Rise of the Smart Phone, by Pei Zheng and Lionel M. Ni, March 2006
Excellent review article

Mobile Phone Development, by Colin P. Fahey, 2005
A comparison of BREW and J2ME

Cell Phone Application Development Strategies, by Dale Crowley, Feb

Applications for Mobile Phones

Catalog of user apps:
Apps for managing many different phones:

Document generated by Confluence on Jan 27, 2014 16:56