Wish List

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Outgoing black/white lists)
Line 85: Line 85:
 
==== Outgoing black/white lists ====
 
==== 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.
 
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.
 +
 +
Also lists for incoming calls? Some friends always come through, unknown numbers get rejected automatically.
  
 
==== Time-based blocking/unblocking of calls ====
 
==== Time-based blocking/unblocking of calls ====

Revision as of 14:36, 25 July 2007

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'.

Contents

Development

Painless SDK installation & Setup

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

  • one command for installation (apt-get install openmoko)
  • one command to start Xnest (openmoko-xephyr?)
  • one command to start an i386 shell (openmoko-386-shell)
  • one command to start an armel shell (openmoko-armel-shell)

No extra configuration required.

IDE Plugins

People like to see plugins for

evaluate eclipse project Device Software Development Platform Project from eclipse and subproject Tool for Mobile Linux

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

  • Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?


Built-in Scripting Language

There was a fruitful discussion about a built-in scripting language on the mailing list in January. Many people feel that it is very important for OpenMoko to choose a scripting language to ship as default in the standard OpenMoko firmware. Wishlist:BuiltInScriptingLanguage

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.

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.

Other bindings

  • Perl
  • Ruby
  • C#
  • I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings

Community Support

projects.openmoko.org

Infrastructure for developers with

  • 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

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.

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.

Also lists for incoming calls? Some friends always come through, unknown numbers get rejected automatically.

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.

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.

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.
  • Extra battery used when playing music.

Also see Answering Machine.

Play sound clips over the air

Dialer could have a tab with big buttons which, when push, send sound clips over GSM to the person on the other end of the call. This feature is included in GizmoProject and is called sound blasts: http://support.gizmoproject.com/index.php?_a=knowledgebase&_j=questiondetails&_i=104 The buttons can have default sounds, but also have the ability to be customized.

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.

Ignore-Call Button

Shut up a ringing phone, without accepting or rejecting the call.

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.

Voice Mailbox

On-Phone voice mailbox that records calls on the phone and retrieves voice messages from your mobile service provider's voice mailbox and saves them locally. Can act profile-dependent.

Hold Button

Similar to mute, but plays a sound file for the user on the other end while they wait. The sound file could be chosen in some setup beforehand.

Unanswered Call, Fast Call

In Greece because of the various bill programs some people call a mobile phone, rings one time and then hangup. Then the user of the mobile phone calls the other user(using the CallerID recognition).

Audio

Ambient Noise Detection

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

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.

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.

Reading Support

It would be really great to be able to read :

  • PDF
  • Open Document files
  • Text / RTF files
  • MS Office files
  • Aportis Doc (pdb)
  • ...

In both landscape and portrait

Wikipedia Mirror

See 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. 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.

Personal Wiki

Display the notes database as a Wiki. Inspiration: AcroWiki. Wishlist:PersonalWiki

Didiwiki


Dictionary, thesaurus, translator and flashcards

Native lookup dictionary and thesaurus and foreign translation dictionaries, also with support for Asian languages. Optional custom configurable (though preconfigured) interface with on-line versions of dictionaries, thesaurus and translation services.

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

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?


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 application(GPS, ...) with tags.
  • Support for:
  • 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.


Database/List Display/Edit

One of the most useful apps on my Palm Pilot for me is pilot-db. It's GPL'd. Wishlist:PilotDB

Joe's Goals

It'd be nice to have something like Joe's Goals always available, like my phone is, even when I'm disconnected from the net.

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.

Fuel Log

File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...). Advanced features could include:

  • Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)
  • Sending the data to a central server which collects the information
  • Let the OpenMoko receive fuel logs per SMS (e.g. if my wife with a non-openmoko mobile fuels the car and wants to file the data using her mobile phone)
  • Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server
  • Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.

Keep in touch reminder

A background application which keeps track of your friends and reminds you when you have not talked, SMS, IM or mailed a person for more than # days.


Menstruation period timer

Fill in statistics and compute probabilities for menstruation, fertility, mood. See http://www.getjar.com/products/48/MyGirls


Tagging

Tags can be used by various applications. Requirement is interoperability for further enhancement. Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.


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.

Exchange Integration

Once there is good TCP/IP connectivity on this phone, integration with corporate email/calendar/to do/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)

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).

Examples: KWallet [1], Viskeeper [2]

Profiles

The Wishlist:Profiles page documents many possible profiles - ways to configure the phone. Including ways to respond to calls, wifi and GPS events. And how to automatically switch between them.

Text Messaging

For Text Input related ideas see Wishlist:Text_Input. Bear in mind that T9 can not be included For current development status of the messaging-app see: Messages

There are many useful options that now can be used to full capacity:

  • Acknowledge/status SMS

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
  • Binary SMS Send binary SMS. Could be used to feign WAP pushes. [3] See:
  • 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: [8])
    • 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
  • Searching allow full-text search or string search.
  • Massive SMS Deletion based on Conversation, author, before-date-xx.xx.xxxx, caller group, tags...
  • 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



Text input

There are many good suggestions for text input on the specific text input ideas page.

More/Custom Input Method Widgets

Additional and customizable Input Method Widgets (similar to virtual keyboard). This could add soft-key functionality to games or other applications such as:

  • D-Pads
  • buttons
  • virtual trackballs
  • ...

Personalized layouts could be associated with each application. See Input Method Wishlist for more.

Games

Please see the games page.

Mesh Networking

Please see Mesh Networking.

Printing Support

It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:

  • Notes
  • Maps
  • Email
  • Calendars
  • ...

Cups contains a bluetooth printing backend, so (in theory) once you have your data in postscript format, you could hand it to cups and it'll do the rest. In practice, it depends on

  1. GTK+'s printing support
  2. Making cups run on a really small system
NOTE: GTK+'s printing support seems to be very immature in 2.6 (which we need to use for some time). Gtk+ 2.10 contains much better printing support -- once we can use this, it should be more easy.


There's always the possibility to render postscript ourselves, but this is not a piece of cake -- in general, printing is much harder than one would imagine.

Further details:

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

A quick way to see what time it is.

Egg Timer

Very simple (one click) count up / count down timers are very useful. Wishlist:EggTimer

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)

Calculators

A Universal Unit Converter Tool

One never knows when one may have to convert acre-feet into deciliters. A unit conversion tool makes all engineers and engineer wannabes much happier. And not only the engineers.

Ideas what kind of conversions a converter tool could do:

Lenght - Acceleration - Angle - Angular Velocity - Area - Capacitance - Radioactivity - Currency - Charge - Computer Memory - Conductance - Density - Energy - Illumination - Power - Force - Flow - Pressure - Speed - Temperature - Time - Torque - Viscosity - Volume - Weight

Roman Numerals - ASCII, Hex - Cooking - BMI - Clothing Sizes

Physical and Mathematical Constants GPS conversions

- link to or integration of a scientific calculator - link to or integration of a simple calculator

A good basis for such a converter tool could be the Palm program "units" from François Pessaux [9]. The GPL'd program comes with full documentation.

For GPS conversions see gpsbabel [10]

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 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.

Web-browser Plugins

  • While an extensive browser plugin system would be costly to the efficacy of the platform three 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.

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.

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


TV Guide/Remote Control

Use your Phone to easily program your VCR using EPGs.


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!

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.

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.

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.


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.

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.

Shake-to-Wake

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

{Shake} "Call" ContactName PhoneType --- {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).

Connectivity

VNC client

A good, stylus friendly VNC client/host combo would be easy to add and terribly useful.


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

Security

My Account

A way to securely store information about the phone, and ensure that a phone you may be considering purchasing is not stolen.

My Account

Zfone or similar

Something that allows the user to speak with another person securely.

GSM Encryption

This software application would allow GSM encrypted calls to be made using the GSM Data Call Channel.

OSvS

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

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.

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

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.

Automatic Sync

Automatically synchronize with desktop computer 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.

Each target device is configured as follows:

  • Automatic acquisition at last known location: enable/disable
  • Automatic acquisition at these locations: list of nickname + coordinates + range

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:

  1. Last known location
  2. 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.

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.
  • A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature).
  • If you want to be super-cool, you give a preview of the notes of the next slide in the show.
  • At the end of a presentation, a "navigator" could allow to easily jump to any slide in the presentation by clicking on it on the phone.
    • When you right-click in a running OO.org Impress presentation, you can choose "got o slide..." and select any slide to jump to.

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.

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.

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.

Bluetooth powered Multi-SIM support

As the Neo1971 does not come with dual-SIM support this could be solved by joining your old bluetooth-enabled mobile to your OpenMoko-phone.

Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:

  • Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)
  • 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.

Other

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.

Advanced Notification And Ringtone Manager

ANARM would be an application for handling all event-based audible notifications from an OpenMoko device.

Location based reminders

Location based reminders can be used to notify users of various events or reminders that are location based.


Synergy Client

A synergy client would enable the user to place the device next to a desktop PC and share the desktop`s mouse, keyboard and clipboard over a TCP/IP network. Synergy

GPS Software

  • 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 seams 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! )
  • Implementation of 3dTracking's (http://free.3dtracking.net/) tracking software or equivalent.

Community Based Traffic Information

Hardware

See Wish List - Hardware It could be use for beepway Online service too [11]

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.

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

  • one command for installation (apt-get install openmoko)
  • one command to start Xnest (openmoko-xephyr?)
  • one command to start an i386 shell (openmoko-386-shell)
  • one command to start an armel shell (openmoko-armel-shell)

No extra configuration required.

IDE Plugins

People like to see plugins for

evaluate eclipse project Device Software Development Platform Project from eclipse and subproject Tool for Mobile Linux

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

  • Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?


Built-in Scripting Language

There was a fruitful discussion about a built-in scripting language on the mailing list in January. Many people feel that it is very important for OpenMoko to choose a scripting language to ship as default in the standard OpenMoko firmware. Wishlist:BuiltInScriptingLanguage

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.

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.

Other bindings

  • Perl
  • Ruby
  • C#
  • I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings

Community Support

projects.openmoko.org

Infrastructure for developers with

  • 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

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.

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.

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.

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.
  • Extra battery used when playing music.

Also see Answering Machine.

Play sound clips over the air

Dialer could have a tab with big buttons which, when push, send sound clips over GSM to the person on the other end of the call. This feature is included in GizmoProject and is called sound blasts: http://support.gizmoproject.com/index.php?_a=knowledgebase&_j=questiondetails&_i=104 The buttons can have default sounds, but also have the ability to be customized.

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.

Ignore-Call Button

Shut up a ringing phone, without accepting or rejecting the call.

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.

Voice Mailbox

On-Phone voice mailbox that records calls on the phone and retrieves voice messages from your mobile service provider's voice mailbox and saves them locally. Can act profile-dependent.

Hold Button

Similar to mute, but plays a sound file for the user on the other end while they wait. The sound file could be chosen in some setup beforehand.

Unanswered Call, Fast Call

In Greece because of the various bill programs some people call a mobile phone, rings one time and then hangup. Then the user of the mobile phone calls the other user(using the CallerID recognition).

Audio

Ambient Noise Detection

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

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.

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.

Reading Support

It would be really great to be able to read :

  • PDF
  • Open Document files
  • Text / RTF files
  • MS Office files
  • Aportis Doc (pdb)
  • ...

In both landscape and portrait

Wikipedia Mirror

See 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. 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.

Personal Wiki

Display the notes database as a Wiki. Inspiration: AcroWiki. Wishlist:PersonalWiki

Didiwiki


Dictionary, thesaurus, translator and flashcards

Native lookup dictionary and thesaurus and foreign translation dictionaries, also with support for Asian languages. Optional custom configurable (though preconfigured) interface with on-line versions of dictionaries, thesaurus and translation services.

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

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?


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 application(GPS, ...) with tags.
  • Support for:
  • 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.


Database/List Display/Edit

One of the most useful apps on my Palm Pilot for me is pilot-db. It's GPL'd. Wishlist:PilotDB

Joe's Goals

It'd be nice to have something like Joe's Goals always available, like my phone is, even when I'm disconnected from the net.

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.

Fuel Log

File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...). Advanced features could include:

  • Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)
  • Sending the data to a central server which collects the information
  • Let the OpenMoko receive fuel logs per SMS (e.g. if my wife with a non-openmoko mobile fuels the car and wants to file the data using her mobile phone)
  • Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server
  • Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.

Keep in touch reminder

A background application which keeps track of your friends and reminds you when you have not talked, SMS, IM or mailed a person for more than # days.


Menstruation period timer

Fill in statistics and compute probabilities for menstruation, fertility, mood. See http://www.getjar.com/products/48/MyGirls


Tagging

Tags can be used by various applications. Requirement is interoperability for further enhancement. Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.


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.

Exchange Integration

Once there is good TCP/IP connectivity on this phone, integration with corporate email/calendar/to do/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)

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).

Examples: KWallet [1], Viskeeper [2]

Profiles

The Wishlist:Profiles page documents many possible profiles - ways to configure the phone. Including ways to respond to calls, wifi and GPS events. And how to automatically switch between them.

Text Messaging

For Text Input related ideas see Wishlist:Text_Input. Bear in mind that T9 can not be included For current development status of the messaging-app see: Messages

There are many useful options that now can be used to full capacity:

  • Acknowledge/status SMS

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
  • Binary SMS Send binary SMS. Could be used to feign WAP pushes. [3] See:
  • 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: [8])
    • 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
  • Searching allow full-text search or string search.
  • Massive SMS Deletion based on Conversation, author, before-date-xx.xx.xxxx, caller group, tags...
  • 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



Text input

There are many good suggestions for text input on the specific text input ideas page.

More/Custom Input Method Widgets

Additional and customizable Input Method Widgets (similar to virtual keyboard). This could add soft-key functionality to games or other applications such as:

  • D-Pads
  • buttons
  • virtual trackballs
  • ...

Personalized layouts could be associated with each application. See Input Method Wishlist for more.

Games

Please see the games page.

Mesh Networking

Please see Mesh Networking.

Printing Support

It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:

  • Notes
  • Maps
  • Email
  • Calendars
  • ...

Cups contains a bluetooth printing backend, so (in theory) once you have your data in postscript format, you could hand it to cups and it'll do the rest. In practice, it depends on

  1. GTK+'s printing support
  2. Making cups run on a really small system
NOTE: GTK+'s printing support seems to be very immature in 2.6 (which we need to use for some time). Gtk+ 2.10 contains much better printing support -- once we can use this, it should be more easy.


There's always the possibility to render postscript ourselves, but this is not a piece of cake -- in general, printing is much harder than one would imagine.

Further details:

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

A quick way to see what time it is.

Egg Timer

Very simple (one click) count up / count down timers are very useful. Wishlist:EggTimer

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)

Calculators

A Universal Unit Converter Tool

One never knows when one may have to convert acre-feet into deciliters. A unit conversion tool makes all engineers and engineer wannabes much happier. And not only the engineers.

Ideas what kind of conversions a converter tool could do:

Lenght - Acceleration - Angle - Angular Velocity - Area - Capacitance - Radioactivity - Currency - Charge - Computer Memory - Conductance - Density - Energy - Illumination - Power - Force - Flow - Pressure - Speed - Temperature - Time - Torque - Viscosity - Volume - Weight

Roman Numerals - ASCII, Hex - Cooking - BMI - Clothing Sizes

Physical and Mathematical Constants GPS conversions

- link to or integration of a scientific calculator - link to or integration of a simple calculator

A good basis for such a converter tool could be the Palm program "units" from François Pessaux [9]. The GPL'd program comes with full documentation.

For GPS conversions see gpsbabel [10]

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 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.

Web-browser Plugins

  • While an extensive browser plugin system would be costly to the efficacy of the platform three 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.

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.

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


TV Guide/Remote Control

Use your Phone to easily program your VCR using EPGs.


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!

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.

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.

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.


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.

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.

Shake-to-Wake

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

{Shake} "Call" ContactName PhoneType --- {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).

Connectivity

VNC client

A good, stylus friendly VNC client/host combo would be easy to add and terribly useful.


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

Security

My Account

A way to securely store information about the phone, and ensure that a phone you may be considering purchasing is not stolen.

My Account

Zfone or similar

Something that allows the user to speak with another person securely.

GSM Encryption

This software application would allow GSM encrypted calls to be made using the GSM Data Call Channel.

OSvS

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

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.

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

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.

Automatic Sync

Automatically synchronize with desktop computer 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.

Each target device is configured as follows:

  • Automatic acquisition at last known location: enable/disable
  • Automatic acquisition at these locations: list of nickname + coordinates + range

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:

  1. Last known location
  2. 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.

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.
  • A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature).
  • If you want to be super-cool, you give a preview of the notes of the next slide in the show.
  • At the end of a presentation, a "navigator" could allow to easily jump to any slide in the presentation by clicking on it on the phone.
    • When you right-click in a running OO.org Impress presentation, you can choose "got o slide..." and select any slide to jump to.

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.

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.

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.

Bluetooth powered Multi-SIM support

As the Neo1971 does not come with dual-SIM support this could be solved by joining your old bluetooth-enabled mobile to your OpenMoko-phone.

Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:

  • Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)
  • 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.

Other

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.

Advanced Notification And Ringtone Manager

ANARM would be an application for handling all event-based audible notifications from an OpenMoko device.

Location based reminders

Location based reminders can be used to notify users of various events or reminders that are location based.


Synergy Client

A synergy client would enable the user to place the device next to a desktop PC and share the desktop`s mouse, keyboard and clipboard over a TCP/IP network. Synergy

GPS Software

  • 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 seams 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! )
  • Implementation of 3dTracking's (http://free.3dtracking.net/) tracking software or equivalent.

Community Based Traffic Information

Hardware

See Wish List - Hardware It could be use for beepway Online service too [11]

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.