http://openmoko.org/api.php?action=feedcontributions&user=Bradpitcher&feedformat=atomOpenmoko - User contributions [en]2024-03-28T12:58:03ZUser contributionsMediaWiki 1.19.24http://openmoko.org/wiki/FDOM_-_a_Fat_and_Dirty_OM_based_distributionFDOM - a Fat and Dirty OM based distribution2009-06-08T21:32:14Z<p>Bradpitcher: </p>
<hr />
<div>{{Languages|FDOM_-_a_Fat_and_Dirty_OM_based_distribution}}<br />
{{Distributions|FDOM}}<br />
<br />
=== Description ===<br />
A combination of (a lot of) apps and fixes to demonstrate the capabilities of the FreeRunner and to have a functional phone (sort of). This all while retaining the ability to update through the official feeds.<br />
<br />
Until now, flashing the phone was the only way to update to the last release of FDOM but since 20081023 version there is a script called FDOMizer able to update to the latest version of FDOM any older version of FDOM and is able to transform a brand new flashed OM2008.X on the phone to a full bloated FDOM<br />
<br />
Any questions can be sent to David-Reyes Samblas Martinez david at tuxbrain dot com or at community list or local-openmoko-spain list, see [[Development_resources#Mailing_Lists|mailing lists]]. Co admins are Armin Ranjbar aka [http://zoup.org Zoup] and Nacho Seijo aka himero.<br />
<br />
=== Download ===<br />
Download from http://www.tuxbrain.com/fdom_en.html.<br />
* Notes:<br />
**If you have updated your kernel, re-flash back to the default [http://downloads.openmoko.org/distro/releases/Om2008.9/ Om2008.9 kernel] so that your kernels and modules are the same version. Otherwise none of the device drivers load and you have no usb0 or other essential stuff.<br />
* Mirrors:<br />
** old home server<br />
***http://compartida.net/openmoko/FDOM<br />
** Libhertz:<br />
*** http://mirrors.libhertz.com/openmoko/FDOM/<br />
** TDobson:<br />
*** http://files.tdobson.net/openmoko/freerunner/fdom/<br />
**** Mirror admin contact: www.tdobson.net/contact<br />
** TrueBox:<br />
*** http://openmoko.truebox.co.uk/mirror/compartida.net/<br />
** Universidade de Vigo:<br />
*** http://ftp.uvigo.es/mirror/openmoko/<br />
*** http://ftp.uvigo.es/pub/linux/distribuciones/openmoko<br />
** OpenmĂ tica.es:<br />
*** http://openmoko.openmatica.es/FDOM/<br />
*** ftp://openmoko:openmoko@openmatica.es/FDOM<br />
<br />
=== Development ===<br />
If you want to come to the script kidding party :) join us at<br />
<br />
http://projects.openmoko.org/projects/fdom/<br />
<br />
Serious developers are welcome too :) but remember "if it's cool, it works(in some way),doesn't annoying(too much) rest of things and fits on the nand it's in" :) we will let scalability, stability, resource saving and so on to the OM guys :)<br />
<br />
The devel list is:<br />
http://lists.projects.openmoko.org/mailman/listinfo/fdom-development<br />
<br />
'''Complete overview of assembling FDOM distribution'''<br />
<br />
Index: '-' means that all is OK, '?' means that it is unknown if it is OK or a customisation is needed. Note that launcher name is made as short as possible so it is not abbreviated in Illume. The icons are to be optimised to 80x80 (not smaller and also not bigger) because this will make a very sharp experience of OpenMoko. The up and down scaling of icons is not optimised compared to doing it beforehand with a tool like GIMP. Category colors are identical to the icon background colors used in the SHR distribution.<br />
<br />
Note for custom name and custom icon, please double check with what is installed first before overriding it with proposed custom name or custom icon. Please notify the package maintainer upstream about the improvement in terms of custom name and custom icon and the reason why. Remove custom name and custom icon from this list when this has been fixed upstream.<br />
<br />
{| cellspacing="0" class="sortable wikitable" border="1" style="font-size: 85%; text-align: left; width: auto;"<br />
|-<br />
! Category<br />
! Name<br />
! License <br />
! Assigned<br />
! Dependencies<br />
! Custom launcher name<br />
! Custom launcher icon<br />
! Improvements<br />
! Link<br />
! Source<br />
|-<br />
| system boot loader<br />
| [http://downloads.openmoko.org/distro/releases/Om2008.9/dfu-util uboot]<br />
| ?<br />
| style="background:#88FF88;"| David<br />
| -<br />
| -<br />
| -<br />
| -<br />
| http://downloads.openmoko.org/distro/releases/Om2008.12/Om2008.12-om-gta02.uImage.bin<br />
| <br />
|-<br />
| system splash image<br />
| [http://wiki.openmoko.org/wiki/Configuring_the_boot_splash_screens#U-boot_Splash uboot splash]<br />
| ?<br />
| ?<br />
| uboot<br />
| -<br />
| -<br />
| create FDOM version<br />
| <br />
| <br />
|-<br />
| system kernel<br />
| [http://downloads.openmoko.org/distro/releases/ uImage]<br />
| ?<br />
| style="background:#88FF88;"| David<br />
| uboot<br />
| -<br />
| -<br />
|<br />
| http://downloads.openmoko.org/distro/releases/Om2008.12/Om2008.12-om-gta02.uImage.bin<br />
| <br />
|-<br />
| system file system<br />
| [http://downloads.openmoko.org/distro/releases/ rootfs]<br />
| ?<br />
| style="background:#88FF88;"| David<br />
| uImage<br />
| -<br />
| -<br />
| <br />
| <br />
|<br />
|-<br />
| system initializing script<br />
| FDOMIZER<br />
| GPL<br />
| ?<br />
| rootfs<br />
| <br />
| -<br />
| Adapt [http://wiki.openmoko.org/wiki/Kustomizer Kustomizer] from Risto to maintain the ASU theme and remove packages with no source code available (if any)<br />
| <br />
| <br />
|-<br />
| system submenu navigation<br />
| [http://projects.openmoko.org/projects/sortdesk sortdesk]<br />
| GPL<br />
| ?<br />
| rootfs<br />
| <br />
| -<br />
| Create categories based on opkg but simplified (Games, GPS, Internet, Multimedia, PIM/Office, Settings, Utility), and move desktop files to those categories, create an icon set for those categories<br />
| opkg install http://www.opkg.org/packages/sortdesk_1.2_armv4t.ipk<br />
| is a script<br />
|-<br />
| system keyboard<br />
| Illume keyboard on ASU<br />
| ?<br />
| style="background:#88FF88;"| David<br />
| rootfs<br />
| -<br />
| -<br />
| enable Illume keyboard in ASU theme,<br />
| https://docs.openmoko.org/trac/ticket/2192#comment:3 <br />
|<br />
|-<br />
| system keyboard<br />
| Numbers/Symbols<br />
| ?<br />
| style="background:#88FF88;"| David<br />
| rootfs<br />
| -<br />
| -<br />
| Split Numbers in Numbers and Symbols<br />
| http://n2.nabble.com/Customized-layout-for-illume-keyboard-td1080353ef1958.html#a1080353<br />
| http://n2.nabble.com/attachment/1080353/0/keyboards.tar.gz<br />
|-<br />
| system keyboard<br />
| [http://www.opkg.org/package_84.html Qwo]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_84.html<br />
| <br />
|-<br />
| system keyboard<br />
| [http://www.opkg.org/package_101.html Illume default alt]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| -<br />
| opkg install http://www.opkg.org/packages/illume-default-alt_0.1_arm.ipk<br />
| http://www.opkg.org/package_101.html<br />
| <br />
|-<br />
| system keyboard<br />
| [http://www.opkg.org/package_106.html Illume numbers alt]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| -<br />
| opkg install http://www.opkg.org/packages/illume-keyboards-numbers-alt_0.1_all.opk<br />
| http://www.opkg.org/package_106.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| management utility<br />
| [http://www.opkg.org/package_112.html Vala Terminal]<br />
| GPL<br />
| style="background:#88FF88;"| David<br />
| rootfs<br />
| -<br />
| -<br />
| Improved Terminal for Openmoko<br />
| http://www.opkg.org/package_112.html<br />
| http://git.freesmartphone.org/?p=vala-terminal.git<br />
|-<br />
| style="background:#CCCCCC;"| wireless utility<br />
| [http://www.opkg.org/package_11.html Mofi Wifi]<br />
| GPL<br />
| style="background:#88FF88;"| David<br />
| rootfs<br />
| -<br />
| [[Image:mofi-wifi-fdom80.png]]<br />
| opkg install http://projects.openmoko.org/frs/download.php/306/mofi_0.03_armv4t.ipk<br />
| http://projects.openmoko.org/projects/mofi/ <br />
| is phyton<br />
|-<br />
| style="background:#CCCCCC;"| USB utility<br />
| [http://www.opkg.org/package_40.html USB Mode Button]<br />
| ?<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| USB Mode<br />
| [[Image:usb-mode-button-fdom80.png]]<br />
| opkg install http://blogs.thehumanjourney.net/finds/resource/usbmode-button_0.3_armv4t.ipk<br />
| http://www.opkg.org/package_40.html<br />
| is a script http://www.opkg.org/package_40.html<br />
|-<br />
| style="background:#CCCCCC;"| light utility<br />
| [http://www.opkg.org/package_12.html Flashlight]<br />
| GPL<br />
| ?<br />
| rootfs<br />
| -<br />
| [[Image:flashlight-fdom80.png]]<br />
| <br />
| http://www.opkg.org/package_12.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| conversion utility<br />
| [http://www.opkg.org/package_110.html MokoConv]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_110.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| clock utility<br />
| [http://www.opkg.org/package_104.html LED clock]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_104.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| bubble level application<br />
| [http://www.opkg.org/package_102.html Gwaterpas]<br />
| ?<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| Bubble<br />
| new 80x80<br />
| -<br />
| http://www.opkg.org/package_102.html<br />
| http://www.ecirc.net/openmoko/gwaterpas.tgz<br />
|-<br />
| style="background:#CCCCCC;"| weather utility<br />
| [http://www.opkg.org/package_67.html meooem]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_67.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| rotate utility<br />
| [http://www.opkg.org/package_43.html accel-rotate]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| [[Image:accel-rotate-fdom80.png]]<br />
| <br />
| http://www.opkg.org/package_43.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| remote control application<br />
| [http://www.opkg.org/package_14.html remoko]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_14.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| ebook reader application<br />
| [http://www.opkg.org/package_13.html FBreader]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_13.html<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| RSS reader application<br />
| [http://wiki.openmoko.org/wiki/PyFeedRead PyFeedRead]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| [[Image:pyfeedreed-fdom80.png]]<br />
| <br />
| http://wiki.openmoko.org/wiki/PyFeedRead<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| notes drawing application<br />
| [http://wiki.openmoko.org/wiki/PyPenNotes PyPenNotes]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| [[Image:pypennotes-fdom80.png]]<br />
| <br />
| http://wiki.openmoko.org/wiki/PyPenNotes<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| PDF reader application<br />
| [http://wiki.openmoko.org/wiki/Epdfview Epdfview]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| [[Image:epdfview-fdom80.png]]<br />
| <br />
| http://wiki.openmoko.org/wiki/Epdfview<br />
| <br />
|-<br />
| style="background:#CCCCCC;"| fast reader application<br />
| [http://wiki.openmoko.org/wiki/Gutenflash Gutenflash]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://wiki.openmoko.org/wiki/Gutenflash<br />
| <br />
|-<br />
| style="background:#88FF88;"| graphics utility<br />
| Screen capture<br />
| GPL<br />
| style="background:#88FF88;"| David<br />
| rootfs<br />
| Screenshot<br />
| -<br />
| opkg install gpe-scap , modified .desktop file to short the name file to Screenshot<br />
| <br />
| http://downloads.openmoko.org/developer/sources/gpe-scap-1.3.tar.bz2<br />
|-<br />
| style="background:#88FF88;"| graphics application<br />
| [http://www.opkg.org/package_62.html Neon]<br />
| GPL<br />
| style="background:#88FF88;"| David<br />
| ?<br />
| ?<br />
| ?<br />
| opkg install http://projects.openmoko.org/frs/download.php/588/neon_0.9.5.1-r0_all.ipk<br />
| http://www.opkg.org/package_62.html<br />
| http://projects.openmoko.org/snapshots.php?group_id=239<br />
|-<br />
| style="background:#CCCCFF;"| messenger application<br />
| [[Pidgin]]<br />
| GPL<br />
| style="background:#88FF88;"| ?<br />
| Mofi<br />
| Pidgin<br />
| [http://developer.pidgin.im/ticket/7975 80x80]<br />
| opkg install pidgin pidgin-data libpurple-protocol-msn libpurple-protocol-yahoo<br />
|<br />
| http://downloads.openmoko.org/developer/sources<br />
|-<br />
| style="background:#CCCCFF;"| web application<br />
| [http://www.opkg.org/package_24.html Dillo]<br />
| GPL<br />
| style="background:#88FF88;"| David<br />
| Mofi<br />
| -<br />
| -<br />
| opkg install http://misc.andi.de1.cc/dillo/dillo-ssl_2.0-r0_armv4t.opk<br />
| http://www.opkg.org/package_24.html<br />
| http://misc.andi.de1.cc/dillo/dillo_2.0.orig.tar.gz<br />
|-<br />
| style="background:#CCCCFF;"| web application<br />
| [http://www.opkg.org/package_99.html Mimimo]<br />
| ?<br />
| style="background:#88FF88;"| David<br />
| rootfs<br />
| ?<br />
| [[Image:minimo-fdom80.png]]<br />
| opkg install http://3v8.net/~sander/openmoko/minimo_0.02+cvs20070626-r1_armv4t.ipk<br />
| http://www.opkg.org/package_99.html<br />
| asked sanders to provide sources<br />
|-<br />
| style="background:#CCCCFF;"| twitter application<br />
| [http://www.opkg.org/package_50.html twittermoko]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_50.html<br />
| <br />
|-<br />
| style="background:#EE80FF;"| navigation application<br />
| [http://www.opkg.org/update_8_42.html tangoGPS]<br />
| GPL<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| tangoGPS<br />
| new 80x80<br />
| opkg install libcairo2 libcurl4 libdbus-1-3 libdbus-glib-1-2 libglib-2.0-0 libpixman-1-0 libsqlite3-0 http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
| http://www.opkg.org/update_8_42.html<br />
| http://www.tangogps.org/downloads/tangogps-0.9.5.tar.gz<br />
|-<br />
| style="background:#EE80FF;"| navigation utility<br />
| [http://www.opkg.org/package_105.html Yaouh!]<br />
| ?<br />
| style="background:#88FF88;"| ?<br />
| tangoGPS<br />
| Yaouh!<br />
| ?<br />
| http://www.opkg.org/package_105.html<br />
| opkg install python-pygtk curl http://minucci.net/file/opkg/yaouh_0.2.1_all.opk<br />
| http://projects.openmoko.org/snapshots.php?group_id=250<br />
|-<br />
| style="background:#EE80FF;"| navigation application<br />
| Locations<br />
| ?<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| -<br />
| -<br />
| rm /usr/share/applications/om-locations.desktop (replaced by tangoGPS)<br />
|<br />
|<br />
|-<br />
| style="background:#EE80FF;"| navigation utility<br />
| [http://www.opkg.org/package_91.html BtGPS]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://www.opkg.org/package_91.html<br />
| <br />
|-<br />
| style="background:#EE80FF;"| navigation application<br />
| [http://www.opkg.org/package_5.html Navit]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| [[Image:navit-fdom80.png]]<br />
| <br />
| http://www.opkg.org/package_5.html<br />
| <br />
|-<br />
| style="background:#EE80FF;"| geochaching application<br />
| [http://wiki.openmoko.org/wiki/MokoGeocaching MokoGeocaching]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://wiki.openmoko.org/wiki/MokoGeocaching<br />
| <br />
|-<br />
| style="background:#EE80FF;"| sky map application<br />
| [http://www.opkg.org/package_9.html orrery]<br />
| GPL<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| Orrery<br />
| [[Image:orreryIcon.png]]<br />
| opkg install http://www.opkg.org/packages/orrery_2.4_arm_2008.8.ipk<br />
| http://www.opkg.org/package_9.html<br />
| http://projects.openmoko.org/frs/download.php/581/orrery_2.4_clean.tar.gz<br />
|-<br />
| style="background:#FFFFCC;"| decision making toy<br />
| [http://westhoffs-welt.de/blog/my_first_openmoko_application.html Moko Eightball]<br />
| GPL<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| Eightball<br />
| [[Image:eightball-fdom80.png]]<br />
| opkg install http://westhoffswelt.de/data/blog/moko_eightball/moko-eightball_0.20080721_om-gta02.ipk<br />
| http://www.opkg.org/package_35.html<br />
| svn co svn://svn.pureenergy.cc/moko_eightball<br />
|-<br />
| style="background:#FFFFCC;"| cow toy<br />
| [http://www.opkg.org/package_17.html OpenMooCow]<br />
| ?<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| MooCow<br />
| ?<br />
| http://www.opkg.org/package_17.html<br />
| opkg install http://www.srcf.ucam.org/~taw27/openmoko/openmoocow/openmoocow_0.3_armv4t.ipk<br />
| http://www.srcf.ucam.org/~taw27/openmoko/openmoocow/openmoocow-0.3.0.tar.gz<br />
|-<br />
| style="background:#FFFFCC;"| vibrator toy<br />
| [http://www.opkg.org/package_61.html openvibe]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_61.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| light saber toy<br />
| [http://wiki.openmoko.org/wiki/Freerunner_LightSaber Light Saber]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| <br />
| http://wiki.openmoko.org/wiki/Freerunner_LightSaber<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| pinball game<br />
| [http://www.opkg.org/package_107.html Linball]<br />
| GPL<br />
| style="background:#88FF88;"| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_107.html<br />
| http://linball.sourceforge.net/linball.tar.gz<br />
|-<br />
| style="background:#FFFFCC;"| adventure game<br />
| [http://www.opkg.org/package_60.html scummvm]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_60.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| pong game<br />
| [http://www.opkg.org/package_81.html pong]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_81.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| strategy game<br />
| [http://www.opkg.org/package_30.html Liquid War]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_30.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| Lemmings like game<br />
| [http://www.opkg.org/package_27.html Pingus]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_27.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| puzzle game<br />
| [http://www.opkg.org/package_33.html xlogical]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_33.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| drawing game<br />
| [http://www.opkg.org/package_3.html Numptyphysics]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_3.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| FPS game<br />
| [http://www.opkg.org/package_2.html Duke3D]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| -<br />
| http://www.opkg.org/package_2.html<br />
| <br />
|-<br />
| style="background:#FFFFCC;"| space shooter game<br />
| [http://wiki.openmoko.org/wiki/Kobodeluxe Kobodeluxe]<br />
| ?<br />
| ?<br />
| rootfs<br />
| -<br />
| ?<br />
| opkg install kobodeluxe<br />
| http://wiki.openmoko.org/wiki/Kobodeluxe<br />
| http://www.olofson.net/kobodl/download/KoboDeluxe-0.5.1.tar.bz2<br />
|-class="sortbottom"<br />
! Category<br />
! Name<br />
! License <br />
! Assigned<br />
! Dependencies<br />
! Custom launcher name<br />
! Custom launcher icon<br />
! Improvements<br />
! Link<br />
! Source<br />
|-<br />
|}<br />
<br />
=== Warnings ===<br />
Please any warning tip a trick post it in the devel list :)<br />
http://lists.projects.openmoko.org/mailman/listinfo/fdom-development<br />
<br />
<br />
=== Changelog ===<br />
You can use both the script it self and the svn log to visualice those changes<br />
<br />
=== Roadmap ===<br />
* Try to make it more like lastest Raster Image like<br />
* Fix all bugs arised and make it more stable<br />
* Make it even more community driven<br />
<br />
=== External Links ===<br />
Some people talking about us ;) thanks a lot<br />
<br />
http://openmoko-fr.org/blog/index.php?post/2008/09/16/Test-de-FDOM (FR)<br />
<br />
http://www.bunix.de/key/personal-blog/blog_id/533.htm (DE)<br />
<br />
http://community.livejournal.com/ru_openmoko/6577.html (RU)<br />
<br />
http://www.linuxphone.ru/2008/09/fdom-distributive-for-openmoko-freerunner/ (RU)<br />
<br />
[[Category:Distributions]]</div>Bradpitcherhttp://openmoko.org/wiki/Community_RepositoryCommunity Repository2008-09-29T18:52:42Z<p>Bradpitcher: /* Packages quality control */</p>
<hr />
<div>There are many [[Users Repositories]] where people can feed software for their Neo smartphones. This diversity makes it sometimes difficult to find the right package for the right distribution. Openmoko Inc. hosts a Community Repository as a central service where independent Neo application developers can release projects, so that installing a new application `just works out of the box'. It is a similar concept to the [http://www.ubuntu.com/community/ubuntustory/components Universe repository in Ubuntu]. The Repository is at:<br />
<br />
http://downloads.openmoko.org/repository/Multiverse<br />
<br />
<br />
== How to use the repository ? ==<br />
<br />
This feed is already installed by default in [[Om2008.8 | Om 2008.8]].<br />
<br />
Otherwise, see instructions on the [http://wiki.openmoko.org/wiki/Om_2008.8_Installer installer page]. They involve creating a one line file in the /etc/opkg directory.<br />
<br />
== How to release packages ? ==<br />
<br />
Please use the mailing list: http://lists.openmoko.org/mailman/listinfo/community-repository .<br />
The package manager derives from [[opkg]], so applications should be released as .ipk files.<br />
<br />
* [[Create package on projects.openmoko.org and upload]]<br />
* Here are [http://handhelds.org/moin/moin.cgi/BuildingIpkgs| instructions to build ipkgs].<br />
** Using OE<br />
** [[Toolchain|Meta-toolchain]]<br />
<br />
Packages in '''Installer''' are displayed according to '''Package Tags'''.<br />
To display a package through [[Om2008.8_Installer |Installer]], add the appropriate tag message. <br />
{| class="wikitable" border:1px ;<br />
! Category !! Tag <br />
|- <br />
| Communication || group::communication <br />
|-<br />
| Development || group::programming<br />
|-<br />
| Games || group::games<br />
|-<br />
| Maps || group::maps<br />
|-<br />
| Miscellaneous || group::unknown<br />
|-<br />
| Network || group::network<br />
|-<br />
|Repos || group::repos<br />
|}<br />
<br />
* For OpenEmbedded users, add a Tag by adding one line in your bb file<br />
:For [http://code.google.com/p/comic-reader/source/browse/trunk/data/comic-reader_svn.bb example]:<br />
PKG_TAGS_${PN} = "group::games"<br />
<br />
<br />
== Packages quality control ==<br />
<br />
The reviewer will check if there have new packages on the mailing list. If you are reviewer and want to review that package<br />
* reply that mail, and say you want to review that<br />
* check if the package follows the policy <br />
* download the package on projects.openmoko.org<br />
* install that package to see if <br />
** installable?<br />
** executable?<br />
** functions the claimed works actually works?<br />
** does it do something bad?<br />
** uninstall it and see if everything still ok?<br />
* if the package is okay, put the package in this [https://svn.openmoko.org/trunk/feeds/community-repository/file-index.txt file] and the package will shown next day. <br />
<br />
Good packages should conform to these quality guidelines:<br />
<br />
* Packages in this repository shall not be in OM Official repositories<br />
* Program shall not collect user information and send to others unless it has very clear notification<br />
* Program shall not destroy the system<br />
* All packages shall be run-able on Neo<br />
* The package file name should refer which version of the project is compiled.<br />
<br />
== How to contribute ? ==<br />
<br />
We need reviewers who can review new packages. This is currently a low workload. If you want to help, please send e-mail to the mailing list The mailing list: [http://lists.openmoko.org/mailman/listinfo/community-repository community-repository@lists.openmoko.org].<br />
<br />
Reviewers must have the following:<br />
* an account on projects.openmoko.org<br />
* ssh public key on projects.openmoko.org<br />
* basic svn skills<br />
* basic opkg skills<br />
<br />
Openmoko really appreciates your help!<br />
'''Current Reviewers'''<br />
[http://wiki.openmoko.org/wiki/User_talk:Tick Tick]<br />
<br />
== How to create your own repository ? ==<br />
<br />
TBD<br />
<br />
[[category:Distributions]]<br />
[[category:Community]]</div>Bradpitcherhttp://openmoko.org/wiki/T-Mobile_pppd_scriptsT-Mobile pppd scripts2007-12-02T21:53:29Z<p>Bradpitcher: rolling back changes, I must learn to use that preview button</p>
<hr />
<div>I got this working using wap.voicestream.com. internet2 keeps giving me "LCP terminated by peer (^K!)" after CHAP auth.<br />
<br />
<br />
== /etc/ppp/peers/tmobile ==<br />
# File: /etc/ppp/peers/tmobile<br />
#<br />
/dev/ttySAC0<br />
115200<br />
crtscts<br />
lock<br />
hide-password<br />
defaultroute # set the default route<br />
usepeerdns<br />
holdoff 3<br />
ipcp-accept-local<br />
lcp-echo-failure 12<br />
lcp-echo-interval 3<br />
noauth<br />
noipdefault<br />
novj<br />
novjccomp<br />
replacedefaultroute<br />
persist<br />
debug<br />
<br />
connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile"<br />
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile-disconnect"<br />
<br />
<br />
<br />
----<br />
<br />
=== /etc/ppp/chatscripts/tmobile ===<br />
TIMEOUT 10<br />
ABORT 'BUSY'<br />
ABORT 'NO ANSWER'<br />
ABORT 'ERROR'<br />
SAY 'Starting GPRS connect script\n'<br />
<br />
""'ATZ'<br />
SAY 'Setting APN\n'<br />
OK 'AT+CGDCONT=1,"IP","wap.voicestream.com"'<br />
<br />
ABORT 'NO CARRIER'<br />
SAY 'Dialing...\n'<br />
OK 'ATD*99***1#'<br />
CONNECT <br />
<br />
----<br />
<br />
=== /etc/ppp/chatscripts/tmobile-disconnect ===<br />
"" "\K"<br />
"" "+++ATH0"<br />
SAY "GPRS disconnected."<br />
<br />
----<br />
<br />
=== /etc/ppp/chap-secrets ===<br />
# client server secret IP addresses<br />
* * "" *<br />
<br />
----<br />
<br />
Modified from info found here: [http://www.yepthatsme.com/2004/11/09/ppp-chat-scripts-for-t-mobile-sony-ericsson-t610-gprs-via-bluetooth-with-debian/]<br />
<br />
----<br />
<br />
=== Failed negotiation ===<br />
root@fic-gta01:~$ pppd nodetach call tmobile<br />
Starting GPRS connect script<br />
Setting APN<br />
Dialing...<br />
Serial connection established.<br />
using channel 6<br />
Using interface ppp0<br />
Connect: ppp0 <--> /dev/ttySAC0<br />
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4e9abed> <pcomp> <accomp>]<br />
rcvd [LCP ConfRej id=0x1 <magic 0x4e9abed>]<br />
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <pcomp> <accomp>]<br />
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <pcomp> <accomp>]<br />
rcvd [LCP ConfReq id=0xb <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]<br />
sent [LCP ConfAck id=0xb <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]<br />
sent [LCP EchoReq id=0x0 magic=0x0]<br />
rcvd [CHAP Challenge id=0xc <c034dedca83809689a0180da3a2f2016460304ca4e64a1>, name = ""]<br />
sent [CHAP Response id=0xc <1c2a6e0f23afc550eeae08d33717b79c>, name = "fic-gta01"]<br />
rcvd [LCP EchoRep id=0x0 magic=0x0]<br />
rcvd [CHAP Success id=0xc ""]<br />
CHAP authentication succeeded<br />
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]<br />
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]<br />
rcvd [LCP ProtRej id=0x4 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]<br />
rcvd [LCP TermReq id=0x7 0b 21]<br />
LCP terminated by peer (^K!)</div>Bradpitcherhttp://openmoko.org/wiki/T-Mobile_pppd_scriptsT-Mobile pppd scripts2007-12-02T21:32:47Z<p>Bradpitcher: /* /etc/ppp/peers/tmobile */</p>
<hr />
<div>I got this working using wap.voicestream.com. internet2 keeps giving me "LCP terminated by peer (^K!)" after CHAP auth.<br />
<br />
<br />
== /etc/ppp/peers/tmobile ==<br />
# File: /etc/ppp/peers/tmobile<br />
#<br />
/dev/ttySAC0<br />
115200<br />
crtscts<br />
lock<br />
hide-password<br />
defaultroute # set the default route<br />
usepeerdns<br />
holdoff 3<br />
ipcp-accept-local<br />
lcp-echo-failure 12<br />
lcp-echo-interval 3<br />
noauth<br />
noipdefault<br />
novj<br />
novjccomp<br />
replacedefaultroute<br />
persist<br />
debug<br />
<br />
connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile"<br />
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile-disconnect"<br />
<br />
<br />
<br />
----<br />
<br />
=== /etc/ppp/chatscripts/tmobile ===<br />
TIMEOUT 10<br />
ABORT 'BUSY'<br />
ABORT 'NO ANSWER'<br />
ABORT 'ERROR'<br />
SAY 'Starting GPRS connect script\n'<br />
<br />
""'ATZ'<br />
SAY 'Setting APN\n'<br />
OK 'AT+CGDCONT=1,"IP","wap.voicestream.com"'<br />
<br />
ABORT 'NO CARRIER'<br />
SAY 'Dialing...\n'<br />
OK 'ATD*99***1#'<br />
CONNECT ''<br />
<br />
----<br />
<br />
=== /etc/ppp/chatscripts/tmobile-disconnect ===<br />
"" "\K"<br />
"" "+++ATH0"<br />
SAY "GPRS disconnected."<br />
<br />
----<br />
<br />
=== /etc/ppp/chap-secrets ===<br />
# client server secret IP addresses<br />
* * "" *<br />
<br />
----<br />
<br />
Modified from info found here: [http://www.yepthatsme.com/2004/11/09/ppp-chat-scripts-for-t-mobile-sony-ericsson-t610-gprs-via-bluetooth-with-debian/]<br />
<br />
----<br />
<br />
=== Failed negotiation ===<br />
root@fic-gta01:~$ pppd nodetach call tmobile<br />
Starting GPRS connect script<br />
Setting APN<br />
Dialing...<br />
Serial connection established.<br />
using channel 6<br />
Using interface ppp0<br />
Connect: ppp0 <--> /dev/ttySAC0<br />
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4e9abed> <pcomp> <accomp>]<br />
rcvd [LCP ConfRej id=0x1 <magic 0x4e9abed>]<br />
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <pcomp> <accomp>]<br />
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <pcomp> <accomp>]<br />
rcvd [LCP ConfReq id=0xb <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]<br />
sent [LCP ConfAck id=0xb <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]<br />
sent [LCP EchoReq id=0x0 magic=0x0]<br />
rcvd [CHAP Challenge id=0xc <c034dedca83809689a0180da3a2f2016460304ca4e64a1>, name = ""]<br />
sent [CHAP Response id=0xc <1c2a6e0f23afc550eeae08d33717b79c>, name = "fic-gta01"]<br />
rcvd [LCP EchoRep id=0x0 magic=0x0]<br />
rcvd [CHAP Success id=0xc ""]<br />
CHAP authentication succeeded<br />
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]<br />
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]<br />
rcvd [LCP ProtRej id=0x4 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]<br />
rcvd [LCP TermReq id=0x7 0b 21]<br />
LCP terminated by peer (^K!)</div>Bradpitcherhttp://openmoko.org/wiki/T-Mobile_pppd_scriptsT-Mobile pppd scripts2007-12-02T21:18:41Z<p>Bradpitcher: /* /etc/ppp/chap-secrets */</p>
<hr />
<div>I got this working using wap.voicestream.com. internet2 keeps giving me "LCP terminated by peer (^K!)" after CHAP auth.<br />
<br />
<br />
== /etc/ppp/peers/tmobile ==<br />
# File: /etc/ppp/peers/tmobile<br />
#<br />
/dev/ttySAC0<br />
115200<br />
crtscts<br />
lock<br />
hide-password<br />
defaultroute # set the default route<br />
usepeerdns<br />
holdoff 3<br />
ipcp-accept-local<br />
lcp-echo-failure 12<br />
lcp-echo-interval 3<br />
noauth<br />
noipdefault<br />
novj<br />
novjccomp<br />
replacedefaultroute<br />
persist<br />
debug<br />
<br />
connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile"<br />
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile-disconnect"<br />
<br />
<br />
<br />
----<br />
<br />
=== /etc/ppp/chatscripts/tmobile ===<br />
TIMEOUT 10<br />
ABORT 'BUSY'<br />
ABORT 'NO ANSWER'<br />
ABORT 'ERROR'<br />
SAY 'Starting GPRS connect script\n'<br />
<br />
""'ATZ'<br />
SAY 'Setting APN\n'<br />
OK 'AT+CGDCONT=1,"IP","wap.voicestream.com"'<br />
<br />
ABORT 'NO CARRIER'<br />
SAY 'Dialing...\n'<br />
OK 'ATD*99***1#'<br />
CONNECT ''<br />
<br />
----<br />
<br />
=== /etc/ppp/chatscripts/tmobile-disconnect ===<br />
"" "\K"<br />
"" "+++ATH0"<br />
SAY "GPRS disconnected."<br />
<br />
----<br />
<br />
=== /etc/ppp/chap-secrets ===<br />
# client server secret IP addresses<br />
* * "" *<br />
<br />
----<br />
<br />
Modified from info found here: [http://www.yepthatsme.com/2004/11/09/ppp-chat-scripts-for-t-mobile-sony-ericsson-t610-gprs-via-bluetooth-with-debian/]<br />
<br />
----<br />
<br />
=== Failed negotiation ===<br />
root@fic-gta01:~$ pppd nodetach call tmobile<br />
Starting GPRS connect script<br />
Setting APN<br />
Dialing...<br />
Serial connection established.<br />
using channel 6<br />
Using interface ppp0<br />
Connect: ppp0 <--> /dev/ttySAC0<br />
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4e9abed> <pcomp> <accomp>]<br />
rcvd [LCP ConfRej id=0x1 <magic 0x4e9abed>]<br />
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <pcomp> <accomp>]<br />
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <pcomp> <accomp>]<br />
rcvd [LCP ConfReq id=0xb <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]<br />
sent [LCP ConfAck id=0xb <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]<br />
sent [LCP EchoReq id=0x0 magic=0x0]<br />
rcvd [CHAP Challenge id=0xc <c034dedca83809689a0180da3a2f2016460304ca4e64a1>, name = ""]<br />
sent [CHAP Response id=0xc <1c2a6e0f23afc550eeae08d33717b79c>, name = "fic-gta01"]<br />
rcvd [LCP EchoRep id=0x0 magic=0x0]<br />
rcvd [CHAP Success id=0xc ""]<br />
CHAP authentication succeeded<br />
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]<br />
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]<br />
rcvd [LCP ProtRej id=0x4 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]<br />
rcvd [LCP TermReq id=0x7 0b 21]<br />
LCP terminated by peer (^K!)</div>Bradpitcherhttp://openmoko.org/wiki/SMSToolSMSTool2007-11-11T17:27:00Z<p>Bradpitcher: /* Comment on GSM Support */</p>
<hr />
<div>{{InProgress}}<br />
[[Image:SMSTool-0.3.png|thumb|SMSTool - SMS Tool]]<br />
<br />
<br />
== Overview ==<br />
Until OpenMoko releases an official GUI-Tool to send SMS you can use SMSTool for that task.<br />
<br />
This programm is written in Python using pygtk. It can be used only if those are present in your environment.<br />
<br />
(see [[SMSTool#Environment]])<br />
<br />
== Current Features ==<br />
<br />
* Send SMS<br />
** The default number is mine. - Leave a message if you like. ;-) --[[User:Kriss|kriss]] 22:54, 9 September 2007 (CEST)<br />
<br />
== Planned Features ==<br />
<br />
* Receive SMS<br />
<br />
== Comment on GSM Support ==<br />
<br />
* As there are no gsmd python bindings available at the time, SMSTool uses python-subprocess and threads to communicate to the commandline of [[Gsmd#libgsmd-tool | libgsmd-tool]] for the time being.<br />
<br />
We have some basic support for gsmd bindings in python. (Move this to discussion if necessary, apologies for the noise) <br />
http://projects.openmoko.org/plugins/scmsvn/viewcvs.php/?root=python-openmoko -- Sudharsh<br />
<br />
== Download ==<br />
<br />
[http://mput.de/~kristian/.openmoko/SMSTool-0.3c.tar.bz2 SMSTool-0.3c.tar.bz2]<br />
<br />
An smstool package is available from the repository at [[User:Alessandro | Alessandro]]'s user page.<br />
<br />
== Environment ==<br />
<br />
The following archives will have to be installed:<br />
<br />
* python-core<br />
* python-misc<br />
* python-lang<br />
* python-pygtk<br />
* python-subprocess<br />
* python-threading (should be a dependency of python-subprocess - todo: fix)<br />
* python-pygobject (should be a dependency of python-pygtk - todo: fix)<br />
<br />
If you want to test this and do not have a build environment, you can 'ipkg install' the python components from the ScaredyCat [[repositories]].<br />
<br />
{{note|These packages take up a considerable amout of space (about 10 MByte), make sure that you have enough free space or install the packages to the media card as explained in [[package management]].}}<br />
<br />
== Installation / Execution ==<br />
<br />
* download file to Neo (e.g. using wget)<br />
* Uncompress tar.gz file (e.g. tar -xzvf file.tar.gz)<br />
* run:<br />
export DISPLAY=:0.0<br />
python SMSTool-x.x/SMSTool.py &<br />
<br />
<br />
<br />
[[Category:Applications]]<br />
[[Category:In_progress]]</div>Bradpitcherhttp://openmoko.org/wiki/Qtopia_on_Neo1973Qtopia on Neo19732007-11-05T18:39:48Z<p>Bradpitcher: /* Tips */</p>
<hr />
<div>{{Languages|Qtopia_on_Neo_1973}}<br />
<br />
== Installation ==<br />
<br />
=== Qtopia image ===<br />
Get "Qtopia on Neo Flash Image and kernel" [http://www.qtopia.net/modules/devices/openmoko.php from here]. Currently the flash tarball has the 2.6.21 openmoko kernel and a Qtopia phone edition jffs2 flash image cross-compiled for the Neo. <br />
<br />
Newer unofficial Qtopia images can be found in the ScaredyCat [[repositories]].<br />
<br />
It appears you must clear the flash chunks first (if you have not updated your uboot. If you have, you may skip this step). Get into uboot console [http://wiki.openmoko.org/wiki/Uboot#Accessing_the_bootloader_prompt] and enter <br />
<br />
nand erase kernel<br />
nand erase rootfs<br />
<br />
Download and use dfu-util as [[Flashing_openmoko|normal]] and the ip address and cidr are the same as the openmoko build (192.168.0.202/24) :D - Simple, Eh?<br />
<br />
=== Qtopia AND OpenMoko Option 1 ===<br />
Why choose when you can have both ;)<br />
<br />
I assume you already have some recent version of OpenMoko on your Neo1973. If not, have a look [[Flashing_openmoko|here]].<br />
<br />
First backup everything on your micro-sd card you don't want to lose as we are going to create a new filesystem on it. This is necessary beacause vfat doesnt support links. Then ssh to your neo and do:<br />
umount /dev/mmcblk0p1<br />
mkfs.ext3 /dev/mmcblk0p1<br />
mount /dev/mmcblk0p1<br />
<br />
On your desktop: Get "Developer root filesystem" [http://www.qtopia.net/modules/devices/openmoko.php from here]. Get the opt/Qtopia folder plus the qpe init script out of the archive repack and copy it to your neo. One could do this like this:<br />
tar xzf ficgta01-qtopia-developer-rootfs.tgz opt/Qtopia etc/init.d/qpe<br />
mv opt/Qtopia etc/init.d/qpe . && rm -r opt etc<br />
tar czf Qtopia.tar.gz Qtopia qpe<br />
scp Qtopia.tar.gz root@192.168.0.202:/media/card/<br />
<br />
On your neo again: unpack the archive you just copied and link the Qtopia folder to /opt/Qtopia. Then move the init script to /etc/init.d/:<br />
cd /media/card<br />
tar xzf Qtopia.tar.gz<br />
mkdir -p /opt<br />
ln -s /media/card/Qtopia /opt/Qtopia<br />
mv qpe /etc/init.d<br />
<br />
Now kill the x server and gsmd and start Qtopia (this can take some time):<br />
/etc/init.d/xserver-nodm stop<br />
/etc/init.d/gsmd stop<br />
/etc/init.d/qpe start<br />
<br />
Where from here? You could put the last step in a script and start it from a terminal on your phone. But much nicer would be if you could choose between both interfaces on init time and have some small application in Qtopia/OpenMoko to switch.<br />
<br />
=== Qtopia AND OpenMoko Option 2 ===<br />
<br />
* format your SD card with ext3 and mount it (see above)<br />
* unpack rootfs from qtopia-4.3.0-preview-neo-flash.tgz to SD card (see above)<br />
* copy the uImage-2.6.22.5-moko11-r2-fic-gta01.bin kernel to the boot/ on SD card and rename it to uImage<br />
* put a 'Boot from SD' menu item in uboot menu as explained here: [[Booting_from_SD#Step_3:_Add_uboot_boot_entry]]<br />
<br />
=== Build your own ===<br />
If you want to build qtopia for yourself you can download the [ftp://ftp.trolltech.com/qtopia/tech-preview/ technical preview] or [ftp://ftp.trolltech.com/qtopia/snapshots/ snapshots]<br />
<br />
== Tips ==<br />
Most things seem to work out of the box, however you may need to use the following command to get audio:<br />
alsactl -f /etc/gsmhandset.state restore<br />
Or put this command in /etc/init.d/qpe line 64<br />
<br />
Do not switch themes. Only the default theme is usable. For example, once you switch themes, the lock feature continues to work, but only if you unlock using the smallest # keypad in the world.<br />
<br />
Suspend support is very flaky. The neo often shuts off from a suspend state. It will not wake from suspend for an incoming call or text message (someone try setting an alarm and report results here). To turn suspend off (this will of course use the batteries very quickly), hit the down arrow next to the suspend setting in the power management until it says "Off".<br />
<br />
When using the virtual keyboard, do a quick flick up or down over the keyboard to access numbers/symbols/capitals.<br />
<br />
In summary, Qtopia on the Neo1973 is much closer to being ready than OpenMoko as of this writing. However, sound and suspend support prevent it from being at all useful as a cell phone (as a landline that doesn't ring but instead vibrates, it works ok).<br />
<br />
== Screenshots ==<br />
<br />
Here are some screenshots of Qtopia runing on a Neo 1973. Personally I find it very impressive...<br />
<br />
<br />
<br />
{|<br />
|-<br />
|[[Image:Qtopia001.png|thumb|center|300px]]<br />
|[[Image:Qtopia002.png|thumb|center|300px]]<br />
|[[Image:Qtopia003.png|thumb|center|300px]]<br />
|-<br />
|[[Image:Qtopia004.png|thumb|center|300px]]<br />
|[[Image:Qtopia005.png|thumb|center|300px]]<br />
|[[Image:Qtopia006.png|thumb|center|300px]]<br />
|}<br />
<br />
== Videos ==<br />
<br />
http://www.youtube.com/watch?v=YW5q8SpY7t4<br />
http://www.youtube.com/watch?v=iOG_mtSEMgs<br />
<br />
For full size videos, 346 MiB:<br />
<br />
http://linuxtracker.org/download.php?id=4613&name=qt_on_neo1973_videos.torrent</div>Bradpitcherhttp://openmoko.org/wiki/Talk:ThumbtribesTalk:Thumbtribes2007-10-22T20:11:12Z<p>Bradpitcher: </p>
<hr />
<div>Please add any feature requests/comments below<br />
<br />
John - I logged on to the website and saw that you were online, so I logged on with the client. But it doesn't list any users for me to contact. Maybe because of the distance? I'm in Oregon, USA -Brad<br />
<br />
Hi Brad. Well only a couple of people have installed the app so far so it does not give much of a chance to list any other users. I would be interested to try out the messaging feature I recently added between two Neo's so maybe we could arrange a mutal time online to test out. Setting maximum distance of 20,000km will give the biggest range. If you set it lower it only displays those within that distance. You also might want to set a frequent ping time for testing as this will update your user list more often. Once I have worked on the UI a bit I will announce the app properly so hopefully there will be some more users :) Thanks for testing things out at such an early stage. If you are interesting in trying the messaging etc email me jptmoore@gmail.com<br />
<br />
== Bugs ==<br />
After about 5 minutes, the thumbtribes client errors out with the following message:<br />
<br />
Error: can not read from socket - Connection reset by peer: 6<br />
<br />
Call history:<br />
<br />
client.scm: 294 wait<br />
client.scm: 292 file-select<br />
client.scm: 345 po<br />
client.scm: 346 po<br />
client.scm: 346 decode-pdu<br />
client.scm: 273 thumbtribes:print<br />
client.scm: 136 conc<br />
client.scm: 136 printf<br />
client.scm: 274 caadr<br />
client.scm: 283 decode-pdu-ping-response<br />
client.scm: 243 gtk-list-store-clear<br />
client.scm: 348 thumbtribes:statusbar-pop<br />
client.scm: 376 statusbar-pop<br />
client.scm: 125 read-messages<br />
client.scm: 451 file-select<br />
client.scm: 452 read-line <--</div>Bradpitcherhttp://openmoko.org/wiki/Talk:ThumbtribesTalk:Thumbtribes2007-10-22T20:10:02Z<p>Bradpitcher: bug</p>
<hr />
<div>Please add any feature requests/comments below<br />
<br />
John - I logged on to the website and saw that you were online, so I logged on with the client. But it doesn't list any users for me to contact. Maybe because of the distance? I'm in Oregon, USA -Brad<br />
<br />
Hi Brad. Well only a couple of people have installed the app so far so it does not give much of a chance to list any other users. I would be interested to try out the messaging feature I recently added between two Neo's so maybe we could arrange a mutal time online to test out. Setting maximum distance of 20,000km will give the biggest range. If you set it lower it only displays those within that distance. You also might want to set a frequent ping time for testing as this will update your user list more often. Once I have worked on the UI a bit I will announce the app properly so hopefully there will be some more users :) Thanks for testing things out at such an early stage. If you are interesting in trying the messaging etc email me jptmoore@gmail.com<br />
<br />
After about 5 minutes, the thumbtribes client errors out with the following message:<br />
<br />
Error: can not read from socket - Connection reset by peer: 6<br />
<br />
Call history:<br />
<br />
client.scm: 294 wait<br />
client.scm: 292 file-select<br />
client.scm: 345 po<br />
client.scm: 346 po<br />
client.scm: 346 decode-pdu<br />
client.scm: 273 thumbtribes:print<br />
client.scm: 136 conc<br />
client.scm: 136 printf<br />
client.scm: 274 caadr<br />
client.scm: 283 decode-pdu-ping-response<br />
client.scm: 243 gtk-list-store-clear<br />
client.scm: 348 thumbtribes:statusbar-pop<br />
client.scm: 376 statusbar-pop<br />
client.scm: 125 read-messages<br />
client.scm: 451 file-select<br />
client.scm: 452 read-line <--</div>Bradpitcherhttp://openmoko.org/wiki/Talk:ThumbtribesTalk:Thumbtribes2007-10-17T19:37:23Z<p>Bradpitcher: </p>
<hr />
<div>Please add any feature requests/comments below<br />
<br />
John - I logged on to the website and saw that you were online, so I logged on with the client. But it doesn't list any users for me to contact. Maybe because of the distance? I'm in Oregon, USA -Brad</div>Bradpitcherhttp://openmoko.org/wiki/Talk:Qtopia_on_Neo1973Talk:Qtopia on Neo19732007-09-19T16:17:21Z<p>Bradpitcher: new question</p>
<hr />
<div>*How responsive is the Qtopia UI on the Neo? --[[User:Denis std|denis_std]] 13:12, 18 September 2007 (CEST)****<br />
**From watching the videos Qtopia seems quite responsive. --[[User:Denis std|denis_std]] 16:42, 18 September 2007 (CEST)<br />
***Confirmed: quite responsive in gta-01. [[User:Kresp0|kresp0]] 11:45, 19 September 2007 (CEST)<br />
<br />
== Where do I find / how do I install?? ==<br />
<br />
*Are calls/SMSs working?<br />
**Yes, but you need to do "alsactl -f /etc/alsa/gsmhandset.state restore" to get audio. [[User:Kresp0|kresp0]] 11:45, 19 September 2007 (CEST)<br />
<br />
*How do you input characters other than letters?<br />
**Do a quick flick up or down over the keyboard to access numbers/symbols/capitals.<br />
<br />
== Where can I find/install applications for Qtopia? ==</div>Bradpitcherhttp://openmoko.org/wiki/Talk:Qtopia_on_Neo1973Talk:Qtopia on Neo19732007-09-18T22:25:30Z<p>Bradpitcher: /* Useful feeds */</p>
<hr />
<div>How responsive is the Qtopia UI on the Neo? --[[User:Denis std|denis_std]] 13:12, 18 September 2007 (CEST)<br />
-> From watching the videos Qtopia seems quite responsive. --[[User:Denis std|denis_std]] 16:42, 18 September 2007 (CEST)<br />
<br />
== Where do I find / how do I install?? ==<br />
<br />
Are calls/SMSs working?<br />
<br />
How do you input characters other than letters? Do a quick flick up or down over the keyboard to access numbers/symbols/capitals.<br />
<br />
== Useful feeds ==<br />
Qtopia -- src updates-qpe http://qpe.sourceforge.net/packages/ipaq<br />
----<br />
Opie -- src/gz updates-opie http://familiar.handhelds.org/releases/v0.8.4/feed/opie<br />
----<br />
Gaim -- src updates-gaim http://qpe-gaim.sourceforge.net/feed/release</div>Bradpitcherhttp://openmoko.org/wiki/Talk:Qtopia_on_Neo1973Talk:Qtopia on Neo19732007-09-18T22:24:29Z<p>Bradpitcher: Useful feeds</p>
<hr />
<div>How responsive is the Qtopia UI on the Neo? --[[User:Denis std|denis_std]] 13:12, 18 September 2007 (CEST)<br />
-> From watching the videos Qtopia seems quite responsive. --[[User:Denis std|denis_std]] 16:42, 18 September 2007 (CEST)<br />
<br />
== Where do I find / how do I install?? ==<br />
<br />
Are calls/SMSs working?<br />
<br />
How do you input characters other than letters? Do a quick flick up or down over the keyboard to access numbers/symbols/capitals.<br />
<br />
== Useful feeds ==<br />
Qtopia -- src updates-qpe http://qpe.sourceforge.net/packages/ipaq<br />
Opie -- src/gz updates-opie http://familiar.handhelds.org/releases/v0.8.4/feed/opie<br />
Gaim -- src updates-gaim http://qpe-gaim.sourceforge.net/feed/release</div>Bradpitcherhttp://openmoko.org/wiki/Talk:Qtopia_on_Neo1973Talk:Qtopia on Neo19732007-09-18T18:33:32Z<p>Bradpitcher: /* Where do I find / how do I install?? */</p>
<hr />
<div>How responsive is the Qtopia UI on the Neo? --[[User:Denis std|denis_std]] 13:12, 18 September 2007 (CEST)<br />
-> From watching the videos Qtopia seems quite responsive. --[[User:Denis std|denis_std]] 16:42, 18 September 2007 (CEST)<br />
<br />
== Where do I find / how do I install?? ==<br />
<br />
Are calls/SMSs working?<br />
<br />
How do you input characters other than letters? Do a quick flick up or down over the keyboard to access numbers/symbols/capitals.</div>Bradpitcherhttp://openmoko.org/wiki/Wishlist/GamesWishlist/Games2007-09-14T22:13:06Z<p>Bradpitcher: dosbox info</p>
<hr />
<div>{{Wishlist}}<br />
<br />
=== Games on OpenMoko ===<br />
<br />
This is the page to centralize the suggestions for creating games on the OpenMoko device.<br />
<br />
===== Existing game concepts that could be realized =====<br />
* Simple Flash games like [http://www.albinoblacksheep.com/flash/squares2.php Squares2] are often very addicting and good for short playing sessions. Other examples: Bejewelled, Zoo Keeper, [http://novelconcepts.co.uk/FlashElementTD/ Flash Element TD ], ... <br />
* A classic shooter can work well with continous fire and touchscreen controls. An example is Kenta Cho's Java version of [http://www.asahi-net.or.jp/~cs8k-cyu/java/noiz2_e.html Noiz2] <br />
* Same is true for a 3D shooter with no/seldom used additional controls. For example a combat flying game like Hunt for the [http://www.smallrockets.com/pc/baron/ Red Baron]. You can control the speed with a slider, shoot rockets and drop bombs with special buttons but those are things you only need from time to time. Most of the time you are shooting continously and aiming which can be done in the corner of the touchscreen (so it doesn't obstruct your view). Use accelerators for steering?<br />
* Osu! Tatakae! Ouendan/Elite Beat Agents - Rhythm-based touching of circles and paths on the screen is a great concept and shouldn't be that difficult to pull off if you leave out some of the great presentation.<br />
* Pac Pix - The necessary shape-recognition would probably be difficult to manage with a small budget but the general idea is quite cool.<br />
* Kirby Canvas Curse - Again, not easy to do with a small budget.<br />
* Burning Sand/Falling Sand- already supported on a DS [http://siebn.de/]<br />
* Breakout - all you need to do is move the paddle back and forth<br />
* Pong - same as above<br />
* [http://de.wikipedia.org/wiki/Bridge_Builder Bridge Builder] - setting up Architectures, with a limited Budget and see if it can withstand. Doesn't have to be limited on Bridges.<br />
* Volfied - you cut pieces of the screen while dodging baddies and you win when you get to X%<br />
<br />
===== Candidates for porting/cross compiling =====<br />
* [http://www.fade-team.com/acedior.htm Acedior] - A classic graphic adventure game.<br />
* Checkers, Chess, Minesweeper (interesting touchscreen variation: [http://toyspring.com/3dm/ 3D Mines] by Toyspring, Solitaire, Mahjong, Connect Four, Tic-tac-toe, Black Jack<br />
* Command & Conquer and Red Alert - [http://sourceforge.net/projects/freera/ FreeRA]<br />
* Creating a Nethack port could be done. Tony said on the list: "I'm not entirely sure yet. I imagine I'll first do a text port with a "portal" view (in which you only see a part of the screen at a time), and a user-selected font size. Then I'd try a tiles-based port. It all depends on how readable the text is on the small screen."<br />
* [http://dosbox.sourceforge.net/ DOSBox] - would give the Opportunity to play dozens of DOS Games, like [http://www.abandonia.com/games/en/466/LandsofLore.htm Lands of Lore] -- bitbake recipe already exists, but the emulator is to slow without optimization configuration/code changes -- http://www.flickr.com/photos/pitcherfamily/1155008255/in/pool-openmoko/<br />
* [http://www.nongnu.org/enigma/ Enigma] A tilt maze-like puzzle game with 1000 levels (requires LUA).<br />
* [http://www.frozen-bubble.org/ Frozen Bubble] <br />
* [http://www.tucows.com/preview/9259 Gem Drop]<br />
* GJeweled<br />
* [http://www.aeonflame.com/ Gloop Zero] - A little like physics-based Lemmings. Get the liquid from one part of the level to another with tools like path-drawing, bombs, anti-gravity...<br />
* [http://gnome-sudoku.sourceforge.net/ Gnome Sudoku]<br />
* [http://web.mit.edu/xiphmont/Public/gPlanarity.html gPlanarity] would be a nice stylus game.<br />
* [http://en.wikipedia.org/wiki/Heroes_of_Might_and_Magic Heroes of Might and Magic] maybe can be port this [http://www.pocketheroes.net/ Pocket Heroes] for PocketPC<br />
* [http://redshift.hu/ Legacy] (and successor The Quest) - Classic first person turn based RPG. Movement and menus can completely be controlled with the touchscreen.<br />
* [http://www.ufoot.org/liquidwar Liquid War] Liquid War is a unique multiplayer wargame.<br />
* [http://www.mame.net/ MAME] - Multiple Arcade Machine Emulator. This versatile emulator turns a given platform into a powerful gaming system. It has been ported to WinCE and many UNIX flavors as well. It would be wonderul to have this on the OpenMoko.<br />
* [http://www.mess.org/ MESS] - Multiple Emulator Super System. To emulate old computers like TI 99/4A, C64, ...<br />
* Nethack, you could move just touching the direction you want to go.<br />
* [http://www.openttd.com Open Transport Tycoon Deluxe]. Very possible, in fact the author of the Palm & GP2X ports of the game is already interested in OpenMoko.<br />
* [http://treacle.hewwo.com/jazz/oj/ OpenJazz] Jazz Jackrabbit clone, needs original data. Would need some external controller or [http://wiki.openmoko.org/wiki/Hardware:Neo1973:Alternate_Cases:Digital_gaming that] alternate case<br />
* Pipe Dreams<br />
* [http://www.clickgamer.com/moreinfo.htm?pid=4188&section=PALM Plazmoids!] - A space game with screen-size levels. Move your ship around by touching where it should go. Collect the plazmoids (asteroids) by catching them in your elastic tractor beam (lots of simple physics again), shoot enemies with a button or double tap.<br />
* Racing Games, like [http://xmoto.sourceforge.net/ XMoto], [http://vdrift.net/ VDrift], [http://ecksdee.sourceforge.net/ Ecksdee] or more likely [http://www.emhsoft.com/ttrooper/ Torus Trooper]<br />
* [http://www.scummvm.org/ ScummVM] - Allows you to run certain classic graphical point-and-click adventure games '''Done - see [[Scummvm]]'''<br />
* [http://www.chiark.greenend.org.uk/~sgtatham/puzzles/ Simon Tatham's Portable Puzzle Collection] is GTK based and includes, among others, both Sudoku and Planarity style games called Solo and Untangle.<br />
* That addictive Photo game where you have to spot the 5 differences in x seconds<br />
* [http://www.t-o-m-e.net TOME] - Roguelike set in Tolkein universe (2.x is current, 3.0 is in devel) that makes wide use of lua scripting, TOME and maybe some modules or other standalone versions such as [http://www.furytech.net/furyband/furyband.php Furyband] should be playable with a virtual keyboard on the go or with a real usb/bluetooth keyboard.<br />
* [http://www.warfareincorporated.com/ Warfare Inc.] - A full real time strategy game is no problem with a touchscreen. In fact, it's a lot of fun!<br />
* [http://www.widelands.org/ Widelands] A Settlers 2 clone<br />
<br />
===== General ideas about games on OpenMoko =====<br />
* A easy network library for Bluetooth and/or GPRS connectivity.<br />
* Every turn-based game should be possible with on screen buttons. <br />
* Action games should need only one main control action most of the time such as moving somewhere on a 2D plane, aiming in 3D, drawing a path. Special items and actions are possible but should only be needed from time to time. Moving and aiming independently could be done by using the accelerometers for walking and the touchscreen for aiming.<br />
* The finger getting into the way of seeing what's going on is a problem. Most games would probably need a stylus. Games with first person aiming can be controlled with a thumb in one corner of the screen, however you'd probably need one of them thumbstraps they make for the DS so that your thumb glides over the screen with ease.<br />
* GPS can be used for location based games. An example is [http://codeninja.de/tron/ Tron]. Links to location-based/Alternate Reality games in these [http://del.icio.us/tallpaul/games+street del.icio.us pages]<br />
* Bluetooth controllers should be supported. I am especially thinking about the Nintendo Wii remote.<br />
* Virtually Real Games; the OpenMoko, with it's network connectivity and loads of basic features, could be used to invent/encourage a new(ish) style of game that mixes reality and tech. A basic version would be urban tag; you get close to someone and the buzzer beeps faster, say. There's so many more creative possibilities though.<br />
<br />
What is not possible without magic tricks / an external controller*:<br />
* Classic first person shooters, action adventures, jump 'n' runs<br />
* Emulators for classic systems<br />
* Network lib for easy Bluetooth and/or GPRS connections.<br />
* Bluetooth controllers should be supported. I am especially thinking about the Nintendo Wii remote.<br />
* If version 2 of the hardware has an accelerometer a [http://www.rubylane.com/shops/molotov/item/SUN1769 tilt maze ball game] is possible.<br />
<br />
===== Accelerometer based games =====<br />
* Sliding block games, to reassemble pictures.<br />
* Rolling ball games, where you navigate a ball or balls through a maze.<br />
** Multiplayer versions of the above - who can get the ball to the hole first?<br />
<br />
<br />
<br />
<br />
*Reallife RPG Firstpersonshooter<br />
<br />
**RL-RPG-FPS<br />
**Neo as board computers<br />
<br />
**Bluetooth DEVICE with:<br />
***3d Accerometer<br />
***3d compass<br />
*** various buttons to fire etc.<br />
<br />
**wlan servers as gamarea<br />
*** with shot direction becomes via compass<br />
*** own psoition via gps<br />
*** kind of the weapon<br />
*** over wlan transfer <br />
*** and enemydevice announces hit<br />
<br />
<br />
<br />
<br />
<nowiki>*</nowiki>Much of this could be accomplished with [http://wiki.openmoko.org/wiki/Wish_List#More.2FCustom_Input_Method_Widgets Custom Input Method Widgets] for the keyboard.<br />
<br />
[[Category:Games]]<br />
[[Category:Accelerometer]]</div>Bradpitcherhttp://openmoko.org/wiki/Flashing_the_Neo_1973Flashing the Neo 19732007-08-23T16:32:44Z<p>Bradpitcher: change build host url to OM2007.2</p>
<hr />
<div>This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.<br />
<br />
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}<br />
<br />
{{warning|If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, [[Nand_erase|erase NAND]] and then upload your rootfs first}}<br />
<br />
== Files to download ==<br />
<br />
MacOS X users: please refer to [[MacOS_X]]. Users without Linux please refer to [[No_Linux]] for the moment.<br />
<br />
The rootfs & kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with, you just have to try a few. '''NOTE:''' At least some combinations seem to boot up fine even if the module versions mismatch so be sure to check the console while it's booting after flashing.<br />
<br />
The "moko123" in the error message example above indicates the openmoko patchset version.<br />
<br />
Necessary files are at:<br />
*http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/images/fic-gta01/<br />
<br />
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)<br />
<br />
*http://carrierclass.net/openmoko/images/ (Unofficial, nightly builds using [[MokoMakefile]])<br />
<br />
A list of download locations can be found at [[Repositories]]. See [[Phase 1 Software Testing]] for a list of tested images.<br />
<br />
<br />
Changelogs can be found at:<br />
*http://cia.vc/stats/project/openembedded/.rss<br />
<br />
*http://cia.vc/stats/project/openmoko/.rss<br />
<br />
<br />
Get:<br />
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)<br />
** (this is the part that runs on the PC, that pushes the files across the USB to the phone)<br />
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2<br />
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin<br />
* for phase 0 (Bv03) phones:<br />
** Tested by a few people:<BR>u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin<BR>MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83<br />
** Tested by hrw:<BR>u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin<BR>MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935<br />
* for phase 1 phones, uboot update should not be necessary.<br />
<br />
== Preparing the device for DFU mode ==<br />
<br />
You'll need to boot your openmoko into uboot menu. To do this:<br />
<br />
* Unplug all usb devices from the host.<br />
* Hold [[Neo1973 AUX Button]] while pressing POWER button. <br />
* The uboot menu should appear. <br />
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)<br />
<br />
Note: Some devices have been reported to turn off after a short period of inactivity while on the uboot menu. To avoid this, simply press the AUX button every 30 seconds or so.<br />
<br />
No further navigation is needed in u-boot - the device will automatically start flashing the images when told to do so by dfu-util below. After flashing all the files, you can choose the "Boot" option to boot the newly flashed stuff.<br />
<br />
== Actually flashing things into the device ==<br />
<br />
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.<br />
<br />
Note: It may be necessary to run the application as root (at least in ubuntu).<br />
<br />
Note: Option -a also accepts symbolic names ("u-boot", "u-boot_env", "kernel", "splash", "rootfs")<br />
<br />
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.<br />
<br />
To update u-boot:<br />
<br />
<b>Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04</b><br />
<br />
./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin<br />
<br />
To update the kernel:<br />
./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin<br />
<br />
To update the root filesystem:<br />
./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2<br />
<br />
Notice that it's not normally needed to update the modules anymore. It's just for people with special needs.<br />
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko. - UPDATE: GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).<br />
<br />
VERY IMPORTANT NOTE (I would consider that as a design flaw - either dfu-util should do it automatically): If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:<br />
<br />
<pre><br />
cu -l /dev/ttyACM0<br />
GTA01Bv3 # nand erase rootfs<br />
</pre><br />
<br />
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.<br />
<br />
<br />
<br />
Good luck!<br />
<br />
== Troubleshooting notes ==<br />
<br />
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected is of too poor quality. It is recommended that you always connect the phone directly to the host when using dfu-util.<br />
<br />
If dfu-util reports a message like the following, before it starts flashing:<pre><br />
Resetting USB...<br />
not at least 2 device changes found ?!?<br />
Lost device after RESET?</pre> just retry the command - it should work on a second run.<br />
<br />
This message can also occur if you connect the usb cable before you are in the bootloader menu. You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.<br />
<br />
dfu-util does not seem to be able to download files if run from linux running under<br />
VMWare on a Windows OS host.<br />
<br />
See other notes on [[Dfu-util]] page.<br />
<br />
[[Category:OpenMoko| ]]</div>Bradpitcherhttp://openmoko.org/wiki/SWAGSWAG2007-08-20T19:17:22Z<p>Bradpitcher: usa shop</p>
<hr />
<div><big>Locations to purchase openmoko SWAG</big><br><br />
*[[http://www.spreadshirt.net/shop.php?sid=211795 SpreadShirts Shop Europe]] - This is the openmoko shop at spreadshirts (Thank You Daniel!)<br />
*[[http://www.spreadshirt.com/shop.php?sid=128333 SpreadShirts Shop USA]]<br />
<small>[[http://lists.openmoko.org/pipermail/community/2007-February/003160.html mailing list reference]]</small><br />
<br />
<span id="bottom"></span><br />
{{Languages|SWAG}}<br />
<br />
[[Category:Information]]</div>Bradpitcherhttp://openmoko.org/wiki/Flashing_the_Neo_1973Flashing the Neo 19732007-08-20T18:47:55Z<p>Bradpitcher: </p>
<hr />
<div>This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.<br />
<br />
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}<br />
<br />
{{warning|If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first}}<br />
<br />
== Files to download ==<br />
<br />
MacOS X users: please refer to [[MacOS_X]]. Users without Linux please refer to [[No_Linux]] for the moment.<br />
<br />
The rootfs & kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with, you just have to try a few. '''NOTE:''' At least some combinations seem to boot up fine even if the module versions mismatch so be sure to check the console while it's booting after flashing.<br />
<br />
The "moko123" in the error message example above indicates the openmoko patchset version.<br />
<br />
Necessary files are at:<br />
*http://buildhost.openmoko.org/OM2007.1/tmp/deploy/images/<br />
<br />
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)<br />
<br />
*http://carrierclass.net/openmoko/images/ (Unofficial, nightly builds using [[MokoMakefile]])<br />
<br />
Get:<br />
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)<br />
** (this is the part that runs on the PC, that pushes the files across the USB to the phone)<br />
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2<br />
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin<br />
* for phase 0 (Bv03) phones:<br />
** Tested by a few people:<BR>u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin<BR>MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83<br />
** Tested by hrw:<BR>u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin<BR>MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935<br />
* for phase 1 phones, uboot update should not be necessary.<br />
<br />
See [[Phase 1 Software Testing]] for a list of tested images.<br />
<br />
== Preparing the device for DFU mode ==<br />
<br />
You'll need to boot your openmoko into uboot menu. To do this:<br />
<br />
* Unplug all usb devices from the host.<br />
* Hold [[Neo1973 AUX Button]] while pressing POWER button. <br />
* The uboot menu should appear. <br />
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)<br />
<br />
Note: Some devices have been reported to turn off after a short period of inactivity while on the uboot menu. To avoid this, simply press the AUX button every 30 seconds or so.<br />
<br />
No further navigation is needed in u-boot - the device will automatically start flashing the images when told to do so by dfu-util below. After flashing all the files, you can choose the "Boot" option to boot the newly flashed stuff.<br />
<br />
== Actually flashing things into the device ==<br />
<br />
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.<br />
<br />
Note: It may be necessary to run the application as root (at least in ubuntu).<br />
<br />
Note: Option -a also accepts symbolic names ("u-boot", "u-boot_env", "kernel", "splash", "rootfs")<br />
<br />
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.<br />
<br />
To update u-boot:<br />
<br />
<b>Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04</b><br />
<br />
./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin<br />
<br />
To update the kernel:<br />
./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin<br />
<br />
To update the root filesystem:<br />
./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2<br />
<br />
Notice that it's not normally needed to update the modules anymore. It's just for people with special needs.<br />
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko. - UPDATE: GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).<br />
<br />
VERY IMPORTANT NOTE (I would consider that as a design flaw - either dfu-util should do it automatically): If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:<br />
<br />
<pre><br />
cu -l /dev/ttyACM0<br />
GTA01Bv3 # nand erase rootfs<br />
</pre><br />
<br />
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.<br />
<br />
<br />
<br />
Good luck!<br />
<br />
== Troubleshooting notes ==<br />
<br />
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected is of too poor quality. It is recommended that you always connect the phone directly to the host when using dfu-util.<br />
<br />
If dfu-util reports a message like the following, before it starts flashing:<pre><br />
Resetting USB...<br />
not at least 2 device changes found ?!?<br />
Lost device after RESET?</pre> just retry the command - it should work on a second run.<br />
<br />
This message can also occur if you connect the usb cable before you are in the bootloader menu. You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.<br />
<br />
dfu-util does not seem to be able to download files if run from linux running under<br />
VMWare on a Windows OS host.<br />
<br />
See other notes on [[Dfu-util]] page.<br />
<br />
[[Category:OpenMoko| ]]</div>Bradpitcherhttp://openmoko.org/wiki/Neo1973_RobustnessNeo1973 Robustness2007-08-08T16:16:13Z<p>Bradpitcher: added liquid damage table</p>
<hr />
<div>This is a list of stuff you've done to your neo.<br />
<br />
<br />
{|border="1"<br />
|+Drops<br />
!User||Height fell || Horizontal velocity || Surface it hit || Damage?<br />
|-<br />
|Speedevil||1m||0||carpet||none<br />
|-<br />
|rwhitby||1.3m||0.25m/s||pavement||Front of case separated from middle around the BT antenna (the screws inside had been previously removed), AUX button dislodged (but could be replaced easily), scratches on silver on front top and rear right.<br />
|-<br />
|Johan||1.2m||0||tiled floor || none<br />
|}<br />
<br />
<br />
<br />
{|border="1"<br />
|+Liquid Exposure<br />
!User||Amount of liquid || Type of liquid || Damage?<br />
|-<br />
|bradpitcher||total immersion||water||No apparent damage. I immediately opened the case and removed the battery, tried to shake off excess water, and let sit to dry for a day before restarting it. NOTE: this does not mean the Neo is waterproof. Do NOT try this at home!<br />
|}</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-07-20T16:42:40Z<p>Bradpitcher: /* Security */</p>
<hr />
<div>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 [http://wiki.openmoko.org/wiki/Category:Ideas that have a category of 'Ideas'].<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
==== IDE Plugins ====<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
evaluate eclipse project [http://www.eclipse.org/dsdp/index.php Device Software Development Platform Project from eclipse] and subproject [http://www.eclipse.org/proposals/tml/ Tool for Mobile Linux]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
==== UI Designer ====<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
<br />
==== Built-in Scripting Language ====<br />
<br />
There was a [http://lists.openmoko.org/pipermail/community/2007-January/001909.html 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]]<br />
===Foreign Widget Set Bindings ===<br />
==== Qt Integration ====<br />
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.<br />
<br />
==== Maemo Integration ====<br />
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.<br />
<br />
==== wxWidgets Integration ====<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
==== SDL Integration ====<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
=== Software: Language bindings ===<br />
==== Python bindings ====<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
==== C++ bindings ====<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
==== Other bindings ====<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Community Support ==<br />
<br />
=== [http://projects.openmoko.org projects.openmoko.org] ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
=== Wishlist voting ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Calling===<br />
<br />
==== Mask ID based on dialed numbers ====<br />
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.<br />
<br />
====Speaker-phone====<br />
* 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.<br />
====Advanced Airtime Tracking====<br />
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.<br />
<br />
==== Anti-stutter software ====<br />
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.<br />
<br />
====Minimize In-Call mode (check address book while in call)====<br />
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.<br />
<br />
Similar request when using the browser (lookup passwords, todo list, etc).<br />
<br />
====Hold Music (Ringback Tone)====<br />
On some cellphone networks you can pay to change the normal [http://en.wikipedia.org/wiki/Ringback_tone Ringback Tone] that the caller hears when ringing, to a customised sound.<br />
This can partially be implemented on the phone.<br />
Issues are:<br />
*In countries where callers pay, this will make you unpopular.<br />
*In countries where the called party pays, it will use your minutes, or cost you money.<br />
**A list of people to activate this function for would alleviate this.<br />
*[[GPRS]] internet connection will stall while the hold music is being played.<br />
*Extra battery used when playing music.<br />
<br />
Also see [[Answering Machine]].<br />
<br />
====Play sound clips over the air====<br />
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<br />
The buttons can have default sounds, but also have the ability to be customized.<br />
<br />
==== Conversation Recorder ====<br />
<br />
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.<br />
<br />
====Unlicensed Mobile Access (UMA)====<br />
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.<br />
<br />
==== Ignore-Call Button ====<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without accepting or rejecting the call.<br />
<br />
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.<br />
<br />
==== [[Voice Mailbox]] ====<br />
<br />
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.<br />
Can act profile-dependent.<br />
<br />
==== Hold Button ====<br />
<br />
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.<br />
<br />
===Audio===<br />
<br />
==== Ambient Noise Detection ====<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
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.<br />
<br />
==== Active noise control ====<br />
<br />
Using the microphone to do [http://en.wikipedia.org/wiki/Anti-noise 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.<br />
<br />
<br />
==== Mute Button ====<br />
<br />
Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.<br />
<br />
===Media===<br />
====Music/Video Software====<br />
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. <br />
<br />
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.<br />
<br />
==== Reading Support ====<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Document files<br />
*Text / RTF files<br />
*MS Office files<br />
*Aportis Doc (pdb)<br />
*...<br />
<br />
In both landscape and portrait<br />
<br />
<br />
==== Wikipedia Mirror ====<br />
<br />
See [[Wishlist:Wikipedia_Mirror|Wikipedia Mirror]].<br />
<br />
<br />
<br />
==== Blog ScribblePad ====<br />
<br />
Draw an image (and maybe add some text), then post to your blog.<br />
<br />
==== E-Book Reader ====<br />
* 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.<br />
<br />
==== Personal Wiki ====<br />
<br />
Display the notes database as a Wiki. Inspiration: [http://www.acrocat.com/AcroWiki/default.asp?lang=en AcroWiki]. [[Wishlist:PersonalWiki]]<br />
<br />
[http://www.didiwiki.org/ Didiwiki]<br />
<br />
<br />
==== Dictionary, thesaurus, translator and flashcards ====<br />
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.<br />
<br />
Support for vocabulary training with flashcard system (also usable for other content than foreign language words!)<br />
<br />
===PIM (Personal Information Managment)===<br />
====Context Sensitivity====<br />
Any email or sms message or application that contains a telephone number should be click to dial, eg [http://123567890 1234567890]. Addresses link to mapping software too?<br />
<br />
<br />
==== Address Book ====<br />
<br />
* 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<br />
servers or whatever.<br />
* 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.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's<br />
* Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant<br />
*Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account<br />
* '''[[Wishlist:Tagging|Tagging]]''' Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other application(GPS, ...) with tags.<br />
* Support for:<br />
**[http://en.wikipedia.org/wiki/SyncML SyncML]<br />
**[http://en.wikipedia.org/wiki/Ldap LDAP] address book<br />
**[http://en.wikipedia.org/wiki/LDIF LDIF], [http://en.wikipedia.org/wiki/Xml XML] and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export and import (when possible).<br />
*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.<br />
<br />
<br />
==== Database/List Display/Edit ====<br />
<br />
One of the most useful apps on my Palm Pilot for me is [http://pilot-db.sourceforge.net/ pilot-db]. It's GPL'd. [[Wishlist:PilotDB]]<br />
<br />
==== Joe's Goals ====<br />
<br />
It'd be nice to have something like [http://www.joesgoals.com Joe's Goals] always available, like my phone is, even when I'm disconnected from the net.<br />
<br />
==== Workout ====<br />
<br />
Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.<br />
<br />
==== Shopping List ====<br />
keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.<br />
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.<br />
==== Fuel Log ====<br />
File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...).<br />
Advanced features could include:<br />
* Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)<br />
* Sending the data to a central server which collects the information<br />
* 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)<br />
* Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server<br />
* Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.<br />
<br />
==== Keep in touch reminder ====<br />
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.<br />
<br />
<br />
==== Menstruation period timer ====<br />
Fill in statistics and compute probabilities for menstruation, fertility, mood.<br />
See http://www.getjar.com/products/48/MyGirls<br />
<br />
<br />
==== [[Wishlist:Tagging|Tagging]] ====<br />
Tags can be used by various applications. Requirement is interoperability for further enhancement.<br />
Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.<br />
<br />
<br />
<br />
==== Context based TO-DO list ====<br />
<br />
If I arrive home and there are "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me of that.<br />
<br />
==== Exchange Integration ====<br />
<br />
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.<br />
<br />
* Is the time right to name names ? Add as your liking...<br />
** Plugin/integration to & from Kontact<br />
** Same with Evolution - Thunderbird - Seamonkey<br />
** ?? Google Calendars ?? (this one is tough)<br />
<br />
===Profiles===<br />
<br />
The [[Wishlist:Profiles]] page documents many possible profiles - ways to configure the phone. Including ways to respond to calls, wifi and GPS events.<br />
And how to automatically switch between them.<br />
<br />
===Text Messaging===<br />
For '''Text Input related ideas''' see [[Wishlist:Text_Input]]. Bear in mind that T9 can not be included<br />
For current development status of the messaging-app see: [[Messages]]<br />
<br />
There are many useful options that now can be used to full capacity:<br />
* '''Acknowledge/status SMS'''<br />
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'.<br />
** '''Special handling of status-SMS''' <br />
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.<br />
* '''SMS at time/date''' You could be able to set up messages that are sent at a certain time/date<br />
* '''Binary SMS''' Send binary SMS. Could be used to feign WAP pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** [http://www.gammu.org www.gammu.org] - you can use Gammu/Gammu+ source for this software and/or understanding various SMS formats including EMS, WAP, Nokia Smart Messaging, Siemens & Alcatel encoding ([[User:Marcin|I could]] eventually help)<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* '''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.<br />
* '''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.<br />
* '''(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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
* '''Anti-Spam''' ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* '''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).<br />
* '''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<br />
* '''Searching''' allow full-text search or string search.<br />
* '''Massive SMS Deletion''' based on Conversation, author, before-date-xx.xx.xxxx, caller group, [[Wishlist:Tagging|tags]]...<br />
* '''Call Back''' Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.<br />
* '''Non-destructive deletion''', deleted messages goes to trash, and are recoverable.<br />
* '''SMS-EMail-Gateway'''<br />
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<br />
<br />
<br />
<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
There are many good suggestions for text input on the specific [[Wishlist:Text Input| text input ideas]] page.<br />
<br />
=== More/Custom Input Method Widgets ===<br />
Additional and customizable Input Method Widgets (similar to virtual keyboard). <br />
This could add soft-key functionality to games or other applications such as:<br />
*D-Pads<br />
*buttons<br />
*virtual trackballs<br />
*...<br />
Personalized layouts could be associated with each application.<br />
See [http://wiki.openmoko.org/wiki/Wishlist:More/Custom_Input_Method_Widgets Input Method Wishlist] for more.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Mesh Networking ===<br />
<br />
Please see [[Wishlist:Mesh Networking|Mesh Networking]].<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
===Misc Software===<br />
====Clocks/timers/Activity meters====<br />
===== Sport tracker =====<br />
[[Wishlist: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.<br />
<br />
===== Standby clock =====<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
===== Egg Timer =====<br />
<br />
Very simple (one click) count up / count down timers are very useful. [[Wishlist:EggTimer]]<br />
<br />
===== Cycle Computer =====<br />
As already mentioned by [http://wiki.openmoko.org/wiki/User_talk:Technil 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.<br />
* 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 :) --[[User:Minime|Minime]] 19:50, 12 April 2007 (CEST)<br />
<br />
====Calculators====<br />
===== A Universal Unit Converter Tool =====<br />
<br />
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.<br />
<br />
===== An Postfix Notation (RPN) calculator =====<br />
<br />
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.<br />
<br />
==== Web-browser Plugins ====<br />
<br />
* 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: [http://noscript.net/ noscript], [http://adblockplus.org/en/ adblock plus], [http://www.greasespot.net/ greasemonkey] and [http://www.foxmarks.com/ foxmarks].<br />
* 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.<br />
* Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.<br />
<br />
==== PalmOS Emulator ====<br />
<br />
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.<br />
<br />
Win CE emulator<br />
I'd like to see a Windows CE Emulator with active sync support.<br />
<br />
<br />
==== TV Guide/Remote Control ====<br />
<br />
Use your Phone to easily program your VCR using EPGs.<br />
<br />
<br />
==== Alcohol meter ====<br />
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.<br />
See, for example (German text) http://www.misterio-online.de/promille.htm<br />
<br />
==== Interaction with LEGO Mindstorm ====<br />
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.<br />
<br />
==== Flashlight ====<br />
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!<br />
<br />
=== Accessibility ===<br />
Accessibility features for the visually impaired.<br />
* High Contrast Themes.<br />
* 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.<br />
* 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.<br />
<br />
==== VOIP ====<br />
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.<br />
* A standard SIP client would probably fit better into the "free and open" philosophy.<br />
<br />
==== Power Meter ====<br />
If the power bar is clicked on it will show time left on charge and if charging it will show time until full.<br />
<br />
<br />
<br />
=== Accelerometer wishes ===<br />
==== Flick interface ====<br />
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.<br />
<br />
==== Shake-to-Wake ====<br />
Giving the phone a shake enables voice commands for a few seconds.<br />
Usage Examples: <br />
<br />
{Shake} "Call" ''ContactName'' ''PhoneType'' --- {Shake} "Call John Mobile" (Calls John's mobile)<br />
<br />
{Shake} ''ApplicationName'' --- {Shake} "Reader" (Opens the e-book application)<br />
<br />
Would require a method of inputting voice tags for applications and contacts and obviously will only work for P2 (accelerometers)<br />
But lets get voice command functionality working before P2 (just by pressing a button on the screen instead of shaking)<br />
<br />
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.<br />
<br />
==== Emergency call ====<br />
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.<br />
<br />
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).<br />
<br />
=== Connectivity ===<br />
<br />
==== VNC client ====<br />
A good, stylus friendly VNC client/host combo would be easy to add and terribly useful.<br />
<br />
<br />
==== Networked X-Windows ====<br />
<br />
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.<br />
<br />
<br />
=== Security ===<br />
<br />
==== My Account ====<br />
A way to securely store information about the phone, and ensure that a phone you may be considering purchasing is not stolen.<br />
<br />
[[My Account]]<br />
==== [http://zfoneproject.com/ Zfone] or similar ====<br />
<br />
Something that allows the user to speak with another person securely.<br />
<br />
<br />
==== GSM Encryption ====<br />
<br />
This software application would allow GSM encrypted calls to be made using the GSM Data Call Channel. Any individual interested in developing such an application please search the community mailing list for details or check back here soon.<br />
<br />
Once a few people have gotten together we will setup a mailing list to start the project off.<br />
<br />
==== My Voice is my Passport ====<br />
Use voice recognition to unlock the phone. "Hi. My name is ... My voice is my passport. Verify me."<br />
<br />
==Bluetooth==<br />
<br />
=== Voice Dialing ===<br />
<br />
Dial by voice commands.<br><br />
Dial by dictating phone number. This way we can voice dial any number even if not in our contact list.<br />
<br />
=== Music through Bluetooth Headset ===<br />
<br />
Music can be played through a Bluetooth headset, but would stop playing when a call comes in.<br />
<br />
=== Walkie Talkie ===<br />
<br />
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.<br />
<br />
Features for this applications can be:<br />
* Push To Talk (PTT) button<br />
* Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.<br />
* Optionally a full duplex mode<br />
* Different channels to choose from<br />
* Monitor different (preselected or all) channels for traffic.<br />
* Content encryption<br />
* Active noise control<br />
<br />
Local (non-GPRS) use cases include chatting while biking<br />
or motorcycling in a group; perhaps also in a car caravan.<br />
This application could also be used as a baby-phone to monitor your siblings.<br />
<br />
This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.<br />
<br />
=== Automatic Sync ===<br />
<br />
Automatically synchronize with desktop computer when within range based on user profile. This may require the use of a secure data transfer.<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
Like the [http://en.wikipedia.org/wiki/One_laptop_per_child 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.<br />
<br />
=== Remote control ===<br />
<br />
==== Wireless presenter ====<br />
Use the phone to run your OpenOffice.org Impress presentation remotely using Bluetooth. Cool features: <br />
* Display the text notes for the presenter on the phone's display and update it whenever the slide is changing.<br />
** OO.org has implemented support for [http://www.openoffice.org/issues/show_bug.cgi?id=12719 dual monitor]/[http://www.openoffice.org/issues/show_bug.cgi?id=18486 presenter mode] that can be used as a starting point<br />
* A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature). <br />
* If you want to be super-cool, you give a preview of the notes of the next slide in the show. <br />
* 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.<br />
** When you right-click in a running OO.org Impress presentation, you can choose "got o slide..." and select any slide to jump to.<br />
<br />
==== Initiated from another device ====<br />
Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.<br />
==== Directed at another device ====<br />
Remote control over Bluetooth to other devices to control media player, lights in your house, etc.<br />
<br />
Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. [http://www.z-wave.com www.z-wave.com]<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
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.<br />
<br />
==== Dude, Where's My Car? ====<br />
<br />
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.<br />
<br />
=== [[Bluetooth powered Multi-SIM support]] ===<br />
<br />
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.<br />
<br />
Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:<br />
* Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)<br />
* Calling out via SIM card B - the OpenMoko-phone acts again as a headset<br />
* Same for Short Messages/MMS/Internet<br />
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.<br />
Advantage: No 'switching' between cards<br />
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.<br />
<br />
===Internet Gateway===<br />
<br />
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.<br />
<br />
=== Social Networking ===<br />
<br />
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.<br />
<br />
== Other ==<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
- or just use MIDI, using a separate channel for the vibrator.<br />
<br />
An implementation of RTTL could also be used to define vibration patterns.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Anti Theft mode ===<br />
Suppose you are in a busy environment and your device is lying around somewhere. You sometimes use it but cannot look after it all the time. A sort of high risk environment for phone theft where you could put it in anti theft mode which is enabled when <br />
* someone moves it <br />
* touches the touch screen<br />
* removes the USB/charging-plug<br />
* removal of Bluetooth/WiFi devices in vicinity<br />
This mode can be '''switched off by'''<br />
* entering a password/pin (unprompted?)<br />
* doing a certain gesture (measured by accelerometers)<br />
* [http://en.wikipedia.org/wiki/Speaker_recognition voice verficiation] ;-)<br />
* remote-reactivating (USB, WiFi, Bluetooth)<br />
* mixture of the above<br />
From the moment it '''has been moved or touched'''<br />
* it will display a warning on a red background flashing in black: ''You are committing a crime. Put this phone back, now!'' (or similar)<br />
* do nothing. It may simulate a fake network error or similar when a number is dialed.<br />
If it is '''not unlocked may'''<br />
* set off a loud alarm <br />
* start sending messages to a predefined email address with pictures (???), GPS coordinates and network pings (???)<br />
* activate microphone recording and send compressed audio files to a pre-defined number/e-mail-adress<br />
* activate self-destruct mechanism ;-)<br />
<br />
If the above '''anti-theft measures fail'''<br />
* a special text message could be sent to the phone which erases all contacts then activates the pin lock for the phone and SIM card.<br />
* activation of some sort remote control<br />
<br />
=== Synergy Client ===<br />
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. [http://synergy2.sourceforge.net/ Synergy]<br />
<br />
== GPS Software ==<br />
*Providing GPS Support also for outdoor users in addition to ordinary street navigation features<br />
** Overlay of satellite images with existing streetmaps<br />
** 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/)<br />
** 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! )<br />
* Implementation of 3dTracking's (http://free.3dtracking.net/) tracking software or equivalent.<br />
[[Community Based Traffic Information]]<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]<br />
It could be use for beepway Online service too <br />
[http://www.beepway.com]<br />
<br />
=== Tactile feedback via buzzer ===<br />
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.<br />
<br />
[[Category:User]]<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-07-16T16:07:07Z<p>Bradpitcher: /* Shake-to-Wake */</p>
<hr />
<div>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 [http://wiki.openmoko.org/wiki/Category:Ideas that have a category of 'Ideas'].<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
==== IDE Plugins ====<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
evaluate eclipse project [http://www.eclipse.org/dsdp/index.php Device Software Development Platform Project from eclipse] and subproject [http://www.eclipse.org/proposals/tml/ Tool for Mobile Linux]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
==== UI Designer ====<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
<br />
==== Built-in Scripting Language ====<br />
<br />
There was a [http://lists.openmoko.org/pipermail/community/2007-January/001909.html 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]]<br />
===Foreign Widget Set Bindings ===<br />
==== Qt Integration ====<br />
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.<br />
<br />
==== Maemo Integration ====<br />
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.<br />
<br />
==== wxWidgets Integration ====<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
==== SDL Integration ====<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
=== Software: Language bindings ===<br />
==== Python bindings ====<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
==== C++ bindings ====<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
==== Other bindings ====<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Community Support ==<br />
<br />
=== [http://projects.openmoko.org projects.openmoko.org] ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
=== Wishlist voting ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Calling===<br />
<br />
==== Mask ID based on dialed numbers ====<br />
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.<br />
<br />
====Speaker-phone====<br />
* 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.<br />
====Advanced Airtime Tracking====<br />
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.<br />
<br />
==== Anti-stutter software ====<br />
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.<br />
<br />
====Minimize In-Call mode (check address book while in call)====<br />
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.<br />
<br />
Similar request when using the browser (lookup passwords, todo list, etc).<br />
<br />
====People hear music when they call you====<br />
You know how on most cellphone networks you can pay so that people will hear music when they call you? I think we should do that. If this option is turned on (maybe it could be set for each person in your phone book) the Neo can automatically answer the call, mute the microphone, and play the selected sound file over the GSM connection to the caller. To you the Neo looks exactly as it does when anybody calls you, but behind the scenes it's playing music for the caller. When you answer the call, the music fades out and the microphone comes back on. Of course, callers could abuse this feature costing you minutes, which is why it should be individually set for each entry in the phonebook (defaulting to off) and you can only turn it on for people you trust.<br />
<br />
====Play sound clips over the air====<br />
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<br />
The buttons can have default sounds, but also have the ability to be customized.<br />
<br />
==== Conversation Recorder ====<br />
<br />
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.<br />
<br />
====Unlicensed Mobile Access (UMA)====<br />
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.<br />
<br />
==== Ignore-Call Button ====<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without accepting or rejecting the call.<br />
<br />
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.<br />
<br />
==== [[Voice Mailbox]] ====<br />
<br />
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.<br />
Can act profile-dependent.<br />
<br />
==== Hold Button ====<br />
<br />
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.<br />
<br />
===Audio===<br />
<br />
==== Ambient Noise Detection ====<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
==== Active noise control ====<br />
<br />
Using the microphone to do [http://en.wikipedia.org/wiki/Anti-noise 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.<br />
<br />
<br />
==== Mute Button ====<br />
<br />
Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.<br />
<br />
===Media===<br />
====Music/Video Software====<br />
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. <br />
<br />
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.<br />
<br />
==== Reading Support ====<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Document files<br />
*Text / RTF files<br />
*MS Office files<br />
*Aportis Doc (pdb)<br />
*...<br />
<br />
In both landscape and portrait<br />
<br />
<br />
==== Wikipedia Mirror ====<br />
<br />
See [[Wishlist:Wikipedia_Mirror|Wikipedia Mirror]].<br />
<br />
<br />
<br />
==== Blog ScribblePad ====<br />
<br />
Draw an image (and maybe add some text), then post to your blog.<br />
<br />
==== E-Book Reader ====<br />
* 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.<br />
<br />
==== Personal Wiki ====<br />
<br />
Display the notes database as a Wiki. Inspiration: [http://www.acrocat.com/AcroWiki/default.asp?lang=en AcroWiki]. [[Wishlist:PersonalWiki]]<br />
<br />
[http://www.didiwiki.org/ Didiwiki]<br />
<br />
<br />
==== Dictionary, thesaurus, translator and flashcards ====<br />
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.<br />
<br />
Support for vocabulary training with flashcard system (also usable for other content than foreign language words!)<br />
<br />
===PIM (Personal Information Managment)===<br />
==== Address Book ====<br />
<br />
* 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<br />
servers or whatever.<br />
* 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.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's<br />
* Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant<br />
*Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account<br />
* '''[[Wishlist:Tagging|Tagging]]''' Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other application(GPS, ...) with tags.<br />
* Support for:<br />
**[http://en.wikipedia.org/wiki/SyncML SyncML]<br />
**[http://en.wikipedia.org/wiki/Ldap LDAP] address book<br />
**[http://en.wikipedia.org/wiki/LDIF LDIF], [http://en.wikipedia.org/wiki/Xml XML] and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export and import (when possible).<br />
*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.<br />
<br />
<br />
==== Database/List Display/Edit ====<br />
<br />
One of the most useful apps on my Palm Pilot for me is [http://pilot-db.sourceforge.net/ pilot-db]. It's GPL'd. [[Wishlist:PilotDB]]<br />
<br />
==== Joe's Goals ====<br />
<br />
It'd be nice to have something like [http://www.joesgoals.com Joe's Goals] always available, like my phone is, even when I'm disconnected from the net.<br />
<br />
==== Workout ====<br />
<br />
Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.<br />
<br />
==== Shopping List ====<br />
keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.<br />
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.<br />
==== Fuel Log ====<br />
File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...).<br />
Advanced features could include:<br />
* Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)<br />
* Sending the data to a central server which collects the information<br />
* 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)<br />
* Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server<br />
* Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.<br />
<br />
==== Keep in touch reminder ====<br />
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.<br />
<br />
<br />
==== Menstruation period timer ====<br />
Fill in statistics and compute probabilities for menstruation, fertility, mood.<br />
See http://www.getjar.com/products/48/MyGirls<br />
<br />
<br />
==== [[Wishlist:Tagging|Tagging]] ====<br />
Tags can be used by various applications. Requirement is interoperability for further enhancement.<br />
Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.<br />
<br />
<br />
<br />
==== Context based TO-DO list ====<br />
<br />
If I arrive home and there are "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me of that.<br />
<br />
==== Exchange Integration ====<br />
<br />
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.<br />
<br />
* Is the time right to name names ? Add as your liking...<br />
** Plugin/integration to & from Kontact<br />
** Same with Evolution - Thunderbird - Seamonkey<br />
** ?? Google Calendars ?? (this one is tough)<br />
<br />
===Profiles===<br />
==== User Profiles ====<br />
This is different from contextual profiles for mobile phones, that might for example turn off the ringer, and turn on 'vibrate', when you select 'quiet'.<br />
<br />
They are profiles to let the owner of the phone set it up in a comfortable manner, without configuring every aspect.<br />
<br />
*'''[[Wish List UserProfile Beginner|Beginner]]''': Only basic functionality like, telephone and SMS<br />
*'''[[Wish List UserProfile Advanced|Advanced]]''': All in the "Beginner" profile, with e-mail, PIM functions<br />
*'''[[Wish List UserProfile Geek|Geek]]''': every functionality you can get<br />
*'''[[Wish List UserProfile Granny|Granny]]''': a minimum of functionality<br />
*'''[[Wish List UserProfile Child|Child]]''': Parents set limits for their child's phone.<br />
*'''[[Wish List UserProfile Employee|Employee]]''': Employers set limits for their employees phones.<br />
*'''[[Wish List UserProfile Subscriber|Subscriber]]''': Subsidised phone, with limits set for the user.<br />
<br />
The first modes are easily switchable between by the user, as they are also the owner of the phone.<br />
In the '''Child''', '''Employee''', '''Subscriber''' cases, this may not be the case.<br />
<br />
For example, for an employees phone, it may:<br />
*Record GPS track log whenever it is in range of a certain bluetooth device (the employees company vehicle)<br />
*Record all calls during working hours.<br />
*Disallow installation of non-company-approved software.<br />
<br />
For a child's phone, it may:<br />
*Constantly record GPS once a minute.<br />
*Mail GPS recordings to parents once an hour.<br />
*Record all phone calls<br />
*Disallow installation of software that is not 'child' rated.<br />
<br />
For these modes to be tamper proof, it would require on-phone security.<br />
A version of u-boot that would only allow signed images and some application on owners PC to generate them, and set policy.<br />
====Cell tower driven profiles====<br />
Allow the use of Cell Id's rather than GPS coordinates to activate/deactivate/change profiles/things on the device. Cell Id changes could trigger scripts etc. (Store them in sqlite db?)<br />
<br />
==== Tariff plan monitor ====<br />
User should be able to define multiple profiles based on their tariff plan.<br />
I guess this has to be slightly modified accordingly to the various country differences over the world; <br />
PC side apps for easily defining profiles is needed. <br />
PC side based apps should be able at least to output in standard database format, xml, html.<br />
<br />
Ideally users would be able to monitor their use of their smartphone basing on various paramethers such kb exchanged on various acces (GPRS/EDGE/UMTS) and connection time, calls number, frequency, duration, contacts called, etc.<br />
User should be able to set alarms based on limits and even password protected blocks if configured.<br />
Alarms for cheaper time for using the smartphone payed services if time day based tariff plan occurs would be helpfull.<br />
This data sould be stored securely or encrypted if possible as privacy care.<br />
<br />
<br />
<br />
==== Internet Connection Management ====<br />
An application that automatically chooses the best available connection method, between Bluetooth, USBnet, Wifi, GPRS, etc. For GPRS or other services where the user may be paying per kb, there should be options to limit data transfer. The user could be asked permission to transfer data: per connection, per process, per process for a specific time limit, per process for a specific data size limit, etc.<br />
This manager should also handle the different internet connection settings for different sim cards.<br />
<br />
<br />
==== Automated profile switching ====<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
Profile zoning - define different zones for switching different profiles automatically either by GPS zoning, Wi-Fi proximity or GSM base station proximity.<br />
<br />
Profile scheduling - more complex than timeout. Ability to create a schedule for activating different profiles, or integrate profile switching with the schedule.<br />
<br />
===Text Messaging===<br />
For '''Text Input related ideas''' see [[Wishlist:Text_Input]]. Bear in mind that T9 can not be included<br />
For current development status of the messaging-app see: [[Messages]]<br />
<br />
There are many useful options that now can be used to full capacity:<br />
* '''Acknowledge/status SMS'''<br />
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'.<br />
** '''Special handling of status-SMS''' <br />
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.<br />
* '''SMS at time/date''' You could be able to set up messages that are sent at a certain time/date<br />
* '''Binary SMS''' Send binary SMS. Could be used to feign WAP pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** [http://www.gammu.org www.gammu.org] - you can use Gammu/Gammu+ source for this software and/or understanding various SMS formats including EMS, WAP, Nokia Smart Messaging, Siemens & Alcatel encoding ([[User:Marcin|I could]] eventually help)<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* '''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.<br />
* '''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.<br />
* '''(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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
* '''Anti-Spam''' ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* '''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).<br />
* '''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<br />
* '''Searching''' allow full-text search or string search.<br />
* '''Massive SMS Deletion''' based on Conversation, author, before-date-xx.xx.xxxx, caller group, [[Wishlist:Tagging|tags]]...<br />
* '''Call Back''' Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.<br />
* '''Non-destructive deletion''', deleted messages goes to trash, and are recoverable.<br />
* '''SMS-EMail-Gateway'''<br />
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<br />
<br />
<br />
<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
There are many good suggestions for text input on the specific [[Wishlist:Text Input| text input ideas]] page.<br />
<br />
=== More/Custom Input Method Widgets ===<br />
Additional and customizable Input Method Widgets (similar to virtual keyboard). <br />
This could add soft-key functionality to games or other applications such as:<br />
*D-Pads<br />
*buttons<br />
*virtual trackballs<br />
*...<br />
Personalized layouts could be associated with each application.<br />
See [http://wiki.openmoko.org/wiki/Wishlist:More/Custom_Input_Method_Widgets Input Method Wishlist] for more.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Mesh Networking ===<br />
<br />
Please see [[Wishlist:Mesh Networking|Mesh Networking]].<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
===Misc Software===<br />
====Clocks/timers/Activity meters====<br />
===== Sport tracker =====<br />
[[Wishlist: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.<br />
<br />
===== Standby clock =====<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
===== Egg Timer =====<br />
<br />
Very simple (one click) count up / count down timers are very useful. [[Wishlist:EggTimer]]<br />
<br />
===== Cycle Computer =====<br />
As already mentioned by [http://wiki.openmoko.org/wiki/User_talk:Technil 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.<br />
* 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 :) --[[User:Minime|Minime]] 19:50, 12 April 2007 (CEST)<br />
<br />
====Calculators====<br />
===== A Universal Unit Converter Tool =====<br />
<br />
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.<br />
<br />
===== An Postfix Notation (RPN) calculator =====<br />
<br />
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.<br />
<br />
==== Web-browser Plugins ====<br />
<br />
* 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: [http://noscript.net/ noscript], [http://adblockplus.org/en/ adblock plus], [http://www.greasespot.net/ greasemonkey] and [http://www.foxmarks.com/ foxmarks].<br />
* 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.<br />
* Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.<br />
<br />
==== PalmOS Emulator ====<br />
<br />
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.<br />
<br />
Win CE emulator<br />
I'd like to see a Windows CE Emulator with active sync support.<br />
<br />
<br />
==== TV Guide/Remote Control ====<br />
<br />
Use your Phone to easily program your VCR using EPGs.<br />
<br />
<br />
==== Alcohol meter ====<br />
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.<br />
See, for example (German text) http://www.misterio-online.de/promille.htm<br />
<br />
==== Interaction with LEGO Mindstorm ====<br />
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.<br />
<br />
==== Flashlight ====<br />
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!<br />
<br />
=== Accessibility ===<br />
Accessibility features for the visually impaired.<br />
* High Contrast Themes.<br />
* 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.<br />
* 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.<br />
<br />
==== VOIP ====<br />
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.<br />
* A standard SIP client would probably fit better into the "free and open" philosophy.<br />
<br />
==== Power Meter ====<br />
If the power bar is clicked on it will show time left on charge and if charging it will show time until full.<br />
<br />
==== [http://zfoneproject.com/ Zfone] or similar ====<br />
Something that allows the user to speak with another person securely.<br />
<br />
<br />
=== Accelerometer wishes ===<br />
==== Flick interface ====<br />
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.<br />
<br />
==== Shake-to-Wake ====<br />
Giving the phone a shake enables voice commands for a few seconds.<br />
Usage Examples: <br />
<br />
{Shake} "Call" ''ContactName'' ''PhoneType'' --- {Shake} "Call John Mobile" (Calls John's mobile)<br />
<br />
{Shake} ''ApplicationName'' --- {Shake} "Reader" (Opens the e-book application)<br />
<br />
Would require a method of inputting voice tags for applications and contacts and obviously will only work for P2 (accelerators)<br />
But lets get voice command functionality working before P2 (just by pressing a button on the screen instead of shaking)<br />
<br />
=== Connectivity ===<br />
<br />
==== VNC client ====<br />
A good, stylus friendly VNC client/host combo would be easy to add and terribly useful.<br />
<br />
<br />
==== Networked X-Windows ====<br />
<br />
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.<br />
<br />
==Bluetooth==<br />
<br />
=== Voice Dialing ===<br />
<br />
Dial by voice commands.<br><br />
Dial by dictating phone number. This way we can voice dial any number even if not in our contact list.<br />
<br />
=== Music through Bluetooth Headset ===<br />
<br />
Music can be played through a Bluetooth headset, but would stop playing when a call comes in.<br />
<br />
=== Walkie Talkie ===<br />
<br />
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.<br />
<br />
Features for this applications can be:<br />
* Push To Talk (PTT) button<br />
* Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.<br />
* Optionally a full duplex mode<br />
* Different channels to choose from<br />
* Monitor different (preselected or all) channels for traffic.<br />
* Content encryption<br />
* Active noise control<br />
<br />
Local (non-GPRS) use cases include chatting while biking<br />
or motorcycling in a group; perhaps also in a car caravan.<br />
This application could also be used as a baby-phone to monitor your siblings.<br />
<br />
This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.<br />
<br />
=== Automatic Sync ===<br />
<br />
Automatically synchronize with desktop computer when within range based on user profile. This may require the use of a secure data transfer.<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
Like the [http://en.wikipedia.org/wiki/One_laptop_per_child 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.<br />
<br />
=== Remote control ===<br />
<br />
==== Wireless presenter ====<br />
Use the phone to run your OpenOffice.org Impress presentation remotely using Bluetooth. Cool features: <br />
* Display the text notes for the presenter on the phone's display and update it whenever the slide is changing.<br />
** OO.org has implemented support for [http://www.openoffice.org/issues/show_bug.cgi?id=12719 dual monitor]/[http://www.openoffice.org/issues/show_bug.cgi?id=18486 presenter mode] that can be used as a starting point<br />
* A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature). <br />
* If you want to be super-cool, you give a preview of the notes of the next slide in the show. <br />
* 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.<br />
** When you right-click in a running OO.org Impress presentation, you can choose "got o slide..." and select any slide to jump to.<br />
<br />
==== Initiated from another device ====<br />
Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.<br />
==== Directed at another device ====<br />
Remote control over Bluetooth to other devices to control media player, lights in your house, etc.<br />
<br />
Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. [http://www.z-wave.com www.z-wave.com]<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
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.<br />
<br />
==== Dude, Where's My Car? ====<br />
<br />
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.<br />
<br />
=== [[Bluetooth powered Multi-SIM support]] ===<br />
<br />
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.<br />
<br />
Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:<br />
* Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)<br />
* Calling out via SIM card B - the OpenMoko-phone acts again as a headset<br />
* Same for Short Messages/MMS/Internet<br />
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.<br />
Advantage: No 'switching' between cards<br />
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.<br />
<br />
===Internet Gateway===<br />
<br />
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.<br />
<br />
=== Social Networking ===<br />
<br />
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.<br />
<br />
== Other ==<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
- or just use MIDI, using a separate channel for the vibrator.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Anti Theft mode ===<br />
Suppose you are in a busy environment and your device is lying around somewhere. You sometimes use it but cannot look after it all the time. A sort of high risk environment for phone theft where you could put it in anti theft mode which is enabled when someone moves it or touches the touch screen. This, of course will be set off after a predefined time out awaiting a password to unlock this mode (unprompted?). From the moment it has been moved or touched it will display a warning on a red background flashing in black: ''You are committing a crime. Put this phone back, now!'' or any other predefined text. If it is not unlocked it will set off a loud alarm and start sending messages to a predefined email address with pictures, GPS coordinates and network pings.<br />
<br />
=== Synergy Client ===<br />
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. [http://synergy2.sourceforge.net/ Synergy]<br />
<br />
== GPS Software ==<br />
*Providing GPS Support also for outdoor users in addition to ordinary street navigation features<br />
** Overlay of satellite images with existing streetmaps<br />
** 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/)<br />
** 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! )<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]<br />
It could be use for beepway Online service too <br />
[http://www.beepway.com]<br />
<br />
=== Tactile feedback via buzzer ===<br />
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.<br />
<br />
[[Category:User]]<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Openmoko_Local_Groups:_EugeneOpenmoko Local Groups: Eugene2007-07-13T16:11:32Z<p>Bradpitcher: </p>
<hr />
<div>No content yet. See [[Talk:OpenMoko_Local_Groups:_Eugene|discussion]]</div>Bradpitcherhttp://openmoko.org/wiki/Talk:Openmoko_Local_Groups:_EugeneTalk:Openmoko Local Groups: Eugene2007-07-13T16:10:17Z<p>Bradpitcher: </p>
<hr />
<div>Welcome to the Eugene page of the openmoko project.<br />
<br />
Please make comments as to your level of interest in the neo1973, and what your skillset is.</div>Bradpitcherhttp://openmoko.org/wiki/Openmoko_Local_Groups:_EugeneOpenmoko Local Groups: Eugene2007-07-13T16:09:48Z<p>Bradpitcher: </p>
<hr />
<div></div>Bradpitcherhttp://openmoko.org/wiki/Openmoko_Local_Groups:_EugeneOpenmoko Local Groups: Eugene2007-07-13T16:08:22Z<p>Bradpitcher: </p>
<hr />
<div>Welcome to the Eugene page of the openmoko project.<br />
<br />
Please make comments as to your level of interest in the neo1973, and what your skillset is.</div>Bradpitcherhttp://openmoko.org/wiki/Openmoko_Local_GroupsOpenmoko Local Groups2007-07-13T16:07:17Z<p>Bradpitcher: </p>
<hr />
<div>__TOC__<br />
'''OpenMoko Local Groups...'''<br />
<br />
* can be used for developers to meet and get to know each other<br />
* can be used for developing<br />
* may provide the room for real-life discussions away from mailinglists/wiki<br />
* can support early support handling their GTA01Bv4 and exchange experiences<br />
* fasten the community's cohesion<br />
* give motivation<br />
<br />
==EU==<br />
===UK===<br />
==== [[OpenMoko_Local_Groups: Birmingham|Birmingham]] ====<br />
<br />
=== Germany ===<br />
==== [[OpenMoko_Local_Groups: Berlin|Berlin]] ====<br />
<br />
==USA==<br />
===Oregon===<br />
==== [[OpenMoko_Local_Groups: Eugene|Eugene]] ====<br />
[[Category:Community]]<br />
[[Category:Neo1973 Phase 1 related]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-07-12T18:03:47Z<p>Bradpitcher: /* Misc Software */</p>
<hr />
<div>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 [http://wiki.openmoko.org/wiki/Category:Ideas that have a category of 'Ideas'].<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
=== IDE Plugins ===<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
evaluate eclipse project [http://www.eclipse.org/dsdp/index.php Device Software Development Platform Project from eclipse] and subproject [http://www.eclipse.org/proposals/tml/ Tool for Mobile Linux]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
=== UI Designer ===<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
<br />
== Built-in Scripting Language ==<br />
<br />
There was a [http://lists.openmoko.org/pipermail/community/2007-January/001909.html 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]]<br />
<br />
== Community Support ==<br />
<br />
=== projects.openmoko.org ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
=== Wishlist voting ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Calling===<br />
====Speaker-phone====<br />
* 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.<br />
====Advanced Airtime Tracking====<br />
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.<br />
<br />
==== Anti-stutter software ====<br />
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.<br />
<br />
====Minimize In-Call mode (check address book while in call)====<br />
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.<br />
<br />
Similar request when using the browser (lookup passwords, todo list, etc).<br />
<br />
====People hear music when they call you====<br />
You know how on most cellphone networks you can pay so that people will hear music when they call you? I think we should do that. If this option is turned on (maybe it could be set for each person in your phone book) the Neo can automatically answer the call, mute the microphone, and play the selected sound file over the GSM connection to the caller. To you the Neo looks exactly as it does when anybody calls you, but behind the scenes it's playing music for the caller. When you answer the call, the music fades out and the microphone comes back on. Of course, callers could abuse this feature costing you minutes, which is why it should be individually set for each entry in the phonebook (defaulting to off) and you can only turn it on for people you trust.<br />
<br />
====Play sound bytes over the air====<br />
Dialer could have a tab with big buttons which, when push, send sound bytes 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<br />
The buttons can have default sounds, but also have the ability to be customized.<br />
<br />
====Unlicensed Mobile Access (UMA)====<br />
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.<br />
<br />
=== Ambient Noise Detection ===<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
=== Active noise control ===<br />
<br />
Using the microphone to do [http://en.wikipedia.org/wiki/Anti-noise 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.<br />
<br />
=== Ignore-Call Button ===<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without rejecting the call.<br />
<br />
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.<br />
<br />
<br />
=== [[Voice Mailbox]] ===<br />
<br />
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.<br />
Can act profile-dependent.<br />
<br />
=== Mute Button ===<br />
<br />
Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.<br />
<br />
=== Hold Button ===<br />
<br />
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.<br />
<br />
=== Automated profile switching ===<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
Profile zoning - define different zones for switching different profiles automatically either by GPS zoning, Wi-Fi proximity or GSM base station proximity.<br />
<br />
Profile scheduling - more complex than timeout. Ability to create a schedule for activating different profiles, or integrate profile switching with the schedule.<br />
<br />
===PIM===<br />
<br />
<br />
===Text Messaging===<br />
For '''Text Input related ideas''' see [[Wishlist:Text_Input]]. Bear in mind that T9 can not be included<br />
For current development status of the messaging-app see: [[Messages]]<br />
<br />
There are many useful options that now can be used to full capacity:<br />
* '''Acknowledge/status SMS'''<br />
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'.<br />
** '''Special handling of status-SMS''' <br />
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.<br />
* '''SMS at time/date''' You could be able to set up messages that are sent at a certain time/date<br />
* '''Binary SMS''' Send binary SMS. Could be used to feign WAP pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** [http://www.gammu.org www.gammu.org] - you can use Gammu/Gammu+ source for this software and/or understanding various SMS formats including EMS, WAP, Nokia Smart Messaging, Siemens & Alcatel encoding ([[User:Marcin|I could]] eventually help)<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* '''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.<br />
* '''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.<br />
* '''(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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
* '''Anti-Spam''' ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* '''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).<br />
* '''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<br />
* '''Searching''' allow full-text search or string search.<br />
* '''Massive SMS Deletion''' based on Conversation, author, before-date-xx.xx.xxxx, caller group, [[Wishlist:Tagging|tags]]...<br />
* '''Call Back''' Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.<br />
* '''Non-destructive deletion''', deleted messages goes to trash, and are recoverable.<br />
* '''SMS-EMail-Gateway'''<br />
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<br />
=== User Profiles ===<br />
<br />
This is different from contextual profiles for mobile phones, that might for example turn off the ringer, and turn on 'vibrate', when you select 'quiet'.<br />
<br />
They are profiles to let the owner of the phone set it up in a comfortable manner, without configuring every aspect.<br />
<br />
*'''[[Wish List UserProfile Beginner|Beginner]]''': Only basic functionality like, telephone and SMS<br />
*'''[[Wish List UserProfile Advanced|Advanced]]''': All in the "Beginner" profile, with e-mail, PIM functions<br />
*'''[[Wish List UserProfile Geek|Geek]]''': every functionality you can get<br />
*'''[[Wish List UserProfile Granny|Granny]]''': a minimum of functionality<br />
*'''[[Wish List UserProfile Child|Child]]''': Parents set limits for their child's phone.<br />
*'''[[Wish List UserProfile Employee|Employee]]''': Employers set limits for their employees phones.<br />
*'''[[Wish List UserProfile Subscriber|Subscriber]]''': Subsidised phone, with limits set for the user.<br />
<br />
The first modes are easily switchable between by the user, as they are also the owner of the phone.<br />
In the '''Child''', '''Employee''', '''Subscriber''' cases, this may not be the case.<br />
<br />
For example, for an employees phone, it may:<br />
*Record GPS track log whenever it is in range of a certain bluetooth device (the employees company vehicle)<br />
*Record all calls during working hours.<br />
*Disallow installation of non-company-approved software.<br />
<br />
For a child's phone, it may:<br />
*Constantly record GPS once a minute.<br />
*Mail GPS recordings to parents once an hour.<br />
*Record all phone calls<br />
*Disallow installation of software that is not 'child' rated.<br />
<br />
For these modes to be tamper proof, it would require on-phone security.<br />
A version of u-boot that would only allow signed images and some application on owners PC to generate them, and set policy.<br />
<br />
<br />
===Music/Video Software===<br />
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. <br />
<br />
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.<br />
<br />
=== Address Book ===<br />
<br />
* 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<br />
servers or whatever.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's<br />
* Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant<br />
*Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account<br />
* '''[[Wishlist:Tagging|Tagging]]''' Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other application(GPS, ...) with tags.<br />
* Support for:<br />
**[http://en.wikipedia.org/wiki/SyncML SyncML]<br />
**[http://en.wikipedia.org/wiki/Ldap LDAP] address book<br />
**[http://en.wikipedia.org/wiki/LDIF LDIF], [http://en.wikipedia.org/wiki/Xml XML] and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export and import (when possible).<br />
*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.<br />
<br />
==== Web-browser Plugins ====<br />
<br />
* 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: [http://noscript.net/ noscript], [http://adblockplus.org/en/ adblock plus], [http://www.greasespot.net/ greasemonkey] and [http://www.foxmarks.com/ foxmarks].<br />
* 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.<br />
* Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.<br />
<br />
==== E-Book Reader ====<br />
* 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.<br />
<br />
=== Reading Support ===<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Document files<br />
*Text / RTF files<br />
*MS Office files<br />
*Aportis Doc (pdb)<br />
*...<br />
<br />
In both landscape and portrait<br />
<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
There are many good suggestions for text input on the specific [[Wishlist:Text Input| text input ideas]] page.<br />
<br />
=== More/Custom Input Method Widgets ===<br />
Additional and customizable Input Method Widgets (similar to virtual keyboard). <br />
This could add soft-key functionality to games or other applications such as:<br />
*D-Pads<br />
*buttons<br />
*virtual trackballs<br />
*...<br />
Personalized layouts could be associated with each application.<br />
See [http://wiki.openmoko.org/wiki/Wishlist:More/Custom_Input_Method_Widgets Input Method Wishlist] for more.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Mesh Networking ===<br />
<br />
Please see [[Wishlist:Mesh Networking|Mesh Networking]].<br />
<br />
<br />
=== Wikipedia Mirror ===<br />
<br />
See [[Wishlist:Wikipedia_Mirror|Wikipedia Mirror]].<br />
<br />
<br />
=== Blog ScribblePad ===<br />
<br />
Draw an image (and maybe add some text), then post to your blog.<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
===Misc Software===<br />
<br />
==== A Universal Unit Converter Tool ====<br />
<br />
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.<br />
<br />
==== An Postfix Notation (RPN) calculator ====<br />
<br />
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.<br />
<br />
==== PalmOS Emulator ====<br />
<br />
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.<br />
<br />
Win CE emulator<br />
I'd like to see a Windows CE Emulator with active sync support.<br />
<br />
<br />
==== Egg Timer ====<br />
<br />
Very simple (one click) count up / count down timers are very useful. [[Wishlist:EggTimer]]<br />
<br />
==== Personal Wiki ====<br />
<br />
Display the notes database as a Wiki. Inspiration: [http://www.acrocat.com/AcroWiki/default.asp?lang=en AcroWiki]. [[Wishlist:PersonalWiki]]<br />
<br />
[http://www.didiwiki.org/ Didiwiki]<br />
<br />
==== Database/List Display/Edit ====<br />
<br />
One of the most useful apps on my Palm Pilot for me is [http://pilot-db.sourceforge.net/ pilot-db]. It's GPL'd. [[Wishlist:PilotDB]]<br />
<br />
==== Joe's Goals ====<br />
<br />
It'd be nice to have something like [http://www.joesgoals.com Joe's Goals] always available, like my phone is, even when I'm disconnected from the net.<br />
<br />
==== Workout ====<br />
<br />
Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.<br />
<br />
==== TV Guide/Remote Control ====<br />
<br />
Use your Phone to easily program your VCR using EPGs.<br />
<br />
==== Shopping List ====<br />
keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.<br />
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.<br />
<br />
==== Fuel Log ====<br />
File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...).<br />
Advanced features could include:<br />
* Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)<br />
* Sending the data to a central server which collects the information<br />
* 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)<br />
* Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server<br />
* Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.<br />
<br />
==== Dictionary, thesaurus, translator and flashcards ====<br />
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.<br />
<br />
Support for vocabulary training with flashcard system (also usable for other content than foreign language words!)<br />
<br />
==== Keep in touch reminder ====<br />
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.<br />
<br />
==== Alcohol meter ====<br />
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.<br />
See, for example (German text) http://www.misterio-online.de/promille.htm<br />
<br />
==== Menstruation period timer ====<br />
Fill in statistics and compute probabilities for menstruation, fertility, mood.<br />
See http://www.getjar.com/products/48/MyGirls<br />
<br />
==== Interaction with LEGO Mindstorm ====<br />
With the accelerators, 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.<br />
<br />
==== Flashlight ====<br />
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!<br />
<br />
=== Accessibility ===<br />
Accessibility features for the visually impaired.<br />
* High Contrast Themes.<br />
* 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.<br />
* 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.<br />
<br />
==== VOIP ====<br />
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.<br />
* A standard SIP client would probably fit better into the "free and open" philosophy.<br />
<br />
==== Power Meter ====<br />
If the power bar is clicked on it will show time left on charge and if charging it will show time until full.<br />
<br />
==== Zfone or similar ====<br />
Something that allows the user to speak with another person securely.<br />
<br />
=== Flick interface ===<br />
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.<br />
<br />
<br />
=== Shake-to-Wake ===<br />
Giving the phone a shake enables voice commands for a few seconds.<br />
Usage Examples: <br />
<br />
{Shake} "Call" ''ContactName'' ''PhoneType'' --- {Shake} "Call John Mobile" (Calls John's mobile)<br />
<br />
{Shake} ''ApplicationName'' --- {Shake} "Reader" (Opens the e-book application)<br />
<br />
Would require a method of inputting voice tags for applications and contacts and obviously will only work for P2 (accelerators)<br />
<br />
=== Tactile feedback via buzzer ===<br />
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.<br />
<br />
=== VNC client ===<br />
A good, stylus friendly VNC client/host combo would be easy to add and terribly useful.<br />
<br />
=== Tariff plan monitor ===<br />
User should be able to define multiple profiles based on their tariff plan.<br />
I guess this has to be slightly modified accordingly to the various country differences over the world; <br />
PC side apps for easily defining profiles is needed. <br />
PC side based apps should be able at least to output in standard database format, xml, html.<br />
<br />
Ideally users would be able to monitor their use of their smartphone basing on various paramethers such kb exchanged on various acces (GPRS/EDGE/UMTS) and connection time, calls number, frequency, duration, contacts called, etc.<br />
User should be able to set alarms based on limits and even password protected blocks if configured.<br />
Alarms for cheaper time for using the smartphone payed services if time day based tariff plan occurs would be helpfull.<br />
This data sould be stored securely or encrypted if possible as privacy care.<br />
<br />
==Bluetooth==<br />
<br />
=== Voice Dialing ===<br />
<br />
Dial by voice commands.<br><br />
Dial by dictating phone number. This way we can voice dial any number even if not in our contact list.<br />
<br />
=== Music through Bluetooth Headset ===<br />
<br />
Music can be played through a Bluetooth headset, but would stop playing when a call comes in.<br />
<br />
=== Walkie Talkie ===<br />
<br />
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.<br />
<br />
Features for this applications can be:<br />
* Push To Talk (PTT) button<br />
* Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.<br />
* Optionally a full duplex mode<br />
* Different channels to choose from<br />
* Monitor different (preselected or all) channels for traffic.<br />
* Content encryption<br />
* Active noise control<br />
<br />
Local (non-GPRS) use cases include chatting while biking<br />
or motorcycling in a group; perhaps also in a car caravan.<br />
This application could also be used as a baby-phone to monitor your siblings.<br />
<br />
This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.<br />
<br />
=== Automatic Sync ===<br />
<br />
Automatically synchronize with desktop computer when within range based on user profile. This may require the use of a secure data transfer.<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
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.<br />
<br />
=== Remote control ===<br />
<br />
==== Wireless presenter ====<br />
Use the phone to run your OpenOffice.org Impress presentation remotely using Bluetooth. Cool features: <br />
* Display the text notes for the presenter on the phone's display and update it whenever the slide is changing.<br />
** OO.org has implemented support for [http://www.openoffice.org/issues/show_bug.cgi?id=12719 dual monitor]/[http://www.openoffice.org/issues/show_bug.cgi?id=18486 presenter mode] that can be used as a starting point<br />
* A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature). <br />
* If you want to be super-cool, you give a preview of the notes of the next slide in the show. <br />
* 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.<br />
** When you right-click in a running OO.org Impress presentation, you can choose "got o slide..." and select any slide to jump to.<br />
<br />
==== Initiated from another device ====<br />
Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.<br />
==== Directed at another device ====<br />
Remote control over Bluetooth to other devices to control media player, lights in your house, etc.<br />
<br />
Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. [http://www.z-wave.com www.z-wave.com]<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
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.<br />
<br />
==== Dude, Where's My Car? ====<br />
<br />
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.<br />
<br />
=== [[Bluetooth powered Multi-SIM support]] ===<br />
<br />
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.<br />
<br />
Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:<br />
* Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)<br />
* Calling out via SIM card B - the OpenMoko-phone acts again as a headset<br />
* Same for Short Messages/MMS/Internet<br />
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.<br />
Advantage: No 'switching' between cards<br />
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.<br />
<br />
===Internet Gateway===<br />
<br />
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.<br />
<br />
== Other ==<br />
<br />
=== [[Wishlist:Tagging|Tagging]] ===<br />
Tags can be used by various applications. Requirement is interoperability for further enhancement.<br />
Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.<br />
<br />
<br />
=== Context based TO-DO list ===<br />
<br />
I arrives to home and there is some "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me that.<br />
<br />
=== Exchange Integration ===<br />
<br />
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.<br />
<br />
* Is the time right to name names ? Add as your liking...<br />
** Plugin/integration to & from Kontact<br />
** Same with Evolution - Thunderbird - Seamonkey<br />
** ?? Google Calendars ?? (this one is tough)<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
- or just use MIDI, using a separate channel for the vibrator.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Conversation Recorder ===<br />
<br />
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.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Anti Theft mode ===<br />
Suppose you are in a busy environment and your device is lying around somewhere. You sometimes use it but cannot look after it all the time. A sort of high risk environment for phone theft where you could put it in anti theft mode which is enabled when someone moves it or touches the touch screen. This, of course will be set off after a predefined time out awaiting a password to unlock this mode (unprompted?). From the moment it has been moved or touched it will display a warning on a red background flashing in black: ''You are committing a crime. Put this phone back, now!'' or any other predefined text. If it is not unlocked it will set off a loud alarm and start sending messages to a predefined email address with pictures, GPS coordinates and network pings.<br />
<br />
=== Sport tracker ===<br />
[[Wishlist: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.<br />
<br />
=== Standby clock ===<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
=== Cycle Computer ===<br />
As already mentioned by [http://wiki.openmoko.org/wiki/User_talk:Technil 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.<br />
* 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 :) --[[User:Minime|Minime]] 19:50, 12 April 2007 (CEST)<br />
<br />
=== Internet Connection Management ===<br />
An application that automatically chooses the best available connection method, between Bluetooth, USBnet, Wifi, GPRS, etc. For GPRS or other services where the user may be paying per kb, there should be options to limit data transfer. The user could be asked permission to transfer data: per connection, per process, per process for a specific time limit, per process for a specific data size limit, etc.<br />
<br />
=== Synergy Client ===<br />
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. [http://synergy2.sourceforge.net/ Synergy]<br />
<br />
=== Mask ID based on dialed numbers ===<br />
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.<br />
<br />
== Software: Language bindings ==<br />
=== Python bindings ===<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
=== C++ bindings ===<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
=== Other bindings ===<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Software: Foreign Widget Set Bindings ==<br />
=== Qt Integration ===<br />
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.<br />
<br />
=== Maemo Integration ===<br />
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.<br />
<br />
=== wxWidgets Integration ===<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
=== SDL Integration ===<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
== GPS Software ==<br />
*Providing GPS Support also for outdoor users in addition to ordinary street navigation features<br />
** Overlay of satellite images with existing streetmaps<br />
** 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/)<br />
** 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! )<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-07-03T20:38:38Z<p>Bradpitcher: Play sound bytes over the air</p>
<hr />
<div>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 [http://wiki.openmoko.org/wiki/Category:Ideas that have a category of 'Ideas'].<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
=== IDE Plugins ===<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
evaluate eclipse project [http://www.eclipse.org/dsdp/index.php Device Software Development Platform Project from eclipse] and subproject [http://www.eclipse.org/proposals/tml/ Tool for Mobile Linux]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
=== UI Designer ===<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
<br />
== Built-in Scripting Language ==<br />
<br />
There was a [http://lists.openmoko.org/pipermail/community/2007-January/001909.html 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]]<br />
<br />
== Community Support ==<br />
<br />
=== projects.openmoko.org ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Calling===<br />
====Speaker-phone====<br />
* 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.<br />
====Advanced Airtime Tracking====<br />
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.<br />
<br />
==== Anti-stutter software ====<br />
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.<br />
<br />
====People hear music when they call you====<br />
You know how on most cellphone networks you can pay so that people will hear music when they call you? I think we should do that. If this option is turned on (maybe it could be set for each person in your phone book) the Neo can automatically answer the call, mute the microphone, and play the selected sound file over the GSM connection to the caller. To you the Neo looks exactly as it does when anybody calls you, but behind the scenes it's playing music for the caller. When you answer the call, the music fades out and the microphone comes back on. Of course, callers could abuse this feature costing you minutes, which is why it should be individually set for each entry in the phonebook (defaulting to off) and you can only turn it on for people you trust.<br />
<br />
====Play sound bytes over the air====<br />
Dialer could have a tab with big buttons which, when push, send sound bytes 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<br />
The buttons can have default sounds, but also have the ability to be customized.<br />
<br />
=== Ambient Noise Detection ===<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
=== Active noise control ===<br />
<br />
Using the microphone to do [http://en.wikipedia.org/wiki/Anti-noise 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.<br />
<br />
=== Ignore-Call Button ===<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without rejecting the call.<br />
<br />
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.<br />
<br />
<br />
=== [[Voice Mailbox]] ===<br />
<br />
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.<br />
Can act profile-dependent.<br />
<br />
=== Mute Button ===<br />
<br />
Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.<br />
<br />
=== Hold Button ===<br />
<br />
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.<br />
<br />
=== Automated profile switching ===<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
Profile zoning - define different zones for switching different profiles automatically either by GPS zoning, Wi-Fi proximity or GSM base station proximity.<br />
<br />
Profile scheduling - more complex than timeout. Ability to create a schedule for activating different profiles, or integrate profile switching with the schedule.<br />
<br />
===PIM===<br />
<br />
<br />
===Text Messaging===<br />
For '''Text Input related ideas''' see [[Wishlist:Text_Input]]. Bear in mind that T9 can not be included<br />
For current development status of the messaging-app see: [[Messages]]<br />
<br />
There are many useful options that now can be used to full capacity:<br />
* '''Acknowledge/status SMS'''<br />
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'.<br />
** '''Special handling of status-SMS''' <br />
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.<br />
* '''SMS at time/date''' You could be able to set up messages that are sent at a certain time/date<br />
* '''Binary SMS''' Send binary SMS. Could be used to feign WAP pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** [http://www.gammu.org www.gammu.org] - you can use Gammu/Gammu+ source for this software and/or understanding various SMS formats including EMS, WAP, Nokia Smart Messaging, Siemens & Alcatel encoding ([[User:Marcin|I could]] eventually help)<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* '''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.<br />
* '''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.<br />
* '''(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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
* '''Anti-Spam''' ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* '''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).<br />
* '''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<br />
* '''Searching''' allow full-text search or string search.<br />
* '''Massive SMS Deletion''' based on Conversation, author, before-date-xx.xx.xxxx, caller group, [[Wishlist:Tagging|tags]]...<br />
* '''Call Back''' Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.<br />
* '''Non-destructive deletion''', deleted messages goes to trash, and are recoverable.<br />
* '''SMS-EMail-Gateway'''<br />
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<br />
=== User Profiles ===<br />
<br />
This is different from contextual profiles for mobile phones, that might for example turn off the ringer, and turn on 'vibrate', when you select 'quiet'.<br />
<br />
They are profiles to let the owner of the phone set it up in a comfortable manner, without configuring every aspect.<br />
<br />
*'''[[Wish List UserProfile Beginner|Beginner]]''': Only basic functionality like, telephone and SMS<br />
*'''[[Wish List UserProfile Advanced|Advanced]]''': All in the "Beginner" profile, with e-mail, PIM functions<br />
*'''[[Wish List UserProfile Geek|Geek]]''': every functionality you can get<br />
*'''[[Wish List UserProfile Granny|Granny]]''': a minimum of functionality<br />
*'''[[Wish List UserProfile Child|Child]]''': Parents set limits for their child's phone.<br />
*'''[[Wish List UserProfile Employee|Employee]]''': Employers set limits for their employees phones.<br />
*'''[[Wish List UserProfile Subscriber|Subscriber]]''': Subsidised phone, with limits set for the user.<br />
<br />
The first modes are easily switchable between by the user, as they are also the owner of the phone.<br />
In the '''Child''', '''Employee''', '''Subscriber''' cases, this may not be the case.<br />
<br />
For example, for an employees phone, it may:<br />
*Record GPS track log whenever it is in range of a certain bluetooth device (the employees company vehicle)<br />
*Record all calls during working hours.<br />
*Disallow installation of non-company-approved software.<br />
<br />
For a child's phone, it may:<br />
*Constantly record GPS once a minute.<br />
*Mail GPS recordings to parents once an hour.<br />
*Record all phone calls<br />
*Disallow installation of software that is not 'child' rated.<br />
<br />
For these modes to be tamper proof, it would require on-phone security.<br />
A version of u-boot that would only allow signed images and some application on owners PC to generate them, and set policy.<br />
<br />
<br />
===Music/Video Software===<br />
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.<br />
<br />
=== Address Book ===<br />
<br />
* 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<br />
servers or whatever.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's<br />
* Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant<br />
*Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account<br />
* '''[[Wishlist:Tagging|Tagging]]''' Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other application(GPS, ...) with tags.<br />
* Support for:<br />
**[http://en.wikipedia.org/wiki/SyncML SyncML]<br />
**[http://en.wikipedia.org/wiki/Ldap LDAP] address book<br />
**[http://en.wikipedia.org/wiki/LDIF LDIF], [http://en.wikipedia.org/wiki/Xml XML] and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export and import (when possible).<br />
*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.<br />
<br />
==== Web-browser Plugins ====<br />
<br />
* 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: [http://noscript.net/ noscript], [http://adblockplus.org/en/ adblock plus], [http://www.greasespot.net/ greasemonkey] and [http://www.foxmarks.com/ foxmarks].<br />
* 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.<br />
* Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.<br />
<br />
==== E-Book Reader ====<br />
* 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.<br />
<br />
=== Reading Support ===<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Document files<br />
*Text / RTF files<br />
*MS Office files<br />
*Aportis Doc (pdb)<br />
*...<br />
<br />
In both landscape and portrait<br />
<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
There are many good suggestions for text input on the specific [[Wishlist:Text Input| text input ideas]] page.<br />
<br />
=== More/Custom Input Method Widgets ===<br />
Additional and customizable Input Method Widgets (similar to virtual keyboard). <br />
This could add soft-key functionality to games or other applications such as:<br />
*D-Pads<br />
*buttons<br />
*virtual trackballs<br />
*...<br />
Personalized layouts could be associated with each application.<br />
See [http://wiki.openmoko.org/wiki/Wishlist:More/Custom_Input_Method_Widgets Input Method Wishlist] for more.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Mesh Networking ===<br />
<br />
Please see [[Wishlist:Mesh Networking|Mesh Networking]].<br />
<br />
<br />
=== Wikipedia Mirror ===<br />
<br />
See [[Wishlist:Wikipedia_Mirror|Wikipedia Mirror]].<br />
<br />
<br />
=== Blog ScribblePad ===<br />
<br />
Draw an image (and maybe add some text), then post to your blog.<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
===Misc Software===<br />
<br />
==== PalmOS Emulator ====<br />
<br />
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.<br />
<br />
Win CE emulator<br />
I'd like to see a Windows CE Emulator with active sync support.<br />
<br />
<br />
==== Egg Timer ====<br />
<br />
Very simple (one click) count up / count down timers are very useful. [[Wishlist:EggTimer]]<br />
<br />
==== Personal Wiki ====<br />
<br />
Display the notes database as a Wiki. Inspiration: [http://www.acrocat.com/AcroWiki/default.asp?lang=en AcroWiki]. [[Wishlist:PersonalWiki]]<br />
<br />
[http://www.didiwiki.org/ Didiwiki]<br />
<br />
==== Database/List Display/Edit ====<br />
<br />
One of the most useful apps on my Palm Pilot for me is [http://pilot-db.sourceforge.net/ pilot-db]. It's GPL'd. [[Wishlist:PilotDB]]<br />
<br />
==== Joe's Goals ====<br />
<br />
It'd be nice to have something like [http://www.joesgoals.com Joe's Goals] always available, like my phone is, even when I'm disconnected from the net.<br />
<br />
==== Workout ====<br />
<br />
Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.<br />
<br />
==== TV Guide/Remote Control ====<br />
<br />
Use your Phone to easily program your VCR using EPGs.<br />
<br />
==== Shopping List ====<br />
keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.<br />
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.<br />
<br />
==== Fuel Log ====<br />
File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...).<br />
Advanced features could include:<br />
* Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)<br />
* Sending the data to a central server which collects the information<br />
* 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)<br />
* Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server<br />
* Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.<br />
<br />
==== Dictionary, thesaurus and translator ====<br />
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.<br />
<br />
<br />
==== Keep in touch reminder ====<br />
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.<br />
<br />
=== Accessibility ===<br />
Accessibility features for the visually impaired.<br />
* High Contrast Themes.<br />
* 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.<br />
* 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.<br />
<br />
==== VOIP ====<br />
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.<br />
<br />
==== Power Meter ====<br />
If the power bar is clicked on it will show time left on charge and if charging it will show time until full.<br />
<br />
==== Zfone or similar ====<br />
Something that allows the user to speak with another person securely.<br />
<br />
=== Flick interface ===<br />
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.<br />
<br />
==Bluetooth==<br />
<br />
=== Voice Dialing ===<br />
<br />
Dial by voice commands.<br />
<br />
=== Music through Bluetooth Headset ===<br />
<br />
Music can be played through a Bluetooth headset, but would stop playing when a call comes in.<br />
<br />
=== Walkie Talkie ===<br />
<br />
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.<br />
<br />
Features for this applications can be:<br />
* Push To Talk (PTT) button<br />
* Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.<br />
* Optionally a full duplex mode<br />
* Different channels to choose from<br />
* Monitor different (preselected or all) channels for traffic.<br />
* Content encryption<br />
* Active noise control<br />
<br />
Local (non-GPRS) use cases include chatting while biking<br />
or motorcycling in a group; perhaps also in a car caravan.<br />
This application could also be used as a baby-phone to monitor your siblings.<br />
<br />
This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.<br />
<br />
=== Automatic Sync ===<br />
<br />
Automatically synchronize with desktop computer when within range based on user profile. This may require the use of a secure data transfer.<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
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.<br />
<br />
=== Remote control ===<br />
<br />
==== Wireless presenter ====<br />
Use the phone to run your presentation using Bluetooth. Cool features: 1) Display the text notes for the presenter on the phone's display and update it whenever the slide is changing. Have a mode with small text and a mode with enlarged text and scrolling function. 2) A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature). 3) If you want to be super-cool, you give a preview thumb of the coming slide. 4) At the end of presentations and general slide navigator could be shown that allows to easily jump to any slide in the presentation by clicking on it on the phone.<br />
<br />
==== Initiated from another device ====<br />
Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.<br />
==== Directed at another device ====<br />
Remote control over Bluetooth to other devices to control media player, lights in your house, etc.<br />
<br />
Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. [http://www.z-wave.com www.z-wave.com]<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
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.<br />
<br />
==== Dude, Where's My Car? ====<br />
<br />
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.<br />
<br />
=== [[Bluetooth powered Multi-SIM support]] ===<br />
<br />
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.<br />
<br />
Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:<br />
* Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)<br />
* Calling out via SIM card B - the OpenMoko-phone acts again as a headset<br />
* Same for Short Messages/MMS/Internet<br />
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.<br />
Advantage: No 'switching' between cards<br />
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.<br />
<br />
== Other ==<br />
<br />
=== [[Wishlist:Tagging|Tagging]] ===<br />
Tags can be used by various applications. Requirement is interoperability for further enhancement.<br />
Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.<br />
<br />
<br />
=== Context based TO-DO list ===<br />
<br />
I arrives to home and there is some "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me that.<br />
<br />
=== Exchange Integration ===<br />
<br />
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.<br />
<br />
* Is the time right to name names ? Add as your liking...<br />
** Plugin/integration to & from Kontact<br />
** Same with Evolution - Thunderbird - Seamonkey<br />
** ?? Google Calendars ?? (this one is tough)<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
- or just use MIDI, using a separate channel for the vibrator.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Conversation Recorder ===<br />
<br />
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.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Anti Theft mode ===<br />
Suppose you are in a busy environment and your device is lying around somewhere. You sometimes use it but cannot look after it all the time. A sort of high risk environment for phone theft where you could put it in anti theft mode which is enabled when someone moves it or touches the touch screen. This, of course will be set off after a predefined time out awaiting a password to unlock this mode (unprompted?). From the moment it has been moved or touched it will display a warning on a red background flashing in black: ''You are committing a crime. Put this phone back, now!'' or any other predefined text. If it is not unlocked it will set off a loud alarm and start sending messages to a predefined email address with pictures, GPS coordinates and network pings.<br />
<br />
=== Sport tracker ===<br />
[[Wishlist: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.<br />
<br />
=== Standby clock ===<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
=== Cycle Computer ===<br />
As already mentioned by [http://wiki.openmoko.org/wiki/User_talk:Technil 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.<br />
* 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 :) --[[User:Minime|Minime]] 19:50, 12 April 2007 (CEST)<br />
<br />
=== Internet Connection Management ===<br />
An application that automatically chooses the best available connection method, between Bluetooth, USBnet, Wifi, GPRS, etc. For GPRS or other services where the user may be paying per kb, there should be options to limit data transfer. The user could be asked permission to transfer data: per connection, per process, per process for a specific time limit, per process for a specific data size limit, etc.<br />
<br />
=== Synergy Client ===<br />
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. [http://synergy2.sourceforge.net/ Synergy]<br />
<br />
=== Mask ID based on dialed numbers ===<br />
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.<br />
<br />
== Software: Language bindings ==<br />
=== Python bindings ===<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
=== C++ bindings ===<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
=== Other bindings ===<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Software: Foreign Widget Set Bindings ==<br />
=== Qt Integration ===<br />
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.<br />
<br />
=== Maemo Integration ===<br />
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.<br />
<br />
=== wxWidgets Integration ===<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
=== SDL Integration ===<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-07-03T20:32:22Z<p>Bradpitcher: People hear music when they call you</p>
<hr />
<div>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 [http://wiki.openmoko.org/wiki/Category:Ideas that have a category of 'Ideas'].<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
=== IDE Plugins ===<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
evaluate eclipse project [http://www.eclipse.org/dsdp/index.php Device Software Development Platform Project from eclipse] and subproject [http://www.eclipse.org/proposals/tml/ Tool for Mobile Linux]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
=== UI Designer ===<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
<br />
== Built-in Scripting Language ==<br />
<br />
There was a [http://lists.openmoko.org/pipermail/community/2007-January/001909.html 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]]<br />
<br />
== Community Support ==<br />
<br />
=== projects.openmoko.org ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Calling===<br />
====Speaker-phone====<br />
* 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.<br />
====Advanced Airtime Tracking====<br />
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.<br />
<br />
==== Anti-stutter software ====<br />
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.<br />
<br />
====People hear music when they call you====<br />
You know how on most cellphone networks you can pay so that people will hear music when they call you? I think we should do that. If this option is turned on (maybe it could be set for each person in your phone book) the Neo can automatically answer the call, mute the microphone, and play the selected sound file over the GSM connection to the caller. To you the Neo looks exactly as it does when anybody calls you, but behind the scenes it's playing music for the caller. When you answer the call, the music fades out and the microphone comes back on. Of course, callers could abuse this feature costing you minutes, which is why it should be individually set for each entry in the phonebook (defaulting to off) and you can only turn it on for people you trust.<br />
<br />
=== Ambient Noise Detection ===<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
=== Active noise control ===<br />
<br />
Using the microphone to do [http://en.wikipedia.org/wiki/Anti-noise 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.<br />
<br />
=== Ignore-Call Button ===<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without rejecting the call.<br />
<br />
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.<br />
<br />
<br />
=== [[Voice Mailbox]] ===<br />
<br />
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.<br />
Can act profile-dependent.<br />
<br />
=== Mute Button ===<br />
<br />
Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.<br />
<br />
=== Hold Button ===<br />
<br />
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.<br />
<br />
=== Automated profile switching ===<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
Profile zoning - define different zones for switching different profiles automatically either by GPS zoning, Wi-Fi proximity or GSM base station proximity.<br />
<br />
Profile scheduling - more complex than timeout. Ability to create a schedule for activating different profiles, or integrate profile switching with the schedule.<br />
<br />
===PIM===<br />
<br />
<br />
===Text Messaging===<br />
For '''Text Input related ideas''' see [[Wishlist:Text_Input]]. Bear in mind that T9 can not be included<br />
For current development status of the messaging-app see: [[Messages]]<br />
<br />
There are many useful options that now can be used to full capacity:<br />
* '''Acknowledge/status SMS'''<br />
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'.<br />
** '''Special handling of status-SMS''' <br />
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.<br />
* '''SMS at time/date''' You could be able to set up messages that are sent at a certain time/date<br />
* '''Binary SMS''' Send binary SMS. Could be used to feign WAP pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** [http://www.gammu.org www.gammu.org] - you can use Gammu/Gammu+ source for this software and/or understanding various SMS formats including EMS, WAP, Nokia Smart Messaging, Siemens & Alcatel encoding ([[User:Marcin|I could]] eventually help)<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* '''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.<br />
* '''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.<br />
* '''(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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
* '''Anti-Spam''' ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* '''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).<br />
* '''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<br />
* '''Searching''' allow full-text search or string search.<br />
* '''Massive SMS Deletion''' based on Conversation, author, before-date-xx.xx.xxxx, caller group, [[Wishlist:Tagging|tags]]...<br />
* '''Call Back''' Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.<br />
* '''Non-destructive deletion''', deleted messages goes to trash, and are recoverable.<br />
* '''SMS-EMail-Gateway'''<br />
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<br />
=== User Profiles ===<br />
<br />
This is different from contextual profiles for mobile phones, that might for example turn off the ringer, and turn on 'vibrate', when you select 'quiet'.<br />
<br />
They are profiles to let the owner of the phone set it up in a comfortable manner, without configuring every aspect.<br />
<br />
*'''[[Wish List UserProfile Beginner|Beginner]]''': Only basic functionality like, telephone and SMS<br />
*'''[[Wish List UserProfile Advanced|Advanced]]''': All in the "Beginner" profile, with e-mail, PIM functions<br />
*'''[[Wish List UserProfile Geek|Geek]]''': every functionality you can get<br />
*'''[[Wish List UserProfile Granny|Granny]]''': a minimum of functionality<br />
*'''[[Wish List UserProfile Child|Child]]''': Parents set limits for their child's phone.<br />
*'''[[Wish List UserProfile Employee|Employee]]''': Employers set limits for their employees phones.<br />
*'''[[Wish List UserProfile Subscriber|Subscriber]]''': Subsidised phone, with limits set for the user.<br />
<br />
The first modes are easily switchable between by the user, as they are also the owner of the phone.<br />
In the '''Child''', '''Employee''', '''Subscriber''' cases, this may not be the case.<br />
<br />
For example, for an employees phone, it may:<br />
*Record GPS track log whenever it is in range of a certain bluetooth device (the employees company vehicle)<br />
*Record all calls during working hours.<br />
*Disallow installation of non-company-approved software.<br />
<br />
For a child's phone, it may:<br />
*Constantly record GPS once a minute.<br />
*Mail GPS recordings to parents once an hour.<br />
*Record all phone calls<br />
*Disallow installation of software that is not 'child' rated.<br />
<br />
For these modes to be tamper proof, it would require on-phone security.<br />
A version of u-boot that would only allow signed images and some application on owners PC to generate them, and set policy.<br />
<br />
<br />
===Music/Video Software===<br />
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.<br />
<br />
=== Address Book ===<br />
<br />
* 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<br />
servers or whatever.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's<br />
* Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant<br />
*Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account<br />
* '''[[Wishlist:Tagging|Tagging]]''' Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other application(GPS, ...) with tags.<br />
* Support for:<br />
**[http://en.wikipedia.org/wiki/SyncML SyncML]<br />
**[http://en.wikipedia.org/wiki/Ldap LDAP] address book<br />
**[http://en.wikipedia.org/wiki/LDIF LDIF], [http://en.wikipedia.org/wiki/Xml XML] and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export and import (when possible).<br />
*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.<br />
<br />
==== Web-browser Plugins ====<br />
<br />
* 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: [http://noscript.net/ noscript], [http://adblockplus.org/en/ adblock plus], [http://www.greasespot.net/ greasemonkey] and [http://www.foxmarks.com/ foxmarks].<br />
* 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.<br />
* Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.<br />
<br />
==== E-Book Reader ====<br />
* 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.<br />
<br />
=== Reading Support ===<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Document files<br />
*Text / RTF files<br />
*MS Office files<br />
*Aportis Doc (pdb)<br />
*...<br />
<br />
In both landscape and portrait<br />
<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
There are many good suggestions for text input on the specific [[Wishlist:Text Input| text input ideas]] page.<br />
<br />
=== More/Custom Input Method Widgets ===<br />
Additional and customizable Input Method Widgets (similar to virtual keyboard). <br />
This could add soft-key functionality to games or other applications such as:<br />
*D-Pads<br />
*buttons<br />
*virtual trackballs<br />
*...<br />
Personalized layouts could be associated with each application.<br />
See [http://wiki.openmoko.org/wiki/Wishlist:More/Custom_Input_Method_Widgets Input Method Wishlist] for more.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Mesh Networking ===<br />
<br />
Please see [[Wishlist:Mesh Networking|Mesh Networking]].<br />
<br />
<br />
=== Wikipedia Mirror ===<br />
<br />
See [[Wishlist:Wikipedia_Mirror|Wikipedia Mirror]].<br />
<br />
<br />
=== Blog ScribblePad ===<br />
<br />
Draw an image (and maybe add some text), then post to your blog.<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
===Misc Software===<br />
<br />
==== PalmOS Emulator ====<br />
<br />
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.<br />
<br />
Win CE emulator<br />
I'd like to see a Windows CE Emulator with active sync support.<br />
<br />
<br />
==== Egg Timer ====<br />
<br />
Very simple (one click) count up / count down timers are very useful. [[Wishlist:EggTimer]]<br />
<br />
==== Personal Wiki ====<br />
<br />
Display the notes database as a Wiki. Inspiration: [http://www.acrocat.com/AcroWiki/default.asp?lang=en AcroWiki]. [[Wishlist:PersonalWiki]]<br />
<br />
[http://www.didiwiki.org/ Didiwiki]<br />
<br />
==== Database/List Display/Edit ====<br />
<br />
One of the most useful apps on my Palm Pilot for me is [http://pilot-db.sourceforge.net/ pilot-db]. It's GPL'd. [[Wishlist:PilotDB]]<br />
<br />
==== Joe's Goals ====<br />
<br />
It'd be nice to have something like [http://www.joesgoals.com Joe's Goals] always available, like my phone is, even when I'm disconnected from the net.<br />
<br />
==== Workout ====<br />
<br />
Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.<br />
<br />
==== TV Guide/Remote Control ====<br />
<br />
Use your Phone to easily program your VCR using EPGs.<br />
<br />
==== Shopping List ====<br />
keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.<br />
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.<br />
<br />
==== Fuel Log ====<br />
File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...).<br />
Advanced features could include:<br />
* Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)<br />
* Sending the data to a central server which collects the information<br />
* 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)<br />
* Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server<br />
* Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.<br />
<br />
==== Dictionary, thesaurus and translator ====<br />
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.<br />
<br />
<br />
==== Keep in touch reminder ====<br />
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.<br />
<br />
=== Accessibility ===<br />
Accessibility features for the visually impaired.<br />
* High Contrast Themes.<br />
* 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.<br />
* 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.<br />
<br />
==== VOIP ====<br />
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.<br />
<br />
==== Power Meter ====<br />
If the power bar is clicked on it will show time left on charge and if charging it will show time until full.<br />
<br />
==== Zfone or similar ====<br />
Something that allows the user to speak with another person securely.<br />
<br />
=== Flick interface ===<br />
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.<br />
<br />
==Bluetooth==<br />
<br />
=== Voice Dialing ===<br />
<br />
Dial by voice commands.<br />
<br />
=== Music through Bluetooth Headset ===<br />
<br />
Music can be played through a Bluetooth headset, but would stop playing when a call comes in.<br />
<br />
=== Walkie Talkie ===<br />
<br />
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.<br />
<br />
Features for this applications can be:<br />
* Push To Talk (PTT) button<br />
* Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.<br />
* Optionally a full duplex mode<br />
* Different channels to choose from<br />
* Monitor different (preselected or all) channels for traffic.<br />
* Content encryption<br />
* Active noise control<br />
<br />
Local (non-GPRS) use cases include chatting while biking<br />
or motorcycling in a group; perhaps also in a car caravan.<br />
This application could also be used as a baby-phone to monitor your siblings.<br />
<br />
This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.<br />
<br />
=== Automatic Sync ===<br />
<br />
Automatically synchronize with desktop computer when within range based on user profile. This may require the use of a secure data transfer.<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
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.<br />
<br />
=== Remote control ===<br />
<br />
==== Wireless presenter ====<br />
Use the phone to run your presentation using Bluetooth. Cool features: 1) Display the text notes for the presenter on the phone's display and update it whenever the slide is changing. Have a mode with small text and a mode with enlarged text and scrolling function. 2) A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature). 3) If you want to be super-cool, you give a preview thumb of the coming slide. 4) At the end of presentations and general slide navigator could be shown that allows to easily jump to any slide in the presentation by clicking on it on the phone.<br />
<br />
==== Initiated from another device ====<br />
Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.<br />
==== Directed at another device ====<br />
Remote control over Bluetooth to other devices to control media player, lights in your house, etc.<br />
<br />
Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. [http://www.z-wave.com www.z-wave.com]<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
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.<br />
<br />
==== Dude, Where's My Car? ====<br />
<br />
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.<br />
<br />
=== [[Bluetooth powered Multi-SIM support]] ===<br />
<br />
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.<br />
<br />
Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:<br />
* Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)<br />
* Calling out via SIM card B - the OpenMoko-phone acts again as a headset<br />
* Same for Short Messages/MMS/Internet<br />
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.<br />
Advantage: No 'switching' between cards<br />
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.<br />
<br />
== Other ==<br />
<br />
=== [[Wishlist:Tagging|Tagging]] ===<br />
Tags can be used by various applications. Requirement is interoperability for further enhancement.<br />
Tags should be applied to calendar events, mail/sms, calls, places(GPS) and files.<br />
<br />
<br />
=== Context based TO-DO list ===<br />
<br />
I arrives to home and there is some "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me that.<br />
<br />
=== Exchange Integration ===<br />
<br />
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.<br />
<br />
* Is the time right to name names ? Add as your liking...<br />
** Plugin/integration to & from Kontact<br />
** Same with Evolution - Thunderbird - Seamonkey<br />
** ?? Google Calendars ?? (this one is tough)<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
- or just use MIDI, using a separate channel for the vibrator.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Conversation Recorder ===<br />
<br />
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.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Anti Theft mode ===<br />
Suppose you are in a busy environment and your device is lying around somewhere. You sometimes use it but cannot look after it all the time. A sort of high risk environment for phone theft where you could put it in anti theft mode which is enabled when someone moves it or touches the touch screen. This, of course will be set off after a predefined time out awaiting a password to unlock this mode (unprompted?). From the moment it has been moved or touched it will display a warning on a red background flashing in black: ''You are committing a crime. Put this phone back, now!'' or any other predefined text. If it is not unlocked it will set off a loud alarm and start sending messages to a predefined email address with pictures, GPS coordinates and network pings.<br />
<br />
=== Sport tracker ===<br />
[[Wishlist: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.<br />
<br />
=== Standby clock ===<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
=== Cycle Computer ===<br />
As already mentioned by [http://wiki.openmoko.org/wiki/User_talk:Technil 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.<br />
* 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 :) --[[User:Minime|Minime]] 19:50, 12 April 2007 (CEST)<br />
<br />
=== Internet Connection Management ===<br />
An application that automatically chooses the best available connection method, between Bluetooth, USBnet, Wifi, GPRS, etc. For GPRS or other services where the user may be paying per kb, there should be options to limit data transfer. The user could be asked permission to transfer data: per connection, per process, per process for a specific time limit, per process for a specific data size limit, etc.<br />
<br />
=== Synergy Client ===<br />
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. [http://synergy2.sourceforge.net/ Synergy]<br />
<br />
=== Mask ID based on dialed numbers ===<br />
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.<br />
<br />
== Software: Language bindings ==<br />
=== Python bindings ===<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
=== C++ bindings ===<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
=== Other bindings ===<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Software: Foreign Widget Set Bindings ==<br />
=== Qt Integration ===<br />
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.<br />
<br />
=== Maemo Integration ===<br />
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.<br />
<br />
=== wxWidgets Integration ===<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
=== SDL Integration ===<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wishlist/Sport_trackerWishlist/Sport tracker2007-03-28T17:43:19Z<p>Bradpitcher: /* Use Cases */</p>
<hr />
<div>{{Wishlist}}<br />
<br />
== Sport tracker ==<br />
<br />
The idea of this program is to help a user to track the distance/velocity they have traveled.<br />
<br />
== Use Cases ==<br />
<br />
* I am going running. I start the tracker at the beginning of the run, and stop the tracker when I'm done. The tracker tells me how far I've run, how long it took, calories burned, and average pace (as well as max and min pace?).<br />
<br />
* I want to time myself on a run of a certain distance, but I don't feel like running at the track. I pick a course where I can run an arbitrary distance, start the tracker (after specifying how far I want to run) and take off. The tracker begins tracking distance and time. The phone vibrates/rings to notify me that I have completed the run and it automatically stops the timer.<br />
<br />
* I want to run at a certain pace. I input my desired pace in the sport tracker and begin running. The sport tracker informs me visually and/or audibly when I go over a certain (configurable?) threshold faster or slower than the desired pace. It would help to learn what the desired tempo feels like.<br />
<br />
[[Category:ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wishlist/Sport_trackerWishlist/Sport tracker2007-03-28T17:39:44Z<p>Bradpitcher: /* Sport tracker */</p>
<hr />
<div>{{Wishlist}}<br />
<br />
== Sport tracker ==<br />
<br />
The idea of this program is to help a user to track the distance/velocity they have traveled.<br />
<br />
== Use Cases ==<br />
<br />
* I am going running. I start the tracker at the beginning of the run, and stop the tracker when I'm done. The tracker tells me how far I've run.<br />
<br />
* I want to time myself on a run of a certain distance, but I don't feel like running at the track. I pick a course where I can run an arbitrary distance, start the tracker (after specifying how far I want to run) and take off. The tracker begins tracking distance and time. The phone vibrates/rings to notify me that I have completed the run and it also stops the timer.<br />
<br />
* I want to run at a certain pace. I input my desired pace in the sport tracker and begin running. The sport tracker informs me visually and/or audibly when I go over a certain (configurable?) threshold faster or slower than the desired pace. It would help to learn what the desired tempo feels like.<br />
<br />
[[Category:ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-03-22T17:57:42Z<p>Bradpitcher: </p>
<hr />
<div>This article is a place to collect various thoughts about the future of the [[OpenMoko]] software platform.<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
=== IDE Plugins ===<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
=== UI Designer ===<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
== Community Support ==<br />
<br />
=== projects.openmoko.org ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Text Messaging===<br />
There are many useful options that now can be used to full capacity:<br />
* In GSM networks so-called acknowledge-sms are sent back to the sms's dispatcher in order to indicate that the primal sms was recieved (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'.<br />
* You could be able to set up messages that are sent at a certain time/date<br />
* Send binary sms. Could be used to feign wap pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* 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.<br />
* 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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
<br />
* ''Remind:'' T9 cannot be included in the phone. http://www.tegic.com/about/patent-list.asp it may be legally addable by users in some countries. <br />
<br />
* [http://en.wikipedia.org/wiki/Speedwords Dutton Speedwords]. Maybe helpful?<br />
* GPS fun. http://en.wikipedia.org/wiki/Gps2sms<br />
** Why should we use SMS for that task? Jabber or something similar would be much better and cheaper<br />
* Input help (which as a matter of fact does not belong to text messaging but input in general): I guess there won't be any [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] as it's not open. Alternatives? (Let's make the worlds most convenient input method for mobiles :-) See: http://en.wikipedia.org/wiki/Predictive_text<br />
* Anti-Spam feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* 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).<br />
<br />
* Leverage every email app in the universe by having an SM-email gateway on the phone:<br />
** SMS comes in, gets forward to your inbox, like any other piece of mail. Appropriate alerts and etc occur - again, just like for email.<br />
** 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<br />
<br />
=== Address Book ===<br />
<br />
* 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<br />
servers or whatever.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's addressbook than your average cellphone's<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
Something like [http://www.strout.net/info/ideas/hexinput.html HexInput] would be very interesting to try. Especially versions of the QUONG layout. Different variations for different languages will be needed.<br />
<br />
Another possibility would be to use [http://www.inference.phy.cam.ac.uk/dasher/ Dasher] along with the touchpad interface.<br />
<br />
<br />
<br />
=== Multiboot Support ===<br />
I'd like to see [[Bootloader|U-Boot]] being enhanced to support a boot menu that allows to boot a complete image from the MMC. This way we have a simple way for part-time developers (aka people actually ''using'' their phone or people not having a separate phone for development) to experiment with new OpenMoko releases or custom images.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Reading Support ===<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Office<br />
*Text files<br />
*...<br />
<br />
in both landscape and portrait<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
=== PalmOS Emulator ===<br />
<br />
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 millions of PalmOS apps.<br />
<br />
=== Special Profiles ===<br />
<br />
After reading something about too much features in mobile phones I thought about the following. It would be nice to have the possibility to choose from several profiles when starting the phone the first time. Every user profile is defined for special kinds of user behaviour. <br />
Let me define some example profiles:<br />
*'''Beginner''': Only basic functionality like, telephone and sms<br />
*'''Advanced''': included "Beginner" profile and let me say e-mail, pim functions<br />
*'''Geek''': every functionality you can get<br />
*'''Granny''': a minimum of functionality<br />
etc.<br />
In addition the user should be able to create his own profiles. The advantage is that the user gets not frustrated by thousands of menus. What do you think about such a feature?<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Ambient Noise Detection ===<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
=== Ignore-Call Button ===<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without rejecting the call.<br />
<br />
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.<br />
<br />
=== Mute Button ===<br />
<br />
Button to temporarily disable microphone while talking.<br />
<br />
=== Hold Button ===<br />
<br />
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.<br />
<br />
=== Silent mode timeout ===<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
=== Context based TO-DO list ===<br />
<br />
I arrives to home and there is some "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me that.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
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.<br />
<br />
=== Exchange Integration ===<br />
<br />
Once there is good TCP/IP connectivity on this phone, integration with corportate email/calendar/todo/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.<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
=== Bluetooth Walkie Talkie ===<br />
<br />
Let OpenMoko devices connect to one another via bluetooth and hold a conversation. Depending on the effective range between two devices, this might be a very silly thing to do, so maybe it's only purpose is as a fun toy application.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
Have a deeper connection to the car than just handsfree speakerphone. For instance a transciever 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.<br />
<br />
=== Conversation Recorder ===<br />
<br />
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.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Sport tracker ===<br />
[[Wishlist: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.<br />
<br />
=== Standby clock ===<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
=== Internet Connection Management ===<br />
An application that automatically chooses the best available connection method, between Bluetooth, USBnet, Wifi, GPRS, etc. For GPRS or other services where the user may be paying per kb, there should be options to limit data transfer. The user could be asked permission to transfer data: per connection, per process, per process for a specific time limit, per process for a specific data size limit, etc.<br />
<br />
== Software: Language bindings ==<br />
=== Python bindings ===<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
=== C++ bindings ===<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
=== Other bindings ===<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Software: Foreign Widget Set Bindings ==<br />
=== Qt Integration ===<br />
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.<br />
<br />
=== Maemo Integration ===<br />
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.<br />
<br />
=== wxWidgets Integration ===<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
=== SDL Integration ===<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wishlist/Sport_trackerWishlist/Sport tracker2007-03-22T16:51:22Z<p>Bradpitcher: </p>
<hr />
<div>{{Wishlist}}<br />
<br />
== Sport tracker ==<br />
<br />
The idea of this feature is to help a user to track the distance/velocity they have traveled.<br />
<br />
<br />
== Use Cases ==<br />
<br />
* I am going running. I start the tracker at the beginning of the run, and stop the tracker when I'm done. The tracker tells me how far I've run.<br />
<br />
* I want to time myself on a run of a certain distance, but I don't feel like running at the track. I pick a course where I can run an arbitrary distance, start the tracker (after specifying how far I want to run) and take off. The tracker begins tracking distance and time. The phone vibrates/rings to notify me that I have completed the run and it also stops the timer.<br />
<br />
* I want to run at a certain pace. I input my desired pace in the sport tracker and begin running. The sport tracker informs me visually and/or audibly when I go over a certain (configurable?) threshold faster or slower than the desired pace. It would help to learn what the desired tempo feels like.<br />
<br />
[[Category:ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-03-22T16:47:35Z<p>Bradpitcher: /* Sport tracker */</p>
<hr />
<div>This article is a place to collect various thoughts about the future of the [[OpenMoko]] software platform.<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
=== IDE Plugins ===<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
=== UI Designer ===<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
== Community Support ==<br />
<br />
=== projects.openmoko.org ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
===Text Messaging===<br />
There are many useful options that now can be used to full capacity:<br />
* In GSM networks so-called acknowledge-sms are sent back to the sms's dispatcher in order to indicate that the primal sms was recieved (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'.<br />
* You could be able to set up messages that are sent at a certain time/date<br />
* Send binary sms. Could be used to feign wap pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* 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.<br />
* 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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
<br />
* ''Remind:'' T9 cannot be included in the phone. http://www.tegic.com/about/patent-list.asp it may be legally addable by users in some countries. <br />
<br />
* [http://en.wikipedia.org/wiki/Speedwords Dutton Speedwords]. Maybe helpful?<br />
* GPS fun. http://en.wikipedia.org/wiki/Gps2sms<br />
** Why should we use SMS for that task? Jabber or something similar would be much better and cheaper<br />
* Input help (which as a matter of fact does not belong to text messaging but input in general): I guess there won't be any [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] as it's not open. Alternatives? (Let's make the worlds most convenient input method for mobiles :-) See: http://en.wikipedia.org/wiki/Predictive_text<br />
* Anti-Spam feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* 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).<br />
<br />
* Leverage every email app in the universe by having an SM-email gateway on the phone:<br />
** SMS comes in, gets forward to your inbox, like any other piece of mail. Appropriate alerts and etc occur - again, just like for email.<br />
** 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<br />
<br />
=== Address Book ===<br />
<br />
* 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<br />
servers or whatever.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's addressbook than your average cellphone's<br />
<br />
=== [[Wishlist:Text Input| Text input]] ===<br />
Something like [http://www.strout.net/info/ideas/hexinput.html HexInput] would be very interesting to try. Especially versions of the QUONG layout. Different variations for different languages will be needed.<br />
<br />
Another possibility would be to use [http://www.inference.phy.cam.ac.uk/dasher/ Dasher] along with the touchpad interface.<br />
<br />
<br />
<br />
=== Multiboot Support ===<br />
I'd like to see [[Bootloader|U-Boot]] being enhanced to support a boot menu that allows to boot a complete image from the MMC. This way we have a simple way for part-time developers (aka people actually ''using'' their phone or people not having a separate phone for development) to experiment with new OpenMoko releases or custom images.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Reading Support ===<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Office<br />
*Text files<br />
*...<br />
<br />
in both landscape and portrait<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
=== PalmOS Emulator ===<br />
<br />
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 millions of PalmOS apps.<br />
<br />
=== Special Profiles ===<br />
<br />
After reading something about too much features in mobile phones I thought about the following. It would be nice to have the possibility to choose from several profiles when starting the phone the first time. Every user profile is defined for special kinds of user behaviour. <br />
Let me define some example profiles:<br />
*'''Beginner''': Only basic functionality like, telephone and sms<br />
*'''Advanced''': included "Beginner" profile and let me say e-mail, pim functions<br />
*'''Geek''': every functionality you can get<br />
*'''Granny''': a minimum of functionality<br />
etc.<br />
In addition the user should be able to create his own profiles. The advantage is that the user gets not frustrated by thousands of menus. What do you think about such a feature?<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Ambient Noise Detection ===<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
=== Ignore-Call Button ===<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without rejecting the call.<br />
<br />
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.<br />
<br />
=== Mute Button ===<br />
<br />
Button to temporarily disable microphone while talking.<br />
<br />
=== Hold Button ===<br />
<br />
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.<br />
<br />
=== Silent mode timeout ===<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
=== Context based TO-DO list ===<br />
<br />
I arrives to home and there is some "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me that.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
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.<br />
<br />
=== Exchange Integration ===<br />
<br />
Once there is good TCP/IP connectivity on this phone, integration with corportate email/calendar/todo/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.<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
=== Bluetooth Walkie Talkie ===<br />
<br />
Let OpenMoko devices connect to one another via bluetooth and hold a conversation. Depending on the effective range between two devices, this might be a very silly thing to do, so maybe it's only purpose is as a fun toy application.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
Have a deeper connection to the car than just handsfree speakerphone. For instance a transciever 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.<br />
<br />
=== Conversation Recorder ===<br />
<br />
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 and stored in RAM. At the end of the conversation the user would have the option to save to flash or discard the conversation.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Sport tracker ===<br />
[[Wishlist: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.<br />
<br />
=== Standby clock ===<br />
A quick way to see what [[Wishlist:Standby_clock|time]] it is.<br />
<br />
=== Internet Connection Management ===<br />
An application that automatically chooses the best available connection method, between Bluetooth, USBnet, Wifi, GPRS, etc. For GPRS or other services where the user may be paying per kb, there should be options to limit data transfer. The user could be asked permission to transfer data: per connection, per process, per process for a specific time limit, per process for a specific data size limit, etc.<br />
<br />
== Software: Language bindings ==<br />
=== Python bindings ===<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
=== C++ bindings ===<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
=== Other bindings ===<br />
* Perl<br />
* Ruby<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Software: Foreign Widget Set Bindings ==<br />
=== Qt Integration ===<br />
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.<br />
<br />
=== Maemo Integration ===<br />
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.<br />
<br />
=== wxWidgets Integration ===<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
=== SDL Integration ===<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]</div>Bradpitcherhttp://openmoko.org/wiki/Wish_ListWish List2007-03-07T17:02:17Z<p>Bradpitcher: /* Software: Additional features */</p>
<hr />
<div>This article is a place to collect various thoughts about the future of the [[OpenMoko]] software platform.<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
=== IDE Plugins ===<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
=== UI Designer ===<br />
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 [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
== Community Support ==<br />
<br />
=== projects.openmoko.org ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
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.<br />
<br />
== Software: Additional features ==<br />
=== Text Messaging ===<br />
There are many useful options that now can be used to full capacity:<br />
* In GSM networks so-called acknowledge-sms are sent back to the sms's dispatcher in order to indicate that the primal sms was recieved (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'.<br />
* You could be able to set up messages that are sent at a certain time/date<br />
* Send binary sms. Could be used to feign wap pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* 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.<br />
* 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: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
<br />
* Script to fix T9 mistakes, ie, replace "I foot know" with "I dont know" (would require grammar and spell checking also?)<br />
** T9 cannot be included in the phone. http://www.tegic.com/about/patent-list.asp it may be legally addable by users in some countries. <br />
<br />
* [http://en.wikipedia.org/wiki/Speedwords Dutton Speedwords]. Maybe helpful?<br />
* GPS fun. http://en.wikipedia.org/wiki/Gps2sms<br />
** Why should we use SMS for that task? Jabber or something similar would be much better and cheaper<br />
* Input help (which as a matter of fact does not belong to text messaging but input in general): I guess there won't be any [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] as it's not open. Alternatives? (Let's make the worlds most convenient input method for mobiles :-) See: http://en.wikipedia.org/wiki/Predictive_text<br />
* Anti-Spam feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* 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).<br />
<br />
=== Text input ===<br />
Something like [http://www.strout.net/info/ideas/hexinput.html HexInput] would be very interesting to try. Especially versions of the QUONG layout. Different variations for different languages will be needed.<br />
<br />
Another possibility would be to use [http://www.inference.phy.cam.ac.uk/dasher/ Dasher] along with the touchpad interface.<br />
<br />
=== Multiboot Support ===<br />
I'd like to see [[Bootloader|U-Boot]] being enhanced to support a boot menu that allows to boot a complete image from the MMC. This way we have a simple way for part-time developers (aka people actually ''using'' their phone or people not having a separate phone for development) to experiment with new OpenMoko releases or custom images.<br />
<br />
=== Games ===<br />
<br />
Please see [[Wishlist:Games|the games page]].<br />
<br />
=== Reading Support ===<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Office<br />
*Text files<br />
*...<br />
<br />
in both landscape and portrait<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
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<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{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.}}<br />
<br />
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.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
=== PalmOS Emulator ===<br />
<br />
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 millions of PalmOS apps.<br />
<br />
=== Special Profiles ===<br />
<br />
After reading something about too much features in mobile phones I thought about the following. It would be nice to have the possibility to choose from several profiles when starting the phone the first time. Every user profile is defined for special kinds of user behaviour. <br />
Let me define some example profiles:<br />
*'''Beginner''': Only basic functionality like, telephone and sms<br />
*'''Advanced''': included "Beginner" profile and let me say e-mail, pim functions<br />
*'''Geek''': every functionality you can get<br />
*'''Granny''': a minimum of functionality<br />
etc.<br />
In addition the user should be able to create his own profiles. The advantage is that the user gets not frustrated by thousands of menus. What do you think about such a feature?<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
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.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
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.<br />
<br />
=== Ambient Noise Detection ===<br />
<br />
Using the microphone to [[Wishlist:Ambient Noise Detection|detect ambient noise]] the ringtone volume could be adjusted automatically.<br />
<br />
=== Ignore-Call Button ===<br />
<br />
[[Wishlist:Ignore Call Button|Shut up a ringing phone]], without rejecting the call.<br />
<br />
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.<br />
<br />
=== Mute Button ===<br />
<br />
Button to temporarily disable microphone while talking.<br />
<br />
=== Hold Button ===<br />
<br />
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.<br />
<br />
=== Silent mode timeout ===<br />
<br />
With a [[Wishlist:Silent mode timeout|"silent mode" timeout]], there is no need to turn the ringer back on if you previously know how long will be the film/meeting/...<br />
<br />
=== Context based TO-DO list ===<br />
<br />
I arrives to home and there is some "@home" things in the to-do list, the [[Wishlist:context based to-do list|Context based to-do list]] reminds me that.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
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.<br />
<br />
=== Exchange Integration ===<br />
<br />
Once there is good TCP/IP connectivity on this phone, integration with corportate email/calendar/todo/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.<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
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).<br />
<br />
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.<br />
<br />
=== Bluetooth Walkie Talkie ===<br />
<br />
Let OpenMoko devices connect to one another via bluetooth and hold a conversation. Depending on the effective range between two devices, this might be a very silly thing to do, so maybe it's only purpose is as a fun toy application.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
<br />
[[Wishlist-ANARM|ANARM]] would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
Have a deeper connection to the car than just handsfree speakerphone. For instance a transciever 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.<br />
<br />
=== Conversation Recorder ===<br />
<br />
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 and stored in RAM. At the end of the conversation the user would have the option to save to flash or discard the conversation.<br />
<br />
=== Location based reminders ===<br />
[[Wishlist:Location_based_reminders|Location based reminders]] can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Distance tracker ===<br />
[[Wishlist:Distance_tracker|Distance tracker]] can be used to measure the distance 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.<br />
<br />
== Software: Language bindings ==<br />
=== Python bindings ===<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org 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."<br />
<br />
=== C++ bindings ===<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
=== Other bindings ===<br />
* Perl<br />
* Ruby<br />
* C#<br />
<br />
== Software: Foreign Widget Set Bindings ==<br />
=== Qt Integration ===<br />
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.<br />
<br />
=== Maemo Integration ===<br />
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.<br />
<br />
=== wxWidgets Integration ===<br />
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.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
=== SDL Integration ===<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
== Hardware ==<br />
See [[Wish List - Hardware]]<br />
<br />
[[Category:Ideas]]</div>Bradpitcher