Open Source Phones
I want to program my phone!
Cellular telephones are powered by increasingly powerful and
sophisticated embedded microprocessor systems, fully capable
of running interesting software.
And naturally, being a programmer, I want to be able to write
software that runs on my phone. Being an Open Source programmer
by profession and by choice, I naturally would prefer to
get a phone that runs Linux. Sadly, none are yet offered
by the cellular telephone companies in Los Angeles.
J2ME is real
While nobody was paying attention, Java seems to have really
succeeded: nearly all new phones include Java support.
So, even though I'd really rather write Linux apps, it looks
like the reality is that Java is the platform of choice if
you want to write programs for phones today. The
flavor of Java supported on phones is called J2ME.
Here are a few resources I've run into for people getting into J2ME development:
Finding a Java phone with a camera
My requirements are simple: the phone has to have a megapixel
camera, it has to accept large memory cards of
some sort, and it has to support an up-to-date J2ME environment.
There are four main cellular telephone companies in Los Angeles.
I checked each one to see if they supported user development
of Java applications. The results, worst first / best last:
- Verizon - vzwdevelopers.com - no Java support.
(They're a BREW shop,
so they're more or less hostile to Java.)
- T-Mobile - developer.t-mobile.com - yes.
But their developer site has a neglected feel to it (e.g. the list of
Java devices they support is way out of date), and I suspect they're
not really interested in users developing Java apps for their phones.
- Cingular - developer.cingular.com - yes.
Their developer site seems reasonably active, and Cingular reps
do answer questions there.
The alt.cellular.cingular usenet group seems
quiet - not much mention of J2ME there.
Here's the only megapixel, java phone they say they support -- but they don't sell it themselves,
so I'm not sure if you can really get it:
- Sprint - developer.sprintpcs.com - yes.
Their developer site seems reasonably active, and Sprint reps
do answer questions there.
The alt.cellular.sprintpcs usenet group seems reasonably active,
and has over a hundred mentions of j2me.
Here are the megapixel, java phones they say they support:
I tried out all four phones at the local Sprint superstore.
After a while, the nav buttons on the mm-535 and mm-a880 made
my wrists hurt (I have tendinitis); the buttons on the mm-5600
were less painful. Also, the browser on the mm-535 and mm-a880
crapped out on some simple HTML pages, saying "page not found"
or "unsupported media type", which was really lame; the mm-5600
didn't have any such problems, but it did have one nasty problem
with the web browser: seeing where the cursor was when
moving around radio buttons was almost impossible, as it
was indicated by very subtle shade of blue. Nearly invisible.
All of the browsers suffered from the lack of a 'page down' button
(or is there one I just didn't see?), which made actually reading
a multipage web page super-painful.
Examples of cool java apps
One small success story is a midlet named midpssh; it lets you
log into a remote computer via ssh. It's at
and does in fact run on
at least one of those phones. (How one types commands
given the twelve-key keyboards on the phones is another question...)
Pressing multiple keys for each letter will get old fast if
using ssh to log into a remote computer. Does anyone know
of a good mobile keyboard for any of these phones?
Cost to develop?
I'm still trying to figure out how much it'd cost
to actually program them. Registering with the
developer sites is free, and the SDKs are generally
a free download. But it costs $400 to get
a certificate that lets you sign midlets, and there might be
other hidden charges. In
their Developer Forums, forum "Developer Discount Service Plan",
topic "Independent Developers and Sprint PCS", there
were complains by some developers that it was costing them
$3000/year. (Presumably for $60/phone/month times four phones.)
It seems the developer boards at all of these sites are full
of angry developers. For instance, everybody's waiting for
access to the GPS built into some phones, but none of the
phone companies wants to give access to GPS via J2ME.
(Perhaps the phones don't do true GPS, and need assistance
from the network towers that isn't present yet?)
Last update: Sun Aug 28 2005