Wish List

From Openmoko

This article is a place to collect various thoughts about the future of the Openmoko software platform. Most wish list ideas have been linked from this page, but you may also wish to check all pages that have a category of 'Ideas'.

UI Designer

Glade code generation is deprecated, so we don't want to use it. The Gtk+ powers told me that the plan is to have gtk 2.12 (out early 2007) with support for GtkBuilder, a libglade derivative which breaks a bit the XML definition in order to support all the new widgets and properties; as soon as it's in the other ui builders will add support for this format. See also the relevant bug entry

Easy build of the existing autotools - based packages

In the ideal case Openmoko should exist on the top of the usual ./configure - make workflow which is typical for the majority of the C/C++ based open source projects. It should not require to rewrite or even replace the existing Makefile.am files of the project being ported, and it should allow to pass the needed parameters to the project configure script. Maybe Openmoko project could be a bigger project having one or more (if some are libraries) autotools - based packages in its separate folders and include the proper documentation how to "wire" the standard autotools based package to the Openmoko infrastructure.

Foreign Widget Set Bindings

Qt Integration

The Trolltech folks have a great widget library. I'd like to interface Openmoko with Qt4, so that we can write Qt4 applications for the phone which don't look alienated.

Maemo Integration

The Maemo folks have created a successful standard for Webpad applications. I'd like to have a set of MaemoMoko and MokoMaemo wrapper classes that allow me add support for running Openmoko applications on Maemo and vice versa. Perhaps we can get help from the Nokia OSS folks for that.

wxWidgets Integration

wxWidgets is a cross-platform application framework that's very popular (I'd say, #3 after Qt and Gtk+). On Linux, wxWidgets uses Gtk+ to implement the widgets. It shouldn't be hard to add support for the additional Openmoko classes to wxWidgets hence supporting the native Openmoko look and feel for wxWidgets applications.

wxWidgets team wants Openmoko classes too and we (wxWidgets) plan to include this project as one of our ideas for GSoC 2007

SDL Integration

SDL is the game developer library. There are tons of SDL games out there. We should add Openmoko support into SDL.

Cocoa / GNUstep

Allows to use MacOS X as a development platform.

Software: Language bindings

Python bindings

Python bindings seem to be a commonly requested feature.

User:Mickey says, "They are kind of usable on the Nokia 770, but it's at the lower end of being bearable. We should keep this in mind -- Gtk+ already comes with Python Bindings, so we "just" would need to wrap libmoko*. I would prefer to leave this to the community do though, since it doesn't make sense to start wrapping the API until we have a stable API -- and I can imagine it will take us a couple of months after going open until we can start with stabilizing the libmoko API."

C++ bindings

There is a whole skilled C++ community coming from the Qtopia and Opie projects. If we would consider basing Openmoko C++ Bindings on Gtkmm, then we could drag these guys in.

Ruby bindings

Ruby and ruby-(gtk|glade) already ported to Openmoko according to this and this mesages. It just have to be included to distribution (only 4.9 MB!)

Java bindings

People who concentrate on Java programming would like to have the Openmoko port of some java virtual machine. GNU Classpath team a lot of great work in the past creating easily portable implementation. Sun's recently open sourced code could also be ported.

Other bindings

Perl

C#

I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings

Community Support

One bugzilla for all projects (makes moving bugs forth and backwards between projects very easy)

One mailing list for project

Platform

Community Images

In the future there could be complete, unofficial "product images" that are created by the community, for example maybe one that incorporates only free software (in the GNU or OSI sense). Or images build with a particular niche market in mind -- a student for example.

Wishlist voting

There could be a kind of voting system like they have at one of those big computer manufacturers homepage. Then the community could vote for the ideas that are most important to them. This would especially make sense for the hardware wishlist, because the hardware is still the part which can't be done by the community that easily.

Software: Additional features

PDA Mode

There are times when you wish to power up the device and not power up the gsm/cellphone portion of the phone. For example in meetings you might wish to access the PDA side with wifi as is the case for example on an aircraft. On booting some method of booting to pda mode would be good - several other phones offer this feature.

Driving Mode

It may be forbidden in many countries, but many people use their cell phones while driving. With the touchscreen phones
this is very dangerous: You have to stare at the tiny numbers on the screen and try to hit them with your thumb or try to decipher tiny script of contacts, while steering with the other hand. There should be a configurable driving mode where the interface has a reduced functionality (e.g. only contacts and dialing) with HUGE interface buttons that are easy to use with limited attention.

Idea: insted of using GPS for speed measurement, number of handovers (other word: cell switches) shall be measured - as one traveling a car switches cells more often than walkers)

(but the 'speed measurement' would also apply to people on trains, boats, etc -- or in the back seat of a car! Therefore prob not feasible to automatically estimate in this way.)

Offer a way to easily switch into "Driving mode", e.g. via a button or gesture (user configurable?)

Calling

Mask ID based on dialed numbers

It would be nice if my number only showed up when I call people in my address book and was otherwise masked. The phone I have now either always shows my number or never or can be set on a per call basis. Having it done automatically based on the number dialed would be good.

Use calling cards and similar routing techniques for lower-cost calling

Many people use calling cards, low-cost numbers and similar ways of reducing the costs of their calls. It would be nice to have a single panel that would allow you to configure the rules of dialing a number taking in to account such systems.

This should also apply for VoIP decisions. e.g., the phone should decide based on whether or not it is connected to a hotspot (and if the user has defined a SIP provider) and then from there decide whether or not it should call over WiFi or over the cellular network. Maybe an advanced panel would allow users to input rates per/country for their SIP or various calling cards -- since most general users will probably not enjoy manual input of various rates and would simply prefer a question to pop up when dialing: "Would you like to make this phone call through (select one): Cellular, WiFi, Cellular + Calling Card 1, WiFi + Calling Card 1, etc.. -- Do not ask me again [ ]"

Outgoing black/white lists

The ability to allow or deny outoging calls to certain numbers can be useful in a number of situations (e.g. the holder of the 'phone is a child, untrusted, etc.). This could be related to entries in the contact list, for example a user is only allowed to call people who are in their contact list.

Time-based blocking/unblocking of calls

Allowing or disallowing outgoing calls at certain times of the day could be useful, e.g. blocking a business phone from making calls outside of business hours.

Speaker-phone

A speaker-phone is more than simply connecting the speakers to GSM audio, it's also echo cancellation, and eliminating the feedback that will otherwise happen between the speakers and the mic. This software has not been written.

The problem of speaker-phones is that the microphone "hears" what the speaker outputs - directly and every reflection in the surroundings of the telephone. Since the telephone line will allow noise from the microphone to pass to the speaker again - if the speaker is loud enough and the microphone sensitive enough we have a feedback loop producing echos or even a very loud beep.
A very crappy alternative that is used by some companies that just want to be able to print a feature on the front cover without needing to bring this feature to a useful state first now is the following:
Turn either the Microphone sensitivity or the speaker volume down alternatively depending on what the telephone thinks might be better in this second.

Sounds as crappy, as this sounds, though, - and tends to make people very angry.

Advanced Airtime Tracking

Many phone users have complicated plans, things like unlimited incoming, 100 anytime minutes, 1000 evening minutes, etc. It would be nice if a user could input the various monthly airtime chunks their plan gives them, and then the phone could track how much is left in each chunk, i.e. How much anytime minutes are left this month? Optionally, the software could warn when someone is close to the monthly limit, to help avoid bigger bills.
On (at least some) prepaid USSD can be used to check current balance.

Call duration should consider billing increments and show the durations according to accounting period

Anti-stutter software

Delayed Auditory Feedback (DAF) has shown to reduce stuttering in individuals by 70%. By using the microphone, it should be pretty simple to implement this on the Openmoko. The DAF functionality should also be present during phone calls. See http://en.wikipedia.org/wiki/Delayed_auditory_feedback for more information.

Minimize In-Call mode (check address book while in call)

On my locked phones I always find it annoying that one can not use other features while a call is in progress. In particular, I'd like to access the address book so that we can (1) give a caller someone else's phone number (or other info) and (2) lookup a phone number when using a calling card or some other proxy.

Similar request when using the browser (lookup passwords, todo list, etc).

Hold Music (Ringback Tone)

On some cellphone networks you can pay to change the normal Ringback Tone that the caller hears when ringing, to a customised sound.
This can partially be implemented on the phone.
Issues are:

In countries where callers pay, this will make you unpopular.

In countries where the called party pays, it will use your minutes, or cost you money.

A list of people to activate this function for would alleviate this.

GPRS internet connection will stall while the hold music is being played.

It would also be useful for notifying people why you can't talk (for example, having an "I can't talk tight now - I'm in the library - this is a pre-recorded message" would be good. Also perhaps you could loop a pre-recorded sound in the background so you can lie about where you are, and have the ability to simulate a really bad connection.

DTMF Landline Dialing

The ability to hold the Neo near the microphone of a landline handset and have the Neo dial the landline by sounding DTMF tones. The DTMF tones could be generated in software or be pre-recorded files.

Graphically this could be done by adding a 'DTFM dial' button to a context menu. The user would select a contact then presses the 'DTMF dial' button to start the process. A small delay could also be added to allow time to put the Neo near the landline handset.

For the Neo to know which area code to use (or not use) the current or last GPS coordinates could be utilised.

Conversation Recorder

An option to record phone conversations. Would be helpful to have the device always recording for every call, with the sound data encoded to low quality Ogg Vorbis or SPEEX and stored in RAM. At the end of the conversation the user would have the option to save to flash or discard the conversation. This idea could also be applied to voicemail so you could save voicemails locally.

Unlicensed Mobile Access (UMA)

T-Mobile recently rolled out a UMA service that hands off calls between the GSM network and WiFi access points. Only a few phones support it right now, this could be a rather unique feature if Openmoko can implement it.

This can be combined with a GPS map to show where local free hubs are.

kd8ikt says a modded dialer with IAX/SIP (VOIP) or a stand alone VOIP client/dialer as an asterisk/FWD/IAXTEL/teliax stuff, i mainly just care about being able to connect to my own asterisk server in turn i can setup my asterisk server to route where ever i want i think one hardcore digium guy already ported iaxclient to arm so now i guess it needs a gui http://projects.openmoko.org/projects/mokoiax/ it wouldnt suprise me if underneath their UMA setup is a network of asterisk servers

Ignore-Call Button

Another alternative might be to use microphone to recognize when the user gives an audible "Shhh!" command. This could prove difficult to determine with the simultaneous ringing, and possible in-pocket shuffling noises.

A really usable feature is to "reject with SMS/text message" - letting the user reply the caller choosing a previously setup template or typical response: "I'm in a meeting - I'll call you later" or "Can't take your call now, please call back in 10 minutes". This feature typically is a much better way to get your co-workers (ie boss) to back off, than to silently ignore the call.

The accelerometers could be queried while the phone is ringing to detect a firm tap on the phone. This would avoid the delays of fumbling to remove the phone from one's pocket to silence the ringer when you've forgotten to set it to silent mode. Just firmly tap the phone through your pocket, and the ringer will silence, like some Motorola pagers. Maybe single tap = silence; double tap = (activate voicemail or preset SMS).

Audio

Ambient Noise Detection

Using the microphone to detect ambient noise the ringtone volume could be adjusted automatically.

If the ambient noise exceeds a preset threshold, the ring vibrator could be activated. This is good for when people forget to enable vibrate mode when entering noisy environments.

Detection of ambient noise could also be used to subtract the noise from the audio signal. However this approach is best performed using two Microphones, one for the voice and the other to detect the noise.

Active noise control

Using the microphone to do active noise control on media player playback or telephone calls. This should be an independent module/library which can be used by any application which might require this feature. also provide a way to easily alter the parameters of the active noise control.

Hear Impaired Mode

Hearing impaired people need louder speaker(but with less volume than hands free) and equalized sound, based on their hearing problems(example 20dB hearing loss from 2KHz to 4KHz).
Older people 50+ years old need slower speech rate(time stretch, cut the big speech gups) and cleaner voice.

Please note also the Hearing Aid Compatibility regulations in the US. I have tried to summarize and clarify them here. I haven't yet discovered whether the FIC device is M or T rated. For many hearing impaired users, a tcoil coupling to their hearing aid (t3/T4 rating) would be preferable to manipulating sound output in other ways.

Mute Button

Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.

Web Browser

Full-page Zoom Support

Full page zoom is a very good feature. If possible, people would want to browse the internet with normal layout than a distorted one. It's best if I could double-tap a text or image block and zoom to a fit size.

The BigPageWidget proposal suggests 'Full Page Zoom' should be implemented as a widget available to all applications.

If the processor and memory could afford, it is good to just use Firefox 3 in Openmoko. It has implemented latest gecko's full-page-zoom ability. With certain modification, we could do the same zoom like iPhone's Safari.

Firefox 3 may be a big eater. A cut-down version of it may be good enough.

If this is not practical, Minimo with full-page-zoom ability is good.

Plugins Support

While an extensive browser plugin system would be costly to the efficacy of the platform four particular browser plugins as poplularized by Mozilla firefox should be adapted to the web-browser, namely: noscript, adblock plus, greasemonkey and foxmarks.

Careful use of these can dramatically reduce bandwidth, page space, and rendering costs even if it comes at the risk of some hard drive space in the form of block lists.

Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.

Widget support

Built-in browser with the ability to install widget shortcuts (aka links) in the main phone menu, also some apis for interfacing with the other functionality of the phone like adding contacts, reading contacts, reading gps-psoition etc.. (maybe there is some defacto widget standard that could be used)

There is a W3C spec being developed, which may not be exactly what the original proposal had in mind, but it is about writing simple applications with HTML, SVG and JavaScript. It is mainly Opera's work, and while most developed widgets are not very useful, there are some that are, and it creates a very nice development platform, especially for mobile devices. So, I think it makes an awful lot of sense for Openmoko to support this spec.

Media

Music/Video Software

A real good programming area for competition with the iPhone, a singular video/music player would be great for multimedia. A seamless integration system, a la iTunes and iPod, would be extremely popular.

Using the Wi-Fi connectivity, a separate music program that supports wireless music sharing/ streaming (similar to what can be done when two computer running iTunes that are both on the same network) and that also supports internet radio.

It would also be nice to have some kind of "announce your musical taste" mode. This could be implemented using last.fm profiles, such that when e.g. in a crowded place a user nearby has a similar musical taste, both users get notified so they can share their music files with each other (perhaps using a photo for id). Great for discovering new music - and making friends!

- Possible copyright issues sharing music files?

Sure, but that's the user's concern, not the developer's. There's no way for us to know which audio files the user is permitted/not permitted to share.

Reading Support

It would be really great to be able to read :

PDF

Open Document files

Text / RTF files

fb2 files (fbreader)

MS Office files

Aportis Doc (pdb)

DjVu

...

In both landscape and portrait

Wikipedia Mirror

Blog ScribblePad

Draw an image (and maybe add some text), then post to your blog.

E-Book Reader

Neos brilliant ultra-sharp screen makes for a very good e-book reading device. All it takes is a good e-book reader with touch-screen page turning / scrolling (see the BigPageWidget proposal). FBReader could probably be adjusted easily by an experienced GTK hacker. Note that e-book reading is different to pure text/pdf displaying as it requires at least auto-bookmarking of the last read page, proper text and image scaling and text formatting.

Support for vocabulary training with flashcard system (also usable for other content than foreign language words!)

Flickr uploader

A simply, drag & drop uploader, tagger and organizer to upload images on phone to Flickr, with support for various languages. A good base could be the cross-platform uploader jUploadr, written in Java and working on Windows, Mac and Linux. But, most of all, the best GPL program which actually do this work is Mobile Pushr, written in C and Cocoa for iPhone, must be probably ported in python to work on Openmoko.

Virtual picture viewer

I believe you could display pictures larger than the FR screen by using the accelerometer data to simulate the physical screen as a window into a larger pic.

You would use the accelerometer data to figure out the current FR location & orientation relative to when the pic was loaded, then display the part of the picture that the window overlaps. Then you could flick the neo back & forth and see an image bigger than the screen.

I haven't done any calculations to see what the accuracy would be like, but my wild ass guess is that if you moved it quickly enough it would overwhelm the error margin of the accelerometer. I'm also not sure if the refresh rate is fast enough to make it look good, but again my guess is that it would be.

Paint application

A simple paint application that can save images in PNG or SVG. It could also be a light version of Inkscape. It must be fast for doing tasks like jotting down something when you don't have a piece of paper laying around. It would need a stylus to draw so buttons does not need to be finger friendly.

PIM (Personal Information Managment)

Context Sensitivity

Any email or sms message or application that contains a telephone number should be click to dial, eg 1234567890. Addresses link to mapping software too?

Notes

Something for taking notes would be a nice feature:
Tomboy has some nice syncing features and is gtk based.

Calendar

A nice calendar application should be implemented in Openmoko. This tool should have a syncing feature with your desktop computer.
The tool should have a reminder feature and other features like other mobile phones already have.

I think synchronization sould be handled by computer with opensync+syncml based tool, not by calendar itself. --Antono 12:25, 7 January 2008 (CET)

If this cellphone is thought also as a PDA, of course it needs a calendar. But I would like to see something better than just a calendar, I was thinking that there could be some application using "fisheye" view. Just like [1], though that example seem a bit chaotic. --Yprum 22:27, 21 February 2008 (CEST)

I would love to see something similar to the palm application "datebk" [2]. It comes with everything whats neat and handy. --Trixer10 09:12, 14 August 2008 (UTC)

Address Book

Option to search not just the stored list of addresses, but one or more of the online phonebooks. Probably should be modular to make adding/changing phonebook sites easy. Also allows for future integration with LDAP servers or whatever.

Also the possibility to search all info on the contact, like number, email, postal address and so on, in case someone asks you to identify a known number.

Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done by integrating with whatever on-phone GPS mapping software the Neo ends up using.

Random text input 'notes' about a contact

Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's

Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant)

Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account

Tagging Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other applications (GPS, ...) with tags.

Store Bluetooth IDs of friends and notify (configurable only on this device or on both devices) when a one of these Bluetooth ID has been detected (this is more a separate application but has requirements on the address book. Should also be able to create an address book entry from a Bluetooth ID. Could be used as a nice tool to detect people who you're avoiding.

Context based To-Do list

If I arrive home and there are "@home" things in the to-do list, the Context based to-do list reminds me of that.

Idle Hands. An application which randomly displays simple, location-appropriate tasks that may be performed during otherwise idle time.

Workout

Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.

Shopping List

keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.

Tagging

Tags can be used by various applications. Requirement is interoperability for further enhancement.
Tags should be applied to contacts, calendar events, mail/sms, calls, places(GPS) and files.
http://tracker-project.org has all needed tagging-and-searching functionality and ready to be used on low-resourced devices.

Exchange Integration

Once there is good TCP/IP connectivity on this phone, integration with corporate email/calendar/to do/contacts/etc servers would be a big advantage... near-real-time automatic email downloads and automatic bi-directional syncing are productivity boosters that you have to experience to appreciate. It turns your phone from a 'nice gadget to fiddle with' to a natural-feeling extension of your day-to-day life.

Is the time right to name names ? Add as your liking...

Plugin/integration to & from Kontact

Same with Evolution - Thunderbird - Seamonkey

?? Google Calendars ?? (this one is tough)

Ms Exchange

An electronic wallet

A database which stores securely PIN codes, login data, bank and email accounts, membership informations, and other valuable and private data. Entries can be ordered in a folder-like manner. Access to the database is given by a master password. The database as well as the master password are stored with strong encryption. For security reasons, the program asks again for entry of the master password after a certain period of inactivity. The database can be synchronized with a PC application (ideally written in Java for cross platform compatibility).

Easy business card sharing for a small group (in the same room) over bluetooth or WIFI

Six Neo1973 owners are having a chat in a cafe. They agree to split but meet later. They want to exchange their numbers with each other before they go.... The normal way to do this is for a rather longwinded repeating of numbers to each other, or half the people manually inputting numbers before phoning/texting the other half to complete the process. All in all its a fair number of button presses to get it sorted.

Instead the NEO could have a small app where the phones link up in a small peer to peer Bluetooth network and share automatically with one person initiating a request and the other detected NEOS agreeing/acknowledging the share. The initiating NEO would then sync the mini-group automatically by interrogating each phone and then sending the table of results. The NEOs would have to be clever about checking for duplicates in the address book and offering a choice to the user if there are any conflicts.

PROS:

genuine saving in time for social and business situations

CONS:

I am sure there are some security hassles to be pondered....

not going to be used every day... definitely not an immediate priority.....

only at geek conferences will all have a neo....

SMS Counter

An application which shows on the today-screen how many SMS i've already sent in this actual month. Some have for example 150 free SMS to write each month. With that program you can see all the time how many SMS are left until the end of the period. As an alternative it could be a counter which counts backwards from a predefined number over a defined period.

Data Storage

Store all the data about communications with a contact (SMS, MMS, phone calls, emails, IM, etc) in a database and make them available in one list or one timeline.
Make this list available through the address book.
This would be great for people who are switching between one or more communication channels frequently

In GSM networks so-called acknowledge-SMS are sent back to the SMS's dispatcher in order to indicate that the primal sms was received (as message delivery is only best effort and is not guaranteed). So in the SMS dialog there could be equal sized buttons with captions as 'send only', 'send and receive delivery status message' and 'send and notify (e.g. ring) when delivery succeeded'.

Special handling of status-SMS

Related to the previous entry, these acknowledgment-sms' should be handled in a different way than normal SMS'. Most Motorola do this, while Samsung SGH series don't & clog the inbox, warn of a "new" message upon Status notification: Delivery Status Messages should be stored in a separate menu so they don't bloat the received-folder and you are able to quickly review the status of the messages you had sent.

SMS at time/date You could be able to set up messages that are sent at a certain time/date

Profile-override-SMS SMS that start with a certain code word override the silent profile and have the phone ring. So someone could alert you in case of some emergency.

Codeword-SMS An expansion of the above: check for code words and allow selectable tones for matches. E.g. "Server Down!" has a loud klaxon, "Disk Warning" has a quiet chirp.

(De-)Abreviation-script Implement a script that de-abbreviates: "hi m8 u k?-sry i 4gt 2 cal u lst nyt-y dnt we go c film 2moz" becomes "Hi mate. Are you okay? I am sorry that I forgot to call you last night. Why don't we go and see a film tomorrow?" (taken from: [11])

Implement a script that abbreviates :-)

Anti-Spam ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.

Rule based authorizations ...for received messages. For example, delete messages from one source between 9h00 and 18h00 (workday) allow them otherwise (to get alerting messages).

Enable chat-like SMS-viewing SMS-Email-like: retain SMS app, but store 'conversations' rather than pile-up. Group/archive conversations by Caller Group (Work / Friends / Home / any user-defined Caller Group). Show appropriate icon from either Caller Group or Caller ID at the source of conversations panel

Call Back Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.

Non-destructive deletion, deleted messages goes to trash, and are recoverable.

SMS-EMail-Gateway

SMS comes in, gets forward to your inbox, like any other piece of mail. Appropriate alerts and etc occur - again, just like for email. A simple SMTPD running on 127.0.0.1 that is hooked to an email-to-SMS translator that will send email addressed to 'SMS@localhost' (or whatever special address) out via SMS

SCROOGE-SMS This is an intelligent SMS router. When you write your SMS you get the option of how to send it

By standard carrier SMS - cost 10cents

By Openmoko SCROOGE SERVER - this will send your SMS to the Openmoko Community SCROOGE SERVER next time you have WiFi - the phone will remind you to turn on WiFi when it knows you are in places where you have WiFi access. The person you are sending to picks up when they come into WiFi Range. This comes with an intelligent reminder that tells you that message has still not been delivered in 24 hours and would you now like to send it by a paymethod. This is better than IM because both parties do not have to have WiFi at the same time. - cost FREE

By email/Wifi - cost FREE

By email/GPRS - cost ?

Too many options!!!

Alternatively SCROOGE SERVER could auto launch IM client if it detects both parties have WiFi at the same time (Status kept on SCROOGE SERVER?) to allow instant reply..... Person who receives has the option to reply in SMS or in IM or in VOIP phone.

Misc Software

Clocks/timers/Activity meters

Sport tracker

Sport tracker can be used to measure the distance/velocity from point A to point B (or it could have several intermediate stopping points) using GPS. This would be extremely useful for running, biking, hiking, etc.

Standby clock

Egg Timer

Cycle Computer

As already mentioned by Technil, a cycle computer could be created using gps. The sensor at the bike's wheel could transmit data via bluetooth or some cable that would be attached to an openmoko device. In order to save power, one could switch off the gps and only use the bike's sensor.

Just another idea that came to me: Why don't have sensor's transmit cable plug into the headphone/microphone plug? A tool reads the signals created by the induction of the passing magnet, then gives them to the cycle-computer-app :) --Minime 19:50, 12 April 2007 (CEST)

NTP Server

Run the NTP daemon using the GPS chipset as a reference clock, so that the Neo would have a very accurate time-of-day clock and would be able to serve time to other networked devices.

I don't know what it would take to implement this. Items to consider would be the availability of a 1 pulse-per-second hardware signal, the accuracy of timestamps delivered in NMEA messags, etc. Dealing with power-management issues (such as the device going to sleep) would also be challenging.

Find Keys/locate stuff

This would require an additional accessory: a tag which transmits a signal that the Openmoko device can pick up. The tag could for example be attached with a ring loop to your keys, put in your wallet, or be attached with high strength adhesive strips to your remotely controlled aircraft. Whenever you can't find back your keys, wallet, RC aircraft,... you activate this application. When the device picks up the signal of the tag, it translates it to clear audio and visual prompts to guide you in the right direction.

A commercial device that offers this functionality is the loc8tor. Having this in the Openmoko phone would obliviate the need for a separate device. Murphy's law dictates that you'll only loose your keys when you don't know any more where you've put the loc8tor tracking device. But you're bound to always have your phone with you.

Additionally, you could also set a safety perimeter. Whenever a tagged item moves more then X meters from the phone, a signal will be given.

An Postfix Notation (RPN) calculator

Many engineers, computer scientists and other groups who have grown to enjoy the simplicity and ease of an postfix notation calculator will miss them when they give up other platforms to move to Openmoko. A RPN calculator will increase adoption by providing one of the tools that other platforms have provided for many years.

Scientific Functions

Windows CE Emulator

On ARM machine, Windows CE API emulator, like Wine on x86 machines.

PalmOS Emulator

The Access group is probably coming out with their Linux platform any time soon. One of the components is a PalmOS emulator which I'd like to see working on Openmoko as well. There are literally thousands of PalmOS apps.

I'd like to see a Windows CE Emulator with active sync support.

Chumby Emulator

Would be very cool if the neo can act as a chumby. see http://chumby.com for more details about a chumby.

TV Guide

Alcohol meter

Give the phone some info about your body (gender, size, weigth) and when/what you drink and it will compute an approximation of the amount of alcohol in your blood. Updates automatically, could have an alarm, when you are probably sober again.
See, for example (German text) http://www.misterio-online.de/promille.htm

Interaction with LEGO Mindstorm

With the accelerometers, GPS and good CPU, the phone could be used to control/serve as input with robots built with LEGO Mindstorm, which can be accessed by USB and Bluetooth.

Flashlight

Simple finger application that makes every pixel on the entire screen white to be as bright as possible until you tap the screen again to turn it off. This way, you can use your Neo as a (short term) flashlight!

Wii Controller Emulator

Use the accelerometers and buttons on screen to work as a Wii controller via Bluetooth.

FUSE support

Interactive Sky Map

Application that displays the current sky map. Using GPS, the application determines the direction over ground
and rotates the map appropriately. Furthermore, when the phone is tilted, the map is also moved appropriately.
If everything works fine, you should have the impression that you can lift the phone over your head and
"look through" it and see the stars at the correct positions.

Accessibility

Accessibility features for the visually impaired.

High Contrast Themes.

Screen Magnifier. Features should include automatic cursor tracking when navigating menus and entereing text and provide manual controls to zoom in on other section of the screen.

Text to speech. The software should read out menu item ,contact lists ,text messages etc. Would also be useful for operating the phone while driving. see: Wishlist:Speech synthesis

VOIP

Ability to use the phone for VOIP over wi-fi such as Vonage. They currently have 2 different pieces of software for pc . Basically software creates a mac address which is paired with your Vonage account. Skype could also be implemented but I prefer Vonage. Only available when connected to wi-fi with a good connection. Phone treats calls the same as a cellular call, could keep a separate log of minutes, ability to record conversations, etc. Option to use VOIP if connection is available automaticly or manually. Small icon to show when call is using VOIP.

A standard SIP client would probably fit better into the "free and open" philosophy.

Ideally a SIP client that includes ZRTP/SRTP for secure communications.

(Note: Vonage will not give you your SIP credentials, so you cannot log into their network with a non-approved softphone. Other VoIP providers have different policies.)

Asterisk is a great communication platform that can run on small devices. I have an Asterisk server running on a Nokia 770 and I read about running Asterisk on an iPhone. With the crosscompiler available it sould be possible to compile it and run Asterisk on an openmoko phone and let it take care of almost everything on the wishlist below.
Edw/

Freeswitch is also well worth a look -- it's a project started by a long time contributor to Asterisk, and seems to be more scalable on similar hardware, so might well scale down to small hardware quite nicely.

Power Meter

If the power bar is clicked on it will show time left on charge and if charging it will show time until full.

Also a rrdtool type of configurable timespan/frequency graphical overview would be very cool and usefull to some people?

Accelerometer wishes

Flick interface

Ability to "flick" the phone for page up/down by simply and rapidly tilting the phone back-and-forth for up and forth-and-back for down. The same motion can be implemented for sideways motion. This will take advantage of the 2 3d accelerators.

Sensitivity of the scrolling should be configurable and a test option provided.

Reading navigation of documents enhanced by accelerometers

If the two accelerometers in Neo1973 allows it, it will be nice if when you're reading, give a newspaper, you can move up, down, left and to the right the viewing of the document just moving the phones to the corresponding direction.

I don't know if this is possible (haven't seen the project in detail yet) but this feature could be very attractive for final users (and this is good). (sorry for my english but i'm italian)

Wand UI

In keeping with the requests to think outside of the box... the dual 3d accelerometers should enable a 'magic wand'-style UI for certain uses. Macros could be recorded and edited, or presets could be used. For example, flipping the device playfully could initiate a game mode or could signal the end of the work day.

Panning interface

Some applications display underlying data that is larger than the screen. Typically they let you pan across the data using scroll bars.

In cases where the data is only (say) 3 or 4 screens wide or high, it may be very intuitive to just shift the hand held device a few centimeters to the left or right, up or down to pan in that direction. The screen would appear to be a hole into the world of the data, and you're just moving the hole to look at something else.

When the underlying data is very large, you obviously wouldn't want to use this mechanism unaltered; you'd have to walk to the next room to see the data 100 screens away. Instead different accelerations can be used for different panning sizes. This is the same adaption used for accelerated mouse pointers typical on touch pads. A quick flick moves the mouse pointer fast and far. A slower drag over the same area on a touch pad moves the pointer slower and with more precision.

Shake-to-Wake

Giving the phone a shake enables voice commands for a few seconds.
Usage Examples:

{Shake} "Call" ContactNamePhoneType

{Shake} "Call John Mobile" (Calls John's mobile)

{Shake} ApplicationName

{Shake} "Reader" (Opens the e-book application)

Would require a method of inputting voice tags for applications and contacts and obviously will only work for P2 (accelerometers)
But lets get voice command functionality working before P2 (just by pressing a button on the screen instead of shaking)

I think that is possibly to replace "Shake" with double hit with finger in the side of phone. Proper algorithms(with accelerometers) should recognize any similar activities.

Emergency call

When the accelerometer detects a great acceleration (i.e. 5G) start a countdown sequence, if it is not stopped make a call to a preconfigured emergency number. If the data from the GPS is accurate give it.

A first version could use a recorded message (an audio file). In next version it could use a synthesizer, so it can give more information (add GPS information when it is ready).

I would worry that most such events would be false positives, and hard to distinguish from the real thing. A user dropping their phone (an event very common in the life of any cellphone) is far more likely than a user being in a car accident with their phone, and the clatter of a cell phone on asphalt could reach 5G. Additionally, it has to be very hard to distinguish hitting pavement from hitting a windshield, as from a physics standpoint the two are the same thing. Hashbrowncipher 02:06, 26 October 2007 (CEST)

It could use the gps data to calculate the speed it is traveling with. Let's say it has been moving for more than 50 km/h for more than 10 seconds. Then it could activate the "emergency call if more than 5g" function. Aside from the countdown timer, it could increase the volume to max and warn the user that an automatic emergency call will take place in x seconds. While it is counting down it could listen for "Never mind, I'm fine, phone" and stop the countdown in case it hears that. It could also output the warning sound to the attached bluetooth headset and let the user talk to emergency services if the user is still conscious. Tommy 17:48, 8 January 2008 (CET)

Perhaps have the phone yell loudly that it's about to do the emergency call for a decent amount of time, disabled by touching the screen or entering the pin number. In the case of any bluetooth device attached to the user, the phone could check to see if it's in range before calling. sin

Movement detection

By detecting that the owner is walking a user defined profile can be activated with a specific set of notification settings. For example you may wish to use a cheap old sounding ringtone so you don't attract attention from muggers. Or you may wish to have a louder ringtone if you carry your phone in a bag where it can't be so easily heard.

Games

Imagine a first person shooter that you look around by turning your body.

Sloshing battery indicator

Shaking the phone will produce a sloshing sound, as if it contained a liquid. As the battery loses charge, so the sound produced on being shaken, will replicate a decreasingly empty container. [14] for an example.
ShoogleAudiocloudsDynamics

Steady screen

It may be hard to read the screen when the device is shaking from some source of vibration. E.g.

being mounted inside a vehicle

during certain sports

while the internal vibrator is activated (perhaps)

The accelerometers could be used to determine the frequency of the shaking and to make the screen appear to be steady by offsetting the contents at the same frequency in the opposite direction. If this was handled by the graphics processor it might not even be an intensive operation or produce significant battery usage.

At slower movements, (say just being held in an older unsteady hand) the accelerometer data could be fed directly into the screen offset. This would allow you to compensate for unpredictable movements.

Such a mode would cancel out shaking, producing what would appear to be a slightly smaller but steady screen. (Smaller because pixels at the edge of the screen may not have any screen in the same location in the next fraction of the vibration). Gross movements that move the screen to an entirely different position would not be cancelled, effectively 'panning' to keep up with the large movement.

In situations where the hand is not experiencing the same source of vibration that the screen is, the areas of touch sensitivity should be offset at the same time as the screen. So a steady hand touching a vibrating screen isn't interpretted by the application software as a vibrating hand.

These features would best be implemented in the rendering and touch libraries so they could be activated for all applications.

Tapping as input

If I understand correctly the accelerometer should be capable to be used as a simple input. When Openmoko is in the pocket, simple taps against the pocket should be possible to use as input. For example when there is an incoming call and the user is notified using a headset then one tap would accept the call and two concurrent taps against the pocket would cancel it. This can also be used for lot more.

Pedometer

The accelerometers should be able to detect each step and record it. If the time when the step is recorded you would then be able to determine the time used walking, the distance traveled and approximate the energy used. Acording to Wikipedia this has been done in other devices.

"Spirit" Level

The accelerometers don't just detect movement, they also detect the direction of gravitational force. Because the sides of the case are straight, the phone could be used as a torpedo level to determine vertical plumb or horizontal level. The back is flat as well, allowing for two-axis leveling.

The phone should switch automatically between vertical, horizontal single axis (holding the side of the phone against the top of a beam) and horizontal dual-axis (laying the phone flat on a surface) modes.

Along the same lines, it could be used as a leveling protractor, to determine slope.

Ringtones determined by position

When you are being called, the phone checks in what position it is and gives a ringtone accordingly.
If it is laying face up, you could have the vibration off and a normal ringtone.
If it is laying face down, you could have the vibration off and no ringtone (maybe only a led blinking). (in a meeting)
If it is constantly moving, you could have a extra loud ringtone as this is a sign of movement. (walking, biking, skating or other activity)

Connectivity

VNC

Networked X-Windows

Whether it's running true X-Windowing over the network, or your bog-standard VNC connection as mentioned above, the ability to have your phone's screen available on your laptop or palmtop would be most desirable.

NX client

A form of X-windows forwarding optimized for performance over slow, or high-latency links, which could prove extremely useful. Capable of streaming a good quality, full desktop session over modem speeds. The protocol and at least one implementation is gpl'd. wikipedia

OpenOffice Presenter Control

I Think it is a good idea to control your OO Presentation with Openmoko about WLAN or Bluetooth.
I think it needs some buttons to go back or forward and control the mouse to show something and take normal mouse clicks.
But with the mouse clicks I think that we need a short time between the clicks in example 1 second. Because when you make a mouse
click than to fast than you must go back.

Amarok and other Media Player remote control

Control Amarok or any other Media Player with Openmoko (as a remote control). Bluetooth or WLAN could be used as protocol to send and receive the data. Maybe a WebInterface of Amarok is a start. Can be used on parties for a mobile music management.

Read informations with SMS

Send a SMS with Code to the Openmoko (from a specific number).
For example to send get the GPS coordinates from a stolen Neo (or if you don't know where your Neo is).

OpenRemote

Silent WiFi Connection

Enable a system daemon to periodically lookup for wifi connection (through know networks, open hotspots, Fonera network...), hook it with DHCP or predefined configuration, and activate silent download of RSS feeds, mails or all other thinks which have to be syncronized from the Net.
The daemon could expose a DBus interface so to permit other programs to be notified when Internet connection is available.

Security

General Filesystem Encryption

If anyone wants to get your private data saved on your Openmoko device, he should have to get through a high security mechanism like dm-crypt. The question is how much CPU power would be needed.
Would it be an idea to encrypt only the private data like phone numbers, preferences, address book etc. (like /home/$USER).

GSM Encryption

My Voice is my Passport

Use voice recognition to unlock the phone. "Hi. My name is ... My voice is my passport. Verify me."

Firewall

A network firewall

Full Mac Support

Full mac support, preferably with full software and full sync capabilities with iCal and iMail

Anti Theft Application

This application would enter the phone into an Anti-Theft Mode which activates particular security features to reduce the risk of theft and also to ensure a higher probability of recovery of a stolen handset.

Hmm, if you're away from your home for more than a few days (via GPS), it starts sending its coordinates home.

You can make a password-protected list of your own phone number/numbers and when a card with other number is detected (and security feature is on) its number+gps data is send via sms to some 'secure phone' [friend's/sister's]. With thief's phone number its easy for police to track him.

RFID based personal alerts

Assuming an RFID reader is available: You'd put an RFID tag on your keys, wallet, etc and train a program on the phone to give you a soft or hard alert when one of them leaves detection range. That way, if you're walking away from one of them, the phone could alert you.

Actually there is a RFID reader available. Take a look at this: http://www.wdi.ca/ We only need driver for that thing. .... Well, never mind. I think it doesn't work because of the size. Anyway an interesting idea.

OpenVPN Client

This application allows to configure the device as an OpenVPN client using the GUI including support for X.509 certificates.

Integrated Help System

A help system that is either on or off. It could be activated and deactivated by a five-second-press on a button, for example the AUX button. When the help system is activated, it will explain the use of any item you touch on screen (with stylus or finger). Example: if you touch the battery icon, it will explain that this shows battery level / remaining time. If you touch the date / time icon, it will explain that this icon shows date and time, and that if you press it, you can set date and time. Primarily, this help system should be able to explain all user interface elements in the main screen, but if it proves popular, it could be expanded to cover other applications as well.

Performance optimisation

Use DMA engine in CPU for blitter

The DMA engine in the CPU can substantially speed up moving of large areas of screen in some cases.

Use virtual screen to optimise scrolling

In some other cases, the hardware supported virtual screen may also speed it up.

Reusable Display/UI Widgets

Use BigPage for full page zoom, scroll, scale in many apps

The BigPageWidget Page decribes a widget that could bring full natural page viewing, scaling, scrolling to the OM platform - allowing all applications to make intuitive UIs. A good way to read documents of any type without reformatting them massively increases the utility of a device with a small screen

Soft Sim Cloning

The ability to clone and store sim cards internally as soft sims and be able to switch between them would be handy. The sim cloning can be done on either the phone itself or on a computer and then transfered to the phone. Software already exists for sim cloning on PCs such as GSM SIM Utility 5.15. It would pose a security risk if someone got their hands on your soft sims but it wouldn't be a problem if you were just soft siming pre paid cards and still using your hard sim slot for any contract sim cards.

Charging Alarm

An alarm program with a pin to allow safe charging in public places. Two possible modes.

Public Space Alarm Mode

An alarm that sounds when the charger is removed to enable safe charging in public places, such as back packer dorm rooms.

Silent Alarm Mode

A silent mode where it acts dead and sms/emails GPS coordinates periodically.

Bluetooth

Voice Dialing

Dial by voice commands.
Dial by dictating phone number. This way we can voice dial any number even if not in our contact list.

Music through Bluetooth Headset

Music can be played through a Bluetooth headset, but would stop playing when a call comes in.

Walkie Talkie

Let Openmoko devices connect to one another via bluetooth or another connection method (GPRS for long distance but high latency, probably Wifi on P2), and hold a conversation.

Features for this applications can be:

Push To Talk (PTT) button

Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.

Optionally a full duplex mode

Different channels to choose from

Monitor different (preselected or all) channels for traffic.

Content encryption

Active noise control

Allow zero config use (units can talk without any access point helping)

Overview of all connected people trough sending GPS data to everyone who is in the Walkie Talkie channel

Local (non-GPRS) use cases include chatting while biking
or motorcycling in a group; perhaps also in a car caravan.
This application could also be used as a baby-phone to monitor your siblings.

This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.

(One thumbs up from me) Jackcday

See also WiFi Walkie Talkie and perhaps construct one application that can handle both Bleutooth and Wifi.

Automatic Sync

Automatically synchronize with desktop computer (or with any SyncML server) when within range based on user profile. This may require the use of a secure data transfer.

GPS Assisted Bluetooth Management

Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.

A Bluetooth device is configured for automatic reacquisition based on the following profiles:

Manual - only when Bluetooth is on

Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.

Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.

Non-mobile devices

Examples devices include: computers

The location and range of the target device is determined via training. Periodically, the current GPS coordinates and Bluetooth signal strength are logged. Additionally, connectivity loss events are logged. An algorithm uses these logs to determine the device location and range.

Connection attempts are made when in a configurable proximity to the device. The first attempt when entering the proximity and further attempts at a configurable interval.

Mobile devices

Example devices include: automobiles

Mobile devices are configured to have two types of locations:

Last known location

Non-mobile locations (homes)

Last known location

A car is mobile, ideally, when you leave your car, the phone should note the car's location when connectivity is lost and then attempt to reacquire the car when you return to the location of the car.

Non-mobile locations (homes)

As mobile devices may have multiple users, it is not sufficient to always use the last known location. In this case, the device may additionally have multiple homes. For example, a car might have as its homes: home garage and work parking lot.

Bluetooth neighbor detection and multiuser apps

Like the one laptop per child (OLPC) interface, keep a number in the status bar that represents a count of other openmoko or compatible bluetooth devices in the area. Allow for the spontaneous initiation of a chatroom or multiplayer game or file trading with any moko in the area.

Bluetooth environment detection

Capability to detect when a predetermined bt device enters/leaves bt range and launch a system-wide event accordingly. This would feed not only the "Neighbour detection" idea described above, but also the "Profiles", "Context based TO-DO list" and "Location-based reminders" ideas. Reminders could be set to trigger in the presence of a specific person X (with BT device Y). Profiles can take into account which devices are present around the phone (car kit, for ex.). To-do list could also change according to present devices.

Remote control

Wireless presenter

Use the phone to run your OpenOffice.org Impress presentation remotely using Bluetooth. Cool features:

Display the text notes for the presenter on the phone's display and update it whenever the slide is changing.

Initiated from another device

Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.

Directed at another device

Remote control over Bluetooth to other devices to control media player, lights in your house, etc.

Remote is my draft of a python-based remote control app that allows you to define button sets and commands to run on the local or a remote host (through ssh, for instance). Error handling and command interface need work.--Mjr 11:14, 18 October 2007 (CEST)

Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. www.z-wave.com

Bluetooth Car Connection

Have a deeper connection to the car than just handsfree speakerphone. For instance a transceiver with challenge/response systems to open, possibly even start the car. Possibly go as far as OBD connection to monitor car status on screen/log for later.

Could be done with a port of Carman or similar that can connect to an OBD2 adapter via USB or Bluetooth and display various information collect from the car, GPS, and accelerometers. --bmk789

Dude, Where's My Car?

When in range of the car navigation system, remember the position (perhaps check with the car GPS). When not in range, assumme that you are not in the car, and offer the opportunity to navigate to the car's last known position. That way, you can find your car e.g. on a large parking lot.

Calling out via SIM card B - the Openmoko-phone acts again as a headset

Same for Short Messages/MMS/Internet

This way you'd have your old phone switched silent and connected to your Openmoko-phone that handles all the calls and one can select which SIM card to use.
Advantage: No 'switching' between cards
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.

Internet Gateway

If the device could function as a Bluetooth router/gateway to the internet via the GPRS/data connector, then you could use it to get network connectivity from your laptop and other devices while on the road. Many smartphones can be configured as modems via Bluetooth for use as Dial-Up Networking connectors, and that should be the minimum target. Ideally, if the WiFi functionality was used so the Openmoko could be an 802.11 router or peer to peer gateway for a laptop, this would be even better. The full bandwidth of GPRS or whatever network is available would then be available.

Social Networking

Anybody running the social networking app will be broadcasting a profile, and when certain keywords are matched with other users who are also running the application, an alert is sounded. Each mokoid can be added as a hexstring to a profile page, and xml filters can be developed for each social service to convert various keywords and interests to moko-friendly format.

Give userspace api control over bluetooth signal strength

I have tried bluetooth handsfree sets with other phones and don't get perfect reception due to low signal strength. I suppose the reason the signal is so weak is because the manufacturer wants the battery to last long on its latest charge. Can you please make the strength setting configurable by the user of the phone through an api and perhaps even through the phones gui? I would gladly waste some battery time in exchange for stronger bluetooth signal strength.

UMTS tether mode

USB

UMTS tether mode

WiFi

Industrial grade Wifi management

One annoyance I've had with Wifi enabled gadgets is that they simply keep the connections in a dumb list. What I'd like to see is more granular connection management, which enables me to specify whether a given connection is friend & family (mom's place), professional client (joe's copies and coffee), commercially available (panera), onetime use, or anything else, as well as managing router config backups, firmware images, and security keys.

Captive portal auto-login support

Having a nice front-end to some sort of script that checks the authenticity of a captive portal login page (SSL cert), then passes your username and password login information to automatically log you into your account would be very nice as well. This can be done with curl, but it is difficult to make it work on all captive portals out there. Perhaps just a field that you can specify "once I am connected to this AP, run this script: ".

UMTS tether mode

Monitor mode

Support for monitor mode (rfmon mode) so it can be used as a wifi diagnostic tool or as a WIDS. Packet injection would be fine too.

Wireless Piggyback

HSDPA support and the like, so that users can connect directly with the internet with G3/G4 mobile service providers at speeds at or above 3.6 Mb/s.

Other

Android Emulation

The ability to run google android applications on the openmoko, this would enable any application written for android to work on the openmoko, it appears all the hardware is there it appears to run as an android phone but using the openmoko operating system.

Auto Update

A small tool which is configurable to download the latest Openmoko and Openmoko related software. Maybe if any internet connection is available or a minimum of bandwith is available then the auto update would download only security related or the whole system etc. .

Vibrate Pattern Recorder

An application that would allow the user to define their own vibration patterns, and possibly link them to audio files. Recording would be done in real time initiated with a "Record" button, optionally playing the associated sound file in sync with recording). While recording, the user would press and hold a button to define the timing and duration of vibration. The user would press "Stop" when finished. Vibration patterns would have the option of being looped(would terminate at some global ringtone length maximum).

One simple suggested vibration file format would be a sort of run-length encoding: First byte defines the length of a "time-slice" in milliseconds, which would determine the overall tempo(actually the inverse of tempo). The next byte would define the number of time-slices to leave the vibration on, and then another byte for how long to pause after. Continue alternating these on/off bytes until the entire pattern is defined.

- or just use MIDI, using a separate channel for the vibrator.

An implementation of RTTL could also be used to define vibration patterns.

PC Input Device

Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.

Could emulate a pointer device (mouse) or even keyboard using standard bluetooth/USB interfaces for such a device.

Use case: Alice is lazing on a couch and doesn't want to get up to do some minor interaction with the computer. She can see the screen and uses the Openmoko device as a mouse and/or keyboard to interact with the computer.

Next device

There is no device

Clearly the Next Big Thing has to be for the device to go away altogether. I know the basic idea for wearables has been around forever, but it seems to me that the time has come.

I wanna wear a bluetooth earpiece and cool shades, possibly with [ here's where my imagination is failing me :-( ] gloves, or fingerless gloves, or (ew) wristbands, and let any surface, including my hand, or no surface, be my interface. Tap the earpiece when you get a phone call, see a dial pad on your palm and tap out the number with the other hand, watch movies on a giant screen hovering in the air...

Why the hell do I want to dig out a device every time I want mindless entertainment or superficial conversation?

Ideally, you could then sell any little doohickey with whatever interface you want (switches, knobs, g-spots, ...) and all it needs to do is network with some software on the brick to be anything at all...

A rubberized shell, like some of the other new phones. Helps me not drop it, especially when drunken wardriving. [anon ;-)]

Phone subsidies

Get carriers to give you an Openmoko like they will give away other phones when you sign a contract.

"permission-free development"

"Meanwhile, Shuttleworth said he hopes to see the industry move to an environment of "permission-free development," where developers are free to jump in and write code off of core open-source projects without seeking permissions." [15]

GPS Software

implement "Cheap GPS" as demonstrated in the image, may be useful for geocaching.

Providing GPS Support also for outdoor users in addition to ordinary street navigation features

Overlay of satellite images with existing streetmaps

Incorporating SRTM digital elevation model: for example using the VRML/X3D as data format (see http://www.ai.sri.com/geovrml/) which is interesting for e.g. mountaineering: using a 3d browser rendering VRML/X3D Model, displaying the current position and track (possibly also other gps-tracks of the different routes to a summit downloaded before could be mapped onto the 3d model), (what about 3d hardware support? there is nothing written in the hardware specs about graphics: thinking of OpenGL for embedded systems (see http://www.khronos.org/opengles/)

Using sth like a tracking mode to allow certain people to determine the current position and track (for rescue missions - like they have for example at http://www.steiger-stiftung.de (a German beneficence for rescue issues) There you can register your mobile phone so the rescue service is able to track you immediately if necessary. The interesting thing: It seems like some mobile phones with GPS have special support for this issue. If your phone is registered, the rescue service is able to get your GPS coordinates directly from the phone without any user assistance. Openmoko should also support this! )

"Geomark" function: if you have to save the current time with your current location, only hit one button...

You also should be able to navigate with a small "compass" and the distance should be displayed to your saved point (maybe where you parked your car on a big car parking area)...

Measure the distance between two points (air line or walked way) -> no need for a tape measure

I think it would be good if you could either use Bluetooth, GPRS or AdHoc Wifi, and see near Neo1973 on the GPS map so you could see where your friends are, e.g "You want to know if you friend is on the bus behind" You would need a strong wifi and GPRS would be too expensive.

A bicycle sat-nav would be cool, speciayl designed for bicycles, e.g. cycle routes

Location-based ToDo reminders. The GPS system allows for locations to be tagged (e.g. Parents' House, Pharmacy). The ToDo list should allow each item to be tagged with one ot more locations where the objective can be performed. When at or near that location the user would be presented with a reminder. For example when driving to my parents' house my Openmoko phone would see that I am near the pharmacy I tagged as a location and remind me of the "Pick up toothpaste" item on my ToDo list. Then, when at my parents' house my Openmoko phone would remind me of the "Pickup DVD from parents" item on my ToDo list.

Hardware

Dedicated Power / Charger Pinout

Having not yet seen a physical Neo device, I haven't been able to examine any of the IOs to see if there already is a dedicated power / charger input. However, I can imagine that it might be very tempting to have the device charge solely via USB. For any device that is capable of USB-host, that is a horrible idea.

Since the device is able to run in USB host mode, it might be a good idea to allow for an alternate power supply, if say, a USB keyboard was being used for several hours. Rather than drain the battery, one could just supply power via the wall outlet while still providing endless hours of USB-host enjoyment for those hard-coders on the go.

The main question is just deciding on where to take power from if in USB-client mode and the power cable is inserted, but really, that's not too big of a deal and can be solved with very minimal circuitry.

This might sound extraneous at first, but when the device shuts down in the middle of an important USB file transfer, or right before that great piece of code was saved, you can bet that those users will be saying "Hmm... a separate power adapter would have really come in handy right now".

I suggest a tiny 3mm, dedicated +5V power input (something a la Nokia).

Inductive charging

Inductive charging is the sort of charging where you place the device in a cradle, and a coil in the cradle induces a current in a coil inside the device, allowing it to recharge without wires. This should eliminate proprietary power connections.

Tactile feedback via buzzer

Assuming the hardware has a vibrator/buzzer for silent calls, use a lightly pulsed version of that to simulate tactile feedback when dragging finger across buttons on-screen. Implemented properly, it would almost feel as if the buttons were real.

25 ms bump on the buzzer feels about right. Does this harm the vibrator motor? --Sagacis 05:15, 2 October 2007 (CEST)

Have easy external access, without requiring battery removal like the microSD card

Support SDIO accessories

Enable transfer of data from an external camera's full SD memory to:

a portable USB hard drive, offsetting the need to travel with a notebook PC

the internet, via wifi or phone network

Enable editing of videos and photos obtained from external cameras

Without an easily accessible higher storage SD Card slot, many users will soon be playing the juggling game of which data to delete from the much smaller and harder to swap microSD card. This is especially true for Openmoko users, who are more likely to be power users than is the average mobile phone carrying population. Why carry an Openmoko and an iPod, when you can simply add an SD Card slot?
--Pedro 20:06, 17 March 2008 (CET)

This is not true. Now you can find 2GB micros at the price of 20-30 euros. Too small for what?? --V0n0 22:06, 28 December 2007 (CET)

Think of putting a few movies on that SD memory card. It could really help if it was a little bigger (8GB, 16GB, 32GB). Also think of going offline for 1-2 weeks, far away from any computer you can access and then wanting to listen to some music. What you get in turn with a 2 GB memory slot is the same music over and over. Or you have to switch memory a cards a lot.

This situation is far more common than one would think: going in the mountains, going offshore (on a cruise ship). Or simply you may want to store many types of music, and share your device with friends. --Bogdanbiv 13:47, 10 January 2008 (EEST)

Well, it can be micro SD, but why to put it so deep inside, under the battery and even under the SIM card? I would suggest to have a simple slot on the side where we could insert/remove the SD card equally easily as we swap CD's in computer. AudriusA 16:36, 12 January 2008 (CET)

Cfriedt 12:40, 24 February 2008 (CET) -- I completely agree with a more accessible SD card slot. It should be made external for quick removal / insertion. I realize that would mean program data shouldn't reside on the SD, but really 256 MB of on-board flash is plenty. Micro or normally-sized, a regular-sized SD is still trivial to implement in terms of solder pads and traces.

Sorry, but this looks like useless chat. Micro-SD cards are perfect for mobile devices as they don't get too much space on the pcb. Also, we can find micro-sd up to 8gb, if you want more space just wait a while and they'll produce a bigger one in a few months :-p. Really, almost every single phone that has a sd slot has in its micro version, why would we need a full-sized, huge normal sd slot ? It gets too much space on the pcb it's not only about sw configuration or pin soldering, it's more regarding pcb layout.

What about something like this adapter[17]? Is there any place in the case left to put this into? Nevertheless there is a 12GB microSD card announced from SanDisk and a 8GB card costs about 40€ or 15€ for 4GB. (But a 8GB SD card costs only about 25€) --Kelvan

Maybe just an additional microSD that is easily accessible and hot-swappable. I imagine replacing the huge lanyard hole could help with this. --Sin 02:30, 4 May 2008 (CEST)

My thoughts exactly. Two slots: 1 internal microSD for our storage, and a second external one for more immediate expansion. My thoughts are more towards hardware expansion. For example, some of us could put in a second wifi card that does have promiscuous mode. External VGA connections, etc would also be possible. The external slot should be chosen by availability of hardware expansions as well as memory availability/price. --Lally 13:01 12 May 2008 (EST)

Thermometer / thermoprobe

There could be a thermoprobe attached to the backcase of FR. Using this you will know what is the temperature of the air or any surface FR will touch. It will be very to check temperature of forehead in case of flu :)

IR port

Remote control applications

Would be great to use openmoko as a Harmony remote controller.

I'd like to add that i fully support this. An IR port on future openmoko devices capable of controlling set-top boxes like TV/DVD/Stereo is necessary to make the device as universal as possible. A cellphone should be your window to the world and allow you to interact with it in as many ways as possible.

Care must be taken to use the correct type of IR chipset/controller in the phone. Most IR ports you find on devices like computers, some cellphones etc. Are for high speed data communication and CAN'T control TVs/DVDplayers/Stereos etc.

In order to reduce cost it maybe possible to use the sound chipset in the phone to generate the waveform sent to the IR led. IR remotes work at ~38Khz which is within the range of the sound chipset. The sound output could be internally switched between the IR led or the speakers.

USB Monitor

Have a few different models of monitors, maybe 7 inch, 14 in and 19 inches... be able to plug the Openmoko into one, and then use it like a desktop. Then be able to plug other peripherals into the monitor (keyboard, laser mouse, thumb drive, camera, etc.) and use those. Better yet, be able to use Bluetooth for the keyboard, mouse, thumb drive, camera, and so forth.

Views

Personal tools

This article is a place to collect various thoughts about the future of the Openmoko software platform. Most wish list ideas have been linked from this page, but you may also wish to check all pages that have a category of 'Ideas'.

Development

Painless SDK installation & Setup

Our goal should be a completely painless setup for somebody wanting to develop using Openmoko

UI Designer

Glade code generation is deprecated, so we don't want to use it. The Gtk+ powers told me that the plan is to have gtk 2.12 (out early 2007) with support for GtkBuilder, a libglade derivative which breaks a bit the XML definition in order to support all the new widgets and properties; as soon as it's in the other ui builders will add support for this format. See also the relevant bug entry

Easy build of the existing autotools - based packages

In the ideal case Openmoko should exist on the top of the usual ./configure - make workflow which is typical for the majority of the C/C++ based open source projects. It should not require to rewrite or even replace the existing Makefile.am files of the project being ported, and it should allow to pass the needed parameters to the project configure script. Maybe Openmoko project could be a bigger project having one or more (if some are libraries) autotools - based packages in its separate folders and include the proper documentation how to "wire" the standard autotools based package to the Openmoko infrastructure.

Foreign Widget Set Bindings

Qt Integration

The Trolltech folks have a great widget library. I'd like to interface Openmoko with Qt4, so that we can write Qt4 applications for the phone which don't look alienated.

Maemo Integration

The Maemo folks have created a successful standard for Webpad applications. I'd like to have a set of MaemoMoko and MokoMaemo wrapper classes that allow me add support for running Openmoko applications on Maemo and vice versa. Perhaps we can get help from the Nokia OSS folks for that.

wxWidgets Integration

wxWidgets is a cross-platform application framework that's very popular (I'd say, #3 after Qt and Gtk+). On Linux, wxWidgets uses Gtk+ to implement the widgets. It shouldn't be hard to add support for the additional Openmoko classes to wxWidgets hence supporting the native Openmoko look and feel for wxWidgets applications.

wxWidgets team wants Openmoko classes too and we (wxWidgets) plan to include this project as one of our ideas for GSoC 2007

SDL Integration

SDL is the game developer library. There are tons of SDL games out there. We should add Openmoko support into SDL.

Cocoa / GNUstep

Allows to use MacOS X as a development platform.

Software: Language bindings

Python bindings

Python bindings seem to be a commonly requested feature.

User:Mickey says, "They are kind of usable on the Nokia 770, but it's at the lower end of being bearable. We should keep this in mind -- Gtk+ already comes with Python Bindings, so we "just" would need to wrap libmoko*. I would prefer to leave this to the community do though, since it doesn't make sense to start wrapping the API until we have a stable API -- and I can imagine it will take us a couple of months after going open until we can start with stabilizing the libmoko API."

C++ bindings

There is a whole skilled C++ community coming from the Qtopia and Opie projects. If we would consider basing Openmoko C++ Bindings on Gtkmm, then we could drag these guys in.

Ruby bindings

Ruby and ruby-(gtk|glade) already ported to Openmoko according to this and this mesages. It just have to be included to distribution (only 4.9 MB!)

Java bindings

People who concentrate on Java programming would like to have the Openmoko port of some java virtual machine. GNU Classpath team a lot of great work in the past creating easily portable implementation. Sun's recently open sourced code could also be ported.

Other bindings

Perl

C#

I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings

Community Support

One bugzilla for all projects (makes moving bugs forth and backwards between projects very easy)

One mailing list for project

Platform

Community Images

In the future there could be complete, unofficial "product images" that are created by the community, for example maybe one that incorporates only free software (in the GNU or OSI sense). Or images build with a particular niche market in mind -- a student for example.

Wishlist voting

There could be a kind of voting system like they have at one of those big computer manufacturers homepage. Then the community could vote for the ideas that are most important to them. This would especially make sense for the hardware wishlist, because the hardware is still the part which can't be done by the community that easily.

Software: Additional features

PDA Mode

There are times when you wish to power up the device and not power up the gsm/cellphone portion of the phone. For example in meetings you might wish to access the PDA side with wifi as is the case for example on an aircraft. On booting some method of booting to pda mode would be good - several other phones offer this feature.

Driving Mode

It may be forbidden in many countries, but many people use their cell phones while driving. With the touchscreen phones
this is very dangerous: You have to stare at the tiny numbers on the screen and try to hit them with your thumb or try to decipher tiny script of contacts, while steering with the other hand. There should be a configurable driving mode where the interface has a reduced functionality (e.g. only contacts and dialing) with HUGE interface buttons that are easy to use with limited attention.

Idea: insted of using GPS for speed measurement, number of handovers (other word: cell switches) shall be measured - as one traveling a car switches cells more often than walkers)

(but the 'speed measurement' would also apply to people on trains, boats, etc -- or in the back seat of a car! Therefore prob not feasible to automatically estimate in this way.)

Offer a way to easily switch into "Driving mode", e.g. via a button or gesture (user configurable?)

Calling

Mask ID based on dialed numbers

It would be nice if my number only showed up when I call people in my address book and was otherwise masked. The phone I have now either always shows my number or never or can be set on a per call basis. Having it done automatically based on the number dialed would be good.

Use calling cards and similar routing techniques for lower-cost calling

Many people use calling cards, low-cost numbers and similar ways of reducing the costs of their calls. It would be nice to have a single panel that would allow you to configure the rules of dialing a number taking in to account such systems.

This should also apply for VoIP decisions. e.g., the phone should decide based on whether or not it is connected to a hotspot (and if the user has defined a SIP provider) and then from there decide whether or not it should call over WiFi or over the cellular network. Maybe an advanced panel would allow users to input rates per/country for their SIP or various calling cards -- since most general users will probably not enjoy manual input of various rates and would simply prefer a question to pop up when dialing: "Would you like to make this phone call through (select one): Cellular, WiFi, Cellular + Calling Card 1, WiFi + Calling Card 1, etc.. -- Do not ask me again [ ]"

Outgoing black/white lists

The ability to allow or deny outoging calls to certain numbers can be useful in a number of situations (e.g. the holder of the 'phone is a child, untrusted, etc.). This could be related to entries in the contact list, for example a user is only allowed to call people who are in their contact list.

Time-based blocking/unblocking of calls

Allowing or disallowing outgoing calls at certain times of the day could be useful, e.g. blocking a business phone from making calls outside of business hours.

Speaker-phone

A speaker-phone is more than simply connecting the speakers to GSM audio, it's also echo cancellation, and eliminating the feedback that will otherwise happen between the speakers and the mic. This software has not been written.

The problem of speaker-phones is that the microphone "hears" what the speaker outputs - directly and every reflection in the surroundings of the telephone. Since the telephone line will allow noise from the microphone to pass to the speaker again - if the speaker is loud enough and the microphone sensitive enough we have a feedback loop producing echos or even a very loud beep.
A very crappy alternative that is used by some companies that just want to be able to print a feature on the front cover without needing to bring this feature to a useful state first now is the following:
Turn either the Microphone sensitivity or the speaker volume down alternatively depending on what the telephone thinks might be better in this second.

Sounds as crappy, as this sounds, though, - and tends to make people very angry.

Advanced Airtime Tracking

Many phone users have complicated plans, things like unlimited incoming, 100 anytime minutes, 1000 evening minutes, etc. It would be nice if a user could input the various monthly airtime chunks their plan gives them, and then the phone could track how much is left in each chunk, i.e. How much anytime minutes are left this month? Optionally, the software could warn when someone is close to the monthly limit, to help avoid bigger bills.
On (at least some) prepaid USSD can be used to check current balance.

Call duration should consider billing increments and show the durations according to accounting period

Anti-stutter software

Delayed Auditory Feedback (DAF) has shown to reduce stuttering in individuals by 70%. By using the microphone, it should be pretty simple to implement this on the Openmoko. The DAF functionality should also be present during phone calls. See http://en.wikipedia.org/wiki/Delayed_auditory_feedback for more information.

Minimize In-Call mode (check address book while in call)

On my locked phones I always find it annoying that one can not use other features while a call is in progress. In particular, I'd like to access the address book so that we can (1) give a caller someone else's phone number (or other info) and (2) lookup a phone number when using a calling card or some other proxy.

Similar request when using the browser (lookup passwords, todo list, etc).

Hold Music (Ringback Tone)

On some cellphone networks you can pay to change the normal Ringback Tone that the caller hears when ringing, to a customised sound.
This can partially be implemented on the phone.
Issues are:

In countries where callers pay, this will make you unpopular.

In countries where the called party pays, it will use your minutes, or cost you money.

A list of people to activate this function for would alleviate this.

GPRS internet connection will stall while the hold music is being played.

It would also be useful for notifying people why you can't talk (for example, having an "I can't talk tight now - I'm in the library - this is a pre-recorded message" would be good. Also perhaps you could loop a pre-recorded sound in the background so you can lie about where you are, and have the ability to simulate a really bad connection.

DTMF Landline Dialing

The ability to hold the Neo near the microphone of a landline handset and have the Neo dial the landline by sounding DTMF tones. The DTMF tones could be generated in software or be pre-recorded files.

Graphically this could be done by adding a 'DTFM dial' button to a context menu. The user would select a contact then presses the 'DTMF dial' button to start the process. A small delay could also be added to allow time to put the Neo near the landline handset.

For the Neo to know which area code to use (or not use) the current or last GPS coordinates could be utilised.

Conversation Recorder

An option to record phone conversations. Would be helpful to have the device always recording for every call, with the sound data encoded to low quality Ogg Vorbis or SPEEX and stored in RAM. At the end of the conversation the user would have the option to save to flash or discard the conversation. This idea could also be applied to voicemail so you could save voicemails locally.

Unlicensed Mobile Access (UMA)

T-Mobile recently rolled out a UMA service that hands off calls between the GSM network and WiFi access points. Only a few phones support it right now, this could be a rather unique feature if Openmoko can implement it.

This can be combined with a GPS map to show where local free hubs are.

kd8ikt says a modded dialer with IAX/SIP (VOIP) or a stand alone VOIP client/dialer as an asterisk/FWD/IAXTEL/teliax stuff, i mainly just care about being able to connect to my own asterisk server in turn i can setup my asterisk server to route where ever i want i think one hardcore digium guy already ported iaxclient to arm so now i guess it needs a gui http://projects.openmoko.org/projects/mokoiax/ it wouldnt suprise me if underneath their UMA setup is a network of asterisk servers

Ignore-Call Button

Another alternative might be to use microphone to recognize when the user gives an audible "Shhh!" command. This could prove difficult to determine with the simultaneous ringing, and possible in-pocket shuffling noises.

A really usable feature is to "reject with SMS/text message" - letting the user reply the caller choosing a previously setup template or typical response: "I'm in a meeting - I'll call you later" or "Can't take your call now, please call back in 10 minutes". This feature typically is a much better way to get your co-workers (ie boss) to back off, than to silently ignore the call.

The accelerometers could be queried while the phone is ringing to detect a firm tap on the phone. This would avoid the delays of fumbling to remove the phone from one's pocket to silence the ringer when you've forgotten to set it to silent mode. Just firmly tap the phone through your pocket, and the ringer will silence, like some Motorola pagers. Maybe single tap = silence; double tap = (activate voicemail or preset SMS).

Audio

Ambient Noise Detection

Using the microphone to detect ambient noise the ringtone volume could be adjusted automatically.

If the ambient noise exceeds a preset threshold, the ring vibrator could be activated. This is good for when people forget to enable vibrate mode when entering noisy environments.

Detection of ambient noise could also be used to subtract the noise from the audio signal. However this approach is best performed using two Microphones, one for the voice and the other to detect the noise.

Active noise control

Using the microphone to do active noise control on media player playback or telephone calls. This should be an independent module/library which can be used by any application which might require this feature. also provide a way to easily alter the parameters of the active noise control.

Hear Impaired Mode

Hearing impaired people need louder speaker(but with less volume than hands free) and equalized sound, based on their hearing problems(example 20dB hearing loss from 2KHz to 4KHz).
Older people 50+ years old need slower speech rate(time stretch, cut the big speech gups) and cleaner voice.

Please note also the Hearing Aid Compatibility regulations in the US. I have tried to summarize and clarify them here. I haven't yet discovered whether the FIC device is M or T rated. For many hearing impaired users, a tcoil coupling to their hearing aid (t3/T4 rating) would be preferable to manipulating sound output in other ways.

Mute Button

Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.

Web Browser

Full-page Zoom Support

Full page zoom is a very good feature. If possible, people would want to browse the internet with normal layout than a distorted one. It's best if I could double-tap a text or image block and zoom to a fit size.

The BigPageWidget proposal suggests 'Full Page Zoom' should be implemented as a widget available to all applications.

If the processor and memory could afford, it is good to just use Firefox 3 in Openmoko. It has implemented latest gecko's full-page-zoom ability. With certain modification, we could do the same zoom like iPhone's Safari.

Firefox 3 may be a big eater. A cut-down version of it may be good enough.

If this is not practical, Minimo with full-page-zoom ability is good.

Plugins Support

While an extensive browser plugin system would be costly to the efficacy of the platform four particular browser plugins as poplularized by Mozilla firefox should be adapted to the web-browser, namely: noscript, adblock plus, greasemonkey and foxmarks.

Careful use of these can dramatically reduce bandwidth, page space, and rendering costs even if it comes at the risk of some hard drive space in the form of block lists.

Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.

Widget support

Built-in browser with the ability to install widget shortcuts (aka links) in the main phone menu, also some apis for interfacing with the other functionality of the phone like adding contacts, reading contacts, reading gps-psoition etc.. (maybe there is some defacto widget standard that could be used)

There is a W3C spec being developed, which may not be exactly what the original proposal had in mind, but it is about writing simple applications with HTML, SVG and JavaScript. It is mainly Opera's work, and while most developed widgets are not very useful, there are some that are, and it creates a very nice development platform, especially for mobile devices. So, I think it makes an awful lot of sense for Openmoko to support this spec.

Media

Music/Video Software

A real good programming area for competition with the iPhone, a singular video/music player would be great for multimedia. A seamless integration system, a la iTunes and iPod, would be extremely popular.

Using the Wi-Fi connectivity, a separate music program that supports wireless music sharing/ streaming (similar to what can be done when two computer running iTunes that are both on the same network) and that also supports internet radio.

It would also be nice to have some kind of "announce your musical taste" mode. This could be implemented using last.fm profiles, such that when e.g. in a crowded place a user nearby has a similar musical taste, both users get notified so they can share their music files with each other (perhaps using a photo for id). Great for discovering new music - and making friends!

- Possible copyright issues sharing music files?

Sure, but that's the user's concern, not the developer's. There's no way for us to know which audio files the user is permitted/not permitted to share.

Reading Support

It would be really great to be able to read :

PDF

Open Document files

Text / RTF files

fb2 files (fbreader)

MS Office files

Aportis Doc (pdb)

DjVu

...

In both landscape and portrait

Wikipedia Mirror

Blog ScribblePad

Draw an image (and maybe add some text), then post to your blog.

E-Book Reader

Neos brilliant ultra-sharp screen makes for a very good e-book reading device. All it takes is a good e-book reader with touch-screen page turning / scrolling (see the BigPageWidget proposal). FBReader could probably be adjusted easily by an experienced GTK hacker. Note that e-book reading is different to pure text/pdf displaying as it requires at least auto-bookmarking of the last read page, proper text and image scaling and text formatting.

Support for vocabulary training with flashcard system (also usable for other content than foreign language words!)

Flickr uploader

A simply, drag & drop uploader, tagger and organizer to upload images on phone to Flickr, with support for various languages. A good base could be the cross-platform uploader jUploadr, written in Java and working on Windows, Mac and Linux. But, most of all, the best GPL program which actually do this work is Mobile Pushr, written in C and Cocoa for iPhone, must be probably ported in python to work on Openmoko.

Virtual picture viewer

I believe you could display pictures larger than the FR screen by using the accelerometer data to simulate the physical screen as a window into a larger pic.

You would use the accelerometer data to figure out the current FR location & orientation relative to when the pic was loaded, then display the part of the picture that the window overlaps. Then you could flick the neo back & forth and see an image bigger than the screen.

I haven't done any calculations to see what the accuracy would be like, but my wild ass guess is that if you moved it quickly enough it would overwhelm the error margin of the accelerometer. I'm also not sure if the refresh rate is fast enough to make it look good, but again my guess is that it would be.

Paint application

A simple paint application that can save images in PNG or SVG. It could also be a light version of Inkscape. It must be fast for doing tasks like jotting down something when you don't have a piece of paper laying around. It would need a stylus to draw so buttons does not need to be finger friendly.

PIM (Personal Information Managment)

Context Sensitivity

Any email or sms message or application that contains a telephone number should be click to dial, eg 1234567890. Addresses link to mapping software too?

Notes

Something for taking notes would be a nice feature:
Tomboy has some nice syncing features and is gtk based.

Calendar

A nice calendar application should be implemented in Openmoko. This tool should have a syncing feature with your desktop computer.
The tool should have a reminder feature and other features like other mobile phones already have.

I think synchronization sould be handled by computer with opensync+syncml based tool, not by calendar itself. --Antono 12:25, 7 January 2008 (CET)

If this cellphone is thought also as a PDA, of course it needs a calendar. But I would like to see something better than just a calendar, I was thinking that there could be some application using "fisheye" view. Just like [1], though that example seem a bit chaotic. --Yprum 22:27, 21 February 2008 (CEST)

I would love to see something similar to the palm application "datebk" [2]. It comes with everything whats neat and handy. --Trixer10 09:12, 14 August 2008 (UTC)

Address Book

Option to search not just the stored list of addresses, but one or more of the online phonebooks. Probably should be modular to make adding/changing phonebook sites easy. Also allows for future integration with LDAP servers or whatever.

Also the possibility to search all info on the contact, like number, email, postal address and so on, in case someone asks you to identify a known number.

Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done by integrating with whatever on-phone GPS mapping software the Neo ends up using.

Random text input 'notes' about a contact

Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's

Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant)

Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account

Tagging Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other applications (GPS, ...) with tags.

Store Bluetooth IDs of friends and notify (configurable only on this device or on both devices) when a one of these Bluetooth ID has been detected (this is more a separate application but has requirements on the address book. Should also be able to create an address book entry from a Bluetooth ID. Could be used as a nice tool to detect people who you're avoiding.

Context based To-Do list

If I arrive home and there are "@home" things in the to-do list, the Context based to-do list reminds me of that.

Idle Hands. An application which randomly displays simple, location-appropriate tasks that may be performed during otherwise idle time.

Workout

Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.

Shopping List

keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.

Tagging

Tags can be used by various applications. Requirement is interoperability for further enhancement.
Tags should be applied to contacts, calendar events, mail/sms, calls, places(GPS) and files.
http://tracker-project.org has all needed tagging-and-searching functionality and ready to be used on low-resourced devices.

Exchange Integration

Once there is good TCP/IP connectivity on this phone, integration with corporate email/calendar/to do/contacts/etc servers would be a big advantage... near-real-time automatic email downloads and automatic bi-directional syncing are productivity boosters that you have to experience to appreciate. It turns your phone from a 'nice gadget to fiddle with' to a natural-feeling extension of your day-to-day life.

Is the time right to name names ? Add as your liking...

Plugin/integration to & from Kontact

Same with Evolution - Thunderbird - Seamonkey

?? Google Calendars ?? (this one is tough)

Ms Exchange

An electronic wallet

A database which stores securely PIN codes, login data, bank and email accounts, membership informations, and other valuable and private data. Entries can be ordered in a folder-like manner. Access to the database is given by a master password. The database as well as the master password are stored with strong encryption. For security reasons, the program asks again for entry of the master password after a certain period of inactivity. The database can be synchronized with a PC application (ideally written in Java for cross platform compatibility).

Easy business card sharing for a small group (in the same room) over bluetooth or WIFI

Six Neo1973 owners are having a chat in a cafe. They agree to split but meet later. They want to exchange their numbers with each other before they go.... The normal way to do this is for a rather longwinded repeating of numbers to each other, or half the people manually inputting numbers before phoning/texting the other half to complete the process. All in all its a fair number of button presses to get it sorted.

Instead the NEO could have a small app where the phones link up in a small peer to peer Bluetooth network and share automatically with one person initiating a request and the other detected NEOS agreeing/acknowledging the share. The initiating NEO would then sync the mini-group automatically by interrogating each phone and then sending the table of results. The NEOs would have to be clever about checking for duplicates in the address book and offering a choice to the user if there are any conflicts.

PROS:

genuine saving in time for social and business situations

CONS:

I am sure there are some security hassles to be pondered....

not going to be used every day... definitely not an immediate priority.....

only at geek conferences will all have a neo....

SMS Counter

An application which shows on the today-screen how many SMS i've already sent in this actual month. Some have for example 150 free SMS to write each month. With that program you can see all the time how many SMS are left until the end of the period. As an alternative it could be a counter which counts backwards from a predefined number over a defined period.

Data Storage

Store all the data about communications with a contact (SMS, MMS, phone calls, emails, IM, etc) in a database and make them available in one list or one timeline.
Make this list available through the address book.
This would be great for people who are switching between one or more communication channels frequently

In GSM networks so-called acknowledge-SMS are sent back to the SMS's dispatcher in order to indicate that the primal sms was received (as message delivery is only best effort and is not guaranteed). So in the SMS dialog there could be equal sized buttons with captions as 'send only', 'send and receive delivery status message' and 'send and notify (e.g. ring) when delivery succeeded'.

Special handling of status-SMS

Related to the previous entry, these acknowledgment-sms' should be handled in a different way than normal SMS'. Most Motorola do this, while Samsung SGH series don't & clog the inbox, warn of a "new" message upon Status notification: Delivery Status Messages should be stored in a separate menu so they don't bloat the received-folder and you are able to quickly review the status of the messages you had sent.

SMS at time/date You could be able to set up messages that are sent at a certain time/date

Profile-override-SMS SMS that start with a certain code word override the silent profile and have the phone ring. So someone could alert you in case of some emergency.

Codeword-SMS An expansion of the above: check for code words and allow selectable tones for matches. E.g. "Server Down!" has a loud klaxon, "Disk Warning" has a quiet chirp.

(De-)Abreviation-script Implement a script that de-abbreviates: "hi m8 u k?-sry i 4gt 2 cal u lst nyt-y dnt we go c film 2moz" becomes "Hi mate. Are you okay? I am sorry that I forgot to call you last night. Why don't we go and see a film tomorrow?" (taken from: [11])

Implement a script that abbreviates :-)

Anti-Spam ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.

Rule based authorizations ...for received messages. For example, delete messages from one source between 9h00 and 18h00 (workday) allow them otherwise (to get alerting messages).

Enable chat-like SMS-viewing SMS-Email-like: retain SMS app, but store 'conversations' rather than pile-up. Group/archive conversations by Caller Group (Work / Friends / Home / any user-defined Caller Group). Show appropriate icon from either Caller Group or Caller ID at the source of conversations panel

Call Back Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.

Non-destructive deletion, deleted messages goes to trash, and are recoverable.

SMS-EMail-Gateway

SMS comes in, gets forward to your inbox, like any other piece of mail. Appropriate alerts and etc occur - again, just like for email. A simple SMTPD running on 127.0.0.1 that is hooked to an email-to-SMS translator that will send email addressed to 'SMS@localhost' (or whatever special address) out via SMS

SCROOGE-SMS This is an intelligent SMS router. When you write your SMS you get the option of how to send it

By standard carrier SMS - cost 10cents

By Openmoko SCROOGE SERVER - this will send your SMS to the Openmoko Community SCROOGE SERVER next time you have WiFi - the phone will remind you to turn on WiFi when it knows you are in places where you have WiFi access. The person you are sending to picks up when they come into WiFi Range. This comes with an intelligent reminder that tells you that message has still not been delivered in 24 hours and would you now like to send it by a paymethod. This is better than IM because both parties do not have to have WiFi at the same time. - cost FREE

By email/Wifi - cost FREE

By email/GPRS - cost ?

Too many options!!!

Alternatively SCROOGE SERVER could auto launch IM client if it detects both parties have WiFi at the same time (Status kept on SCROOGE SERVER?) to allow instant reply..... Person who receives has the option to reply in SMS or in IM or in VOIP phone.

Misc Software

Clocks/timers/Activity meters

Sport tracker

Sport tracker can be used to measure the distance/velocity from point A to point B (or it could have several intermediate stopping points) using GPS. This would be extremely useful for running, biking, hiking, etc.

Standby clock

Egg Timer

Cycle Computer

As already mentioned by Technil, a cycle computer could be created using gps. The sensor at the bike's wheel could transmit data via bluetooth or some cable that would be attached to an openmoko device. In order to save power, one could switch off the gps and only use the bike's sensor.

Just another idea that came to me: Why don't have sensor's transmit cable plug into the headphone/microphone plug? A tool reads the signals created by the induction of the passing magnet, then gives them to the cycle-computer-app :) --Minime 19:50, 12 April 2007 (CEST)

NTP Server

Run the NTP daemon using the GPS chipset as a reference clock, so that the Neo would have a very accurate time-of-day clock and would be able to serve time to other networked devices.

I don't know what it would take to implement this. Items to consider would be the availability of a 1 pulse-per-second hardware signal, the accuracy of timestamps delivered in NMEA messags, etc. Dealing with power-management issues (such as the device going to sleep) would also be challenging.

Find Keys/locate stuff

This would require an additional accessory: a tag which transmits a signal that the Openmoko device can pick up. The tag could for example be attached with a ring loop to your keys, put in your wallet, or be attached with high strength adhesive strips to your remotely controlled aircraft. Whenever you can't find back your keys, wallet, RC aircraft,... you activate this application. When the device picks up the signal of the tag, it translates it to clear audio and visual prompts to guide you in the right direction.

A commercial device that offers this functionality is the loc8tor. Having this in the Openmoko phone would obliviate the need for a separate device. Murphy's law dictates that you'll only loose your keys when you don't know any more where you've put the loc8tor tracking device. But you're bound to always have your phone with you.

Additionally, you could also set a safety perimeter. Whenever a tagged item moves more then X meters from the phone, a signal will be given.

An Postfix Notation (RPN) calculator

Many engineers, computer scientists and other groups who have grown to enjoy the simplicity and ease of an postfix notation calculator will miss them when they give up other platforms to move to Openmoko. A RPN calculator will increase adoption by providing one of the tools that other platforms have provided for many years.

Scientific Functions

Windows CE Emulator

On ARM machine, Windows CE API emulator, like Wine on x86 machines.

PalmOS Emulator

The Access group is probably coming out with their Linux platform any time soon. One of the components is a PalmOS emulator which I'd like to see working on Openmoko as well. There are literally thousands of PalmOS apps.

I'd like to see a Windows CE Emulator with active sync support.

Chumby Emulator

Would be very cool if the neo can act as a chumby. see http://chumby.com for more details about a chumby.

TV Guide

Alcohol meter

Give the phone some info about your body (gender, size, weigth) and when/what you drink and it will compute an approximation of the amount of alcohol in your blood. Updates automatically, could have an alarm, when you are probably sober again.
See, for example (German text) http://www.misterio-online.de/promille.htm

Interaction with LEGO Mindstorm

With the accelerometers, GPS and good CPU, the phone could be used to control/serve as input with robots built with LEGO Mindstorm, which can be accessed by USB and Bluetooth.

Flashlight

Simple finger application that makes every pixel on the entire screen white to be as bright as possible until you tap the screen again to turn it off. This way, you can use your Neo as a (short term) flashlight!

Wii Controller Emulator

Use the accelerometers and buttons on screen to work as a Wii controller via Bluetooth.

FUSE support

Interactive Sky Map

Application that displays the current sky map. Using GPS, the application determines the direction over ground
and rotates the map appropriately. Furthermore, when the phone is tilted, the map is also moved appropriately.
If everything works fine, you should have the impression that you can lift the phone over your head and
"look through" it and see the stars at the correct positions.

Accessibility

Accessibility features for the visually impaired.

High Contrast Themes.

Screen Magnifier. Features should include automatic cursor tracking when navigating menus and entereing text and provide manual controls to zoom in on other section of the screen.

Text to speech. The software should read out menu item ,contact lists ,text messages etc. Would also be useful for operating the phone while driving. see: Wishlist:Speech synthesis

VOIP

Ability to use the phone for VOIP over wi-fi such as Vonage. They currently have 2 different pieces of software for pc . Basically software creates a mac address which is paired with your Vonage account. Skype could also be implemented but I prefer Vonage. Only available when connected to wi-fi with a good connection. Phone treats calls the same as a cellular call, could keep a separate log of minutes, ability to record conversations, etc. Option to use VOIP if connection is available automaticly or manually. Small icon to show when call is using VOIP.

A standard SIP client would probably fit better into the "free and open" philosophy.

Ideally a SIP client that includes ZRTP/SRTP for secure communications.

(Note: Vonage will not give you your SIP credentials, so you cannot log into their network with a non-approved softphone. Other VoIP providers have different policies.)

Asterisk is a great communication platform that can run on small devices. I have an Asterisk server running on a Nokia 770 and I read about running Asterisk on an iPhone. With the crosscompiler available it sould be possible to compile it and run Asterisk on an openmoko phone and let it take care of almost everything on the wishlist below.
Edw/

Freeswitch is also well worth a look -- it's a project started by a long time contributor to Asterisk, and seems to be more scalable on similar hardware, so might well scale down to small hardware quite nicely.

Power Meter

If the power bar is clicked on it will show time left on charge and if charging it will show time until full.

Also a rrdtool type of configurable timespan/frequency graphical overview would be very cool and usefull to some people?

Accelerometer wishes

Flick interface

Ability to "flick" the phone for page up/down by simply and rapidly tilting the phone back-and-forth for up and forth-and-back for down. The same motion can be implemented for sideways motion. This will take advantage of the 2 3d accelerators.

Sensitivity of the scrolling should be configurable and a test option provided.

Reading navigation of documents enhanced by accelerometers

If the two accelerometers in Neo1973 allows it, it will be nice if when you're reading, give a newspaper, you can move up, down, left and to the right the viewing of the document just moving the phones to the corresponding direction.

I don't know if this is possible (haven't seen the project in detail yet) but this feature could be very attractive for final users (and this is good). (sorry for my english but i'm italian)

Wand UI

In keeping with the requests to think outside of the box... the dual 3d accelerometers should enable a 'magic wand'-style UI for certain uses. Macros could be recorded and edited, or presets could be used. For example, flipping the device playfully could initiate a game mode or could signal the end of the work day.

Panning interface

Some applications display underlying data that is larger than the screen. Typically they let you pan across the data using scroll bars.

In cases where the data is only (say) 3 or 4 screens wide or high, it may be very intuitive to just shift the hand held device a few centimeters to the left or right, up or down to pan in that direction. The screen would appear to be a hole into the world of the data, and you're just moving the hole to look at something else.

When the underlying data is very large, you obviously wouldn't want to use this mechanism unaltered; you'd have to walk to the next room to see the data 100 screens away. Instead different accelerations can be used for different panning sizes. This is the same adaption used for accelerated mouse pointers typical on touch pads. A quick flick moves the mouse pointer fast and far. A slower drag over the same area on a touch pad moves the pointer slower and with more precision.

Shake-to-Wake

Giving the phone a shake enables voice commands for a few seconds.
Usage Examples:

{Shake} "Call" ContactNamePhoneType

{Shake} "Call John Mobile" (Calls John's mobile)

{Shake} ApplicationName

{Shake} "Reader" (Opens the e-book application)

Would require a method of inputting voice tags for applications and contacts and obviously will only work for P2 (accelerometers)
But lets get voice command functionality working before P2 (just by pressing a button on the screen instead of shaking)

I think that is possibly to replace "Shake" with double hit with finger in the side of phone. Proper algorithms(with accelerometers) should recognize any similar activities.

Emergency call

When the accelerometer detects a great acceleration (i.e. 5G) start a countdown sequence, if it is not stopped make a call to a preconfigured emergency number. If the data from the GPS is accurate give it.

A first version could use a recorded message (an audio file). In next version it could use a synthesizer, so it can give more information (add GPS information when it is ready).

I would worry that most such events would be false positives, and hard to distinguish from the real thing. A user dropping their phone (an event very common in the life of any cellphone) is far more likely than a user being in a car accident with their phone, and the clatter of a cell phone on asphalt could reach 5G. Additionally, it has to be very hard to distinguish hitting pavement from hitting a windshield, as from a physics standpoint the two are the same thing. Hashbrowncipher 02:06, 26 October 2007 (CEST)

It could use the gps data to calculate the speed it is traveling with. Let's say it has been moving for more than 50 km/h for more than 10 seconds. Then it could activate the "emergency call if more than 5g" function. Aside from the countdown timer, it could increase the volume to max and warn the user that an automatic emergency call will take place in x seconds. While it is counting down it could listen for "Never mind, I'm fine, phone" and stop the countdown in case it hears that. It could also output the warning sound to the attached bluetooth headset and let the user talk to emergency services if the user is still conscious. Tommy 17:48, 8 January 2008 (CET)

Perhaps have the phone yell loudly that it's about to do the emergency call for a decent amount of time, disabled by touching the screen or entering the pin number. In the case of any bluetooth device attached to the user, the phone could check to see if it's in range before calling. sin

Movement detection

By detecting that the owner is walking a user defined profile can be activated with a specific set of notification settings. For example you may wish to use a cheap old sounding ringtone so you don't attract attention from muggers. Or you may wish to have a louder ringtone if you carry your phone in a bag where it can't be so easily heard.

Games

Imagine a first person shooter that you look around by turning your body.

Sloshing battery indicator

Shaking the phone will produce a sloshing sound, as if it contained a liquid. As the battery loses charge, so the sound produced on being shaken, will replicate a decreasingly empty container. [14] for an example.
ShoogleAudiocloudsDynamics

Steady screen

It may be hard to read the screen when the device is shaking from some source of vibration. E.g.

being mounted inside a vehicle

during certain sports

while the internal vibrator is activated (perhaps)

The accelerometers could be used to determine the frequency of the shaking and to make the screen appear to be steady by offsetting the contents at the same frequency in the opposite direction. If this was handled by the graphics processor it might not even be an intensive operation or produce significant battery usage.

At slower movements, (say just being held in an older unsteady hand) the accelerometer data could be fed directly into the screen offset. This would allow you to compensate for unpredictable movements.

Such a mode would cancel out shaking, producing what would appear to be a slightly smaller but steady screen. (Smaller because pixels at the edge of the screen may not have any screen in the same location in the next fraction of the vibration). Gross movements that move the screen to an entirely different position would not be cancelled, effectively 'panning' to keep up with the large movement.

In situations where the hand is not experiencing the same source of vibration that the screen is, the areas of touch sensitivity should be offset at the same time as the screen. So a steady hand touching a vibrating screen isn't interpretted by the application software as a vibrating hand.

These features would best be implemented in the rendering and touch libraries so they could be activated for all applications.

Tapping as input

If I understand correctly the accelerometer should be capable to be used as a simple input. When Openmoko is in the pocket, simple taps against the pocket should be possible to use as input. For example when there is an incoming call and the user is notified using a headset then one tap would accept the call and two concurrent taps against the pocket would cancel it. This can also be used for lot more.

Pedometer

The accelerometers should be able to detect each step and record it. If the time when the step is recorded you would then be able to determine the time used walking, the distance traveled and approximate the energy used. Acording to Wikipedia this has been done in other devices.

"Spirit" Level

The accelerometers don't just detect movement, they also detect the direction of gravitational force. Because the sides of the case are straight, the phone could be used as a torpedo level to determine vertical plumb or horizontal level. The back is flat as well, allowing for two-axis leveling.

The phone should switch automatically between vertical, horizontal single axis (holding the side of the phone against the top of a beam) and horizontal dual-axis (laying the phone flat on a surface) modes.

Along the same lines, it could be used as a leveling protractor, to determine slope.

Ringtones determined by position

When you are being called, the phone checks in what position it is and gives a ringtone accordingly.
If it is laying face up, you could have the vibration off and a normal ringtone.
If it is laying face down, you could have the vibration off and no ringtone (maybe only a led blinking). (in a meeting)
If it is constantly moving, you could have a extra loud ringtone as this is a sign of movement. (walking, biking, skating or other activity)

Connectivity

VNC

Networked X-Windows

Whether it's running true X-Windowing over the network, or your bog-standard VNC connection as mentioned above, the ability to have your phone's screen available on your laptop or palmtop would be most desirable.

NX client

A form of X-windows forwarding optimized for performance over slow, or high-latency links, which could prove extremely useful. Capable of streaming a good quality, full desktop session over modem speeds. The protocol and at least one implementation is gpl'd. wikipedia

OpenOffice Presenter Control

I Think it is a good idea to control your OO Presentation with Openmoko about WLAN or Bluetooth.
I think it needs some buttons to go back or forward and control the mouse to show something and take normal mouse clicks.
But with the mouse clicks I think that we need a short time between the clicks in example 1 second. Because when you make a mouse
click than to fast than you must go back.

Amarok and other Media Player remote control

Control Amarok or any other Media Player with Openmoko (as a remote control). Bluetooth or WLAN could be used as protocol to send and receive the data. Maybe a WebInterface of Amarok is a start. Can be used on parties for a mobile music management.

Read informations with SMS

Send a SMS with Code to the Openmoko (from a specific number).
For example to send get the GPS coordinates from a stolen Neo (or if you don't know where your Neo is).

OpenRemote

Silent WiFi Connection

Enable a system daemon to periodically lookup for wifi connection (through know networks, open hotspots, Fonera network...), hook it with DHCP or predefined configuration, and activate silent download of RSS feeds, mails or all other thinks which have to be syncronized from the Net.
The daemon could expose a DBus interface so to permit other programs to be notified when Internet connection is available.

Security

General Filesystem Encryption

If anyone wants to get your private data saved on your Openmoko device, he should have to get through a high security mechanism like dm-crypt. The question is how much CPU power would be needed.
Would it be an idea to encrypt only the private data like phone numbers, preferences, address book etc. (like /home/$USER).

GSM Encryption

My Voice is my Passport

Use voice recognition to unlock the phone. "Hi. My name is ... My voice is my passport. Verify me."

Firewall

A network firewall

Full Mac Support

Full mac support, preferably with full software and full sync capabilities with iCal and iMail

Anti Theft Application

This application would enter the phone into an Anti-Theft Mode which activates particular security features to reduce the risk of theft and also to ensure a higher probability of recovery of a stolen handset.

Hmm, if you're away from your home for more than a few days (via GPS), it starts sending its coordinates home.

You can make a password-protected list of your own phone number/numbers and when a card with other number is detected (and security feature is on) its number+gps data is send via sms to some 'secure phone' [friend's/sister's]. With thief's phone number its easy for police to track him.

RFID based personal alerts

Assuming an RFID reader is available: You'd put an RFID tag on your keys, wallet, etc and train a program on the phone to give you a soft or hard alert when one of them leaves detection range. That way, if you're walking away from one of them, the phone could alert you.

Actually there is a RFID reader available. Take a look at this: http://www.wdi.ca/ We only need driver for that thing. .... Well, never mind. I think it doesn't work because of the size. Anyway an interesting idea.

OpenVPN Client

This application allows to configure the device as an OpenVPN client using the GUI including support for X.509 certificates.

Integrated Help System

A help system that is either on or off. It could be activated and deactivated by a five-second-press on a button, for example the AUX button. When the help system is activated, it will explain the use of any item you touch on screen (with stylus or finger). Example: if you touch the battery icon, it will explain that this shows battery level / remaining time. If you touch the date / time icon, it will explain that this icon shows date and time, and that if you press it, you can set date and time. Primarily, this help system should be able to explain all user interface elements in the main screen, but if it proves popular, it could be expanded to cover other applications as well.

Performance optimisation

Use DMA engine in CPU for blitter

The DMA engine in the CPU can substantially speed up moving of large areas of screen in some cases.

Use virtual screen to optimise scrolling

In some other cases, the hardware supported virtual screen may also speed it up.

Reusable Display/UI Widgets

Use BigPage for full page zoom, scroll, scale in many apps

The BigPageWidget Page decribes a widget that could bring full natural page viewing, scaling, scrolling to the OM platform - allowing all applications to make intuitive UIs. A good way to read documents of any type without reformatting them massively increases the utility of a device with a small screen

Soft Sim Cloning

The ability to clone and store sim cards internally as soft sims and be able to switch between them would be handy. The sim cloning can be done on either the phone itself or on a computer and then transfered to the phone. Software already exists for sim cloning on PCs such as GSM SIM Utility 5.15. It would pose a security risk if someone got their hands on your soft sims but it wouldn't be a problem if you were just soft siming pre paid cards and still using your hard sim slot for any contract sim cards.

Charging Alarm

An alarm program with a pin to allow safe charging in public places. Two possible modes.

Public Space Alarm Mode

An alarm that sounds when the charger is removed to enable safe charging in public places, such as back packer dorm rooms.

Silent Alarm Mode

A silent mode where it acts dead and sms/emails GPS coordinates periodically.

Bluetooth

Voice Dialing

Dial by voice commands.
Dial by dictating phone number. This way we can voice dial any number even if not in our contact list.

Music through Bluetooth Headset

Music can be played through a Bluetooth headset, but would stop playing when a call comes in.

Walkie Talkie

Let Openmoko devices connect to one another via bluetooth or another connection method (GPRS for long distance but high latency, probably Wifi on P2), and hold a conversation.

Features for this applications can be:

Push To Talk (PTT) button

Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.

Optionally a full duplex mode

Different channels to choose from

Monitor different (preselected or all) channels for traffic.

Content encryption

Active noise control

Allow zero config use (units can talk without any access point helping)

Overview of all connected people trough sending GPS data to everyone who is in the Walkie Talkie channel

Local (non-GPRS) use cases include chatting while biking
or motorcycling in a group; perhaps also in a car caravan.
This application could also be used as a baby-phone to monitor your siblings.

This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.

(One thumbs up from me) Jackcday

See also WiFi Walkie Talkie and perhaps construct one application that can handle both Bleutooth and Wifi.

Automatic Sync

Automatically synchronize with desktop computer (or with any SyncML server) when within range based on user profile. This may require the use of a secure data transfer.

GPS Assisted Bluetooth Management

Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.

A Bluetooth device is configured for automatic reacquisition based on the following profiles:

Manual - only when Bluetooth is on

Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.

Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.

Non-mobile devices

Examples devices include: computers

The location and range of the target device is determined via training. Periodically, the current GPS coordinates and Bluetooth signal strength are logged. Additionally, connectivity loss events are logged. An algorithm uses these logs to determine the device location and range.

Connection attempts are made when in a configurable proximity to the device. The first attempt when entering the proximity and further attempts at a configurable interval.

Mobile devices

Example devices include: automobiles

Mobile devices are configured to have two types of locations:

Last known location

Non-mobile locations (homes)

Last known location

A car is mobile, ideally, when you leave your car, the phone should note the car's location when connectivity is lost and then attempt to reacquire the car when you return to the location of the car.

Non-mobile locations (homes)

As mobile devices may have multiple users, it is not sufficient to always use the last known location. In this case, the device may additionally have multiple homes. For example, a car might have as its homes: home garage and work parking lot.

Bluetooth neighbor detection and multiuser apps

Like the one laptop per child (OLPC) interface, keep a number in the status bar that represents a count of other openmoko or compatible bluetooth devices in the area. Allow for the spontaneous initiation of a chatroom or multiplayer game or file trading with any moko in the area.

Bluetooth environment detection

Capability to detect when a predetermined bt device enters/leaves bt range and launch a system-wide event accordingly. This would feed not only the "Neighbour detection" idea described above, but also the "Profiles", "Context based TO-DO list" and "Location-based reminders" ideas. Reminders could be set to trigger in the presence of a specific person X (with BT device Y). Profiles can take into account which devices are present around the phone (car kit, for ex.). To-do list could also change according to present devices.

Remote control

Wireless presenter

Use the phone to run your OpenOffice.org Impress presentation remotely using Bluetooth. Cool features:

Display the text notes for the presenter on the phone's display and update it whenever the slide is changing.

Initiated from another device

Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.

Directed at another device

Remote control over Bluetooth to other devices to control media player, lights in your house, etc.

Remote is my draft of a python-based remote control app that allows you to define button sets and commands to run on the local or a remote host (through ssh, for instance). Error handling and command interface need work.--Mjr 11:14, 18 October 2007 (CEST)

Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. www.z-wave.com

Bluetooth Car Connection

Have a deeper connection to the car than just handsfree speakerphone. For instance a transceiver with challenge/response systems to open, possibly even start the car. Possibly go as far as OBD connection to monitor car status on screen/log for later.

Could be done with a port of Carman or similar that can connect to an OBD2 adapter via USB or Bluetooth and display various information collect from the car, GPS, and accelerometers. --bmk789

Dude, Where's My Car?

When in range of the car navigation system, remember the position (perhaps check with the car GPS). When not in range, assumme that you are not in the car, and offer the opportunity to navigate to the car's last known position. That way, you can find your car e.g. on a large parking lot.

Calling out via SIM card B - the Openmoko-phone acts again as a headset

Same for Short Messages/MMS/Internet

This way you'd have your old phone switched silent and connected to your Openmoko-phone that handles all the calls and one can select which SIM card to use.
Advantage: No 'switching' between cards
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.

Internet Gateway

If the device could function as a Bluetooth router/gateway to the internet via the GPRS/data connector, then you could use it to get network connectivity from your laptop and other devices while on the road. Many smartphones can be configured as modems via Bluetooth for use as Dial-Up Networking connectors, and that should be the minimum target. Ideally, if the WiFi functionality was used so the Openmoko could be an 802.11 router or peer to peer gateway for a laptop, this would be even better. The full bandwidth of GPRS or whatever network is available would then be available.

Social Networking

Anybody running the social networking app will be broadcasting a profile, and when certain keywords are matched with other users who are also running the application, an alert is sounded. Each mokoid can be added as a hexstring to a profile page, and xml filters can be developed for each social service to convert various keywords and interests to moko-friendly format.

Give userspace api control over bluetooth signal strength

I have tried bluetooth handsfree sets with other phones and don't get perfect reception due to low signal strength. I suppose the reason the signal is so weak is because the manufacturer wants the battery to last long on its latest charge. Can you please make the strength setting configurable by the user of the phone through an api and perhaps even through the phones gui? I would gladly waste some battery time in exchange for stronger bluetooth signal strength.

UMTS tether mode

USB

UMTS tether mode

WiFi

Industrial grade Wifi management

One annoyance I've had with Wifi enabled gadgets is that they simply keep the connections in a dumb list. What I'd like to see is more granular connection management, which enables me to specify whether a given connection is friend & family (mom's place), professional client (joe's copies and coffee), commercially available (panera), onetime use, or anything else, as well as managing router config backups, firmware images, and security keys.

Captive portal auto-login support

Having a nice front-end to some sort of script that checks the authenticity of a captive portal login page (SSL cert), then passes your username and password login information to automatically log you into your account would be very nice as well. This can be done with curl, but it is difficult to make it work on all captive portals out there. Perhaps just a field that you can specify "once I am connected to this AP, run this script: ".

UMTS tether mode

Monitor mode

Support for monitor mode (rfmon mode) so it can be used as a wifi diagnostic tool or as a WIDS. Packet injection would be fine too.

Wireless Piggyback

HSDPA support and the like, so that users can connect directly with the internet with G3/G4 mobile service providers at speeds at or above 3.6 Mb/s.

Other

Android Emulation

The ability to run google android applications on the openmoko, this would enable any application written for android to work on the openmoko, it appears all the hardware is there it appears to run as an android phone but using the openmoko operating system.

Auto Update

A small tool which is configurable to download the latest Openmoko and Openmoko related software. Maybe if any internet connection is available or a minimum of bandwith is available then the auto update would download only security related or the whole system etc. .

Vibrate Pattern Recorder

An application that would allow the user to define their own vibration patterns, and possibly link them to audio files. Recording would be done in real time initiated with a "Record" button, optionally playing the associated sound file in sync with recording). While recording, the user would press and hold a button to define the timing and duration of vibration. The user would press "Stop" when finished. Vibration patterns would have the option of being looped(would terminate at some global ringtone length maximum).

One simple suggested vibration file format would be a sort of run-length encoding: First byte defines the length of a "time-slice" in milliseconds, which would determine the overall tempo(actually the inverse of tempo). The next byte would define the number of time-slices to leave the vibration on, and then another byte for how long to pause after. Continue alternating these on/off bytes until the entire pattern is defined.

- or just use MIDI, using a separate channel for the vibrator.

An implementation of RTTL could also be used to define vibration patterns.

PC Input Device

Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.

Could emulate a pointer device (mouse) or even keyboard using standard bluetooth/USB interfaces for such a device.

Use case: Alice is lazing on a couch and doesn't want to get up to do some minor interaction with the computer. She can see the screen and uses the Openmoko device as a mouse and/or keyboard to interact with the computer.

Next device

There is no device

Clearly the Next Big Thing has to be for the device to go away altogether. I know the basic idea for wearables has been around forever, but it seems to me that the time has come.

I wanna wear a bluetooth earpiece and cool shades, possibly with [ here's where my imagination is failing me :-( ] gloves, or fingerless gloves, or (ew) wristbands, and let any surface, including my hand, or no surface, be my interface. Tap the earpiece when you get a phone call, see a dial pad on your palm and tap out the number with the other hand, watch movies on a giant screen hovering in the air...

Why the hell do I want to dig out a device every time I want mindless entertainment or superficial conversation?

Ideally, you could then sell any little doohickey with whatever interface you want (switches, knobs, g-spots, ...) and all it needs to do is network with some software on the brick to be anything at all...

A rubberized shell, like some of the other new phones. Helps me not drop it, especially when drunken wardriving. [anon ;-)]

Phone subsidies

Get carriers to give you an Openmoko like they will give away other phones when you sign a contract.

"permission-free development"

"Meanwhile, Shuttleworth said he hopes to see the industry move to an environment of "permission-free development," where developers are free to jump in and write code off of core open-source projects without seeking permissions." [15]

GPS Software

implement "Cheap GPS" as demonstrated in the image, may be useful for geocaching.

Providing GPS Support also for outdoor users in addition to ordinary street navigation features

Overlay of satellite images with existing streetmaps

Incorporating SRTM digital elevation model: for example using the VRML/X3D as data format (see http://www.ai.sri.com/geovrml/) which is interesting for e.g. mountaineering: using a 3d browser rendering VRML/X3D Model, displaying the current position and track (possibly also other gps-tracks of the different routes to a summit downloaded before could be mapped onto the 3d model), (what about 3d hardware support? there is nothing written in the hardware specs about graphics: thinking of OpenGL for embedded systems (see http://www.khronos.org/opengles/)

Using sth like a tracking mode to allow certain people to determine the current position and track (for rescue missions - like they have for example at http://www.steiger-stiftung.de (a German beneficence for rescue issues) There you can register your mobile phone so the rescue service is able to track you immediately if necessary. The interesting thing: It seems like some mobile phones with GPS have special support for this issue. If your phone is registered, the rescue service is able to get your GPS coordinates directly from the phone without any user assistance. Openmoko should also support this! )

"Geomark" function: if you have to save the current time with your current location, only hit one button...

You also should be able to navigate with a small "compass" and the distance should be displayed to your saved point (maybe where you parked your car on a big car parking area)...

Measure the distance between two points (air line or walked way) -> no need for a tape measure

I think it would be good if you could either use Bluetooth, GPRS or AdHoc Wifi, and see near Neo1973 on the GPS map so you could see where your friends are, e.g "You want to know if you friend is on the bus behind" You would need a strong wifi and GPRS would be too expensive.

A bicycle sat-nav would be cool, speciayl designed for bicycles, e.g. cycle routes

Location-based ToDo reminders. The GPS system allows for locations to be tagged (e.g. Parents' House, Pharmacy). The ToDo list should allow each item to be tagged with one ot more locations where the objective can be performed. When at or near that location the user would be presented with a reminder. For example when driving to my parents' house my Openmoko phone would see that I am near the pharmacy I tagged as a location and remind me of the "Pick up toothpaste" item on my ToDo list. Then, when at my parents' house my Openmoko phone would remind me of the "Pickup DVD from parents" item on my ToDo list.

Hardware

Dedicated Power / Charger Pinout

Having not yet seen a physical Neo device, I haven't been able to examine any of the IOs to see if there already is a dedicated power / charger input. However, I can imagine that it might be very tempting to have the device charge solely via USB. For any device that is capable of USB-host, that is a horrible idea.

Since the device is able to run in USB host mode, it might be a good idea to allow for an alternate power supply, if say, a USB keyboard was being used for several hours. Rather than drain the battery, one could just supply power via the wall outlet while still providing endless hours of USB-host enjoyment for those hard-coders on the go.

The main question is just deciding on where to take power from if in USB-client mode and the power cable is inserted, but really, that's not too big of a deal and can be solved with very minimal circuitry.

This might sound extraneous at first, but when the device shuts down in the middle of an important USB file transfer, or right before that great piece of code was saved, you can bet that those users will be saying "Hmm... a separate power adapter would have really come in handy right now".

I suggest a tiny 3mm, dedicated +5V power input (something a la Nokia).

Inductive charging

Inductive charging is the sort of charging where you place the device in a cradle, and a coil in the cradle induces a current in a coil inside the device, allowing it to recharge without wires. This should eliminate proprietary power connections.

Tactile feedback via buzzer

Assuming the hardware has a vibrator/buzzer for silent calls, use a lightly pulsed version of that to simulate tactile feedback when dragging finger across buttons on-screen. Implemented properly, it would almost feel as if the buttons were real.

25 ms bump on the buzzer feels about right. Does this harm the vibrator motor? --Sagacis 05:15, 2 October 2007 (CEST)

Have easy external access, without requiring battery removal like the microSD card

Support SDIO accessories

Enable transfer of data from an external camera's full SD memory to:

a portable USB hard drive, offsetting the need to travel with a notebook PC

the internet, via wifi or phone network

Enable editing of videos and photos obtained from external cameras

Without an easily accessible higher storage SD Card slot, many users will soon be playing the juggling game of which data to delete from the much smaller and harder to swap microSD card. This is especially true for Openmoko users, who are more likely to be power users than is the average mobile phone carrying population. Why carry an Openmoko and an iPod, when you can simply add an SD Card slot?
--Pedro 20:06, 17 March 2008 (CET)

This is not true. Now you can find 2GB micros at the price of 20-30 euros. Too small for what?? --V0n0 22:06, 28 December 2007 (CET)

Think of putting a few movies on that SD memory card. It could really help if it was a little bigger (8GB, 16GB, 32GB). Also think of going offline for 1-2 weeks, far away from any computer you can access and then wanting to listen to some music. What you get in turn with a 2 GB memory slot is the same music over and over. Or you have to switch memory a cards a lot.

This situation is far more common than one would think: going in the mountains, going offshore (on a cruise ship). Or simply you may want to store many types of music, and share your device with friends. --Bogdanbiv 13:47, 10 January 2008 (EEST)

Well, it can be micro SD, but why to put it so deep inside, under the battery and even under the SIM card? I would suggest to have a simple slot on the side where we could insert/remove the SD card equally easily as we swap CD's in computer. AudriusA 16:36, 12 January 2008 (CET)

Cfriedt 12:40, 24 February 2008 (CET) -- I completely agree with a more accessible SD card slot. It should be made external for quick removal / insertion. I realize that would mean program data shouldn't reside on the SD, but really 256 MB of on-board flash is plenty. Micro or normally-sized, a regular-sized SD is still trivial to implement in terms of solder pads and traces.

Sorry, but this looks like useless chat. Micro-SD cards are perfect for mobile devices as they don't get too much space on the pcb. Also, we can find micro-sd up to 8gb, if you want more space just wait a while and they'll produce a bigger one in a few months :-p. Really, almost every single phone that has a sd slot has in its micro version, why would we need a full-sized, huge normal sd slot ? It gets too much space on the pcb it's not only about sw configuration or pin soldering, it's more regarding pcb layout.

What about something like this adapter[17]? Is there any place in the case left to put this into? Nevertheless there is a 12GB microSD card announced from SanDisk and a 8GB card costs about 40€ or 15€ for 4GB. (But a 8GB SD card costs only about 25€) --Kelvan

Maybe just an additional microSD that is easily accessible and hot-swappable. I imagine replacing the huge lanyard hole could help with this. --Sin 02:30, 4 May 2008 (CEST)

My thoughts exactly. Two slots: 1 internal microSD for our storage, and a second external one for more immediate expansion. My thoughts are more towards hardware expansion. For example, some of us could put in a second wifi card that does have promiscuous mode. External VGA connections, etc would also be possible. The external slot should be chosen by availability of hardware expansions as well as memory availability/price. --Lally 13:01 12 May 2008 (EST)

Thermometer / thermoprobe

There could be a thermoprobe attached to the backcase of FR. Using this you will know what is the temperature of the air or any surface FR will touch. It will be very to check temperature of forehead in case of flu :)

IR port

Remote control applications

Would be great to use openmoko as a Harmony remote controller.

I'd like to add that i fully support this. An IR port on future openmoko devices capable of controlling set-top boxes like TV/DVD/Stereo is necessary to make the device as universal as possible. A cellphone should be your window to the world and allow you to interact with it in as many ways as possible.

Care must be taken to use the correct type of IR chipset/controller in the phone. Most IR ports you find on devices like computers, some cellphones etc. Are for high speed data communication and CAN'T control TVs/DVDplayers/Stereos etc.

In order to reduce cost it maybe possible to use the sound chipset in the phone to generate the waveform sent to the IR led. IR remotes work at ~38Khz which is within the range of the sound chipset. The sound output could be internally switched between the IR led or the speakers.

USB Monitor

Have a few different models of monitors, maybe 7 inch, 14 in and 19 inches... be able to plug the Openmoko into one, and then use it like a desktop. Then be able to plug other peripherals into the monitor (keyboard, laser mouse, thumb drive, camera, etc.) and use those. Better yet, be able to use Bluetooth for the keyboard, mouse, thumb drive, camera, and so forth.