<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openmoko.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Gromgull&amp;feedformat=atom</id>
		<title>Openmoko - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Gromgull&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Gromgull"/>
		<updated>2013-05-24T10:15:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Buzz_Fix</id>
		<title>Buzz Fix</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Buzz_Fix"/>
				<updated>2009-04-06T08:36:51Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: New page: Fixing the buzzing that occurs with some GSM networks can be done with a bit of soldering, the semi official instructions are here:  http://people.openmoko.org/joerg/GSM_EMI_noise/big-C_re...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fixing the buzzing that occurs with some GSM networks can be done with a bit of soldering, the semi official instructions are here:&lt;br /&gt;
&lt;br /&gt;
http://people.openmoko.org/joerg/GSM_EMI_noise/big-C_rework_SOP_rc2.pdf&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/TangoGPS</id>
		<title>TangoGPS</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/TangoGPS"/>
				<updated>2009-03-01T19:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: added log conversion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|tangoGPS}}&lt;br /&gt;
{{Application|tangoGPS}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.&lt;br /&gt;
&lt;br /&gt;
[[Image:TangoGPS1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Website: http://www.tangogps.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running tangoGPS ==&lt;br /&gt;
=== [[Om 2008.8]] ===&lt;br /&gt;
&lt;br /&gt;
From the freerunner connected to the internet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install gpsd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{note|I experienced hangups if gpsd was not installed.}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If opkg complains about not being able to acquire a lock, try:&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill packagekit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].&lt;br /&gt;
Then start gpsd by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/gpsd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you get an error about no GPS device in /etc/default/gpsd execute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;GPS_DEV=\&amp;quot;/dev/ttySAC1\&amp;quot;&amp;quot; &amp;gt; /etc/default/gpsd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you must power up the GPS-chip by opening the &amp;quot;Settings&amp;quot; application and setting the GPS entry to &amp;quot;on&amp;quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.&lt;br /&gt;
&lt;br /&gt;
=== [[Debian]] ===&lt;br /&gt;
&lt;br /&gt;
tangoGPS is a very nice GPS mapping application.  The latest version is available in [[Debian]].&lt;br /&gt;
&lt;br /&gt;
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides&lt;br /&gt;
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run&lt;br /&gt;
&lt;br /&gt;
# apt-get install tangogps&lt;br /&gt;
&lt;br /&gt;
To turn the gps on, you have two options.&lt;br /&gt;
You can start the gps application in [[Zhone]], this will turn on the gps device for you or you can manually turn&lt;br /&gt;
on the gps device using&lt;br /&gt;
# echo 1 &amp;gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;br /&gt;
&lt;br /&gt;
Now you should be able to start tangoGPS from the X-mouse start menu (must have XFCE installed) :&lt;br /&gt;
Start &amp;gt; other &amp;gt; GPS &amp;amp; Map&lt;br /&gt;
&lt;br /&gt;
'''Issues:'''&lt;br /&gt;
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces.  This suggests a number of possible solutions.&lt;br /&gt;
** gpsd or the framework could implement the other's interface (along with their own).&lt;br /&gt;
** a translator could read one interface and emulate the other. This is what fso-gpsd does.&lt;br /&gt;
** the framework could have an option to read data from gpsd.&lt;br /&gt;
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.&lt;br /&gt;
&lt;br /&gt;
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===&lt;br /&gt;
&lt;br /&gt;
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.&lt;br /&gt;
&lt;br /&gt;
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &amp;lt;code&amp;gt;/etc/frameworkd.conf&amp;lt;/code&amp;gt;, section &amp;lt;code&amp;gt;ogpsd&amp;lt;/code&amp;gt;).  As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &amp;lt;code&amp;gt;opkg install fso-gpsd&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You cannot have both &amp;quot;providers&amp;quot; (ad 1 &amp;amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &amp;quot;convertor&amp;quot; (fso-gpsd) providing the ad 1.  To get usable tangoGPS on FreeRunner, one has to:&lt;br /&gt;
&lt;br /&gt;
# check that &amp;lt;code&amp;gt;/etc/frameworkd.conf&amp;lt;/code&amp;gt;, section &amp;lt;code&amp;gt;ogpsd&amp;lt;/code&amp;gt; reads GPS data from the right device (&amp;lt;code&amp;gt;/dev/ttySAC1&amp;lt;/code&amp;gt;)&lt;br /&gt;
# if changes were made to configuration, one should restart the frameworkd -- &amp;lt;code&amp;gt;/etc/init.d/frameworkd stop &amp;amp;&amp;amp; /etc/init.d/frameworkd start&amp;lt;/code&amp;gt;&lt;br /&gt;
# check that gpsd is not running -- &amp;lt;code&amp;gt;/etc/init.d/gpsd stop&amp;lt;/code&amp;gt;&lt;br /&gt;
# check that fso-gpsd is installed and running -- &amp;lt;code&amp;gt;opkg install fso-gpsd; fso-gpsd&amp;lt;/code&amp;gt;&lt;br /&gt;
# check that gps chip is online (&amp;lt;code&amp;gt;echo 1 &amp;gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&amp;lt;/code&amp;gt;)&lt;br /&gt;
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.&lt;br /&gt;
&lt;br /&gt;
Note 1: handy application for testing the gps (and gps signal strength) is &amp;lt;code&amp;gt;openmoko-agpsui&amp;lt;/code&amp;gt;, see general gps info at [[Gps]]&lt;br /&gt;
&lt;br /&gt;
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&amp;lt;code&amp;gt;update-rc.d -f gpsd remove&amp;lt;/code&amp;gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Downloading Maps ==&lt;br /&gt;
=== pre-load for offline use ===&lt;br /&gt;
&lt;br /&gt;
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &amp;quot;Config&amp;quot; tab within tangoGPS to change the &amp;quot;Cache Dir&amp;quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, in /media/card/osm.&lt;br /&gt;
&lt;br /&gt;
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session.  TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.&lt;br /&gt;
&lt;br /&gt;
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &amp;quot;map download&amp;quot;. Now on-the-road  tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.&lt;br /&gt;
&lt;br /&gt;
=== Downloading Maps via GPRS ===&lt;br /&gt;
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]&lt;br /&gt;
&lt;br /&gt;
There are steps included in those instructions to improve GPS performance.  The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using tangoGPS for OpenStreetMap.org ==&lt;br /&gt;
=== creating tracks ===&lt;br /&gt;
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):&lt;br /&gt;
&lt;br /&gt;
perl convert2gpx.pl 20080903_111508.log &amp;gt; 20080903_111508.gpx&lt;br /&gt;
&lt;br /&gt;
==== tangoGPS logging format ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lat&amp;gt;,&amp;lt;lon&amp;gt;,&amp;lt;elevation&amp;gt;,&amp;lt;speed&amp;gt;,&amp;lt;course&amp;gt;,&amp;lt;hdop&amp;gt;,&amp;lt;datetime&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== using OpenStreetBugs ===&lt;br /&gt;
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importing Tracks into tangoGPS ==&lt;br /&gt;
&lt;br /&gt;
tangoGPS does not support the import of tracks. You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.&lt;br /&gt;
&lt;br /&gt;
== Using the TangoGPS logs == &lt;br /&gt;
&lt;br /&gt;
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DESCRIPTION TangoGPS 0.92&lt;br /&gt;
EXTENSION log&lt;br /&gt;
DATATYPE TRACK&lt;br /&gt;
&lt;br /&gt;
FIELD_DELIMITER COMMA&lt;br /&gt;
RECORD_DELIMITER NEWLINE&lt;br /&gt;
&lt;br /&gt;
IFIELD LAT_DECIMAL,&amp;quot;&amp;quot;,&amp;quot;%f&amp;quot;&lt;br /&gt;
IFIELD LON_DECIMAL,&amp;quot;&amp;quot;,&amp;quot;%f&amp;quot;&lt;br /&gt;
IFIELD ALT_METERS,&amp;quot;&amp;quot;,&amp;quot;%f&amp;quot;&lt;br /&gt;
IFIELD PATH_SPEED,&amp;quot;&amp;quot;,&amp;quot;%f&amp;quot;&lt;br /&gt;
IFIELD PATH_COURSE,&amp;quot;&amp;quot;,&amp;quot;%f&amp;quot;&lt;br /&gt;
IFIELD GPS_HDOP,&amp;quot;&amp;quot;,&amp;quot;%f&amp;quot;&lt;br /&gt;
IFIELD ISO_TIME,&amp;quot;&amp;quot;,&amp;quot;%s&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: &lt;br /&gt;
&lt;br /&gt;
 gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml&lt;br /&gt;
&lt;br /&gt;
== Add POI from address ==&lt;br /&gt;
&lt;br /&gt;
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using Google Maps with tangoGPS ==&lt;br /&gt;
&lt;br /&gt;
Go to Config and create a new repository.&lt;br /&gt;
&lt;br /&gt;
Set the url for '''street-maps''' to:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://mt1.google.com/mt?&amp;amp;x=%d&amp;amp;y=%d&amp;amp;zoom=%d&amp;lt;/pre&amp;gt;&lt;br /&gt;
for '''satellite-maps''' to:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://khm.google.com/kh?&amp;amp;x=%d&amp;amp;y=%d&amp;amp;zoom=%d&amp;lt;/pre&amp;gt;&lt;br /&gt;
for '''topographic-maps''':&lt;br /&gt;
&amp;lt;pre&amp;gt;http://mt.google.com/mt?v=app.81&amp;amp;x=%d&amp;amp;y=%d&amp;amp;zoom=%d&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the &amp;quot;Inverted Zoom&amp;quot; box. Press save Repository Configuration and you're ready to go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Since TangoGPS 0.9.5''' the &amp;quot;Inverted Zoom&amp;quot; box is no longer available because Google changed the addressing scheme; instead, select &amp;quot;xyz instead of zxy&amp;quot; and use the following URLs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Maps:                                                                                                                                              &lt;br /&gt;
http://mt3.google.com/mt/v=w2.89&amp;amp;hl=en&amp;amp;x=%d&amp;amp;y=%d&amp;amp;z=%d&amp;amp;s=Galileo                                                                                    &lt;br /&gt;
                                                                                                                                                   &lt;br /&gt;
Sat:                                                                                                                                               &lt;br /&gt;
http://khm3.google.com/kh/v=36&amp;amp;hl=en&amp;amp;x=%d&amp;amp;y=%d&amp;amp;z=%d&amp;amp;s=Galileo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[TangoGPS]]|&lt;br /&gt;
Description=    TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|&lt;br /&gt;
Screenshot=TangoGPS1.jpg|&lt;br /&gt;
Homepage=http://www.tangogps.org|&lt;br /&gt;
TestedOn=Om 2008.8|&lt;br /&gt;
PackageName=tangogps&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/SwapSpace</id>
		<title>SwapSpace</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/SwapSpace"/>
				<updated>2009-02-14T12:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Freerunner has only 128mb ram, when this is used up applications get killed. &lt;br /&gt;
&lt;br /&gt;
To help this you can add a bit of swap space on the microsd card:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/media/card/swapfile.img bs=1024k count=512&lt;br /&gt;
 mkswap /media/card/swapfile.img&lt;br /&gt;
 swapon /media/card/swapfile.img&lt;br /&gt;
&lt;br /&gt;
Taken from http://lists.openmoko.org/nabble.html#nabble-td2171203&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/SwapSpace</id>
		<title>SwapSpace</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/SwapSpace"/>
				<updated>2009-02-14T12:49:30Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: New page: The Freerunner has only 128mb ram, when this is used up applications get killed.   To help this you can add a bit of swap space on the microsd card:   dd if=/dev/zero of=/media/card/swapfi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Freerunner has only 128mb ram, when this is used up applications get killed. &lt;br /&gt;
&lt;br /&gt;
To help this you can add a bit of swap space on the microsd card:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/media/card/swapfile.img bs=1024k count=512&lt;br /&gt;
 mkswap /media/nickcard/swapfile.img&lt;br /&gt;
 swapon /media/nickcard/swapfile.img&lt;br /&gt;
&lt;br /&gt;
Taken from http://lists.openmoko.org/nabble.html#nabble-td2171203&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:Community_Updates</id>
		<title>Talk:Community Updates</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:Community_Updates"/>
				<updated>2008-11-30T08:33:24Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add news to this page, and from time to time we will issue a community update.&lt;br /&gt;
&lt;br /&gt;
Watch these links:&lt;br /&gt;
* Git logs: [http://git.openmoko.org/?p=kernel.git;a=log;h=stable kernel/stable], [http://git.openmoko.org/?p=kernel.git;a=log;h=stable-tracking kernel/stable-tracking], [http://git.openmoko.org/?p=qtopia.git;a=log;h=master Qtopia/master], [http://git.openmoko.org/?p=openmoko.git;a=summary Openmoko's OpenEmbedded], [http://git.openmoko.org/?p=u-boot.git;a=log;h=stable uboot/stable], [http://git.openmoko.org/?p=qi.git;a=log Qi/master]&lt;br /&gt;
* Mailing lists: [http://lists.openmoko.org/nabble.html#nabble-f528196 hardware], [http://lists.openmoko.org/nabble.html#nabble-f528196 devel], [http://lists.openmoko.org/nabble.html#nabble-f1954 community], [http://lists.openmoko.org/nabble.html#nabble-f681789 kernel], [http://lists.openmoko.org/nabble.html#nabble-f528183 support], [http://lists.openmoko.org/nabble.html#nabble-f832940 SHR devel], [http://lists.projects.openmoko.org/pipermail/fdom-development/ FDOM devel]&lt;br /&gt;
* [http://projects.openmoko.org/ Project news].&lt;br /&gt;
&lt;br /&gt;
How are newsletters organized elsewhere:&lt;br /&gt;
http://lists.openmoko.org/pipermail/community/2008-October/032628.html&lt;br /&gt;
&lt;br /&gt;
[[/Archive 1]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
* A [http://scalde.free.fr/index.php?option=com_content&amp;amp;amp;view=article&amp;amp;amp;id=93:pong-pogresses&amp;amp;amp;catid=43:openmoko&amp;amp;amp;Itemid=66 Pong]&lt;br /&gt;
* [http://blog.1407.org/2008/11/19/openmoko-newrotate-050-lazy-edition-is-out/ Newrotate 0.5] is out, uses really little CPU now.&lt;br /&gt;
* Valério won the first 24h-coding prize at Sapo Codebits by turning [http://www.valeriovalerio.org/?p=187 freerunner in a mouse and gamepad] using the accelerometers. Code will be merged with [[ReMoko]].&lt;br /&gt;
* [[Gtkaddpoi]] 0.5 : software to add a Point Of Interest to TangoGPS.&lt;br /&gt;
* neoqplayer 0.1 : codenamed frog. A media player that conserves CPU cycles.&lt;br /&gt;
* First release of [[TwitterMoko]], a twitter client for openmoko.&lt;br /&gt;
* ShortOm 0.2 : an application/shell launcher.&lt;br /&gt;
* openmoko-panel-plugin 0.6 : support for fso frameworkd milestone 4.&lt;br /&gt;
* [[Unison]] works.&lt;br /&gt;
* [http://www.srcf.ucam.org/~taw27/openmoko/openmoocow/ OpenMooCow] 0.2. Mooes more, runs headless, tickleable.&lt;br /&gt;
* [http://www.cs.helsinki.fi/u/rantalai/freerunner/aaterm/ AaTerm], an improved openmoko-terminal2.&lt;br /&gt;
* Azmodie proposed a solution for right and middle clicking: Use the gnome accessibility tool [http://live.gnome.org/Mousetweaks/Home mousetweaks] ([http://packages.debian.org/lenny/mousetweaks .deb]).&lt;br /&gt;
&lt;br /&gt;
== Distributions ==&lt;br /&gt;
&lt;br /&gt;
* The [http://downloads.openmoko.org/releases/ official 2008.9 image] is back online without the questionable audio codecs.&lt;br /&gt;
* ASU. 2008.11 is not going to see the light, but at least the bug count is decreasing in the testing build (see testing [http://lists.openmoko.org/pipermail/devel/2008-November/003312.html penultimate] and [http://lists.openmoko.org/pipermail/devel/2008-November/003493.html latest] reports, where A7 with capacitor is declared good for m&amp;lt;i&amp;gt;e&amp;lt;/i&amp;gt;ss roduction ;). The testing build is the one with all the fixes from  optimization team (read their [http://lists.openmoko.org/pipermail/community/2008-November/036276.html last], [http://lists.openmoko.org/pipermail/community/2008-November/035769.html previous] reports), i.e. about 1 minute boot and [http://git.openmoko.org/?p=qtopia.git;a=commit;h=eb855af76018bedf6a89b9ac736d2ffa3961932b Volume control] during call.&lt;br /&gt;
* SHR. [http://lists.openmoko.org/nabble.html#nabble-td1576966 newer snapshot] available.&lt;br /&gt;
*  For [[Android]]: Walter Chang [http://lists.openmoko.org/pipermail/community/2008-November/036054.html made a soft keyboard]. Rui Castro implemented an [http://lists.openmoko.org/pipermail/community/2008-November/036564.html OnScreen Keyboard]. It was immediately included in Sean's image, to be released at [[User:Seanmcneil3|the usual page]] without mp3 support soon.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* For an armband to hold the Freerunner while exercising, Gilles Casse recommends the [http://www.caselogic.com/universal_mp3_sport_case_large/product_detail/index.cfm?modelid=120544 UMC-3] from Case Logic.&lt;br /&gt;
* Patrick Beck grafted a light on a miniusb - connector, to make an [http://yourse.de/wiki/doku.php?id=openmoko:usb_light OpenMoko flash light]. More lumens the bright white screen one get with the [http://projects.openmoko.org/projects/flashlight/ Flashlight] script.&lt;br /&gt;
* The [http://lists.openmoko.org/pipermail/community/2008-November/036132.html official fix] for buzzing is to add a 100uF capacity here and replace one resistor there. Technical details to be published in an Openmoko rework SOP paper. The company is looking at how to fix *all* devices sold.&lt;br /&gt;
* The Calypso GSM firmware moko10 was released, it fixes {{ticket|666}} for those users with 3G SIM cards. A few Indiana Jones types did try and follow [http://wiki.openmoko.org/wiki/GSM/Flashing the wiki instructions] to reflash, most with success, some with hubris (def: &amp;lt;i&amp;gt;excessive pride&amp;lt;/i&amp;gt;). For the rest of us, a user-friendly installer is being prepared.&lt;br /&gt;
&lt;br /&gt;
== Kernel and bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Big bad bug of the month prize goes to {{ticket|1841}} white screen of death (WSOD) after resume. This bug shows itself only by cold weather! Nicolas Dufresne found out that the culprit was probably a too tight timing in the JBT driver. Hopefully this will be fixed soon now, and we can all switch to Linux 2.6.28 happily everafter. Developpers must read [http://lists.openmoko.org/pipermail/community/2008-November/036142.html Andy's explanations] about kernel branch management.&lt;br /&gt;
&lt;br /&gt;
* Preview upcoming [http://lists.openmoko.org/nabble.html#nabble-td1569863 changes to the /sys] directory.&lt;br /&gt;
* Improvements to the touchscreen, backlight and accelleremometers kernel drivers.&lt;br /&gt;
* [[Qi]] gets lots of GTA03 love, audio back and a memory test ability (called when there are no valid kernels).&lt;br /&gt;
* The opkg package manager was patched to cache downloaded files.&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
* Removed the tagcloud extension that messed up with page formatting.&lt;br /&gt;
* There are many links to nice [[Ringtones]] on the wiki, but the page and the whole topic need a good overhaul.&lt;br /&gt;
* GnuPhone here we come: Sten Kvamme explains how to [http://lists.openmoko.org/pipermail/devel/2008-November/003318.html make a call from the command line] (on FSO).&lt;br /&gt;
* For your pleasure, here is the OpenMoko [[Jokes]] page. Thanks to the community, keep them coming ;) We (Coolcat and I) are also thinking about adding a pic of the week to the homepage, so stay tuned.&lt;br /&gt;
* Courtesy of Dale Maggee, [http://lists.openmoko.org/pipermail/community/2008-November/036053.html here] and [http://lists.openmoko.org/pipermail/community/2008-November/036142.html here] are a few funny splash screens. Note that you already trust Dale if you are using ''neotool'' to flash your Neo.&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-11-27T09:19:18Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Invitation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I made a crappy &amp;quot;game&amp;quot; in python using the accelerometer: &lt;br /&gt;
&lt;br /&gt;
http://www.semikolon.co.uk/blog/index.php?entry=entry081123-230715&lt;br /&gt;
&lt;br /&gt;
It's not much fun to play for more than 10s, but the code is commented and shows many things. &lt;br /&gt;
&lt;br /&gt;
Tickets I am interested in: &lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/2082&lt;br /&gt;
&lt;br /&gt;
==Invitation==&lt;br /&gt;
Hi:&lt;br /&gt;
I would like to invite you to write an introduction page for your game.&lt;br /&gt;
Would you like to share with us?&lt;br /&gt;
&lt;br /&gt;
[[User:Coolcat|coolcat]]&lt;br /&gt;
&lt;br /&gt;
Gromgull: It's not so much a game as a programming example. I have continued working on a few little things, I will write them up eventually and let you know!&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-11-24T09:27:53Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I made a crappy &amp;quot;game&amp;quot; in python using the accelerometer: &lt;br /&gt;
&lt;br /&gt;
http://www.semikolon.co.uk/blog/index.php?entry=entry081123-230715&lt;br /&gt;
&lt;br /&gt;
It's not much fun to play for more than 10s, but the code is commented and shows many things. &lt;br /&gt;
&lt;br /&gt;
Tickets I am interested in: &lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/2082&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wiki_Issues</id>
		<title>Wiki Issues</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wiki_Issues"/>
				<updated>2008-11-10T17:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* = Disappearing Pre-formatting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you think something is wrong with a Wiki page, please fix it. If the problem is larger with this Wiki in general, please add your thoughts on this page and mail the openmoko [https://lists.openmoko.org/mailman/listinfo/documentation| documentation mailing list]. You may just want to read existing proposals and put your vote on them, [[Wiki Maintainers]] will appreciate. [[Wiki Maintenance Agenda]].&lt;br /&gt;
&lt;br /&gt;
When adding an issue please&lt;br /&gt;
&lt;br /&gt;
* Provide a reason&lt;br /&gt;
* Provide your name as vote for the action to be taken (you can automatically enter your username by typing &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;~~~&amp;lt;/nowiki&amp;gt; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
{{Warning|Comments without name might be deleted without consideration. We may need to ask for more information before implementing a proposal. Thanks for understanding.}}&lt;br /&gt;
&lt;br /&gt;
Accepted and implemented requests should be deleted. Rejected requests should be moved to the bottom of the page to avoid requesting them again.&lt;br /&gt;
&lt;br /&gt;
==Wiki Pages==&lt;br /&gt;
&lt;br /&gt;
I think that we should use specific &amp;quot;editor's notes templates&amp;quot; rather that nominate individual pages here. We can make automatic list of pages using a given template by having a Category:X tag inside the template. See for example the [[:Category:ToDo]] . [[User:MinhHaDuong|MinhHaDuong]] 09:44, 7 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Pages capable of development===&lt;br /&gt;
* [[Openmoko:Community Portal]]&lt;br /&gt;
* [[AR6K]] (Needs more info)&lt;br /&gt;
* [[GTA02 partitions]]: seems to be about the GTA01; could someone with a GTA02 please correct the partition sizes and names?&lt;br /&gt;
* [[Advanced_End-user]], [[Basic_End-user]], [[System_Developer]]: These are not up to the standard we set for List Pages on [[Openmoko_Wiki_Editing_Guidelines#List_pages]] [[User:Kempelen|Kempelen]]&lt;br /&gt;
&lt;br /&gt;
===Redundant Pages===&lt;br /&gt;
* There are several pages concerning Openmoko compatible service providers:&lt;br /&gt;
** [[Carriers]], most up-to-date, confirmed service providers.&lt;br /&gt;
*** [[Carriers/ATT]]&lt;br /&gt;
*** [[Carriers/TMobile]]&lt;br /&gt;
*** [[Carriers/Fido]]&lt;br /&gt;
*** [[Carriers/Rogers]]&lt;br /&gt;
** [[Neo1973 compatible cellphone providers]]&lt;br /&gt;
&lt;br /&gt;
*I suggest merging the editing help pages:&lt;br /&gt;
**[[Help:Editing]]&lt;br /&gt;
**[[Edit Wiki]]&lt;br /&gt;
&lt;br /&gt;
*pages about GPS:&lt;br /&gt;
**[[Hardware:AGPS]]&lt;br /&gt;
**[[Gpsd]]&lt;br /&gt;
**[[Neo 1973 GPS]]&lt;br /&gt;
**[[Neo FreeRunner GPS]]&lt;br /&gt;
&lt;br /&gt;
*applications:&lt;br /&gt;
**[[Available Packages]]&lt;br /&gt;
**[[Applications]]&lt;br /&gt;
**[[Applications directory]]&lt;br /&gt;
**[[Om 2007.2 Applications]]&lt;br /&gt;
&lt;br /&gt;
===Tidy up===&lt;br /&gt;
* [[Wishlist:Text Input]] - tidy up/sort, give short feedback to each method&lt;br /&gt;
* [[Booting_from_SD]] - tidy up and a rewrite&lt;br /&gt;
&lt;br /&gt;
=== Pages proposed for deletion ===&lt;br /&gt;
&lt;br /&gt;
'''Please help cleaning these''': Check if there is a red (nonexisting) link in this table, click it, click &amp;quot;What links here&amp;quot; in the toolbox and '''update the broken links'''. When done, remove the deleted entry from this table.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellspacing=0&lt;br /&gt;
!Page&lt;br /&gt;
!Reason&lt;br /&gt;
!Yes kill it votes&lt;br /&gt;
!No keep it votes&lt;br /&gt;
|-&lt;br /&gt;
| Nothing is propsed for deletion at the moment || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See also: [[:Category:Candidates for speedy deletion]]&lt;br /&gt;
&lt;br /&gt;
=== Pages that especially need work ===&lt;br /&gt;
&lt;br /&gt;
* [[Special:Lonelypages]] - Orphaned pages&lt;br /&gt;
* [[Special:DoubleRedirects]] - Pages that redirect to a redirected page&lt;br /&gt;
* [[Special:Popularpages]] - Pages that get viewed a lot&lt;br /&gt;
* [[Special:Ancientpages]] - Old pages&lt;br /&gt;
* [[Special:Newpages]] - New pages&lt;br /&gt;
* [[Special:Wantedpages]] - Wanted pages&lt;br /&gt;
* [[Special:Uncategorizedpages]]&lt;br /&gt;
* [[Special:Shortpages]] - Informationally light pages&lt;br /&gt;
* [[Special:BrokenRedirects]] - Broken redirects&lt;br /&gt;
&lt;br /&gt;
=== Application pages ===&lt;br /&gt;
&lt;br /&gt;
Maturity level ideas from the documentation list copied by [[User:Kempelen|Kempelen]] 19:05, 1 October 2008 (UTC):&lt;br /&gt;
&lt;br /&gt;
* It might be nice to have a single word stating the code maturity, perhaps only 3 simple options like prototype, functional, mature&lt;br /&gt;
* Why not stick with pre-alpha, alpha, beta, stable, mature&lt;br /&gt;
&lt;br /&gt;
Decision postponed. :-) (Feel free to vote here anyway.)&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
{{Main|:Category talk:Categories}}&lt;br /&gt;
&lt;br /&gt;
== CSS ==&lt;br /&gt;
&lt;br /&gt;
We have discussed design on the mailing list, with the conclusion that revising was not a big priority. However, the wiki should be skinnable from user-space by editing : http://wiki.openmoko.org/wiki/MediaWiki:Common.css . And for development, each user can have his/her own CSS to eat his own dogfood. But I can't seem to make this feature work here.&lt;br /&gt;
Reference: http://en.wikipedia.org/wiki/Help:Monobook&lt;br /&gt;
[[User:MinhHaDuong|MinhHaDuong]] 12:26, 12 September 2008 (UTC).&lt;br /&gt;
&lt;br /&gt;
* The gutter is too wide&lt;br /&gt;
* Too much footer's padding&lt;br /&gt;
* Could shave 1 or 2 em of vertical space in the header&lt;br /&gt;
* The tabbed navigation layout is non-standard (no framing effect)&lt;br /&gt;
* The search box is below the fold (depends on window height of course)&lt;br /&gt;
* The toolbox (bottom left) has no border&lt;br /&gt;
* Mediawiki's user personal toolbox is prohibited&lt;br /&gt;
* Too many links in the navbar that belongs to the home page but not to every page&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
&lt;br /&gt;
We should explore another wiki organization tool: [http://en.wikipedia.org/wiki/Portal:Contents/Portals portals]. A portal is an introductory page for a given topic. It complements the main article of the subject by introducing the reader to key articles, images, and categories that further describe the subject. Portals also help editors find related projects and things they can do to help. [[User:MinhHaDuong|MinhHaDuong]] 13:53, 20 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Navigation templates ==&lt;br /&gt;
&lt;br /&gt;
(FYI Description moved to [[Openmoko_Wiki_Editing_Guidelines#Navigation_templates]], [[User:Kempelen|Kempelen]])&lt;br /&gt;
&lt;br /&gt;
* The [[Distributions]] page feature a non-templated navigation box&lt;br /&gt;
* We should name these templates distinctly. I suggest using a prefix like &amp;quot;NavBox:&amp;quot;.&lt;br /&gt;
* Visual design is by hand (not CSS), and not beautiful&lt;br /&gt;
* Need to test positioning at bottom of article.&lt;br /&gt;
&lt;br /&gt;
'''References'''&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:Navigation_templates&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:Categories,_lists,_and_series_boxes&lt;br /&gt;
&lt;br /&gt;
[http://lists.openmoko.org/pipermail/documentation/2008-August/000405.html First discussion in the mailing list] (Note: in the middle of a thread about left navboxes)&lt;br /&gt;
&lt;br /&gt;
* '''Yes votes''': [[User:Kempelen|Kempelen]] (For real wikipedia like navigation templates at the bottom, not at TOC position, we should move this section to editing guidelines as soon as template implementation improves a bit. Do not delete this please!)&lt;br /&gt;
&lt;br /&gt;
== DolfjeBot1 proposals ==&lt;br /&gt;
Their is a bot on the openmoko wiki that's controlled by [[User:Dolfje]]. If you have tasks for the bot, please put them [[User:DolfjeBot1|here]].&lt;br /&gt;
A request has been made to tag DolfjeBot1 user account with the 'bot' flag. [[Special:Listusers/bureaucrat| Here is the lists of users]] with permissions at the necessary `bureaucrat' level.&lt;br /&gt;
&lt;br /&gt;
==Wiki engine issues==&lt;br /&gt;
&lt;br /&gt;
=== Disappearing Pre-formatting ===&lt;br /&gt;
There is an issue with pre-formatting disappearing when people edit. See for instance recent edits here:&lt;br /&gt;
&lt;br /&gt;
http://wiki.openmoko.org/index.php?title=Accelerometer_data_retrieval&amp;amp;diff=59334&amp;amp;oldid=55556&lt;br /&gt;
&lt;br /&gt;
Actually I thing it's whitespace in general that is lost since python/ruby code is also messed up.&lt;br /&gt;
I have confirmed that this happens cross browser (both firefox3 and opera), but not on all pages, and not for all people.&lt;br /&gt;
&lt;br /&gt;
[[User:Gromgull|Gromgull]] 10:47, 9 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Can we please install/fix the following features for this wiki:&lt;br /&gt;
* '''Math''' - the Tex math markup does not work currently. Test:&lt;br /&gt;
** &amp;lt;math&amp;gt; z =\left (1-\left(\frac{P_{ind}}{101.325}\right)^{0.190263} \right ) \times \frac{87.828}{0.00198122} &amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt; P_{ind} &amp;lt;/math&amp;gt;&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi '''Syntax''' Highlighting - makes code much more readable]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:GraphViz GraphViz] works with the commonly known dot language - it allows us to draw '''graphs''' using easy markup.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:AnyWikiDraw AnyWikiDraw] allows us to draw svg '''diagrams''' directly on the wiki page.&lt;br /&gt;
* Make '''visited links''' a different color.&lt;br /&gt;
&lt;br /&gt;
== Change Sitename ==&lt;br /&gt;
&lt;br /&gt;
The name of this wiki is currently &amp;quot;Openmoko&amp;quot;. I think it should be &amp;quot;Openmoko Wiki&amp;quot; for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* The other parts of this site (Planet, Projects, Docs) have similar names&lt;br /&gt;
* Media Wiki automatically creates a [http://www.mediawiki.org/wiki/Manual:Namespace namespace] for the Sitename (currently &amp;quot;Openmoko&amp;quot;). This means that content of pages beginning with &amp;quot;Openmoko:&amp;quot; cannot be found through the normal search function of this wiki. (At the moment there are five pages of this kind: [[Openmoko:About]], [[Openmoko:Community Portal]], [[Openmoko:Current events]], [[Openmoko:Searching]], [[Openmoko:Privacy policy]])--[[User:Marko Knöbl|Marko Knöbl]] 18:33, 8 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
'''Yes votes''': [[User:Marko Knöbl|Marko Knöbl]], [[User:MinhHaDuong|Minh]]&lt;br /&gt;
&lt;br /&gt;
'''No votes''':&lt;br /&gt;
&lt;br /&gt;
::OpenmokoIT still do some research now. [[User:Coolcat|coolcat]]&lt;br /&gt;
&lt;br /&gt;
== Organize translations ==&lt;br /&gt;
&lt;br /&gt;
I suggest moving the translations to sub-wikis, like the way wikipedia does it. Currently all translations show up in searches and under category-lists. --[[User:Johndoesacc|Johndoesacc]] 12:03, 25 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
+1. See issues and solutions for a multilingual mediawiki at:&lt;br /&gt;
http://www.mediawiki.org/wiki/Multilingual_MediaWiki&lt;br /&gt;
Also, the correspondence between translation should be maintained with tags:&lt;br /&gt;
http://en.wikipedia.org/wiki/Help:Interlanguage_links&lt;br /&gt;
The request [http://lists.openmoko.org/pipermail/documentation/2008-September/000557.html has been heard] but maybe not in the right places. What is the best operational frequency to ping the hosting engineers for that ? [[User:MinhHaDuong|MinhHaDuong]] 13:02, 10 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
After discussion on the Documentation ML, sub-wikis are out. We want to try namespaces. [[User:MinhHaDuong|MinhHaDuong]] 09:31, 7 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Symlinks in download directories ===&lt;br /&gt;
&lt;br /&gt;
This is not strictly Wiki issue, but discussed on the documentation list as being a serious usability disadvantage. Symlinks and .tar.gz files should be removed from the release directories because they confuse users. Ref: [http://lists.openmoko.org/pipermail/documentation/2008-September/000808.html]&lt;br /&gt;
&lt;br /&gt;
=== Improve README.html ===&lt;br /&gt;
&lt;br /&gt;
Example: http://downloads.openmoko.org/releases/Om2008.9/README.html&lt;br /&gt;
&lt;br /&gt;
It should at least link to: [[Om_2008.9_Update#Download_and_Flashing]]&lt;br /&gt;
&lt;br /&gt;
== Rejected requests ==&lt;br /&gt;
&lt;br /&gt;
When a requested Wiki Issue is voted for not to be done, it must be moved here, to make sure it won't get continously requested again.&lt;br /&gt;
&lt;br /&gt;
* '''Don't translate the wiki - rejected''' proposed by [[User:Minime|Minime]] August 2007, moved to rejected by [[User:Kempelen|Kempelen]] August 2008: the Documentation Team looks to support the idea.&lt;br /&gt;
* '''Use namespaces to separate user-oriented and developper-oriented content'''. Assuming the default namespace is user-oriented that would exclude developper-oriented pages from searches (unless the user ticks the box, but who does ?). And it can't be done purely in the wiki, it needs admin time. Better to use categories and a prefix in the page name (like BlendeWiki). [[:User:MinhHaDuong|MinhHaDuong]]&lt;br /&gt;
* '''Use category pages instead List Pages''' Good list pages are allowed and encouraged, as the documentation team today agreed on the mailing list. [[User:Kempelen|Kempelen]] 21:27, 30 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Wiki Editing]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User_talk:AlainBb</id>
		<title>User talk:AlainBb</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User_talk:AlainBb"/>
				<updated>2008-11-09T13:15:51Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: New page: Hi, I've made the edit to the accelerometer page. Space disappears for me too, but I copy paste the original ruby and python code and I was able to make the edit. Something is very broken ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, I've made the edit to the accelerometer page. Space disappears for me too, but I copy paste the original ruby and python code and I was able to make the edit. Something is very broken though, I've added a note to [[Wiki Issues]] and emailed the documentation mailinglist, hopefully someone will sort this out. &lt;br /&gt;
&lt;br /&gt;
[[User:Gromgull|Gromgull]] 13:15, 9 November 2008 (UTC)&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval</id>
		<title>Accelerometer data retrieval</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval"/>
				<updated>2008-11-09T13:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Test application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scope==&lt;br /&gt;
&lt;br /&gt;
This document describes a way to access the data provided by the&lt;br /&gt;
accelerometers. Furthermore the format of the acquired datastream is explained&lt;br /&gt;
in detail. This document does not cover the physical basics of acceleration or&lt;br /&gt;
the mathematical details on this subject.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Axis orientation==&lt;br /&gt;
&lt;br /&gt;
To understand the values provided by the accelerometers it is crucial to&lt;br /&gt;
understand how the sensors are oriented. In the following I will refer to the&lt;br /&gt;
sensors as first and second sensor. The way to access the data sources of&lt;br /&gt;
these two will be described later on in this document.&lt;br /&gt;
&lt;br /&gt;
The Z axis is pointing from the display downwards to to the back of the&lt;br /&gt;
openmoko. This applies to both of the sensors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the first sensor===&lt;br /&gt;
&lt;br /&gt;
To explain the axis orientation I have created some images for easier&lt;br /&gt;
understanding.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the second sensor===&lt;br /&gt;
&lt;br /&gt;
In contrast to the first sensor the second one is turned 45 degrees around the&lt;br /&gt;
Z axis. See the attached image to get a clue about its orientation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation2.png|Axis orientation of the second accelerometer]]&lt;br /&gt;
&lt;br /&gt;
==Data acquisition==&lt;br /&gt;
&lt;br /&gt;
The information from both of the accelerometers is exported through two&lt;br /&gt;
different input event based file mappings. These device nodes can be found at&lt;br /&gt;
''/dev/input/event2'' and ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
The sensor I am refering to as the first one is ''event2''. Therefore the second&lt;br /&gt;
one is accessible through the ''event3'' device.&lt;br /&gt;
&lt;br /&gt;
These device nodes can be opened by the default filesystems calls for reading&lt;br /&gt;
files. The data can be read from the stream as soon as the sensor measures it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data structure==&lt;br /&gt;
&lt;br /&gt;
To be able to use the measured data it is important to understand the format&lt;br /&gt;
in which the data is provided.&lt;br /&gt;
The structure of the given data is based on the kernel input event message&lt;br /&gt;
system which exports the following data structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct input_event {&lt;br /&gt;
struct timeval time;&lt;br /&gt;
__u16 type;&lt;br /&gt;
__u16 code;&lt;br /&gt;
__s32 value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data is written to the stream message by message. Therefore the minimal&lt;br /&gt;
used blocksize is 128 bit (16 byte).&lt;br /&gt;
&lt;br /&gt;
Lets have a look at an example readout of the accelerometer data, divided into&lt;br /&gt;
the used sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8c66 4819 721c 0006   0002   0002   03a8 0000&lt;br /&gt;
8c66 4819 7222 0006   0000   0000   0000 0000&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000   0000 0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think the time structure does not need further explaination. A lot more&lt;br /&gt;
interesting is the type, code and value part of every message. Lets take a&lt;br /&gt;
closer look at these parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event types===&lt;br /&gt;
&lt;br /&gt;
The types categorize the incoming messages. All possible types can be found in&lt;br /&gt;
the kernel sources or include files in ''INCLUDEDIR/linux/input.h''&lt;br /&gt;
During the tests with the accelerometers I observed the fact that only two&lt;br /&gt;
different message types are used.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:According to ''linux/input.h'' this event is called ''EV_SYN''. It signals the wish to ''syncronize''. Normally this event is used in combination with code 0x00 to mark the send data complete and therefore applyable.&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:This event is called ''EV_REL'' and signals ''relative movement''. It is used to transmit the acceleration the sensors encounter.&lt;br /&gt;
&lt;br /&gt;
The definition should not be taken too seriously in this context, because the&lt;br /&gt;
data values provided by the accelerometer always represent the absolute&lt;br /&gt;
acceleration measured at the given time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event codes===&lt;br /&gt;
&lt;br /&gt;
Both types of event may supply different codes. These codes can be understood&lt;br /&gt;
as some kind of further specification about the specified data values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Syncronization event codes====&lt;br /&gt;
&lt;br /&gt;
The syncronization event may use quite a lot of codes, as ''linux/input.h''&lt;br /&gt;
shows. However the only used one seems to be the 0x00 code.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:This code is refered to as SYN_REPORT. It means that the last dataset was completely transmitted. Therefore the before transmitted set of data values can be considered complete. This means if this message is recieved you may process the given data further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Relative movement event codes====&lt;br /&gt;
&lt;br /&gt;
The amount of possible codes for this event type is quite big. The only used&lt;br /&gt;
ones are the following ones.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:REL_X - Acceleration in x direction&lt;br /&gt;
&lt;br /&gt;
;0x01:&lt;br /&gt;
:REL_Y - Acceleration in y direction&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:REL_Z - Acceleration in z direction&lt;br /&gt;
&lt;br /&gt;
The X, Y and Z axis are to be understand as defined in the chapter about [[#Axis_orientation|Axis orientation]].&lt;br /&gt;
&lt;br /&gt;
===A typical message block===&lt;br /&gt;
&lt;br /&gt;
A typical message block consists of 3 messages containing the acceleration&lt;br /&gt;
data for every of the three axis followed by a syncronization message to&lt;br /&gt;
signal the end of the block.&lt;br /&gt;
&lt;br /&gt;
The following example is such a message block with detailed explanation of its&lt;br /&gt;
different messages and data sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_X  |-Value-|&lt;br /&gt;
(Measured acceleration in x axis direction of 72)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Y  |-Value-|&lt;br /&gt;
(Measured acceleration in y axis direction of 36)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Z  |-Value-|&lt;br /&gt;
(Measured acceleration in z axis direction of 918)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000        0000 0000&lt;br /&gt;
|------Time-------|  EV_SYN  SYN_REPORT  |-Value-|&lt;br /&gt;
(The transmitted data block is complete you may process the given data)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test application==&lt;br /&gt;
&lt;br /&gt;
A simple test application written in ruby:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
File.open(&amp;quot;/dev/input/event3&amp;quot;) do |f|&lt;br /&gt;
  while true&lt;br /&gt;
    event = f.read(16).unpack(&amp;quot;llSSl&amp;quot;)&lt;br /&gt;
    time = event[0] + event[1] / 1000000.0&lt;br /&gt;
    type = event[2]&lt;br /&gt;
    code = event[3]&lt;br /&gt;
    value = event[4]&lt;br /&gt;
    if type == 2&lt;br /&gt;
      x = value if code == 0&lt;br /&gt;
      y = value if code == 1&lt;br /&gt;
      z = value if code == 2&lt;br /&gt;
    end&lt;br /&gt;
    if type == 0 &amp;amp;&amp;amp; code == 0&lt;br /&gt;
      sum = Math::sqrt(x*x + y*y + z*z).to_i&lt;br /&gt;
      printf(&amp;quot;%5d %5d %5d %5d\n&amp;quot;, x, y, z, sum)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent version in python:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import struct&lt;br /&gt;
from math import sqrt&lt;br /&gt;
&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
#int, int, short, short, int&lt;br /&gt;
fmt = 'iihhi'&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
in_file = open(secondsensorfile,&amp;quot;rb&amp;quot;)&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
while event:&lt;br /&gt;
	(time1,time2, type, code, value) = \&lt;br /&gt;
		struct.unpack(fmt,event)&lt;br /&gt;
	time = time1 + time2 / 1000000.0&lt;br /&gt;
&lt;br /&gt;
	if type == 2:&lt;br /&gt;
		if code == 0:&lt;br /&gt;
			x = value&lt;br /&gt;
		if code == 1:&lt;br /&gt;
			y = value&lt;br /&gt;
		if code == 2:&lt;br /&gt;
			z = value&lt;br /&gt;
	if type == 0 and code == 0:&lt;br /&gt;
		sum = int(sqrt(x*x + y*y + z*z))&lt;br /&gt;
		print x, y, z, sum&lt;br /&gt;
	event = in_file.read(16)&lt;br /&gt;
in_file.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent in Perl&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
$x = 0;&lt;br /&gt;
$y = 0;&lt;br /&gt;
$z = 0;&lt;br /&gt;
&lt;br /&gt;
$secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;;&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
open FILE, $secondsensorfile;&lt;br /&gt;
binmode FILE;&lt;br /&gt;
&lt;br /&gt;
while (read FILE, $buf,16) {&lt;br /&gt;
    ($t1,$t2,$type,$code,$value)=unpack &amp;quot;iissi&amp;quot;,$buf;&lt;br /&gt;
    if ($type==2) {&lt;br /&gt;
	if ($code==0) {$x=$value};&lt;br /&gt;
	if ($code==1) {$y=$value};&lt;br /&gt;
	if ($code==2) {$z=$value};&lt;br /&gt;
    }&lt;br /&gt;
    if (($type==0) &amp;amp;&amp;amp; (code==0)) {&lt;br /&gt;
        printf &amp;quot;%f %05d %05d %05d\n&amp;quot;,$t1+$t2/1000000,$x,$y,$z;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The /sys interface ==&lt;br /&gt;
&lt;br /&gt;
To get the sampling rate of the first accelerometer ''spi0.0'' :&lt;br /&gt;
&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
100&lt;br /&gt;
&lt;br /&gt;
To set the sampling rate :&lt;br /&gt;
&lt;br /&gt;
# echo 400 &amp;gt; /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
400&lt;br /&gt;
&lt;br /&gt;
The other one is ''spi0.1''. See [[GTA02 sysfs#Accelerometers]] for the other options.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Accelerometer_Fundamentals]]&lt;br /&gt;
* [[Gestures]], [http://code.google.com/p/accelges/source/browse/trunk/accelneo/src/accelneo.c code sample]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://projects.openmoko.org/projects/gestures/ Openmoko Motion Gestures]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Accelerometer Wikipedia - Accelerometer]&lt;br /&gt;
* [http://dev.borza.ro/demo/Motion-based%20Gesture%20Recognition%20with%20an%20Accelerometer/Paper.pdf Motion-based Gesture Recognition with an Accelerometer - Paper]&lt;br /&gt;
* [http://www.youtube.com/watch?v=s5QMW8k5nis YouTube video: Playing with Accelerometers]&lt;br /&gt;
* [http://westhoffswelt.de/blog/my_first_openmoko_application.html Magic Eightball Application using the Accelerometers]&lt;br /&gt;
&lt;br /&gt;
[[Category:Accelerometer]]&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wiki_Issues</id>
		<title>Wiki Issues</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wiki_Issues"/>
				<updated>2008-11-09T10:47:26Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Wiki engine issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you think something is wrong with a Wiki page, please fix it. If the problem is larger with this Wiki in general, please add your thoughts on this page and mail the openmoko [https://lists.openmoko.org/mailman/listinfo/documentation| documentation mailing list]. You may just want to read existing proposals and put your vote on them, [[Wiki Maintainers]] will appreciate. [[Wiki Maintenance Agenda]].&lt;br /&gt;
&lt;br /&gt;
When adding an issue please&lt;br /&gt;
&lt;br /&gt;
* Provide a reason&lt;br /&gt;
* Provide your name as vote for the action to be taken (you can automatically enter your username by typing &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;~~~&amp;lt;/nowiki&amp;gt; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
{{Warning|Comments without name might be deleted without consideration. We may need to ask for more information before implementing a proposal. Thanks for understanding.}}&lt;br /&gt;
&lt;br /&gt;
Accepted and implemented requests should be deleted. Rejected requests should be moved to the bottom of the page to avoid requesting them again.&lt;br /&gt;
&lt;br /&gt;
==Wiki Pages==&lt;br /&gt;
&lt;br /&gt;
I think that we should use specific &amp;quot;editor's notes templates&amp;quot; rather that nominate individual pages here. We can make automatic list of pages using a given template by having a Category:X tag inside the template. See for example the [[:Category:ToDo]] . [[User:MinhHaDuong|MinhHaDuong]] 09:44, 7 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Pages capable of development===&lt;br /&gt;
* [[Openmoko:Community Portal]]&lt;br /&gt;
* [[AR6K]] (Needs more info)&lt;br /&gt;
* [[GTA02 partitions]]: seems to be about the GTA01; could someone with a GTA02 please correct the partition sizes and names?&lt;br /&gt;
* [[Advanced_End-user]], [[Basic_End-user]], [[System_Developer]]: These are not up to the standard we set for List Pages on [[Openmoko_Wiki_Editing_Guidelines#List_pages]] [[User:Kempelen|Kempelen]]&lt;br /&gt;
&lt;br /&gt;
===Redundant Pages===&lt;br /&gt;
* There are several pages concerning Openmoko compatible service providers:&lt;br /&gt;
** [[Carriers]], most up-to-date, confirmed service providers.&lt;br /&gt;
*** [[Carriers/ATT]]&lt;br /&gt;
*** [[Carriers/TMobile]]&lt;br /&gt;
*** [[Carriers/Fido]]&lt;br /&gt;
*** [[Carriers/Rogers]]&lt;br /&gt;
** [[Neo1973 compatible cellphone providers]]&lt;br /&gt;
&lt;br /&gt;
*I suggest merging the editing help pages:&lt;br /&gt;
**[[Help:Editing]]&lt;br /&gt;
**[[Edit Wiki]]&lt;br /&gt;
&lt;br /&gt;
*pages about GPS:&lt;br /&gt;
**[[Hardware:AGPS]]&lt;br /&gt;
**[[Gpsd]]&lt;br /&gt;
**[[Neo 1973 GPS]]&lt;br /&gt;
**[[Neo FreeRunner GPS]]&lt;br /&gt;
&lt;br /&gt;
*applications:&lt;br /&gt;
**[[Available Packages]]&lt;br /&gt;
**[[Applications]]&lt;br /&gt;
**[[Applications directory]]&lt;br /&gt;
**[[Om 2007.2 Applications]]&lt;br /&gt;
&lt;br /&gt;
===Tidy up===&lt;br /&gt;
* [[Wishlist:Text Input]] - tidy up/sort, give short feedback to each method&lt;br /&gt;
* [[Booting_from_SD]] - tidy up and a rewrite&lt;br /&gt;
&lt;br /&gt;
=== Pages proposed for deletion ===&lt;br /&gt;
&lt;br /&gt;
'''Please help cleaning these''': Check if there is a red (nonexisting) link in this table, click it, click &amp;quot;What links here&amp;quot; in the toolbox and '''update the broken links'''. When done, remove the deleted entry from this table.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellspacing=0&lt;br /&gt;
!Page&lt;br /&gt;
!Reason&lt;br /&gt;
!Yes kill it votes&lt;br /&gt;
!No keep it votes&lt;br /&gt;
|-&lt;br /&gt;
| Nothing is propsed for deletion at the moment || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See also: [[:Category:Candidates for speedy deletion]]&lt;br /&gt;
&lt;br /&gt;
=== Pages that especially need work ===&lt;br /&gt;
&lt;br /&gt;
* [[Special:Lonelypages]] - Orphaned pages&lt;br /&gt;
* [[Special:DoubleRedirects]] - Pages that redirect to a redirected page&lt;br /&gt;
* [[Special:Popularpages]] - Pages that get viewed a lot&lt;br /&gt;
* [[Special:Ancientpages]] - Old pages&lt;br /&gt;
* [[Special:Newpages]] - New pages&lt;br /&gt;
* [[Special:Wantedpages]] - Wanted pages&lt;br /&gt;
* [[Special:Uncategorizedpages]]&lt;br /&gt;
* [[Special:Shortpages]] - Informationally light pages&lt;br /&gt;
* [[Special:BrokenRedirects]] - Broken redirects&lt;br /&gt;
&lt;br /&gt;
=== Application pages ===&lt;br /&gt;
&lt;br /&gt;
Maturity level ideas from the documentation list copied by [[User:Kempelen|Kempelen]] 19:05, 1 October 2008 (UTC):&lt;br /&gt;
&lt;br /&gt;
* It might be nice to have a single word stating the code maturity, perhaps only 3 simple options like prototype, functional, mature&lt;br /&gt;
* Why not stick with pre-alpha, alpha, beta, stable, mature&lt;br /&gt;
&lt;br /&gt;
Decision postponed. :-) (Feel free to vote here anyway.)&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
{{Main|:Category talk:Categories}}&lt;br /&gt;
&lt;br /&gt;
== CSS ==&lt;br /&gt;
&lt;br /&gt;
We have discussed design on the mailing list, with the conclusion that revising was not a big priority. However, the wiki should be skinnable from user-space by editing : http://wiki.openmoko.org/wiki/MediaWiki:Common.css . And for development, each user can have his/her own CSS to eat his own dogfood. But I can't seem to make this feature work here.&lt;br /&gt;
Reference: http://en.wikipedia.org/wiki/Help:Monobook&lt;br /&gt;
[[User:MinhHaDuong|MinhHaDuong]] 12:26, 12 September 2008 (UTC).&lt;br /&gt;
&lt;br /&gt;
* The gutter is too wide&lt;br /&gt;
* Too much footer's padding&lt;br /&gt;
* Could shave 1 or 2 em of vertical space in the header&lt;br /&gt;
* The tabbed navigation layout is non-standard (no framing effect)&lt;br /&gt;
* The search box is below the fold (depends on window height of course)&lt;br /&gt;
* The toolbox (bottom left) has no border&lt;br /&gt;
* Mediawiki's user personal toolbox is prohibited&lt;br /&gt;
* Too many links in the navbar that belongs to the home page but not to every page&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
&lt;br /&gt;
We should explore another wiki organization tool: [http://en.wikipedia.org/wiki/Portal:Contents/Portals portals]. A portal is an introductory page for a given topic. It complements the main article of the subject by introducing the reader to key articles, images, and categories that further describe the subject. Portals also help editors find related projects and things they can do to help. [[User:MinhHaDuong|MinhHaDuong]] 13:53, 20 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Navigation templates ==&lt;br /&gt;
&lt;br /&gt;
(FYI Description moved to [[Openmoko_Wiki_Editing_Guidelines#Navigation_templates]], [[User:Kempelen|Kempelen]])&lt;br /&gt;
&lt;br /&gt;
* The [[Distributions]] page feature a non-templated navigation box&lt;br /&gt;
* We should name these templates distinctly. I suggest using a prefix like &amp;quot;NavBox:&amp;quot;.&lt;br /&gt;
* Visual design is by hand (not CSS), and not beautiful&lt;br /&gt;
* Need to test positioning at bottom of article.&lt;br /&gt;
&lt;br /&gt;
'''References'''&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:Navigation_templates&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:Categories,_lists,_and_series_boxes&lt;br /&gt;
&lt;br /&gt;
[http://lists.openmoko.org/pipermail/documentation/2008-August/000405.html First discussion in the mailing list] (Note: in the middle of a thread about left navboxes)&lt;br /&gt;
&lt;br /&gt;
* '''Yes votes''': [[User:Kempelen|Kempelen]] (For real wikipedia like navigation templates at the bottom, not at TOC position, we should move this section to editing guidelines as soon as template implementation improves a bit. Do not delete this please!)&lt;br /&gt;
&lt;br /&gt;
== DolfjeBot1 proposals ==&lt;br /&gt;
Their is a bot on the openmoko wiki that's controlled by [[User:Dolfje]]. If you have tasks for the bot, please put them [[User:DolfjeBot1|here]].&lt;br /&gt;
A request has been made to tag DolfjeBot1 user account with the 'bot' flag. [[Special:Listusers/bureaucrat| Here is the lists of users]] with permissions at the necessary `bureaucrat' level.&lt;br /&gt;
&lt;br /&gt;
==Wiki engine issues==&lt;br /&gt;
&lt;br /&gt;
=== Disappearing Pre-formatting ==&lt;br /&gt;
There is an issue with pre-formatting disappearing when people edit. See for instance recent edits here:&lt;br /&gt;
&lt;br /&gt;
http://wiki.openmoko.org/index.php?title=Accelerometer_data_retrieval&amp;amp;diff=59334&amp;amp;oldid=55556&lt;br /&gt;
&lt;br /&gt;
Actually I thing it's whitespace in general that is lost since python/ruby code is also messed up.&lt;br /&gt;
I have confirmed that this happens cross browser (both firefox3 and opera), but not on all pages, and not for all people.&lt;br /&gt;
&lt;br /&gt;
[[User:Gromgull|Gromgull]] 10:47, 9 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Can we please install/fix the following features for this wiki:&lt;br /&gt;
* '''Math''' - the Tex math markup does not work currently. Test:&lt;br /&gt;
** &amp;lt;math&amp;gt; z =\left (1-\left(\frac{P_{ind}}{101.325}\right)^{0.190263} \right ) \times \frac{87.828}{0.00198122} &amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt; P_{ind} &amp;lt;/math&amp;gt;&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi '''Syntax''' Highlighting - makes code much more readable]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:GraphViz GraphViz] works with the commonly known dot language - it allows us to draw '''graphs''' using easy markup.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:AnyWikiDraw AnyWikiDraw] allows us to draw svg '''diagrams''' directly on the wiki page.&lt;br /&gt;
* Make '''visited links''' a different color.&lt;br /&gt;
&lt;br /&gt;
== Change Sitename ==&lt;br /&gt;
&lt;br /&gt;
The name of this wiki is currently &amp;quot;Openmoko&amp;quot;. I think it should be &amp;quot;Openmoko Wiki&amp;quot; for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* The other parts of this site (Planet, Projects, Docs) have similar names&lt;br /&gt;
* Media Wiki automatically creates a [http://www.mediawiki.org/wiki/Manual:Namespace namespace] for the Sitename (currently &amp;quot;Openmoko&amp;quot;). This means that content of pages beginning with &amp;quot;Openmoko:&amp;quot; cannot be found through the normal search function of this wiki. (At the moment there are five pages of this kind: [[Openmoko:About]], [[Openmoko:Community Portal]], [[Openmoko:Current events]], [[Openmoko:Searching]], [[Openmoko:Privacy policy]])--[[User:Marko Knöbl|Marko Knöbl]] 18:33, 8 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
'''Yes votes''': [[User:Marko Knöbl|Marko Knöbl]], [[User:MinhHaDuong|Minh]]&lt;br /&gt;
&lt;br /&gt;
'''No votes''':&lt;br /&gt;
&lt;br /&gt;
::OpenmokoIT still do some research now. [[User:Coolcat|coolcat]]&lt;br /&gt;
&lt;br /&gt;
== Organize translations ==&lt;br /&gt;
&lt;br /&gt;
I suggest moving the translations to sub-wikis, like the way wikipedia does it. Currently all translations show up in searches and under category-lists. --[[User:Johndoesacc|Johndoesacc]] 12:03, 25 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
+1. See issues and solutions for a multilingual mediawiki at:&lt;br /&gt;
http://www.mediawiki.org/wiki/Multilingual_MediaWiki&lt;br /&gt;
Also, the correspondence between translation should be maintained with tags:&lt;br /&gt;
http://en.wikipedia.org/wiki/Help:Interlanguage_links&lt;br /&gt;
The request [http://lists.openmoko.org/pipermail/documentation/2008-September/000557.html has been heard] but maybe not in the right places. What is the best operational frequency to ping the hosting engineers for that ? [[User:MinhHaDuong|MinhHaDuong]] 13:02, 10 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
After discussion on the Documentation ML, sub-wikis are out. We want to try namespaces. [[User:MinhHaDuong|MinhHaDuong]] 09:31, 7 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Symlinks in download directories ===&lt;br /&gt;
&lt;br /&gt;
This is not strictly Wiki issue, but discussed on the documentation list as being a serious usability disadvantage. Symlinks and .tar.gz files should be removed from the release directories because they confuse users. Ref: [http://lists.openmoko.org/pipermail/documentation/2008-September/000808.html]&lt;br /&gt;
&lt;br /&gt;
=== Improve README.html ===&lt;br /&gt;
&lt;br /&gt;
Example: http://downloads.openmoko.org/releases/Om2008.9/README.html&lt;br /&gt;
&lt;br /&gt;
It should at least link to: [[Om_2008.9_Update#Download_and_Flashing]]&lt;br /&gt;
&lt;br /&gt;
== Rejected requests ==&lt;br /&gt;
&lt;br /&gt;
When a requested Wiki Issue is voted for not to be done, it must be moved here, to make sure it won't get continously requested again.&lt;br /&gt;
&lt;br /&gt;
* '''Don't translate the wiki - rejected''' proposed by [[User:Minime|Minime]] August 2007, moved to rejected by [[User:Kempelen|Kempelen]] August 2008: the Documentation Team looks to support the idea.&lt;br /&gt;
* '''Use namespaces to separate user-oriented and developper-oriented content'''. Assuming the default namespace is user-oriented that would exclude developper-oriented pages from searches (unless the user ticks the box, but who does ?). And it can't be done purely in the wiki, it needs admin time. Better to use categories and a prefix in the page name (like BlendeWiki). [[:User:MinhHaDuong|MinhHaDuong]]&lt;br /&gt;
* '''Use category pages instead List Pages''' Good list pages are allowed and encouraged, as the documentation team today agreed on the mailing list. [[User:Kempelen|Kempelen]] 21:27, 30 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Wiki Editing]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval</id>
		<title>Accelerometer data retrieval</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval"/>
				<updated>2008-11-09T10:35:42Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Test application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scope==&lt;br /&gt;
&lt;br /&gt;
This document describes a way to access the data provided by the&lt;br /&gt;
accelerometers. Furthermore the format of the acquired datastream is explained&lt;br /&gt;
in detail. This document does not cover the physical basics of acceleration or&lt;br /&gt;
the mathematical details on this subject.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Axis orientation==&lt;br /&gt;
&lt;br /&gt;
To understand the values provided by the accelerometers it is crucial to&lt;br /&gt;
understand how the sensors are oriented. In the following I will refer to the&lt;br /&gt;
sensors as first and second sensor. The way to access the data sources of&lt;br /&gt;
these two will be described later on in this document.&lt;br /&gt;
&lt;br /&gt;
The Z axis is pointing from the display downwards to to the back of the&lt;br /&gt;
openmoko. This applies to both of the sensors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the first sensor===&lt;br /&gt;
&lt;br /&gt;
To explain the axis orientation I have created some images for easier&lt;br /&gt;
understanding.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the second sensor===&lt;br /&gt;
&lt;br /&gt;
In contrast to the first sensor the second one is turned 45 degrees around the&lt;br /&gt;
Z axis. See the attached image to get a clue about its orientation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation2.png|Axis orientation of the second accelerometer]]&lt;br /&gt;
&lt;br /&gt;
==Data acquisition==&lt;br /&gt;
&lt;br /&gt;
The information from both of the accelerometers is exported through two&lt;br /&gt;
different input event based file mappings. These device nodes can be found at&lt;br /&gt;
''/dev/input/event2'' and ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
The sensor I am refering to as the first one is ''event2''. Therefore the second&lt;br /&gt;
one is accessible through the ''event3'' device.&lt;br /&gt;
&lt;br /&gt;
These device nodes can be opened by the default filesystems calls for reading&lt;br /&gt;
files. The data can be read from the stream as soon as the sensor measures it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data structure==&lt;br /&gt;
&lt;br /&gt;
To be able to use the measured data it is important to understand the format&lt;br /&gt;
in which the data is provided.&lt;br /&gt;
The structure of the given data is based on the kernel input event message&lt;br /&gt;
system which exports the following data structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct input_event {&lt;br /&gt;
struct timeval time;&lt;br /&gt;
__u16 type;&lt;br /&gt;
__u16 code;&lt;br /&gt;
__s32 value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data is written to the stream message by message. Therefore the minimal&lt;br /&gt;
used blocksize is 128 bit (16 byte).&lt;br /&gt;
&lt;br /&gt;
Lets have a look at an example readout of the accelerometer data, divided into&lt;br /&gt;
the used sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8c66 4819 721c 0006   0002   0002   03a8 0000&lt;br /&gt;
8c66 4819 7222 0006   0000   0000   0000 0000&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000   0000 0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think the time structure does not need further explaination. A lot more&lt;br /&gt;
interesting is the type, code and value part of every message. Lets take a&lt;br /&gt;
closer look at these parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event types===&lt;br /&gt;
&lt;br /&gt;
The types categorize the incoming messages. All possible types can be found in&lt;br /&gt;
the kernel sources or include files in ''INCLUDEDIR/linux/input.h''&lt;br /&gt;
During the tests with the accelerometers I observed the fact that only two&lt;br /&gt;
different message types are used.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:According to ''linux/input.h'' this event is called ''EV_SYN''. It signals the wish to ''syncronize''. Normally this event is used in combination with code 0x00 to mark the send data complete and therefore applyable.&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:This event is called ''EV_REL'' and signals ''relative movement''. It is used to transmit the acceleration the sensors encounter.&lt;br /&gt;
&lt;br /&gt;
The definition should not be taken too seriously in this context, because the&lt;br /&gt;
data values provided by the accelerometer always represent the absolute&lt;br /&gt;
acceleration measured at the given time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event codes===&lt;br /&gt;
&lt;br /&gt;
Both types of event may supply different codes. These codes can be understood&lt;br /&gt;
as some kind of further specification about the specified data values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Syncronization event codes====&lt;br /&gt;
&lt;br /&gt;
The syncronization event may use quite a lot of codes, as ''linux/input.h''&lt;br /&gt;
shows. However the only used one seems to be the 0x00 code.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:This code is refered to as SYN_REPORT. It means that the last dataset was completely transmitted. Therefore the before transmitted set of data values can be considered complete. This means if this message is recieved you may process the given data further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Relative movement event codes====&lt;br /&gt;
&lt;br /&gt;
The amount of possible codes for this event type is quite big. The only used&lt;br /&gt;
ones are the following ones.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:REL_X - Acceleration in x direction&lt;br /&gt;
&lt;br /&gt;
;0x01:&lt;br /&gt;
:REL_Y - Acceleration in y direction&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:REL_Z - Acceleration in z direction&lt;br /&gt;
&lt;br /&gt;
The X, Y and Z axis are to be understand as defined in the chapter about [[#Axis_orientation|Axis orientation]].&lt;br /&gt;
&lt;br /&gt;
===A typical message block===&lt;br /&gt;
&lt;br /&gt;
A typical message block consists of 3 messages containing the acceleration&lt;br /&gt;
data for every of the three axis followed by a syncronization message to&lt;br /&gt;
signal the end of the block.&lt;br /&gt;
&lt;br /&gt;
The following example is such a message block with detailed explanation of its&lt;br /&gt;
different messages and data sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_X  |-Value-|&lt;br /&gt;
(Measured acceleration in x axis direction of 72)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Y  |-Value-|&lt;br /&gt;
(Measured acceleration in y axis direction of 36)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Z  |-Value-|&lt;br /&gt;
(Measured acceleration in z axis direction of 918)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000        0000 0000&lt;br /&gt;
|------Time-------|  EV_SYN  SYN_REPORT  |-Value-|&lt;br /&gt;
(The transmitted data block is complete you may process the given data)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test application==&lt;br /&gt;
&lt;br /&gt;
A simple test application written in ruby:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
File.open(&amp;quot;/dev/input/event3&amp;quot;) do |f|&lt;br /&gt;
  while true&lt;br /&gt;
    event = f.read(16).unpack(&amp;quot;llSSl&amp;quot;)&lt;br /&gt;
    time = event[0] + event[1] / 1000000.0&lt;br /&gt;
    type = event[2]&lt;br /&gt;
    code = event[3]&lt;br /&gt;
    value = event[4]&lt;br /&gt;
    if type == 2&lt;br /&gt;
      x = value if code == 0&lt;br /&gt;
      y = value if code == 1&lt;br /&gt;
      z = value if code == 2&lt;br /&gt;
    end&lt;br /&gt;
    if type == 0 &amp;amp;&amp;amp; code == 0&lt;br /&gt;
      sum = Math::sqrt(x*x + y*y + z*z).to_i&lt;br /&gt;
      printf(&amp;quot;%5d %5d %5d %5d\n&amp;quot;, x, y, z, sum)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent version in python:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import struct&lt;br /&gt;
from math import sqrt&lt;br /&gt;
&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
#int, int, short, short, int&lt;br /&gt;
fmt = 'iihhi'&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
in_file = open(secondsensorfile,&amp;quot;rb&amp;quot;)&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
while event:&lt;br /&gt;
	(time1,time2, type, code, value) = \&lt;br /&gt;
		struct.unpack(fmt,event)&lt;br /&gt;
	time = time1 + time2 / 1000000.0&lt;br /&gt;
&lt;br /&gt;
	if type == 2:&lt;br /&gt;
		if code == 0:&lt;br /&gt;
			x = value&lt;br /&gt;
		if code == 1:&lt;br /&gt;
			y = value&lt;br /&gt;
		if code == 2:&lt;br /&gt;
			z = value&lt;br /&gt;
	if type == 0 and code == 0:&lt;br /&gt;
		sum = int(sqrt(x*x + y*y + z*z))&lt;br /&gt;
		print x, y, z, sum&lt;br /&gt;
	event = in_file.read(16)&lt;br /&gt;
in_file.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The /sys interface ==&lt;br /&gt;
&lt;br /&gt;
To get the sampling rate of the first accelerometer ''spi0.0'' :&lt;br /&gt;
&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
100&lt;br /&gt;
&lt;br /&gt;
To set the sampling rate :&lt;br /&gt;
&lt;br /&gt;
# echo 400 &amp;gt; /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
400&lt;br /&gt;
&lt;br /&gt;
The other one is ''spi0.1''. See [[GTA02 sysfs#Accelerometers]] for the other options.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Accelerometer_Fundamentals]]&lt;br /&gt;
* [[Gestures]], [http://code.google.com/p/accelges/source/browse/trunk/accelneo/src/accelneo.c code sample]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://projects.openmoko.org/projects/gestures/ Openmoko Motion Gestures]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Accelerometer Wikipedia - Accelerometer]&lt;br /&gt;
* [http://dev.borza.ro/demo/Motion-based%20Gesture%20Recognition%20with%20an%20Accelerometer/Paper.pdf Motion-based Gesture Recognition with an Accelerometer - Paper]&lt;br /&gt;
* [http://www.youtube.com/watch?v=s5QMW8k5nis YouTube video: Playing with Accelerometers]&lt;br /&gt;
* [http://westhoffswelt.de/blog/my_first_openmoko_application.html Magic Eightball Application using the Accelerometers]&lt;br /&gt;
&lt;br /&gt;
[[Category:Accelerometer]]&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval</id>
		<title>Accelerometer data retrieval</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval"/>
				<updated>2008-11-09T10:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Data structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scope==&lt;br /&gt;
&lt;br /&gt;
This document describes a way to access the data provided by the&lt;br /&gt;
accelerometers. Furthermore the format of the acquired datastream is explained&lt;br /&gt;
in detail. This document does not cover the physical basics of acceleration or&lt;br /&gt;
the mathematical details on this subject.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Axis orientation==&lt;br /&gt;
&lt;br /&gt;
To understand the values provided by the accelerometers it is crucial to&lt;br /&gt;
understand how the sensors are oriented. In the following I will refer to the&lt;br /&gt;
sensors as first and second sensor. The way to access the data sources of&lt;br /&gt;
these two will be described later on in this document.&lt;br /&gt;
&lt;br /&gt;
The Z axis is pointing from the display downwards to to the back of the&lt;br /&gt;
openmoko. This applies to both of the sensors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the first sensor===&lt;br /&gt;
&lt;br /&gt;
To explain the axis orientation I have created some images for easier&lt;br /&gt;
understanding.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the second sensor===&lt;br /&gt;
&lt;br /&gt;
In contrast to the first sensor the second one is turned 45 degrees around the&lt;br /&gt;
Z axis. See the attached image to get a clue about its orientation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation2.png|Axis orientation of the second accelerometer]]&lt;br /&gt;
&lt;br /&gt;
==Data acquisition==&lt;br /&gt;
&lt;br /&gt;
The information from both of the accelerometers is exported through two&lt;br /&gt;
different input event based file mappings. These device nodes can be found at&lt;br /&gt;
''/dev/input/event2'' and ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
The sensor I am refering to as the first one is ''event2''. Therefore the second&lt;br /&gt;
one is accessible through the ''event3'' device.&lt;br /&gt;
&lt;br /&gt;
These device nodes can be opened by the default filesystems calls for reading&lt;br /&gt;
files. The data can be read from the stream as soon as the sensor measures it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data structure==&lt;br /&gt;
&lt;br /&gt;
To be able to use the measured data it is important to understand the format&lt;br /&gt;
in which the data is provided.&lt;br /&gt;
The structure of the given data is based on the kernel input event message&lt;br /&gt;
system which exports the following data structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct input_event {&lt;br /&gt;
struct timeval time;&lt;br /&gt;
__u16 type;&lt;br /&gt;
__u16 code;&lt;br /&gt;
__s32 value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data is written to the stream message by message. Therefore the minimal&lt;br /&gt;
used blocksize is 128 bit (16 byte).&lt;br /&gt;
&lt;br /&gt;
Lets have a look at an example readout of the accelerometer data, divided into&lt;br /&gt;
the used sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8c66 4819 721c 0006   0002   0002   03a8 0000&lt;br /&gt;
8c66 4819 7222 0006   0000   0000   0000 0000&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000   0000 0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think the time structure does not need further explaination. A lot more&lt;br /&gt;
interesting is the type, code and value part of every message. Lets take a&lt;br /&gt;
closer look at these parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event types===&lt;br /&gt;
&lt;br /&gt;
The types categorize the incoming messages. All possible types can be found in&lt;br /&gt;
the kernel sources or include files in ''INCLUDEDIR/linux/input.h''&lt;br /&gt;
During the tests with the accelerometers I observed the fact that only two&lt;br /&gt;
different message types are used.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:According to ''linux/input.h'' this event is called ''EV_SYN''. It signals the wish to ''syncronize''. Normally this event is used in combination with code 0x00 to mark the send data complete and therefore applyable.&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:This event is called ''EV_REL'' and signals ''relative movement''. It is used to transmit the acceleration the sensors encounter.&lt;br /&gt;
&lt;br /&gt;
The definition should not be taken too seriously in this context, because the&lt;br /&gt;
data values provided by the accelerometer always represent the absolute&lt;br /&gt;
acceleration measured at the given time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event codes===&lt;br /&gt;
&lt;br /&gt;
Both types of event may supply different codes. These codes can be understood&lt;br /&gt;
as some kind of further specification about the specified data values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Syncronization event codes====&lt;br /&gt;
&lt;br /&gt;
The syncronization event may use quite a lot of codes, as ''linux/input.h''&lt;br /&gt;
shows. However the only used one seems to be the 0x00 code.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:This code is refered to as SYN_REPORT. It means that the last dataset was completely transmitted. Therefore the before transmitted set of data values can be considered complete. This means if this message is recieved you may process the given data further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Relative movement event codes====&lt;br /&gt;
&lt;br /&gt;
The amount of possible codes for this event type is quite big. The only used&lt;br /&gt;
ones are the following ones.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:REL_X - Acceleration in x direction&lt;br /&gt;
&lt;br /&gt;
;0x01:&lt;br /&gt;
:REL_Y - Acceleration in y direction&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:REL_Z - Acceleration in z direction&lt;br /&gt;
&lt;br /&gt;
The X, Y and Z axis are to be understand as defined in the chapter about [[#Axis_orientation|Axis orientation]].&lt;br /&gt;
&lt;br /&gt;
===A typical message block===&lt;br /&gt;
&lt;br /&gt;
A typical message block consists of 3 messages containing the acceleration&lt;br /&gt;
data for every of the three axis followed by a syncronization message to&lt;br /&gt;
signal the end of the block.&lt;br /&gt;
&lt;br /&gt;
The following example is such a message block with detailed explanation of its&lt;br /&gt;
different messages and data sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_X  |-Value-|&lt;br /&gt;
(Measured acceleration in x axis direction of 72)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Y  |-Value-|&lt;br /&gt;
(Measured acceleration in y axis direction of 36)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Z  |-Value-|&lt;br /&gt;
(Measured acceleration in z axis direction of 918)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000        0000 0000&lt;br /&gt;
|------Time-------|  EV_SYN  SYN_REPORT  |-Value-|&lt;br /&gt;
(The transmitted data block is complete you may process the given data)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test application==&lt;br /&gt;
&lt;br /&gt;
A simple test application written in ruby:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
File.open(&amp;quot;/dev/input/event3&amp;quot;) do |f|&lt;br /&gt;
while true&lt;br /&gt;
event = f.read(16).unpack(&amp;quot;llSSl&amp;quot;)&lt;br /&gt;
time = event[0] + event[1] / 1000000.0&lt;br /&gt;
type = event[2]&lt;br /&gt;
code = event[3]&lt;br /&gt;
value = event[4]&lt;br /&gt;
if type == 2&lt;br /&gt;
x = value if code == 0&lt;br /&gt;
y = value if code == 1&lt;br /&gt;
z = value if code == 2&lt;br /&gt;
end&lt;br /&gt;
if type == 0 &amp;amp;&amp;amp; code == 0&lt;br /&gt;
sum = Math::sqrt(x*x + y*y + z*z).to_i&lt;br /&gt;
printf(&amp;quot;%5d %5d %5d %5d\n&amp;quot;, x, y, z, sum)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent version in python:&lt;br /&gt;
&lt;br /&gt;
{{TODO: The whitespace here has been lost! And the python is now broken :)}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import struct&lt;br /&gt;
from math import sqrt&lt;br /&gt;
&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
#int, int, short, short, int&lt;br /&gt;
fmt = 'iihhi'&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
in_file = open(secondsensorfile,&amp;quot;rb&amp;quot;)&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
while event:&lt;br /&gt;
(time1,time2, type, code, value) = \&lt;br /&gt;
struct.unpack(fmt,event)&lt;br /&gt;
time = time1 + time2 / 1000000.0&lt;br /&gt;
&lt;br /&gt;
if type == 2:&lt;br /&gt;
if code == 0:&lt;br /&gt;
x = value&lt;br /&gt;
if code == 1:&lt;br /&gt;
y = value&lt;br /&gt;
if code == 2:&lt;br /&gt;
z = value&lt;br /&gt;
if type == 0 and code == 0:&lt;br /&gt;
sum = int(sqrt(x*x + y*y + z*z))&lt;br /&gt;
print x, y, z, sum&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
in_file.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The /sys interface ==&lt;br /&gt;
&lt;br /&gt;
To get the sampling rate of the first accelerometer ''spi0.0'' :&lt;br /&gt;
&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
100&lt;br /&gt;
&lt;br /&gt;
To set the sampling rate :&lt;br /&gt;
&lt;br /&gt;
# echo 400 &amp;gt; /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
400&lt;br /&gt;
&lt;br /&gt;
The other one is ''spi0.1''. See [[GTA02 sysfs#Accelerometers]] for the other options.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Accelerometer_Fundamentals]]&lt;br /&gt;
* [[Gestures]], [http://code.google.com/p/accelges/source/browse/trunk/accelneo/src/accelneo.c code sample]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://projects.openmoko.org/projects/gestures/ Openmoko Motion Gestures]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Accelerometer Wikipedia - Accelerometer]&lt;br /&gt;
* [http://dev.borza.ro/demo/Motion-based%20Gesture%20Recognition%20with%20an%20Accelerometer/Paper.pdf Motion-based Gesture Recognition with an Accelerometer - Paper]&lt;br /&gt;
* [http://www.youtube.com/watch?v=s5QMW8k5nis YouTube video: Playing with Accelerometers]&lt;br /&gt;
* [http://westhoffswelt.de/blog/my_first_openmoko_application.html Magic Eightball Application using the Accelerometers]&lt;br /&gt;
&lt;br /&gt;
[[Category:Accelerometer]]&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval</id>
		<title>Accelerometer data retrieval</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval"/>
				<updated>2008-11-09T10:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* A typical message block */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scope==&lt;br /&gt;
&lt;br /&gt;
This document describes a way to access the data provided by the&lt;br /&gt;
accelerometers. Furthermore the format of the acquired datastream is explained&lt;br /&gt;
in detail. This document does not cover the physical basics of acceleration or&lt;br /&gt;
the mathematical details on this subject.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Axis orientation==&lt;br /&gt;
&lt;br /&gt;
To understand the values provided by the accelerometers it is crucial to&lt;br /&gt;
understand how the sensors are oriented. In the following I will refer to the&lt;br /&gt;
sensors as first and second sensor. The way to access the data sources of&lt;br /&gt;
these two will be described later on in this document.&lt;br /&gt;
&lt;br /&gt;
The Z axis is pointing from the display downwards to to the back of the&lt;br /&gt;
openmoko. This applies to both of the sensors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the first sensor===&lt;br /&gt;
&lt;br /&gt;
To explain the axis orientation I have created some images for easier&lt;br /&gt;
understanding.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the second sensor===&lt;br /&gt;
&lt;br /&gt;
In contrast to the first sensor the second one is turned 45 degrees around the&lt;br /&gt;
Z axis. See the attached image to get a clue about its orientation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation2.png|Axis orientation of the second accelerometer]]&lt;br /&gt;
&lt;br /&gt;
==Data acquisition==&lt;br /&gt;
&lt;br /&gt;
The information from both of the accelerometers is exported through two&lt;br /&gt;
different input event based file mappings. These device nodes can be found at&lt;br /&gt;
''/dev/input/event2'' and ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
The sensor I am refering to as the first one is ''event2''. Therefore the second&lt;br /&gt;
one is accessible through the ''event3'' device.&lt;br /&gt;
&lt;br /&gt;
These device nodes can be opened by the default filesystems calls for reading&lt;br /&gt;
files. The data can be read from the stream as soon as the sensor measures it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data structure==&lt;br /&gt;
&lt;br /&gt;
To be able to use the measured data it is important to understand the format&lt;br /&gt;
in which the data is provided.&lt;br /&gt;
The structure of the given data is based on the kernel input event message&lt;br /&gt;
system which exports the following data structure:&lt;br /&gt;
&lt;br /&gt;
struct input_event {&lt;br /&gt;
struct timeval time;&lt;br /&gt;
__u16 type;&lt;br /&gt;
__u16 code;&lt;br /&gt;
__s32 value;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
The data is written to the stream message by message. Therefore the minimal&lt;br /&gt;
used blocksize is 128 bit (16 byte).&lt;br /&gt;
&lt;br /&gt;
Lets have a look at an example readout of the accelerometer data, divided into&lt;br /&gt;
the used sections.&lt;br /&gt;
&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8c66 4819 721c 0006   0002   0002   03a8 0000&lt;br /&gt;
8c66 4819 7222 0006   0000   0000   0000 0000&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000   0000 0000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think the time structure does not need further explaination. A lot more&lt;br /&gt;
interesting is the type, code and value part of every message. Lets take a&lt;br /&gt;
closer look at these parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event types===&lt;br /&gt;
&lt;br /&gt;
The types categorize the incoming messages. All possible types can be found in&lt;br /&gt;
the kernel sources or include files in ''INCLUDEDIR/linux/input.h''&lt;br /&gt;
During the tests with the accelerometers I observed the fact that only two&lt;br /&gt;
different message types are used.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:According to ''linux/input.h'' this event is called ''EV_SYN''. It signals the wish to ''syncronize''. Normally this event is used in combination with code 0x00 to mark the send data complete and therefore applyable.&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:This event is called ''EV_REL'' and signals ''relative movement''. It is used to transmit the acceleration the sensors encounter.&lt;br /&gt;
&lt;br /&gt;
The definition should not be taken too seriously in this context, because the&lt;br /&gt;
data values provided by the accelerometer always represent the absolute&lt;br /&gt;
acceleration measured at the given time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event codes===&lt;br /&gt;
&lt;br /&gt;
Both types of event may supply different codes. These codes can be understood&lt;br /&gt;
as some kind of further specification about the specified data values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Syncronization event codes====&lt;br /&gt;
&lt;br /&gt;
The syncronization event may use quite a lot of codes, as ''linux/input.h''&lt;br /&gt;
shows. However the only used one seems to be the 0x00 code.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:This code is refered to as SYN_REPORT. It means that the last dataset was completely transmitted. Therefore the before transmitted set of data values can be considered complete. This means if this message is recieved you may process the given data further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Relative movement event codes====&lt;br /&gt;
&lt;br /&gt;
The amount of possible codes for this event type is quite big. The only used&lt;br /&gt;
ones are the following ones.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:REL_X - Acceleration in x direction&lt;br /&gt;
&lt;br /&gt;
;0x01:&lt;br /&gt;
:REL_Y - Acceleration in y direction&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:REL_Z - Acceleration in z direction&lt;br /&gt;
&lt;br /&gt;
The X, Y and Z axis are to be understand as defined in the chapter about [[#Axis_orientation|Axis orientation]].&lt;br /&gt;
&lt;br /&gt;
===A typical message block===&lt;br /&gt;
&lt;br /&gt;
A typical message block consists of 3 messages containing the acceleration&lt;br /&gt;
data for every of the three axis followed by a syncronization message to&lt;br /&gt;
signal the end of the block.&lt;br /&gt;
&lt;br /&gt;
The following example is such a message block with detailed explanation of its&lt;br /&gt;
different messages and data sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_X  |-Value-|&lt;br /&gt;
(Measured acceleration in x axis direction of 72)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Y  |-Value-|&lt;br /&gt;
(Measured acceleration in y axis direction of 36)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Z  |-Value-|&lt;br /&gt;
(Measured acceleration in z axis direction of 918)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000        0000 0000&lt;br /&gt;
|------Time-------|  EV_SYN  SYN_REPORT  |-Value-|&lt;br /&gt;
(The transmitted data block is complete you may process the given data)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test application==&lt;br /&gt;
&lt;br /&gt;
A simple test application written in ruby:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
File.open(&amp;quot;/dev/input/event3&amp;quot;) do |f|&lt;br /&gt;
while true&lt;br /&gt;
event = f.read(16).unpack(&amp;quot;llSSl&amp;quot;)&lt;br /&gt;
time = event[0] + event[1] / 1000000.0&lt;br /&gt;
type = event[2]&lt;br /&gt;
code = event[3]&lt;br /&gt;
value = event[4]&lt;br /&gt;
if type == 2&lt;br /&gt;
x = value if code == 0&lt;br /&gt;
y = value if code == 1&lt;br /&gt;
z = value if code == 2&lt;br /&gt;
end&lt;br /&gt;
if type == 0 &amp;amp;&amp;amp; code == 0&lt;br /&gt;
sum = Math::sqrt(x*x + y*y + z*z).to_i&lt;br /&gt;
printf(&amp;quot;%5d %5d %5d %5d\n&amp;quot;, x, y, z, sum)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent version in python:&lt;br /&gt;
&lt;br /&gt;
{{TODO: The whitespace here has been lost! And the python is now broken :)}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import struct&lt;br /&gt;
from math import sqrt&lt;br /&gt;
&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
#int, int, short, short, int&lt;br /&gt;
fmt = 'iihhi'&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
in_file = open(secondsensorfile,&amp;quot;rb&amp;quot;)&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
while event:&lt;br /&gt;
(time1,time2, type, code, value) = \&lt;br /&gt;
struct.unpack(fmt,event)&lt;br /&gt;
time = time1 + time2 / 1000000.0&lt;br /&gt;
&lt;br /&gt;
if type == 2:&lt;br /&gt;
if code == 0:&lt;br /&gt;
x = value&lt;br /&gt;
if code == 1:&lt;br /&gt;
y = value&lt;br /&gt;
if code == 2:&lt;br /&gt;
z = value&lt;br /&gt;
if type == 0 and code == 0:&lt;br /&gt;
sum = int(sqrt(x*x + y*y + z*z))&lt;br /&gt;
print x, y, z, sum&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
in_file.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The /sys interface ==&lt;br /&gt;
&lt;br /&gt;
To get the sampling rate of the first accelerometer ''spi0.0'' :&lt;br /&gt;
&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
100&lt;br /&gt;
&lt;br /&gt;
To set the sampling rate :&lt;br /&gt;
&lt;br /&gt;
# echo 400 &amp;gt; /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
400&lt;br /&gt;
&lt;br /&gt;
The other one is ''spi0.1''. See [[GTA02 sysfs#Accelerometers]] for the other options.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Accelerometer_Fundamentals]]&lt;br /&gt;
* [[Gestures]], [http://code.google.com/p/accelges/source/browse/trunk/accelneo/src/accelneo.c code sample]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://projects.openmoko.org/projects/gestures/ Openmoko Motion Gestures]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Accelerometer Wikipedia - Accelerometer]&lt;br /&gt;
* [http://dev.borza.ro/demo/Motion-based%20Gesture%20Recognition%20with%20an%20Accelerometer/Paper.pdf Motion-based Gesture Recognition with an Accelerometer - Paper]&lt;br /&gt;
* [http://www.youtube.com/watch?v=s5QMW8k5nis YouTube video: Playing with Accelerometers]&lt;br /&gt;
* [http://westhoffswelt.de/blog/my_first_openmoko_application.html Magic Eightball Application using the Accelerometers]&lt;br /&gt;
&lt;br /&gt;
[[Category:Accelerometer]]&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval</id>
		<title>Accelerometer data retrieval</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval"/>
				<updated>2008-11-09T10:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Test application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scope==&lt;br /&gt;
&lt;br /&gt;
This document describes a way to access the data provided by the&lt;br /&gt;
accelerometers. Furthermore the format of the acquired datastream is explained&lt;br /&gt;
in detail. This document does not cover the physical basics of acceleration or&lt;br /&gt;
the mathematical details on this subject.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Axis orientation==&lt;br /&gt;
&lt;br /&gt;
To understand the values provided by the accelerometers it is crucial to&lt;br /&gt;
understand how the sensors are oriented. In the following I will refer to the&lt;br /&gt;
sensors as first and second sensor. The way to access the data sources of&lt;br /&gt;
these two will be described later on in this document.&lt;br /&gt;
&lt;br /&gt;
The Z axis is pointing from the display downwards to to the back of the&lt;br /&gt;
openmoko. This applies to both of the sensors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the first sensor===&lt;br /&gt;
&lt;br /&gt;
To explain the axis orientation I have created some images for easier&lt;br /&gt;
understanding.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the second sensor===&lt;br /&gt;
&lt;br /&gt;
In contrast to the first sensor the second one is turned 45 degrees around the&lt;br /&gt;
Z axis. See the attached image to get a clue about its orientation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation2.png|Axis orientation of the second accelerometer]]&lt;br /&gt;
&lt;br /&gt;
==Data acquisition==&lt;br /&gt;
&lt;br /&gt;
The information from both of the accelerometers is exported through two&lt;br /&gt;
different input event based file mappings. These device nodes can be found at&lt;br /&gt;
''/dev/input/event2'' and ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
The sensor I am refering to as the first one is ''event2''. Therefore the second&lt;br /&gt;
one is accessible through the ''event3'' device.&lt;br /&gt;
&lt;br /&gt;
These device nodes can be opened by the default filesystems calls for reading&lt;br /&gt;
files. The data can be read from the stream as soon as the sensor measures it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data structure==&lt;br /&gt;
&lt;br /&gt;
To be able to use the measured data it is important to understand the format&lt;br /&gt;
in which the data is provided.&lt;br /&gt;
The structure of the given data is based on the kernel input event message&lt;br /&gt;
system which exports the following data structure:&lt;br /&gt;
&lt;br /&gt;
struct input_event {&lt;br /&gt;
struct timeval time;&lt;br /&gt;
__u16 type;&lt;br /&gt;
__u16 code;&lt;br /&gt;
__s32 value;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
The data is written to the stream message by message. Therefore the minimal&lt;br /&gt;
used blocksize is 128 bit (16 byte).&lt;br /&gt;
&lt;br /&gt;
Lets have a look at an example readout of the accelerometer data, divided into&lt;br /&gt;
the used sections.&lt;br /&gt;
&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8c66 4819 721c 0006   0002   0002   03a8 0000&lt;br /&gt;
8c66 4819 7222 0006   0000   0000   0000 0000&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000   0000 0000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think the time structure does not need further explaination. A lot more&lt;br /&gt;
interesting is the type, code and value part of every message. Lets take a&lt;br /&gt;
closer look at these parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event types===&lt;br /&gt;
&lt;br /&gt;
The types categorize the incoming messages. All possible types can be found in&lt;br /&gt;
the kernel sources or include files in ''INCLUDEDIR/linux/input.h''&lt;br /&gt;
During the tests with the accelerometers I observed the fact that only two&lt;br /&gt;
different message types are used.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:According to ''linux/input.h'' this event is called ''EV_SYN''. It signals the wish to ''syncronize''. Normally this event is used in combination with code 0x00 to mark the send data complete and therefore applyable.&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:This event is called ''EV_REL'' and signals ''relative movement''. It is used to transmit the acceleration the sensors encounter.&lt;br /&gt;
&lt;br /&gt;
The definition should not be taken too seriously in this context, because the&lt;br /&gt;
data values provided by the accelerometer always represent the absolute&lt;br /&gt;
acceleration measured at the given time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event codes===&lt;br /&gt;
&lt;br /&gt;
Both types of event may supply different codes. These codes can be understood&lt;br /&gt;
as some kind of further specification about the specified data values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Syncronization event codes====&lt;br /&gt;
&lt;br /&gt;
The syncronization event may use quite a lot of codes, as ''linux/input.h''&lt;br /&gt;
shows. However the only used one seems to be the 0x00 code.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:This code is refered to as SYN_REPORT. It means that the last dataset was completely transmitted. Therefore the before transmitted set of data values can be considered complete. This means if this message is recieved you may process the given data further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Relative movement event codes====&lt;br /&gt;
&lt;br /&gt;
The amount of possible codes for this event type is quite big. The only used&lt;br /&gt;
ones are the following ones.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:REL_X - Acceleration in x direction&lt;br /&gt;
&lt;br /&gt;
;0x01:&lt;br /&gt;
:REL_Y - Acceleration in y direction&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:REL_Z - Acceleration in z direction&lt;br /&gt;
&lt;br /&gt;
The X, Y and Z axis are to be understand as defined in the chapter about [[#Axis_orientation|Axis orientation]].&lt;br /&gt;
&lt;br /&gt;
===A typical message block===&lt;br /&gt;
&lt;br /&gt;
A typical message block consists of 3 messages containing the acceleration&lt;br /&gt;
data for every of the three axis followed by a syncronization message to&lt;br /&gt;
signal the end of the block.&lt;br /&gt;
&lt;br /&gt;
The following example is such a message block with detailed explanation of its&lt;br /&gt;
different messages and data sections.&lt;br /&gt;
&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_X  |-Value-|&lt;br /&gt;
(Measured acceleration in x axis direction of 72)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Y  |-Value-|&lt;br /&gt;
(Measured acceleration in y axis direction of 36)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Z  |-Value-|&lt;br /&gt;
(Measured acceleration in z axis direction of 918)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000        0000 0000&lt;br /&gt;
|------Time-------|  EV_SYN  SYN_REPORT  |-Value-|&lt;br /&gt;
(The transmitted data block is complete you may process the given data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test application==&lt;br /&gt;
&lt;br /&gt;
A simple test application written in ruby:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
File.open(&amp;quot;/dev/input/event3&amp;quot;) do |f|&lt;br /&gt;
while true&lt;br /&gt;
event = f.read(16).unpack(&amp;quot;llSSl&amp;quot;)&lt;br /&gt;
time = event[0] + event[1] / 1000000.0&lt;br /&gt;
type = event[2]&lt;br /&gt;
code = event[3]&lt;br /&gt;
value = event[4]&lt;br /&gt;
if type == 2&lt;br /&gt;
x = value if code == 0&lt;br /&gt;
y = value if code == 1&lt;br /&gt;
z = value if code == 2&lt;br /&gt;
end&lt;br /&gt;
if type == 0 &amp;amp;&amp;amp; code == 0&lt;br /&gt;
sum = Math::sqrt(x*x + y*y + z*z).to_i&lt;br /&gt;
printf(&amp;quot;%5d %5d %5d %5d\n&amp;quot;, x, y, z, sum)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent version in python:&lt;br /&gt;
&lt;br /&gt;
{{TODO: The whitespace here has been lost! And the python is now broken :)}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import struct&lt;br /&gt;
from math import sqrt&lt;br /&gt;
&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
#int, int, short, short, int&lt;br /&gt;
fmt = 'iihhi'&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
in_file = open(secondsensorfile,&amp;quot;rb&amp;quot;)&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
while event:&lt;br /&gt;
(time1,time2, type, code, value) = \&lt;br /&gt;
struct.unpack(fmt,event)&lt;br /&gt;
time = time1 + time2 / 1000000.0&lt;br /&gt;
&lt;br /&gt;
if type == 2:&lt;br /&gt;
if code == 0:&lt;br /&gt;
x = value&lt;br /&gt;
if code == 1:&lt;br /&gt;
y = value&lt;br /&gt;
if code == 2:&lt;br /&gt;
z = value&lt;br /&gt;
if type == 0 and code == 0:&lt;br /&gt;
sum = int(sqrt(x*x + y*y + z*z))&lt;br /&gt;
print x, y, z, sum&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
in_file.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The /sys interface ==&lt;br /&gt;
&lt;br /&gt;
To get the sampling rate of the first accelerometer ''spi0.0'' :&lt;br /&gt;
&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
100&lt;br /&gt;
&lt;br /&gt;
To set the sampling rate :&lt;br /&gt;
&lt;br /&gt;
# echo 400 &amp;gt; /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
# cat /sys/bus/spi/drivers/lis302dl/spi0.0/sample_rate&lt;br /&gt;
400&lt;br /&gt;
&lt;br /&gt;
The other one is ''spi0.1''. See [[GTA02 sysfs#Accelerometers]] for the other options.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Accelerometer_Fundamentals]]&lt;br /&gt;
* [[Gestures]], [http://code.google.com/p/accelges/source/browse/trunk/accelneo/src/accelneo.c code sample]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://projects.openmoko.org/projects/gestures/ Openmoko Motion Gestures]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Accelerometer Wikipedia - Accelerometer]&lt;br /&gt;
* [http://dev.borza.ro/demo/Motion-based%20Gesture%20Recognition%20with%20an%20Accelerometer/Paper.pdf Motion-based Gesture Recognition with an Accelerometer - Paper]&lt;br /&gt;
* [http://www.youtube.com/watch?v=s5QMW8k5nis YouTube video: Playing with Accelerometers]&lt;br /&gt;
* [http://westhoffswelt.de/blog/my_first_openmoko_application.html Magic Eightball Application using the Accelerometers]&lt;br /&gt;
&lt;br /&gt;
[[Category:Accelerometer]]&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-11-09T10:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Test Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tickets I am interested in: &lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/2082&lt;br /&gt;
&lt;br /&gt;
== Test Section ==&lt;br /&gt;
&lt;br /&gt;
Here is some text too.&lt;br /&gt;
&lt;br /&gt;
 this is preformatted&lt;br /&gt;
 oh it is oh so preformatted&lt;br /&gt;
&lt;br /&gt;
and this is some more text&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-11-09T10:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Test Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tickets I am interested in: &lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/2082&lt;br /&gt;
&lt;br /&gt;
== Test Section ==&lt;br /&gt;
&lt;br /&gt;
 this is preformatted&lt;br /&gt;
 oh it is oh so preformatted&lt;br /&gt;
&lt;br /&gt;
and this is some more text&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-11-09T09:59:52Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tickets I am interested in: &lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/2082&lt;br /&gt;
&lt;br /&gt;
== Test Section ==&lt;br /&gt;
&lt;br /&gt;
 this is preformatted&lt;br /&gt;
 oh it is oh so preformatted&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Orrery</id>
		<title>Orrery</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Orrery"/>
				<updated>2008-11-09T09:53:00Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Revision(ist) History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Orrery}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Please note: Some websites have links directly to the .ipk files for this program.   While it is very gratifying that other people like the program enough to include a link to the .ipk file, those links will not automatically update when a newer .ipk file is uploaded.   So using one of those links might cause you to install an obsolete version of the program.   If your version of the code doesn't match the description below, please download the most recent version from here: [http://projects.openmoko.org/projects/orrery/]. The current version is 2.2, and the version is shown&lt;br /&gt;
under the &amp;quot;opts&amp;quot; menu, at the top of the &amp;quot;About Orrery / Symbol Key&amp;quot; page.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The orrery is a simple open-source application for the Openmoko platform&lt;br /&gt;
which displays the night (and day!) sky. It is nowhere near as elaborate as, for&lt;br /&gt;
example Google Sky or xephem. It is intended to be a small application&lt;br /&gt;
that will have a storage footprint comparable to a ringtone, or one of&lt;br /&gt;
the games bundled with the openmoko rootfs. It requires no network connection,&lt;br /&gt;
but does use the GPS information, by querying gpsd.&lt;br /&gt;
It will be converted to work with Gypsy once the dbus based software stack&lt;br /&gt;
becomes available.&lt;br /&gt;
&lt;br /&gt;
The star database was extracted from the Hipparcos catalog.   To ease the&lt;br /&gt;
computational load, the coordinates are not precessed or nutated before&lt;br /&gt;
being displayed.   Orbital elements are used,&lt;br /&gt;
rather than ephemerides, to calculate planet positions.   Although&lt;br /&gt;
this is less accurate, it dramatically reduces the memory&lt;br /&gt;
footprint.   The planet positions are accurate to a few arc&lt;br /&gt;
minutes, from 3000 BC to 3000 AD.  Since the scale&lt;br /&gt;
on the default display is approximately 8 arc minutes&lt;br /&gt;
per pixel, these small errors are imperceptible, unless a very&lt;br /&gt;
large zoom factor is used.&lt;br /&gt;
&lt;br /&gt;
Note, the screen grabs shown below were taken with the orrery running&lt;br /&gt;
atop the 2007.2 stack, because I find it easier to do a screen grab with&lt;br /&gt;
that stack.   The program works with 2008.x too.&lt;br /&gt;
&lt;br /&gt;
== The Display ==&lt;br /&gt;
&lt;br /&gt;
[[Image:OrreryWithMenuTabs.png|200px|Orrery with Menu Tabs]]&lt;br /&gt;
&lt;br /&gt;
The image above shows the default display - all stars visible to the unaided&lt;br /&gt;
eye, with colors for the brightest ones.   It's displayed with a&lt;br /&gt;
Transverse Mercator projection (similar to Norton's Star Atlas) which works&lt;br /&gt;
well with the VGA aspect ratio in portrait mode.&lt;br /&gt;
It's a conformal transformation, so the&lt;br /&gt;
constellations have about the right shapes.  The Sun, Moon and planets are&lt;br /&gt;
plotted, and the Moon is shown with the proper phase.   The Sun and Moon are&lt;br /&gt;
plotted with a size about 3.5 times larger than their true angular size on&lt;br /&gt;
the sky.&lt;br /&gt;
&lt;br /&gt;
The blue line near the bottom of the display is the horizon.   Nothing below that line is visible, but the&lt;br /&gt;
program plots objects there anyway, because it is often&lt;br /&gt;
useful to know which objects are just about to rise, and&lt;br /&gt;
which ones have recently set.&lt;br /&gt;
&lt;br /&gt;
=== The orrery as a compass ===&lt;br /&gt;
The green numbers at the bottom are the azimuth values.   The&lt;br /&gt;
azimuth is measured along the horizon, from north through east.&lt;br /&gt;
So the azimuth of due north is 0, east is 90, south is 180&lt;br /&gt;
and west is 270 degrees.   By using these azimuth values, the&lt;br /&gt;
orrery can be used as a celestial compass, if the sky above you&lt;br /&gt;
is at least partially clear.   Notice that the azimuth values are&lt;br /&gt;
not exactly evenly spaced.   This is caused by the distortion&lt;br /&gt;
introduced by the Transverse Mercator projection.&lt;br /&gt;
&lt;br /&gt;
=== Constellations Display ===&lt;br /&gt;
There are two display screens defined.   By default, one of them shows&lt;br /&gt;
the display shown above, and the other shows the constellations, and&lt;br /&gt;
symbolic representations of the solar system objects.&lt;br /&gt;
&lt;br /&gt;
[[Image:OrreryFullScreenConstellations.png|200px|Orrery Full Screen Constellation]]&lt;br /&gt;
&lt;br /&gt;
The constellations are plotted in three colors.  The twelve zodiac&lt;br /&gt;
colors are plotted in hot pink.  The constellations plotted in&lt;br /&gt;
gold are the classical Greek constellations, as listed in Ptolomy's Almagest (apart from the zodiac constellations, which are&lt;br /&gt;
also in the Almagest).  The only constellation from the Almagest which is not&lt;br /&gt;
plotted is Argo Navis, which is not one of the official modern&lt;br /&gt;
constellations (Argo Navis was broken up into the modern constellations&lt;br /&gt;
Carina, Puppis and Vela). The remaining constellations, plotted in blue, where&lt;br /&gt;
added during the last few hundred years.&lt;br /&gt;
&lt;br /&gt;
In addition to constellation names and figures, three great circles, the Celestial Equator&lt;br /&gt;
(light yellow), Ecliptic (red) and Galactic Plane (blue-green), are shown.&lt;br /&gt;
Solar system objects are shown symbolically (see Mercury, Venus,&lt;br /&gt;
the Moon and the Sun in the above image).&lt;br /&gt;
&lt;br /&gt;
== Control Modes ==&lt;br /&gt;
The orrery has two control modes, &amp;quot;finger mode&amp;quot; and &amp;quot;stylus mode&amp;quot;.&lt;br /&gt;
By default the program is in finger mode. In finger mode, the image&lt;br /&gt;
can be panned by tapping your finger in&lt;br /&gt;
the bottom 1/5 of the display (excluding menus).   The size of&lt;br /&gt;
the panning step is controlled by how close your finger is&lt;br /&gt;
to the edge of the display.   If you tap in the center, it pans&lt;br /&gt;
by 0 degrees, and nothing happens.   If you tap near the&lt;br /&gt;
left or right edges, it&lt;br /&gt;
pans by the maximum allowed amount, +-45 degrees.   Pan steps are&lt;br /&gt;
quantized in increments of 5 degrees.   You may exit fullscreen mode&lt;br /&gt;
by tapping anywhere in the upper 1/5 of the display area.&lt;br /&gt;
Tapping anywhere else toggles between the two screens.&lt;br /&gt;
&lt;br /&gt;
If you are in stylus  mode, the view can be panned around the sky by&lt;br /&gt;
tapping the green arrows at the bottom, or the green azimuth values.&lt;br /&gt;
In stylus mode, to exit from fullscreen you must tap in the area&lt;br /&gt;
above the upper blue line, in the region where the time and location&lt;br /&gt;
are displayed.   Tapping anywhere else toggles between the two screens.&lt;br /&gt;
&lt;br /&gt;
There is a check box in the opts menu which allows you to turn finger mode on and off.&lt;br /&gt;
&lt;br /&gt;
One may enter fullscreen mode by tapping the FS button at the&lt;br /&gt;
bottom left of the display.&lt;br /&gt;
&lt;br /&gt;
== Menus ==&lt;br /&gt;
When not in fullscreen mode, one button and four menus are displayed at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
===FS===&lt;br /&gt;
Pushing the &amp;quot;FS&amp;quot; button pops you into fullscreen mode.   To exit,&lt;br /&gt;
tap the top 1/5th of the display (if you are in finger mode) or&lt;br /&gt;
the region where the location and time is displayed (in stylus mode).&lt;br /&gt;
&lt;br /&gt;
=== opts ===&lt;br /&gt;
==== Toggles ====&lt;br /&gt;
The opts menu allows you to toggle between finger and stylus mode.&lt;br /&gt;
It also has a checkbox labeled &amp;quot;Save All Changes&amp;quot;. If that box is&lt;br /&gt;
checked, all changes you make within the menus are saved to flash&lt;br /&gt;
memory when you click the &amp;quot;OK&amp;quot; button.   If &amp;quot;Save All Changed&amp;quot; is not&lt;br /&gt;
selected, you must click the &amp;quot;Save to Configuration File&amp;quot; to save&lt;br /&gt;
changed configurations to flash - clicking &amp;quot;OK&amp;quot; makes the changes&lt;br /&gt;
active for the current session, but does not save to flash.&lt;br /&gt;
&lt;br /&gt;
==== Flashlight Modes ====&lt;br /&gt;
The &amp;quot;White Flashlight&amp;quot; button paints the entire screen white, and the&lt;br /&gt;
&amp;quot;Red Flashlight&amp;quot; button paints the entire screen red.   Both may&lt;br /&gt;
be used as a flashlight, but the red one is best if you are trying&lt;br /&gt;
to preserve your night vision.&lt;br /&gt;
&lt;br /&gt;
==== Sunrise, Moonrise, etc ====&lt;br /&gt;
The &amp;quot;Sun and Moon Information&amp;quot; button displays a page giving the&lt;br /&gt;
sun and moon positions, rise and set times, phase etc for five&lt;br /&gt;
days, centered on today:&lt;br /&gt;
&lt;br /&gt;
[[Image:OrrerySunMoonPage.png|200px|Sun and Moon Information page]]&lt;br /&gt;
&lt;br /&gt;
The highlighted date is the current UT date (unless the time menu&lt;br /&gt;
has been used to select a different time).   The highlighted&lt;br /&gt;
rise and set times are the next ones which will occur at your&lt;br /&gt;
location.   Of course, that may be on a different UT date (for&lt;br /&gt;
example, during daylight hours, the next sunrise will be tomorrow).&lt;br /&gt;
The times are shown as Universal Times (UT), which may annoy people,&lt;br /&gt;
UT is used because the orrery allows you to select any location on the&lt;br /&gt;
earth, and any time from 3000 BC until 3000 AD.   It would be very&lt;br /&gt;
difficult to keep track of all the timezone, daylight savings change&lt;br /&gt;
dates, etc for that time range!   So I have wimped out, and displayed&lt;br /&gt;
UT, which is always reasonably well defined.&lt;br /&gt;
&lt;br /&gt;
The current sun and moon positions shown are geocentric - no&lt;br /&gt;
topocentric correction has been applied.   However topocentric&lt;br /&gt;
corrections are applied when rise and set times are calculated,&lt;br /&gt;
so they should be reasonably accurate for a specific location on earth.&lt;br /&gt;
&lt;br /&gt;
The moon illumination percentage shown on the line with the&lt;br /&gt;
rising and setting times is the value at transit.   The&lt;br /&gt;
illumination shown on the line that has the drawing of the&lt;br /&gt;
moon phase is the illumination percentage at this moment.&lt;br /&gt;
&lt;br /&gt;
==== Moon Calendar ====&lt;br /&gt;
The moon calendar is a graphic display of the phase of the moon for&lt;br /&gt;
each day from 10 months before the current month, until 10 months after&lt;br /&gt;
the current month (roughly 640 days), as shown below:&lt;br /&gt;
&lt;br /&gt;
[[Image:OrreryMoonCalendar.png|200px|Moon Calendar]]&lt;br /&gt;
&lt;br /&gt;
Each column shows one month, and the day number is shown for each row.&lt;br /&gt;
At the top and bottom of each column is shown the first letter of the&lt;br /&gt;
name of the month&lt;br /&gt;
shown in the column.   Two vertical green lines separate years.&lt;br /&gt;
The current Universal Time date is outlined in a red box.&lt;br /&gt;
&lt;br /&gt;
To exit the Moon Calendar display, just tap the screen anywhere.&lt;br /&gt;
&lt;br /&gt;
==== About Orrery / Symbol Key ====&lt;br /&gt;
This button displays an annotated list of&lt;br /&gt;
all the symbols used on the orrery display.&lt;br /&gt;
&lt;br /&gt;
=== time ===&lt;br /&gt;
The time menu allows you to specify an&lt;br /&gt;
explicit time between 3000 BC and 3000 AD, or the current&lt;br /&gt;
time.   If &amp;quot;Now&amp;quot; is selected, the current time is used and the display updates&lt;br /&gt;
automatically once per minute.   If a specific time is selected,&lt;br /&gt;
it is shown in red, to remind you that the display is not&lt;br /&gt;
going to update automatically as time passes.   The time may be&lt;br /&gt;
specified as a calendar date, or as a Julian Date.&lt;br /&gt;
&lt;br /&gt;
The Julian Date is a less ambiguous way of entering times&lt;br /&gt;
in the distant past than using a calendar date, because of the&lt;br /&gt;
differing calendar systems in use worldwide before the late 16th&lt;br /&gt;
century.  For example, the date October 10, 1582 never occurred in&lt;br /&gt;
some European countries.  Many countries have gaps in their calendars&lt;br /&gt;
with missing dates when they adopted the Gregorian Calendar.&lt;br /&gt;
&lt;br /&gt;
=== place ===&lt;br /&gt;
The place menu allows you to select the GPS-derived location,&lt;br /&gt;
a user specified latitude and longitude, or a city or&lt;br /&gt;
astronomical observatory selected from a menu.   The lists of&lt;br /&gt;
locations are stored in ASCII text files under the menus subdirectory&lt;br /&gt;
of the program installation area on your phone.   You may&lt;br /&gt;
save your selected location, by hitting the &amp;quot;Save&lt;br /&gt;
to Configuration File&amp;quot; button, so it will be used the&lt;br /&gt;
next time you start the orrery.   If you would like&lt;br /&gt;
to add additional cities etc to one of the menus, you may simply&lt;br /&gt;
edit one of the menu files, and add the name, latitude and longitude&lt;br /&gt;
of the location.   You will need to restart the orrery program for&lt;br /&gt;
your new locations to become available.&lt;br /&gt;
&lt;br /&gt;
If you select a &amp;quot;Custom&amp;quot; or &amp;quot;Menu&amp;quot; location, a button labeled&lt;br /&gt;
&amp;quot;Save in Private Menu&amp;quot; will appear.   After you select your new position,&lt;br /&gt;
you may push that button to save it in the menu labeled &amp;quot;Private&amp;quot;.&lt;br /&gt;
That menu is initially empty.&lt;br /&gt;
&lt;br /&gt;
=== items ===&lt;br /&gt;
The display menu allows you to configure the display, selecting&lt;br /&gt;
such things as the faintest magnitude object displayed, whether constellation&lt;br /&gt;
lines are plotted, whether or not star names are displayed, etc.&lt;br /&gt;
&lt;br /&gt;
==== Deep Sky Objects ====&lt;br /&gt;
If you select &amp;quot;Deep Sky Obs&amp;quot; from the items menu, you will&lt;br /&gt;
be shown some of the brightest Deep Sky Objects.   Deep Sky&lt;br /&gt;
Objects are objects such as galaxies, expelled envelopes of&lt;br /&gt;
dying stars, clusters of young stars and lumious gas.   A few,&lt;br /&gt;
such as the Andromeda Galaxy, are visible to the unaided eye.&lt;br /&gt;
Many more are visible with binoculars or a small telescope.&lt;br /&gt;
The orrery shows all messier objects, and many other&lt;br /&gt;
well known bright nebulae and star clusters.&lt;br /&gt;
The image bellow shows the Messier objects in Sagittarius.&lt;br /&gt;
&lt;br /&gt;
[[Image:OrrerySagitarriusClusters.png|200px|Star clusters in Sagittarius]]&lt;br /&gt;
&lt;br /&gt;
===== Adding Your Own Deep Sky Object List =====&lt;br /&gt;
You may add your own list of deep sky objects to be&lt;br /&gt;
plotted.   Simply create a file within the directory&lt;br /&gt;
/usr/share/orrery/deepSky/ with any name.   The&lt;br /&gt;
file should contain lines of text with the format&lt;br /&gt;
&lt;br /&gt;
name HH MM SS.SS DD MM SS.S type mag&lt;br /&gt;
&lt;br /&gt;
where name is the object name, which may not include&lt;br /&gt;
white space, HH MM SS.SS is the Right Ascension,&lt;br /&gt;
DD MM SS.S is the declination (do not include a + sign&lt;br /&gt;
for positive declinations) &amp;quot;type&amp;quot; is an integer&lt;br /&gt;
specifying the type of object. 0 = Supernova Remnant,&lt;br /&gt;
1 = Globular Cluster, 2 = Open CLuster, 3 = Diffuse&lt;br /&gt;
Nebula (HII region, etc), 4 = Planetary Nebula, and&lt;br /&gt;
5 = Galaxy.   The &amp;quot;mag&amp;quot; is the visual magnitude.   The&lt;br /&gt;
orrery program currently does nothing with the visual magnitude, but future versions may use it.&lt;br /&gt;
&lt;br /&gt;
==== Changing the Magnitude Limit ====&lt;br /&gt;
By default, the orrery displays every star a person with excellent&lt;br /&gt;
eyesight located in a very dark area on a moonless night can see.&lt;br /&gt;
If your observing conditions are less ideal than that, it can be&lt;br /&gt;
helpful to use the &amp;quot;Mag. Limit&amp;quot; filed in the item menu to lower&lt;br /&gt;
the limit of the faintest object plotted.   The plot below shows&lt;br /&gt;
the &amp;quot;Summer Triangle&amp;quot; region plotted with the default 6.6 limiting&lt;br /&gt;
magnitude on the left, and a 5.0 limiting magnitude on the right.&lt;br /&gt;
&lt;br /&gt;
[[Image:OrreryMagComparison.png|400px|Changing the limiting magnitude]]&lt;br /&gt;
&lt;br /&gt;
If you tap &amp;quot;Save to Configuration FIle&amp;quot; your new magnitude limit&lt;br /&gt;
will be the default the next time orrery is run.&lt;br /&gt;
&lt;br /&gt;
== Touchscreen Gestures ==&lt;br /&gt;
There are four types of touchscreen gestures which you can make&lt;br /&gt;
in the plotting area which are recognized by the orrery: Taps,&lt;br /&gt;
Zooms, Pans and Presses.&lt;br /&gt;
&lt;br /&gt;
=== Taps ===&lt;br /&gt;
If you press the display area, and withdraw your finger or stylus&lt;br /&gt;
within 0.25 seconds, that gesture is considered a tap.&lt;br /&gt;
&lt;br /&gt;
[[Image:orreryTapRegions.png|200px|Orrery Tap Regions]]&lt;br /&gt;
&lt;br /&gt;
Tapping in the lower 1/5 of the display area will pan the display in&lt;br /&gt;
azimuth.   If you are in fullscreen mode, then tapping in the upper 1/5&lt;br /&gt;
of the display will take you out of fullscreen mode.   Tapping anywhere&lt;br /&gt;
else toggles between the default screen and the constellation screen.&lt;br /&gt;
&lt;br /&gt;
=== Zooms ===&lt;br /&gt;
If you press the screen and trace out a roundish figure, and remain&lt;br /&gt;
in contact with the screen for more than 0.25 seconds, and if&lt;br /&gt;
the figure encloses a nontrivial (&amp;gt; 300 pixels) area, the gesture&lt;br /&gt;
is considered to be a zoom.   As you move your finger or&lt;br /&gt;
stylus, the region you are outlining will be shown&lt;br /&gt;
as a green dotted line.   After you release your finger&lt;br /&gt;
from the display, a red box will be shown.&lt;br /&gt;
The red box is a rectangle with the aspect ratio of the&lt;br /&gt;
display area, and the same area and centroid as the region you&lt;br /&gt;
traced out with your finger.   The display will then be zoomed so&lt;br /&gt;
that the region in the red box fills the display area:&lt;br /&gt;
&lt;br /&gt;
[[Image:orreryZoomDemo.png|400px|Orrery Zoom Demo]]&lt;br /&gt;
&lt;br /&gt;
The image above shows the display immediately after the zoom gesture&lt;br /&gt;
has been made (left) and after the zoom has become active (right).&lt;br /&gt;
One may zoom an image which has already been zoomed.&lt;br /&gt;
&lt;br /&gt;
Zooming can do some non-intuitive things, especially if you zoom near&lt;br /&gt;
the upper left or upper right of the display.   This is because&lt;br /&gt;
the orrery's transverse mercator projection always has a line of&lt;br /&gt;
constant azimuth in the center.   This means that something zoomed&lt;br /&gt;
at the edge of the display area will be rotated as it is zoomed, and&lt;br /&gt;
some of the stars you wish to display may be rotated out of the&lt;br /&gt;
display area.   It is best, especially if you are zooming in on&lt;br /&gt;
an area near the zenith, to first pan the display so that the region&lt;br /&gt;
is near the center of the display, before zooming.   The nice&lt;br /&gt;
thing about the transverse mercator projection is that a zoomed&lt;br /&gt;
area is displayed with the orientation it would have if you were&lt;br /&gt;
directly facing it at the time indicated by the display.&lt;br /&gt;
&lt;br /&gt;
If your zoom area includes the zenith, the display any do weird&lt;br /&gt;
things.   This is a bug.&lt;br /&gt;
&lt;br /&gt;
=== Pans ===&lt;br /&gt;
A pan is like a zoom, but with a more linear, rather than roundish&lt;br /&gt;
gesture.   A pan can be used to move the center of a zoomed region.&lt;br /&gt;
It has no effect if the display area is not zoomed.   After you&lt;br /&gt;
release your finger or stylus following a zoom gesture, orrery&lt;br /&gt;
will show the region you traced out in green, and will draw a red&lt;br /&gt;
arrow showing the direction and size of the pan.   After that,&lt;br /&gt;
the display is re-drawn with the new center position.&lt;br /&gt;
&lt;br /&gt;
[[Image:orreryPanDemo.png|400px|Orrery Pan Demo]]&lt;br /&gt;
&lt;br /&gt;
The image above shows the display immediately after a pan gesture&lt;br /&gt;
has been made (left) and following the re-drawing of the display&lt;br /&gt;
area (right).&lt;br /&gt;
&lt;br /&gt;
=== Presses ===&lt;br /&gt;
If you push down on the touchscreen for more than 0.25 seconds, and&lt;br /&gt;
do not move your finger or stylus significantly while making contact,&lt;br /&gt;
you will have made a press gesture.   Since one almost always moves&lt;br /&gt;
one's finger a little by while pressing the screen, some small motion&lt;br /&gt;
is allowed during a press gesture.   This means that a zoom or pan&lt;br /&gt;
gesture cannot be arbitrarily small, because it will be interpreted&lt;br /&gt;
as a press.&lt;br /&gt;
&lt;br /&gt;
If the screen is zoomed, then the press gesture unzooms it.   If the&lt;br /&gt;
screen is already unzoomed, then the press gesture has the same&lt;br /&gt;
effect as a tap gesture.&lt;br /&gt;
&lt;br /&gt;
== Symbols ==&lt;br /&gt;
=== Symbol Key ===&lt;br /&gt;
If you select &amp;quot;About Orrery / Symbol Key&amp;quot; from the &amp;quot;opts&amp;quot; menu, you&lt;br /&gt;
will be shown an annotated list of the symbols used by the orrery,&lt;br /&gt;
which is reproduced below:&lt;br /&gt;
&lt;br /&gt;
[[Image:OrrerySymbolKey.png|200px|Symbols used by the orrery]]&lt;br /&gt;
&lt;br /&gt;
=== Planet Symbols ===&lt;br /&gt;
The solar system symbols, used by default on the constellation&lt;br /&gt;
page (screen two), are the standard astronomical symbols for these&lt;br /&gt;
objects.   They are explained here:&lt;br /&gt;
[http://en.wikipedia.org/wiki/Planet_symbols]&lt;br /&gt;
&lt;br /&gt;
=== Plotted Lines ===&lt;br /&gt;
The dotted yellow line is the Celestial Equator, the intersection of&lt;br /&gt;
the Earth's equatorial plane with the celestial sphere.   The red&lt;br /&gt;
dotted line is the Ecliptic.   The Ecliptic is the intersection&lt;br /&gt;
of the Earth's orbital plane with the celestial sphere.   The&lt;br /&gt;
Ecliptic is also the path of the Sun across the sky, and the intersection&lt;br /&gt;
points between the Celestial Equator and the Ecliptic are where the&lt;br /&gt;
Sun is at the time of an equinox.   Constellations lying along the&lt;br /&gt;
Ecliptic plane are zodiac constellations.   The planets and the Moon&lt;br /&gt;
are always near, but usually not exactly on, the Ecliptic.&lt;br /&gt;
The blue-green dotted line is&lt;br /&gt;
the Galactic Plane, the intersection of the plane of the Milky Way's&lt;br /&gt;
disk and the celestial sphere.&lt;br /&gt;
&lt;br /&gt;
== Displaying Stars Too Faint for the Unaided Eye to See ==&lt;br /&gt;
The default sky catalog used by the orrery contains every star&lt;br /&gt;
you can see with your unaided eye.   If you wish to display stars&lt;br /&gt;
which require binoculars or a small telescope to be seen, you can&lt;br /&gt;
download the file hipparcos_9.0.dat from the orrery area of the&lt;br /&gt;
gForge site:&lt;br /&gt;
[http://projects.openmoko.org/projects/orrery/].   You must then load that file to your phone&lt;br /&gt;
with the name /usr/share/orrery/hipparcos.dat (you will be overwriting&lt;br /&gt;
the smaller catalog which comes with the package).   If you&lt;br /&gt;
prefer to put the file elsewhere (on your microSD, for example), you&lt;br /&gt;
may make /usr/share/orrery/hipparcos.dat a soft link.&lt;br /&gt;
&lt;br /&gt;
The default orrery star catalog contains 9931 stars.   hipparcos_9.0.dat&lt;br /&gt;
contains 83392 stars, and is complete to 9th magnitude.  Note&lt;br /&gt;
that the orrery will be more sluggish if you use this larger catalog.&lt;br /&gt;
Most people definately won't want to use it.   The plot below shows&lt;br /&gt;
Lyra with limiting magnitudes of 6.6 (left) and 9.0 (right).&lt;br /&gt;
&lt;br /&gt;
[[Image:orreryLyraComparison.png|400px|Orrery Catalogs]]&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
=== Supported Phones ===&lt;br /&gt;
This program will run on either the neo1973 (gta01)&lt;br /&gt;
or the FreeRunner (gta02).   Users of the neo1973&lt;br /&gt;
may wish to move the files to the microSD card, to&lt;br /&gt;
save space in the limited builtin flash memory&lt;br /&gt;
(see below).&lt;br /&gt;
&lt;br /&gt;
=== Supported Software Stacks ===&lt;br /&gt;
This program has been tested running atop the&lt;br /&gt;
2007.2 and 2008.8 distributions.   It probably will&lt;br /&gt;
work with FSO too.  It is gtk based.&lt;br /&gt;
&lt;br /&gt;
=== Memory Requirements ===&lt;br /&gt;
This program requires 630 kbytes of storage space in the phone's&lt;br /&gt;
builtin flash storage or microSD card.   By default, most of&lt;br /&gt;
the files (everything except the .desktop file, the launch&lt;br /&gt;
icon and the executable) are stored under /usr/share/orrery.&lt;br /&gt;
This directory tree may be moved elsewhere, if the new&lt;br /&gt;
location is specified with the -d switch on the orrery&lt;br /&gt;
invocation line in the .desktop file.   The .desktop&lt;br /&gt;
file resides in /usr/share/applications .&lt;br /&gt;
&lt;br /&gt;
== Installing this Program ==&lt;br /&gt;
.ipk files for this program are now available for both the 2007.2&lt;br /&gt;
and 2008.8 stacks, at the gForge site.   It is much easier to install&lt;br /&gt;
than it used to be.  The latest .ipk files can be found here:&lt;br /&gt;
[http://projects.openmoko.org/projects/orrery/].&lt;br /&gt;
&lt;br /&gt;
== Known Bugs ==&lt;br /&gt;
&lt;br /&gt;
=== Zooming the zenith area doesn't work ===&lt;br /&gt;
If you make a zoom gesture that includes the zenith, or if&lt;br /&gt;
you pan a zoomed region so that the zenith falls within it,&lt;br /&gt;
the orrery goes nuts.&lt;br /&gt;
&lt;br /&gt;
=== Restarting gpsd crashes orrery ===&lt;br /&gt;
If you restart gpsd while the orrery is running, the&lt;br /&gt;
orrery will crash if it is configured to use the GPS position.&lt;br /&gt;
&lt;br /&gt;
'''Send more bug reports!'''&lt;br /&gt;
&lt;br /&gt;
== Revision(ist) History ==&lt;br /&gt;
&lt;br /&gt;
Version 2.2:&lt;br /&gt;
New user features:&lt;br /&gt;
Added a moon calendar, which shows the&lt;br /&gt;
phase of the moon for every day over&lt;br /&gt;
a 21 month period centered on the current&lt;br /&gt;
month.&lt;br /&gt;
&lt;br /&gt;
Bug Fixes:&lt;br /&gt;
Flipped the orientation of the moon by&lt;br /&gt;
180 degrees on the &amp;quot;Sun and Moon Information&amp;quot;&lt;br /&gt;
page, for locations in the southern&lt;br /&gt;
hemisphere.  It is oriented correctly on&lt;br /&gt;
the new moon calendar.   It has always&lt;br /&gt;
been correct on the sky display.&lt;br /&gt;
&lt;br /&gt;
== Contact Information ==&lt;br /&gt;
Please send comments, suggestions, questions and/or&lt;br /&gt;
abuse to orrery.moko@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Orrery]]|&lt;br /&gt;
Description=Orrery displays the objects in the night (or day) sky. It uses the GPS position, if available|&lt;br /&gt;
Screenshot=OrreryWithMenuTabs.png|&lt;br /&gt;
Homepage=http://projects.openmoko.org/projects/orrery/|&lt;br /&gt;
TestedOn=Om 2008.8|&lt;br /&gt;
PackageName=orrery&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Graphics Applications]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Python</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Python"/>
				<updated>2008-11-09T09:42:35Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Minimal ETK gui */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Python''' is a programming language which is applicable to scripting phone functionalities and graphical user interfaces. Currently, at least [[SettingsGUI]], [[SMSTool]] and [http://pavelmachek.livejournal.com/42672.html MokoMenu] use it. There is also [[Python ncurses]] for character user interfaces. [[Manually using Bluetooth]] is partially based on using Python.&lt;br /&gt;
&lt;br /&gt;
== Environment ==&lt;br /&gt;
&lt;br /&gt;
Source packages for Python contained in [[OpenEmbedded]] include: &lt;br /&gt;
 python python-pygtk python-pycairo python-pygobject python-dbus&lt;br /&gt;
&lt;br /&gt;
Binary packages for Python are not officially built yet but at least ScaredyCat's [[repositories]] provide them: &lt;br /&gt;
 python-core python-misc python-lang python-subprocess python-threading etc.&lt;br /&gt;
&lt;br /&gt;
ETK/EFL applications need the following binary packages too: &lt;br /&gt;
 python-etk python-efl&lt;br /&gt;
&lt;br /&gt;
GTK applications need the following binary packages too: &lt;br /&gt;
 python-pygtk python-pycairo python-pygobject&lt;br /&gt;
&lt;br /&gt;
{{note|These packages take up a considerable amount of space (several megabytes). Make sure that you have enough free space or install the packages to the media card as explained in [[package management]].}}&lt;br /&gt;
&lt;br /&gt;
=== Missing ===&lt;br /&gt;
&lt;br /&gt;
Parts of the Openmoko platform are not available in python yet, including gconf and evolution data server. python-openmoko is in the works for [[gsmd]] access etc. A recipe for PyWebKitGtk&lt;br /&gt;
is at [http://bugs.openembedded.org/show_bug.cgi?id=3028 OpenEmbedded bug #3028].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Application Development Crash Course#Adding Python scripts as applications]]&lt;br /&gt;
* [[Wishlist:BuiltInScriptingLanguage]]&lt;br /&gt;
* [[Pexpect]] a pure Python module for spawning child applications&lt;br /&gt;
== Simple Example Scripts ==&lt;br /&gt;
=== Minimal ETK gui ===&lt;br /&gt;
See also [[EFL_Documentation]] for more links and examples.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import etk&lt;br /&gt;
&lt;br /&gt;
#create a button (not yet on any window)&lt;br /&gt;
b = etk.Button(label=&amp;quot;Hello&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#create a (nonvisible) window and put the button on the window&lt;br /&gt;
w = etk.Window(title=&amp;quot;Hello&amp;quot;, child=b)&lt;br /&gt;
&lt;br /&gt;
#create a silly callback function&lt;br /&gt;
def hello(target):&lt;br /&gt;
print 'Hello World'&lt;br /&gt;
etk.main_quit()&lt;br /&gt;
&lt;br /&gt;
#make the button call the callback when pressed&lt;br /&gt;
b.on_clicked(hello)&lt;br /&gt;
&lt;br /&gt;
#make the window display&lt;br /&gt;
w.show_all()&lt;br /&gt;
&lt;br /&gt;
#start processing screen events&lt;br /&gt;
etk.main()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Minimal GTK gui ===&lt;br /&gt;
 import gtk&lt;br /&gt;
 &lt;br /&gt;
 #create a (nonvisible) window &lt;br /&gt;
 w = gtk.Window()&lt;br /&gt;
 &lt;br /&gt;
 #create a button (not yet on any window)&lt;br /&gt;
 b = gtk.Button('Hello')&lt;br /&gt;
 &lt;br /&gt;
 #put the button on the window&lt;br /&gt;
 w.add(b)&lt;br /&gt;
 &lt;br /&gt;
 #create a silly callback function&lt;br /&gt;
 def hello(target):&lt;br /&gt;
     print 'Hello world'&lt;br /&gt;
     exit()&lt;br /&gt;
 &lt;br /&gt;
 #make the button call the callback when pressed&lt;br /&gt;
 b.connect('clicked', hello)&lt;br /&gt;
 &lt;br /&gt;
 #make the window display&lt;br /&gt;
 w.show_all()&lt;br /&gt;
 &lt;br /&gt;
 #start processing screen events&lt;br /&gt;
 gtk.main()&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Themes</id>
		<title>Themes</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Themes"/>
				<updated>2008-10-27T11:54:53Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a stub about making Openmoko pretty, waiting for openmono-look.org, see also [[Artwork]] for more general pretty things.&lt;br /&gt;
&lt;br /&gt;
Everything is customizable already, but there is not much yet by way of ready-to-use themes for changing everything at once. Eventually, the plan is to offer readymade packages to change the phone's look and feel simply with `opkg' (or the graphical installer).&lt;br /&gt;
* For the eyes, one may change three things. First, the [[Configuring the boot splash screens| boot splash screens]]. Second, [[Customize Application Icons]] (also on [[Hacking the UI|this page]]). Three, everything else is determined by an Illume theme discussed below.&lt;br /&gt;
* For the ears, we can change [[Ringtones]], [[Boot sound]] and [[Tap sound]].&lt;br /&gt;
* By touch, we are not doing much with the vibrators and accels yet.&lt;br /&gt;
&lt;br /&gt;
== Changing the Illume theme ==&lt;br /&gt;
&lt;br /&gt;
To change the illume theme, download an already compiled  ''.edj'' file and put it into ''~/.e/e/themes/illume.edj''. The [http://exchange.enlightenment.org/ Enlightenment exchange] repository offers many themes, modules and applications. The following themes were made specifically with the FreeRunner in mind:&lt;br /&gt;
&lt;br /&gt;
* A Tango variant for Illume based distros is at [http://52grad.de/.stuff/freerunner/].&lt;br /&gt;
* CarloRatm [http://forum.telefoninux.org/index.php/topic,649.0.html illume theme]. If you do not read Italian try [http://lists.openmoko.org/nabble.html#nabble-tc1377326%7Ca1377326 this thread on the mailing list] first.''I've made it only for testing an application, there are some errors (e.g. the charging battery icon...) i'll try to solve next days -- CarloRatm''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; In the enlightenment archives there's a new Rasterman image:&lt;br /&gt;
&amp;gt;  - openmoko-illume-image-glibc-ipk--20080929-om-gta02.rootfs.jffs2 [1]&lt;br /&gt;
&amp;gt; It looks so cool with the new illume theme [2] [3] [4] [5] [6], but&lt;br /&gt;
&amp;gt; practically it has no telephony related software installed in since it&lt;br /&gt;
&amp;gt; seems a simple OE built with these scripts [7], so (I figure) that&lt;br /&gt;
&amp;gt; you're free to put in both the FSO and/or the Om2008.8 stack, just&lt;br /&gt;
&amp;gt; install the needed packages!&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; [1] http://download.enlightenment.org/misc/Illume/&lt;br /&gt;
&amp;gt; [2] http://forum.telefoninux.org/index.php/topic,533.0/topicseen.html&lt;br /&gt;
&amp;gt; [3] http://www.rasterman.com/files/illume-01.ogg&lt;br /&gt;
&amp;gt; [4] http://www.rasterman.com/files/illume-02.ogg&lt;br /&gt;
&amp;gt; [5] http://www.rasterman.com/files/illume-03.ogg&lt;br /&gt;
&amp;gt; [6] http://www.rasterman.com/files/illume-04.ogg&lt;br /&gt;
&amp;gt; [7] http://www.rasterman.com/files/oe-setup.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Creating or modifying an Illume theme is not as simple as editing a text file, because for performance reasons the ''.edj'' files are compiled. See the instructions about [[Edje]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Where to find other themes elements ==&lt;br /&gt;
&lt;br /&gt;
A GTK theme following the Tango line is at [http://www.3v1n0.net/openmoko/moko-sun-gtkrc].&lt;br /&gt;
&lt;br /&gt;
There are a few background images for the [[Display Locker]] screen in Om 2007.2.&lt;br /&gt;
&lt;br /&gt;
Unreleased ongoing work:&lt;br /&gt;
* http://arbnora.projects.openmoko.org/&lt;br /&gt;
* http://ninja.projects.openmoko.org/&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Themes</id>
		<title>Themes</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Themes"/>
				<updated>2008-10-27T11:54:12Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a stub about making Openmoko pretty, waiting for openmono-look.org, see also [Artwork] for more general pretty things. &lt;br /&gt;
&lt;br /&gt;
Everything is customizable already, but there is not much yet by way of ready-to-use themes for changing everything at once. Eventually, the plan is to offer readymade packages to change the phone's look and feel simply with `opkg' (or the graphical installer).&lt;br /&gt;
* For the eyes, one may change three things. First, the [[Configuring the boot splash screens| boot splash screens]]. Second, [[Customize Application Icons]] (also on [[Hacking the UI|this page]]). Three, everything else is determined by an Illume theme discussed below.&lt;br /&gt;
* For the ears, we can change [[Ringtones]], [[Boot sound]] and [[Tap sound]].&lt;br /&gt;
* By touch, we are not doing much with the vibrators and accels yet.&lt;br /&gt;
&lt;br /&gt;
== Changing the Illume theme ==&lt;br /&gt;
&lt;br /&gt;
To change the illume theme, download an already compiled  ''.edj'' file and put it into ''~/.e/e/themes/illume.edj''. The [http://exchange.enlightenment.org/ Enlightenment exchange] repository offers many themes, modules and applications. The following themes were made specifically with the FreeRunner in mind:&lt;br /&gt;
&lt;br /&gt;
* A Tango variant for Illume based distros is at [http://52grad.de/.stuff/freerunner/].&lt;br /&gt;
* CarloRatm [http://forum.telefoninux.org/index.php/topic,649.0.html illume theme]. If you do not read Italian try [http://lists.openmoko.org/nabble.html#nabble-tc1377326%7Ca1377326 this thread on the mailing list] first.''I've made it only for testing an application, there are some errors (e.g. the charging battery icon...) i'll try to solve next days -- CarloRatm''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; In the enlightenment archives there's a new Rasterman image:&lt;br /&gt;
&amp;gt;  - openmoko-illume-image-glibc-ipk--20080929-om-gta02.rootfs.jffs2 [1]&lt;br /&gt;
&amp;gt; It looks so cool with the new illume theme [2] [3] [4] [5] [6], but&lt;br /&gt;
&amp;gt; practically it has no telephony related software installed in since it&lt;br /&gt;
&amp;gt; seems a simple OE built with these scripts [7], so (I figure) that&lt;br /&gt;
&amp;gt; you're free to put in both the FSO and/or the Om2008.8 stack, just&lt;br /&gt;
&amp;gt; install the needed packages!&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; [1] http://download.enlightenment.org/misc/Illume/&lt;br /&gt;
&amp;gt; [2] http://forum.telefoninux.org/index.php/topic,533.0/topicseen.html&lt;br /&gt;
&amp;gt; [3] http://www.rasterman.com/files/illume-01.ogg&lt;br /&gt;
&amp;gt; [4] http://www.rasterman.com/files/illume-02.ogg&lt;br /&gt;
&amp;gt; [5] http://www.rasterman.com/files/illume-03.ogg&lt;br /&gt;
&amp;gt; [6] http://www.rasterman.com/files/illume-04.ogg&lt;br /&gt;
&amp;gt; [7] http://www.rasterman.com/files/oe-setup.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Creating or modifying an Illume theme is not as simple as editing a text file, because for performance reasons the ''.edj'' files are compiled. See the instructions about [[Edje]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Where to find other themes elements ==&lt;br /&gt;
&lt;br /&gt;
A GTK theme following the Tango line is at [http://www.3v1n0.net/openmoko/moko-sun-gtkrc].&lt;br /&gt;
&lt;br /&gt;
There are a few background images for the [[Display Locker]] screen in Om 2007.2.&lt;br /&gt;
&lt;br /&gt;
Unreleased ongoing work:&lt;br /&gt;
* http://arbnora.projects.openmoko.org/&lt;br /&gt;
* http://ninja.projects.openmoko.org/&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-10-25T09:26:43Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tickets I am interested in: &lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
* https://docs.openmoko.org/trac/ticket/2082&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Gromgull</id>
		<title>User:Gromgull</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Gromgull"/>
				<updated>2008-10-25T09:26:22Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: New page: Tickets I am interested in:   * https://docs.openmoko.org/trac/ticket/1743  * http://docs.openmoko.org/trac/ticket/677  * https://docs.openmoko.org/trac/ticket/1802  * https://docs.openmok...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tickets I am interested in: &lt;br /&gt;
 * https://docs.openmoko.org/trac/ticket/1743&lt;br /&gt;
 * http://docs.openmoko.org/trac/ticket/677&lt;br /&gt;
 * https://docs.openmoko.org/trac/ticket/1802&lt;br /&gt;
 * https://docs.openmoko.org/trac/ticket/2082&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Debian</id>
		<title>Debian</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Debian"/>
				<updated>2008-10-16T09:53:20Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Using matchbox-window-manager with XFCE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation =&lt;br /&gt;
There are &amp;quot;official&amp;quot; instructions on how to install [http://wiki.debian.org/DebianOnFreeRunner Debian on FreeRunner] or [http://wiki.debian.org/DebianOnNeo1973 Debian on Neo1973] (see the [http://lists.linuxtogo.org/pipermail/smartphones-standards/2008-August/000232.html original announcement]).&lt;br /&gt;
&lt;br /&gt;
Previous information (partly outdated, now) on how to install Debian manually has been moved to [[Manual Debian]].&lt;br /&gt;
&lt;br /&gt;
See also : http://www.debian.org/ to know more about Debian.&lt;br /&gt;
&lt;br /&gt;
From time to time the Debian packages may be broken, which will cause the install.sh script to fail. Since waiting for the packages to be fixed can take quite a lot of patience, [http://dgym.homeunix.net/projects/freerunner/debian-install/ here] is an alternative method of getting Debian installed on the FreeRunner.&lt;br /&gt;
&lt;br /&gt;
= System =&lt;br /&gt;
== Password ==&lt;br /&gt;
&lt;br /&gt;
The default root password is blank. You should change that as soon as you can:&lt;br /&gt;
 # passwd&lt;br /&gt;
If entering a blank password does not work at first, try rebooting. If still no success, boot to 2008.08/2007.02, chroot to the micro SD card and set a new password.&lt;br /&gt;
&lt;br /&gt;
== Speeding up booting ==&lt;br /&gt;
'''Note''': By default, Debian is already configured to write limited messages to the console during boot.  Does this actually speed things up anymore?&lt;br /&gt;
&lt;br /&gt;
What's good for every linux booting is also good for our debian on the freerunner: booting in quiet mode. To do so by default just boot your Neo FreeRunner in NOR-Flash and execute this configure-script: [http://paste.ubuntuusers.de/391456/ configure-uboot.sh].&lt;br /&gt;
&lt;br /&gt;
It changes default booting to quiet-mode and adds another boot-option to boot without quiet-mode for debugging purpose.&lt;br /&gt;
&lt;br /&gt;
== Suspend ==&lt;br /&gt;
&lt;br /&gt;
'''Note''': As of Sep. 15 2008, suspend works 'out-of-the-box'; installing apm and the idle clock configuration changes do not seem to be necessary any more.  Press the power button for two seconds (in zhone) or run 'apm -s' to suspend.&lt;br /&gt;
&lt;br /&gt;
To make suspend available you have to install apmd:&lt;br /&gt;
 apt-get install apmd&lt;br /&gt;
After that you can suspend your phone with:&lt;br /&gt;
 apm -s&lt;br /&gt;
and make it wake up again with pressing the power button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
* [[User:Wuth|Wuth]] 06:28, 17 August 2008 (UTC): I found that apmd was already installed by using the official debian installation procedure, but that the kernel didn't support apm.  I haven't yet resolved this issue.  [[User:Wuth|Wuth]] 05:31, 7 September 2008 (UTC): Worked fine on second install.  Perhaps this is no longer a problem.&lt;br /&gt;
&lt;br /&gt;
* [[User:Phyce|Phyce]] 21:33, 20 August 2008 (UTC)  installed apm without problems; apm -s shutdowns the freerunner but I couldn't wake it up with power button... I had to remove the battery to boot again. suspend/resume was working quite reliably with latest kernels on ASU.&lt;br /&gt;
&lt;br /&gt;
To wake up successfully, the idle-clock of the SD card needs to be enabled right before suspend. It can be disabled again right after resume (this reduces GPS interference). Write into /etc/apm/suspend.d/00sd_idleclk &lt;br /&gt;
 #!/bin/sh &lt;br /&gt;
 echo 1 &amp;gt; /sys/module/glamo_mci/parameters/sd_idleclk &lt;br /&gt;
 touch /home/root/.profile&lt;br /&gt;
and into /etc/apm/resume.d/00sd_idleclk &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo 0 &amp;gt; /sys/module/glamo_mci/parameters/sd_idleclk &lt;br /&gt;
These are from -stacy on the community list.&lt;br /&gt;
&lt;br /&gt;
And anotherone from [[User:Morlac|Morlac]]: (more debianish i think ;) &amp;lt;br /&amp;gt;&lt;br /&gt;
etc/apm/scripts.d/sd_idleclk and corresponding link in /etc/apm/event.d&amp;lt;br /&amp;gt;&lt;br /&gt;
(don't forget to chmod +x /etc/apm/scripts.d/sd_idleclk)&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 SD_IDLECLK=&amp;quot;/sys/module/glamo_mci/parameters/sd_idleclk&amp;quot;&lt;br /&gt;
 [ -e &amp;quot;${SD_IDLECLK}&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;${1},${2}&amp;quot; in&lt;br /&gt;
 (suspend,*)&lt;br /&gt;
     echo 1 &amp;gt; ${SD_IDLECLK}&lt;br /&gt;
     touch /etc&lt;br /&gt;
     ;;&lt;br /&gt;
 (resume,suspend)&lt;br /&gt;
     echo 0 &amp;gt; ${SD_IDLECLK}&lt;br /&gt;
     ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
== Time ==&lt;br /&gt;
&lt;br /&gt;
The default time zone is UTC.  Reconfigure it by running&lt;br /&gt;
&lt;br /&gt;
 # dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
To set the clock manually do something like&lt;br /&gt;
&lt;br /&gt;
 # date -s 00:33&lt;br /&gt;
&lt;br /&gt;
If you have a network connection, do something like&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ntpdate&lt;br /&gt;
 # ntpdate-debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
* That's probably not sufficient to keep the clock accurate.  It might be worth configuring some form of NTP.&lt;br /&gt;
** Setting the clock could be done via GPS: [[Getting_GPS_console_output_with_gllin#GPRMC_message]]&lt;br /&gt;
&lt;br /&gt;
== WLAN ==&lt;br /&gt;
=== wifi-radar ===&lt;br /&gt;
&lt;br /&gt;
If you don't want to mess up with configuration files and is looking for an easy gui for wireless configuration, then wifi-radar is what you are looking for.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install wifi-radar&lt;br /&gt;
wifi-radar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are looking for more, read on...&lt;br /&gt;
&lt;br /&gt;
=== Installing prerequisites ===&lt;br /&gt;
&lt;br /&gt;
Make sure the following packages are installed&lt;br /&gt;
apt-get install wireless-tools wpasupplicant dhcp3-client&lt;br /&gt;
&lt;br /&gt;
=== Example configurations ===&lt;br /&gt;
&lt;br /&gt;
==== Single network configuration ====&lt;br /&gt;
&lt;br /&gt;
Assuming your wireless router uses WPA security and DHCP,&lt;br /&gt;
edit &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; to include a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet dhcp&lt;br /&gt;
wpa-driver wext&lt;br /&gt;
wpa-ssid &amp;quot;MyWirelessName&amp;quot;&lt;br /&gt;
wpa-psk &amp;quot;MyWirelessPassword&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Where, of course, you're using the name of your wireless network and it's password&lt;br /&gt;
instead of ''MyWirelessName'' and ''MyWirelessPassword''.&lt;br /&gt;
&lt;br /&gt;
You can test by running&lt;br /&gt;
# ifup eth0&lt;br /&gt;
&lt;br /&gt;
You can determine your IP address by running&lt;br /&gt;
# ifconfig eth0&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
* only works if in presence of wireless network on boot, or when manually running &amp;lt;code&amp;gt;ifup eth0&amp;lt;/code&amp;gt;&lt;br /&gt;
* booting away from wireless network is slower because waits for DHCP to time out&lt;br /&gt;
* does not reestablish connection when leaving wireless area and then returning&lt;br /&gt;
* does not support multiple wireless networks or open hotspots that you may travel between&lt;br /&gt;
&lt;br /&gt;
Once wpa_supplicant has begun managing your wifi interface, you should type &amp;quot;wpa_action eth0 stop&amp;quot; instead of &amp;quot;ifdown eth0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Roaming configuration ====&lt;br /&gt;
&lt;br /&gt;
'''Todo''': Which of the issues that single network configurations suffer from are addressed by WPA roaming mode?  Would ifplugd / guessnet help, or just make things more complicated?&lt;br /&gt;
&lt;br /&gt;
* Roaming from network to network is not automatic.  Instead, you need to manually run &amp;quot;wpa_action eth0 stop; ifup eth0&amp;quot; to switch networks&lt;br /&gt;
&lt;br /&gt;
===== wpa_supplicant.conf =====&lt;br /&gt;
&lt;br /&gt;
To configure WPA to roam between wireless networks, you will need to create a new configuration file:&lt;br /&gt;
&lt;br /&gt;
/etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
a template for this file (and more documentation) is available in:&lt;br /&gt;
&lt;br /&gt;
/usr/share/doc/wpasupplicant/examples/wpa-roam.conf&lt;br /&gt;
&lt;br /&gt;
You'll need to add networks to this file.  Examples:&lt;br /&gt;
&lt;br /&gt;
WEP:&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
ssid=&amp;quot;MySSID&amp;quot;&lt;br /&gt;
key_mgmt=NONE&lt;br /&gt;
wep_key0=&amp;quot;abcdefghijklm&amp;quot;&lt;br /&gt;
#      wep_key0=6162636465  # &amp;lt;- no quotes, so hex number&lt;br /&gt;
wep_tx_keyidx=0&lt;br /&gt;
id_str=&amp;quot;MySSID&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
No key:&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
ssid=&amp;quot;SomeNetwork&amp;quot;&lt;br /&gt;
key_mgmt=NONE&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
WPA:&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
ssid=&amp;quot;Example WPA Network&amp;quot;&lt;br /&gt;
psk=&amp;quot;mysecretpassphrase&amp;quot;&lt;br /&gt;
id_str=&amp;quot;home&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
===== /etc/network/interfaces =====&lt;br /&gt;
&lt;br /&gt;
Next, you'll need to edit /etc/network/interfaces.  This lets you configure your wireless networks to use dhcp, or other appropriate TCP/IP settings:&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet manual&lt;br /&gt;
wpa-driver wext&lt;br /&gt;
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
# MySSID comes from an id_str above.&lt;br /&gt;
iface MySSID inet dhcp&lt;br /&gt;
&lt;br /&gt;
# default is what's used if there is no id_str setting.&lt;br /&gt;
# so the 'SomeNetwork' network will use DHCP.&lt;br /&gt;
iface default inet dhcp&lt;br /&gt;
&lt;br /&gt;
iface home inet static&lt;br /&gt;
# static interface settings, or whatever...&lt;br /&gt;
&lt;br /&gt;
Finally, if you want attempts to access the internet to default to eth0 (and not usb0), then comment out this line under usb0 adapter configuration:&lt;br /&gt;
&lt;br /&gt;
gateway 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
For some reason, I had to reboot for the id_str settings to take effect.  However, you should now be able to use &amp;quot;ifup eth0&amp;quot; to associate with the access point and &amp;quot;wpa_action eth0 stop&amp;quot; to down the wifi adapter.&lt;br /&gt;
&lt;br /&gt;
=== Further reading ===&lt;br /&gt;
&lt;br /&gt;
To use all the possibilities of &amp;lt;code&amp;gt;wpasupplicant&amp;lt;/code&amp;gt; like roaming and automatic connection to different networks,&lt;br /&gt;
you should read &amp;lt;code&amp;gt;/usr/share/doc/wpasupplicant/README.Debian.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
The FreeRunner uses the standard Linux bluez stack, installed with&lt;br /&gt;
 # apt-get install bluez-utils&lt;br /&gt;
&lt;br /&gt;
There is also a module missing from /etc/modules, which is critical to getting your device recognized. (kudos to johnsu01 on irc.freenode.net:#openmoko-debian for the find)&lt;br /&gt;
 # echo ohci-hcd &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
The first time you try this, you can also&lt;br /&gt;
 # modprobe ohci-hcd&lt;br /&gt;
&lt;br /&gt;
The only atypical part of using bluetooth on the FreeRunner is turning it on, which can be done with&lt;br /&gt;
 # echo 1 &amp;gt; /sys/bus/platform/devices/neo1973-pm-bt.0/power_on&lt;br /&gt;
 # echo 0 &amp;gt; /sys/bus/platform/devices/neo1973-pm-bt.0/reset&lt;br /&gt;
&lt;br /&gt;
Then the device should be visible using&lt;br /&gt;
 # hcitool dev&lt;br /&gt;
&lt;br /&gt;
== Better Xorg ==&lt;br /&gt;
By default debian uses fbdev... But we can use Xglamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install xserver-xglamo&amp;lt;/pre&amp;gt;&lt;br /&gt;
after that edit /etc/X11/xorg.conf and change the line&lt;br /&gt;
&amp;lt;pre&amp;gt;Driver          &amp;quot;fbdev&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
to:&lt;br /&gt;
&amp;lt;pre&amp;gt;Driver          &amp;quot;Xglamo&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and if you want to run xserver as normal user:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod u+s /usr/bin/Xglamo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with that you:&lt;br /&gt;
*can use xrandr&lt;br /&gt;
*don't have the pointer callibration bug with the rotated mode&lt;br /&gt;
*have better performances&lt;br /&gt;
&lt;br /&gt;
== Running X as normal user ==&lt;br /&gt;
1. Create a new user&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G audio,dialout,floppy,video,staff username&lt;br /&gt;
# passwd username&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Edit &amp;lt;code&amp;gt;/etc/init.d/zhone-session&amp;lt;/code&amp;gt; and change &amp;lt;code&amp;gt;USER=root&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;USER=username&amp;lt;/code&amp;gt; in it. Then to make sure changes are not lost on upgrade, run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-divert --add /etc/init.d/zhone-session&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will make new versions of &amp;lt;code&amp;gt;/etc/init.d/zhone-session&amp;lt;/code&amp;gt; be written to &amp;lt;code&amp;gt;/etc/init.d/zhone-session.distrib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Edit &amp;lt;code&amp;gt;/etc/X11/Xwrapper.config&amp;lt;/code&amp;gt; and change &amp;lt;code&amp;gt;allowed_users=console&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;allowed_users=anybody&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Make apm setuid root so that zhone can do suspend and make it only executable for users in the staff group&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-statoverride --update --add root staff 4750 /usr/bin/apm &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It would also be possible to use sudo, but then you would have to edit /usr/bin/zhone.&lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
Make sure to put your user in the audio group (&amp;quot;adduser &amp;lt;username&amp;gt; audio&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If there is no error but no sound, try these state files:&lt;br /&gt;
[[Talk:Manual_Debian#Sound]]&lt;br /&gt;
&lt;br /&gt;
== How to replace the default kernel with a recent openmoko kernel ==&lt;br /&gt;
&lt;br /&gt;
If you would like to update to a new kernel, here is a short summary of what to do to update the kernel to an actual OM kernel. But only do this if you know what you are doing.&lt;br /&gt;
At the moment there is a little problem in the question which kernel to use. Hopefully it will be solved in the near future.&lt;br /&gt;
&lt;br /&gt;
The original openmoko kernel works fine except for the fact that suspending with zhone doesn't work. But this kernel supports different really nice usb gadgets. :)&amp;lt;br&amp;gt;&lt;br /&gt;
download stable: http://downloads.openmoko.org/releases/Om2008.8-update/&amp;lt;br&amp;gt;&lt;br /&gt;
download testing: http://downloads.openmoko.org/daily/&lt;br /&gt;
&lt;br /&gt;
The new FSO3 kernel works fine and suspend/resume with zhone is also possible. But this kernel still has no loadable usb gadget modules (17-Sep-2008 01:39). :/&amp;lt;br&amp;gt;&lt;br /&gt;
download testing: http://downloads.freesmartphone.org/fso-testing/images/&amp;lt;br&amp;gt;&lt;br /&gt;
download unstable: http://downloads.freesmartphone.org/fso-unstable/images/&lt;br /&gt;
# Download a recent'' kernel'' and ''rootfs'' (tar.gz) from one of the above mentioned sources. It's your decision if you want suspend or usb gadget modules at the moment.  &lt;br /&gt;
# Backup your running kernel like &amp;lt;code&amp;gt;mv /boot/uImage.bin /boot/uImage.bin.old&amp;lt;/code&amp;gt;, then &amp;lt;br&amp;gt;copy the downloaded uImage file to the freerunner as &amp;lt;tt&amp;gt;/boot/uImage.bin&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Backup your actual modules like &amp;lt;code&amp;gt;mv /lib/modules/2.6.24 /lib/modules/2.6.24.old&amp;lt;/code&amp;gt;, then &amp;lt;br&amp;gt;extract the downloaded rootfs tar.gz to a temporary directory and copy &amp;lt;tt&amp;gt;lib/modules/2.6.24&amp;lt;/tt&amp;gt; from the temp directory to &amp;lt;tt&amp;gt;/lib/modules/2.6.24&amp;lt;/tt&amp;gt; on the FreeRunner. &lt;br /&gt;
# Run a &amp;lt;code&amp;gt;depmod -a&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Do a &amp;lt;code&amp;gt;chown -R root.root /lib/modules/2.6.24&amp;lt;/code&amp;gt; because the owner from the tar.gz is something else.&lt;br /&gt;
# This step is only needed for the OM kernel but it doesn't harm the FSO kernel setup. Add &amp;quot;g_ether&amp;quot; Module to /etc/modules like &amp;lt;code&amp;gt;echo g_ether &amp;gt;&amp;gt; /etc/modules&amp;lt;/code&amp;gt;. I read in an email, that the module &amp;quot;ohci-hcd&amp;quot; is also needed for some bluetooth functions, but i don't know this for real. I inserted it to my modules file to be on the safe side.&lt;br /&gt;
# Reboot and hope everything works as expected. :)&lt;br /&gt;
--[[User:Pini]] Sun Sep 28 15:01:46 UTC 2008&lt;br /&gt;
* Actually suspend/resume doesn't work anymore on the Neo Freerunner with the FSO3 kernel starting from september 16th. It does work with the Om2008.8 kernel from september 3rd.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
You can install &amp;lt;tt&amp;gt;[http://packages.debian.org/search?keywords=dselect dselect]&amp;lt;/tt&amp;gt;(~2.2MB) or &amp;lt;tt&amp;gt;[http://packages.debian.org/search?keywords=aptitude aptitude]&amp;lt;/tt&amp;gt;(~12MB) to visually inspect the available debian packages using the desktop's console.&amp;lt;br&amp;gt;&lt;br /&gt;
Also the gtk-based package-manager &amp;lt;tt&amp;gt;[http://packages.debian.org/search?keywords=synaptic synaptic]&amp;lt;/tt&amp;gt;(~15.7MB) is probably working.&amp;lt;br&amp;gt;&lt;br /&gt;
Finally, on constrained systems, just issue the command:&lt;br /&gt;
 grep -e Package: -e Description /var/lib/dpkg/available|more&lt;br /&gt;
== Web Browser ==&lt;br /&gt;
[http://lists.openmoko.org/nabble.html#nabble-td781547 Arne Anka suggested] trying the light-weight webkit-based [http://en.wikipedia.org/wiki/Midori_(browser) midori] browser:&lt;br /&gt;
  apt-get install midori&lt;br /&gt;
&lt;br /&gt;
== TangoGPS ==&lt;br /&gt;
{{main|TangoGPS}}&lt;br /&gt;
== e-book reader ==&lt;br /&gt;
{{main|FBReader}}&lt;br /&gt;
&lt;br /&gt;
Evince is also available in debian, and handles pdf, djvu, cbz, and other formats.&lt;br /&gt;
&lt;br /&gt;
There is also a hack to convert drm protected adobe ebooks to .cbz files readable with evince, which is mentioned on the mailing list.&lt;br /&gt;
&lt;br /&gt;
== XFCE ==&lt;br /&gt;
&lt;br /&gt;
xfce is small and lightweight and so is quite fast for the FreeRunner.&lt;br /&gt;
&lt;br /&gt;
 apt-get install xfce4&lt;br /&gt;
 cp /etc/init.d/zhone-session /etc/init.d/xfce&lt;br /&gt;
&lt;br /&gt;
Then you may hack /etc/init.d/xfce making&lt;br /&gt;
&lt;br /&gt;
 PROG_FSO=/usr/bin/startxfce4&lt;br /&gt;
&lt;br /&gt;
Customize the boot process (this may have to be redone when zhone-session is updated):&lt;br /&gt;
&lt;br /&gt;
 update-rc.d -f zhone-session remove&lt;br /&gt;
 update-rc.d -f xfce defaults&lt;br /&gt;
&lt;br /&gt;
edit your /etc/hosts to have :&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1 localhost debian-gta02&lt;br /&gt;
&lt;br /&gt;
Start XFCE !&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/zhone-session stop&lt;br /&gt;
 /etc/init.d/xfce start&lt;br /&gt;
&lt;br /&gt;
The desktop takes a while to start but once up was snappy as can be expected.&lt;br /&gt;
I've not yet looked at the reason for the seemingly too slow start for the desktop.&lt;br /&gt;
&lt;br /&gt;
zhone is available from the &amp;quot;Office&amp;quot; menu in xfce.&lt;br /&gt;
The matchbox keyboard is available in &amp;quot;Accessories&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to display the screen on the long side (ie rotated, 4:3 aspect), add the following to the /etc/X11/xorg.conf in both the Device and InputDevice sections :&lt;br /&gt;
&lt;br /&gt;
  Option          &amp;quot;Rotate&amp;quot;                &amp;quot;CCW&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and then (re)start xfce.&lt;br /&gt;
&lt;br /&gt;
=== Using matchbox-window-manager with XFCE ===&lt;br /&gt;
&lt;br /&gt;
XFCE's window manager is poorly configured for use with the FreeRunner.  Fortunately, matchbox's window manager is compatible with xfce.  To use the matchbox window manager, arrange to run the following commands at X startup.  If you followed the instructions above to run X as a normal user, put this in ~/.xinitrc:&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
zhone &amp;amp;&lt;br /&gt;
matchbox-keyboard-toggle &amp;amp;&lt;br /&gt;
exec matchbox-window-manager -use_titlebar no -use_cursor no &amp;amp;&lt;br /&gt;
xfce4-session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Todo|And if I didn't run X as a normal user?}}&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
== Making the cursor invisible ==&lt;br /&gt;
&lt;br /&gt;
=== Using matchbox ===&lt;br /&gt;
&lt;br /&gt;
Matchbox has an option, &amp;lt;code&amp;gt;use_cursor&amp;lt;/code&amp;gt;, that can be used to control whether to show the cursor. &lt;br /&gt;
For the default setup, edit &amp;lt;code&amp;gt;/usr/bin/zhone-session&amp;lt;/code&amp;gt; and change the matchbox command to&lt;br /&gt;
 matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
=== Using unclutter ===&lt;br /&gt;
&lt;br /&gt;
Unclutter is a program that hides the cursor after a period of inactivity. To use unclutter, install it&lt;br /&gt;
 #apt-get install unclutter&lt;br /&gt;
and choose ''Yes'' to the question &amp;lt;code&amp;gt;Start unclutter automatically?&amp;lt;/code&amp;gt;. To change settings edit &lt;br /&gt;
&amp;lt;code&amp;gt;/etc/default/unclutter&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Changing the cursor ===&lt;br /&gt;
To make the cursor invisible create a file called empty.cursor with this content:&lt;br /&gt;
 #define empty.cursor_width 16&lt;br /&gt;
 #define empty.cursor_height 16&lt;br /&gt;
 static unsigned char empty.cursor_bits[] = {&lt;br /&gt;
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};&lt;br /&gt;
Now you can execute:&lt;br /&gt;
 xsetroot -cursor empty.cursor empty.cursor&lt;br /&gt;
and the cursor will be invisible. To make this permanent you have to invent something ;) It must be executed after zhone has finished starting up.&lt;br /&gt;
&lt;br /&gt;
== Running X applications on your desktop in nested X server ==&lt;br /&gt;
Sometimes it is helpful to have a big screen, keyboard and mouse. You can run X applications in a nested X server window.&lt;br /&gt;
On your desktop install the nested X server application Xephyr (better that Xnest)&lt;br /&gt;
 apt-get install xserver-xephyr&lt;br /&gt;
Run a nested X server as display :1&lt;br /&gt;
 Xephyr :1 -ac -br -screen 480x640 -reset -terminate &amp;amp;&lt;br /&gt;
Now you are able to run apps on your Neo which will display on your desktop PC. Make sure to set the display, for example if &amp;quot;mydesktop&amp;quot; is your desktop hostname&lt;br /&gt;
 DISPLAY=mydesktop:1 xfce4-session &amp;amp;&lt;br /&gt;
&lt;br /&gt;
== Using the mouse and keyboard from your desktop on the OM device ==&lt;br /&gt;
If you are running Linux (or a similar xorg capable operating system) on your Desktop, you can export your xsession to the openmoko device and use your mouse and keyboard on the Neo screen. A little program called x2x makes it even possible to do this simultaneously on the fly. When activated you just move your mouse to the edge of your monitor and then the mouse cursor continues on the screen of your openmoko device. If you select a window on the OM, the input of your keyboard is automatically entered in that window. You can even use the clipboard to copy data from tour desktop to OM and in the reverse direction.&lt;br /&gt;
&lt;br /&gt;
Configure your desktop computer to export your xsession:&lt;br /&gt;
 On your desktop (with root permissions):&lt;br /&gt;
 Make sure that sshd is installed and in /etc/ssh/sshd_config you have set&lt;br /&gt;
 X11Forwarding yes&lt;br /&gt;
&lt;br /&gt;
In K/Ubuntu sshd is in the package openssh-server.&lt;br /&gt;
&lt;br /&gt;
On your OM device install x2x (with root permissions)&lt;br /&gt;
 apt-get install xauth x2x&lt;br /&gt;
Now open a new X terminal on your desktop computer. You MUST be the same user that is running the xsession on your desktop (i.e. do not su to root or another user in your x terminal!). Use the same username that is running an xsession on your OM device. Assuming that you have a usb networking connection to OM (with standard configuration) on the user prompt of your desktop type:&lt;br /&gt;
 user@desktop:~$ ssh -X openmoko@192.168.0.202 &amp;quot;/usr/bin/x2x -east -to :0.0&amp;quot;&lt;br /&gt;
Hit return and enter your password. The xterm window will be unresponsive after that, but keep it open until you disconnect your OM device.&lt;br /&gt;
&lt;br /&gt;
Now move your mouse cursor across the right edge of your monitor. It should enter the screen of your OM device from the left. Of course you can also use -west, -north or -south, depending on your preference where you place your OM.&lt;br /&gt;
&lt;br /&gt;
If computer says:&lt;br /&gt;
 sh: /usr/X11R6/bin/xauth: No such file or directory&lt;br /&gt;
 X11 connection rejected because of wrong authentication.&lt;br /&gt;
 x2x - error: can not open display localhost:11.0&lt;br /&gt;
&lt;br /&gt;
It means you haven't installed xauth on your OM. So on your OM (with root permissions)&lt;br /&gt;
 apt-get install xauth&lt;br /&gt;
&lt;br /&gt;
= Support =&lt;br /&gt;
&lt;br /&gt;
Debian is supported on the linux to go&lt;br /&gt;
[http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-userland smartphone mailing list]&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
== apt-get segmentation fault ==&lt;br /&gt;
&lt;br /&gt;
Whenever you get a segmentation fault while using apt-get or aptitude, clean the database so it will rebuild it&lt;br /&gt;
 rm /var/cache/apt/*.bin&lt;br /&gt;
&lt;br /&gt;
= Why use debian =&lt;br /&gt;
&lt;br /&gt;
The point of debian on the freerunner is that you get a huge army of software in a repository, all compiled for the arm processor.&lt;br /&gt;
&lt;br /&gt;
Debian is used on many other embedded devices too and so there's a much larger repository of software already available than in the 2008.8 opkg archives.&lt;br /&gt;
&lt;br /&gt;
You can build your own things without need to play with openembedded.&lt;br /&gt;
&lt;br /&gt;
For example compiling natively is a snap w/ debian, just apt-get gcc&amp;amp;libc-dev (on gentoo too) and not so easy w/ om images :) (borked compiler, borked headers).&lt;br /&gt;
&lt;br /&gt;
[[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:Artwork</id>
		<title>Talk:Artwork</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:Artwork"/>
				<updated>2008-10-15T22:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I started updating this page a bit, and then discovered that it overlaps slightly with [[Themes]] and it's not really linked from anywhere either. &lt;br /&gt;
What to do now? :)&lt;br /&gt;
[[User:Gromgull]]&lt;br /&gt;
&lt;br /&gt;
this came up on #openmoko: [http://62.75.157.44/openmoko/] --[[User:Minime|Minime]] 18:05, 28 July 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== great stuff ==&lt;br /&gt;
&lt;br /&gt;
well done - this looks great [[User:Johan|Johan]] 18:51, 28 July 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Artwork</id>
		<title>Artwork</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Artwork"/>
				<updated>2008-10-15T22:34:35Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* OpenMoko Wallpapers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Icons ==&lt;br /&gt;
[[User:nenadgrujicic|Nenad Grujicic]]: some ideas, device and suite icons&lt;br /&gt;
&lt;br /&gt;
=== Device Icon ===&lt;br /&gt;
&lt;br /&gt;
Here is a 256x256 png device icon for fic neo1973&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
http://i18.tinypic.com/62n9sba.jpg&lt;br /&gt;
&lt;br /&gt;
save as ..&lt;br /&gt;
&lt;br /&gt;
http://i15.tinypic.com/5yd5onm.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Openmoko &amp;quot;Suite&amp;quot; Icons Idea: ===&lt;br /&gt;
[[Image:Mainicon.png]]&lt;br /&gt;
[[Image:Openmokosync.png]]&lt;br /&gt;
[[Image:Mediatransfer.png]]&lt;br /&gt;
[[Image:Ghostbackup.png]]&lt;br /&gt;
[[Image:Filebrowser.png ]]&lt;br /&gt;
&lt;br /&gt;
[http://i11.tinypic.com/4yii7io.jpg link My Desktop Screenshot with icons]&lt;br /&gt;
&lt;br /&gt;
== Application Themes ==&lt;br /&gt;
&lt;br /&gt;
See also [[Themes]]&lt;br /&gt;
&lt;br /&gt;
* The Tange Theme: http://52grad.de/.stuff/freerunner/&lt;br /&gt;
&lt;br /&gt;
== OpenMoko Wallpapers ==&lt;br /&gt;
&lt;br /&gt;
Wallpapers for the FreeRunner!&lt;br /&gt;
&lt;br /&gt;
See [[Changing wallpaper]]&lt;br /&gt;
&lt;br /&gt;
== PC Wallpapers ==&lt;br /&gt;
&lt;br /&gt;
OpenMoko themed wallpapers for your desktop/laptop!&lt;br /&gt;
&lt;br /&gt;
See also [[Desktop wallpaper gallery]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Plain ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_plain_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_plain_white.png|300px|white]]&lt;br /&gt;
[[Image:Moko_plain_transparent.png|300px|transparent]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Wired 3D ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_wire_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_wire_white.png|300px|white]]&lt;br /&gt;
&lt;br /&gt;
{{Languages|Artwork}}&lt;br /&gt;
&lt;br /&gt;
[[Category:User Interfaces]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Artwork</id>
		<title>Artwork</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Artwork"/>
				<updated>2008-10-15T22:34:18Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Icons ==&lt;br /&gt;
[[User:nenadgrujicic|Nenad Grujicic]]: some ideas, device and suite icons&lt;br /&gt;
&lt;br /&gt;
=== Device Icon ===&lt;br /&gt;
&lt;br /&gt;
Here is a 256x256 png device icon for fic neo1973&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
http://i18.tinypic.com/62n9sba.jpg&lt;br /&gt;
&lt;br /&gt;
save as ..&lt;br /&gt;
&lt;br /&gt;
http://i15.tinypic.com/5yd5onm.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Openmoko &amp;quot;Suite&amp;quot; Icons Idea: ===&lt;br /&gt;
[[Image:Mainicon.png]]&lt;br /&gt;
[[Image:Openmokosync.png]]&lt;br /&gt;
[[Image:Mediatransfer.png]]&lt;br /&gt;
[[Image:Ghostbackup.png]]&lt;br /&gt;
[[Image:Filebrowser.png ]]&lt;br /&gt;
&lt;br /&gt;
[http://i11.tinypic.com/4yii7io.jpg link My Desktop Screenshot with icons]&lt;br /&gt;
&lt;br /&gt;
== Application Themes ==&lt;br /&gt;
&lt;br /&gt;
See also [[Themes]]&lt;br /&gt;
&lt;br /&gt;
* The Tange Theme: http://52grad.de/.stuff/freerunner/&lt;br /&gt;
&lt;br /&gt;
== OpenMoko Wallpapers ==&lt;br /&gt;
&lt;br /&gt;
Wallpapers for the FreeRunner!&lt;br /&gt;
&lt;br /&gt;
See [Changing wallpaper]&lt;br /&gt;
&lt;br /&gt;
== PC Wallpapers ==&lt;br /&gt;
&lt;br /&gt;
OpenMoko themed wallpapers for your desktop/laptop!&lt;br /&gt;
&lt;br /&gt;
See also [[Desktop wallpaper gallery]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Plain ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_plain_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_plain_white.png|300px|white]]&lt;br /&gt;
[[Image:Moko_plain_transparent.png|300px|transparent]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Wired 3D ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_wire_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_wire_white.png|300px|white]]&lt;br /&gt;
&lt;br /&gt;
{{Languages|Artwork}}&lt;br /&gt;
&lt;br /&gt;
[[Category:User Interfaces]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Artwork</id>
		<title>Artwork</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Artwork"/>
				<updated>2008-10-15T22:30:41Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Wallpaper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Icons ==&lt;br /&gt;
[[User:nenadgrujicic|Nenad Grujicic]]: some ideas, device and suite icons&lt;br /&gt;
&lt;br /&gt;
=== Device Icon ===&lt;br /&gt;
&lt;br /&gt;
Here is a 256x256 png device icon for fic neo1973&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
http://i18.tinypic.com/62n9sba.jpg&lt;br /&gt;
&lt;br /&gt;
save as ..&lt;br /&gt;
&lt;br /&gt;
http://i15.tinypic.com/5yd5onm.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Openmoko &amp;quot;Suite&amp;quot; Icons Idea: ===&lt;br /&gt;
[[Image:Mainicon.png]]&lt;br /&gt;
[[Image:Openmokosync.png]]&lt;br /&gt;
[[Image:Mediatransfer.png]]&lt;br /&gt;
[[Image:Ghostbackup.png]]&lt;br /&gt;
[[Image:Filebrowser.png ]]&lt;br /&gt;
&lt;br /&gt;
[http://i11.tinypic.com/4yii7io.jpg link My Desktop Screenshot with icons]&lt;br /&gt;
&lt;br /&gt;
== Wallpaper ==&lt;br /&gt;
&lt;br /&gt;
See also [[Desktop wallpaper gallery]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Plain ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_plain_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_plain_white.png|300px|white]]&lt;br /&gt;
[[Image:Moko_plain_transparent.png|300px|transparent]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Wired 3D ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_wire_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_wire_white.png|300px|white]]&lt;br /&gt;
&lt;br /&gt;
{{Languages|Artwork}}&lt;br /&gt;
&lt;br /&gt;
[[Category:User Interfaces]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Artwork</id>
		<title>Artwork</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Artwork"/>
				<updated>2008-10-15T22:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Icons ==&lt;br /&gt;
[[User:nenadgrujicic|Nenad Grujicic]]: some ideas, device and suite icons&lt;br /&gt;
&lt;br /&gt;
=== Device Icon ===&lt;br /&gt;
&lt;br /&gt;
Here is a 256x256 png device icon for fic neo1973&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
http://i18.tinypic.com/62n9sba.jpg&lt;br /&gt;
&lt;br /&gt;
save as ..&lt;br /&gt;
&lt;br /&gt;
http://i15.tinypic.com/5yd5onm.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Openmoko &amp;quot;Suite&amp;quot; Icons Idea: ===&lt;br /&gt;
[[Image:Mainicon.png]]&lt;br /&gt;
[[Image:Openmokosync.png]]&lt;br /&gt;
[[Image:Mediatransfer.png]]&lt;br /&gt;
[[Image:Ghostbackup.png]]&lt;br /&gt;
[[Image:Filebrowser.png ]]&lt;br /&gt;
&lt;br /&gt;
[http://i11.tinypic.com/4yii7io.jpg link My Desktop Screenshot with icons]&lt;br /&gt;
&lt;br /&gt;
== Wallpaper ==&lt;br /&gt;
&lt;br /&gt;
See also [Desktop wallpaper gallery]&lt;br /&gt;
&lt;br /&gt;
=== Logo Plain ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_plain_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_plain_white.png|300px|white]]&lt;br /&gt;
[[Image:Moko_plain_transparent.png|300px|transparent]]&lt;br /&gt;
&lt;br /&gt;
=== Logo Wired 3D ===&lt;br /&gt;
&lt;br /&gt;
preview:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moko_wire_black.png|300px|black]]&lt;br /&gt;
[[Image:Moko_wire_white.png|300px|white]]&lt;br /&gt;
&lt;br /&gt;
{{Languages|Artwork}}&lt;br /&gt;
&lt;br /&gt;
[[Category:User Interfaces]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:Building_a_hello_world_application</id>
		<title>Talk:Building a hello world application</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:Building_a_hello_world_application"/>
				<updated>2008-10-15T21:34:36Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thanks Talpa for this nice tutorial ! --[[User:Micktaiwan|Micktaiwan]] July 17 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So what is actually the problem with not using bitbake? These docs don't actually say anything!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Talpa, this is a great tutorial. Thanks!&lt;br /&gt;
Shouldn't step 4 refer to GTK?&lt;br /&gt;
[[User:MichaelShiloh|MichaelShiloh]] November 13, 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is good! - but it should be tidied up. I got here linked from MokoMakefile, but this page is more GTK centric.&lt;br /&gt;
The GTK specific info could perhaps be extracted into a [[Developing with C and GTK]] (following the pattern of [[Developing with C++ and Qt]])&lt;br /&gt;
and this page could be left with just a &amp;quot;how to compile your first hello.c as a openembedded-package using MokoMakefile?&lt;br /&gt;
&lt;br /&gt;
[[User:Gromgull|Gromgull]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_developer_guide</id>
		<title>Openmoko developer guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_developer_guide"/>
				<updated>2008-10-15T21:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: /* Part II Coding and compiling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko developer guide}}&lt;br /&gt;
&lt;br /&gt;
This page describes how to start your Openmoko development plan - how to prepare your development environment and use the tools provided to help test and share your programs.&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenmokoFramework08.png|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Part I Choose your software development tool==&lt;br /&gt;
*[[System Developer]]&lt;br /&gt;
*[[Development Environment]]&lt;br /&gt;
*[[Java]]&lt;br /&gt;
*[[Development with Eclipse]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[BitBake]]&lt;br /&gt;
*[[Qtopia_on_X11|Qtopia on X11]]&lt;br /&gt;
*[[Developing with C++ and Qt|C++ / Qt]]&lt;br /&gt;
===OS===&lt;br /&gt;
*[[Other OSes]]&lt;br /&gt;
&lt;br /&gt;
==Part II Coding and compiling==&lt;br /&gt;
&lt;br /&gt;
{{todo|The relationship between the below should be clarified. Now it looks like it's a choice between them, but I believe using the MokoMakefile will build all the points above it?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Toolchain]]&lt;br /&gt;
*[[OpenEmbedded]]&lt;br /&gt;
**[[BitBake]]&lt;br /&gt;
*[[MokoMakeFile]]&lt;br /&gt;
*[[Application UI Design Recommendations]]&lt;br /&gt;
&lt;br /&gt;
==Part III Running your program==&lt;br /&gt;
&lt;br /&gt;
*[[Customizing the Openmoko Distribution]]&lt;br /&gt;
&lt;br /&gt;
===Emulation===&lt;br /&gt;
*[[Automatic emulation in Ubuntu]]&lt;br /&gt;
*[[Host-based development with Xoo and Xephyr]]&lt;br /&gt;
*[[Running Openmoko on PC]]&lt;br /&gt;
*[[Test Openmoko Emulation with chroot image]]&lt;br /&gt;
&lt;br /&gt;
==Part IV Sharing programs==&lt;br /&gt;
&lt;br /&gt;
So you have just made this cool program, and wonder what will be an efficient way to share it ? Consider the following options:&lt;br /&gt;
&lt;br /&gt;
* Adding a link in the [[Applications directory]] page.&lt;br /&gt;
* Creating a page on this wiki.&lt;br /&gt;
* Packaging for the [[Community Repository]].&lt;br /&gt;
* Hosting as a project on the [http://projects.openmoko.org/ Openmoko GForge]&lt;br /&gt;
* Entering a record on [http://freshmeat.net/ Freshmeat] or similar.&lt;br /&gt;
* Announcing on the [http://lists.openmoko.org/mailman/listinfo/community community mailing list].&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
*[[Latest Images]]&lt;br /&gt;
*[[Users Repositories]]&lt;br /&gt;
*[[Distributions]]&lt;br /&gt;
&lt;br /&gt;
==Part V Installation==&lt;br /&gt;
===Install===&lt;br /&gt;
*[[Package management]]&lt;br /&gt;
*[[How to run Openmoko Apps on PC]]&lt;br /&gt;
*[[Downloads]]&lt;br /&gt;
*[[Repositories ]]&lt;br /&gt;
&lt;br /&gt;
===Image Flashing===&lt;br /&gt;
* [[MacOS X]]&lt;br /&gt;
* [[Flashing the Neo Freerunner]]&lt;br /&gt;
* [[Flashing the Neo 1973]]&lt;br /&gt;
&lt;br /&gt;
==Part VI Tools used on Openmoko==&lt;br /&gt;
&lt;br /&gt;
*[[U-boot|Bootloader]]&lt;br /&gt;
*[[Bootloader_commands|Bootloader Command]]&lt;br /&gt;
*[[Bootloader_environment|Bootloader Environment]]&lt;br /&gt;
*[http://www.denx.de/wiki/U-Boot/WebHome u-boot]&lt;br /&gt;
*[[Bootloader versions]]&lt;br /&gt;
*[[NetBSD]]&lt;br /&gt;
*[[Dfu-util]]&lt;br /&gt;
&lt;br /&gt;
====Linux Core Services====&lt;br /&gt;
* [[Gsmd]]&lt;br /&gt;
*[[Alarm daemon]]&lt;br /&gt;
*[[Qpegps]]&lt;br /&gt;
*[[D-Bus]]&lt;br /&gt;
*[[Dbus device API]]&lt;br /&gt;
*[[Opkg]]&lt;br /&gt;
*[[QEMU command line]]&lt;br /&gt;
*[[Ompower]] Power management daemon&lt;br /&gt;
====Resources====&lt;br /&gt;
*[[Development resources]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:System Developers]]&lt;br /&gt;
[[Category:Community]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Desktop_wallpaper_gallery</id>
		<title>Desktop wallpaper gallery</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Desktop_wallpaper_gallery"/>
				<updated>2008-10-08T20:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Openmoko-inspired wallpapers designs for your desktop systems.&lt;br /&gt;
&lt;br /&gt;
Do you have nice openmoko-themed wallpaper? Please share it!&lt;br /&gt;
&lt;br /&gt;
[[Image:gromgull wallpaper1.png|thumb|300px|center|SVG sources at http://www.dfki.uni-kl.de/~grimnes/2008/10/openmokowallpaper/]]&lt;br /&gt;
[[Image:gromgullwallpaper2.png|thumb|300px|center|SVG sources at http://www.dfki.uni-kl.de/~grimnes/2008/10/openmokowallpaper/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Om-wallpaper-thumb.png|thumb|300px|center|For full sizes see http://lion.xaraya.hu/pictures/openmoko-wallpapers]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Om-wallpaper-circle-thumb.png|300px|center|thumb|For full sizes see http://lion.xaraya.hu/pictures/openmoko-wallpapers]] &lt;br /&gt;
&lt;br /&gt;
[[Image:Om-choose-wallpaper-thumb.png‎|300px|center|thumb|For full sizes see http://lion.xaraya.hu/pictures/openmoko-wallpapers]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FreerunnerBlueprint1280x1024.png|300px|center|thumb|'' '''Blueprints'''. This image helps to design graphics to fit the FreeRunner display, both portrait and landscape, as well as other common display resolutions. 1280x1024 PNG file.'']]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Effective wallpaper quality guidelines are explained in the [http://designinginterfaces.com/Deep_Background Deep Background] chapter of Jennifer Tidwell (2005) Designing Interfaces: Patterns for Effective Interaction Design.&lt;br /&gt;
&lt;br /&gt;
[[category:Host OSes]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:Gromgullwallpaper2.png</id>
		<title>File:Gromgullwallpaper2.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:Gromgullwallpaper2.png"/>
				<updated>2008-10-08T20:14:48Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: wallpaper added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;wallpaper added&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:Gromgull_wallpaper1.png</id>
		<title>File:Gromgull wallpaper1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:Gromgull_wallpaper1.png"/>
				<updated>2008-10-08T20:14:16Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: uploaded a new version of &amp;quot;Image:Gromgull wallpaper1.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wallpaper&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:Gromgull_wallpaper1.png</id>
		<title>File:Gromgull wallpaper1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:Gromgull_wallpaper1.png"/>
				<updated>2008-10-08T20:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: Wallpaper&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wallpaper&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/BitBake</id>
		<title>BitBake</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/BitBake"/>
				<updated>2008-09-02T21:19:16Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|BitBake}}&lt;br /&gt;
BitBake is the build tool used by [[OpenEmbedded]]. [[BitBake recipe]]s are simple, declarative files. Here is an example for the openmoko-calculator2 application:&lt;br /&gt;
&lt;br /&gt;
 DESCRIPTION = &amp;quot;A Calculator for Openmoko&amp;quot;&lt;br /&gt;
 SECTION = &amp;quot;openmoko/tools&amp;quot;&lt;br /&gt;
 DEPENDS = &amp;quot;libmokoui2&amp;quot;&lt;br /&gt;
 PV = &amp;quot;0.1.0+svnr${SRCREV}&amp;quot;&lt;br /&gt;
 PR = &amp;quot;r0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 inherit openmoko2&lt;br /&gt;
&lt;br /&gt;
The user manual is available at the [http://bitbake.berlios.de/manual/ BitBake berlios page].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Gsmd</id>
		<title>Gsmd</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Gsmd"/>
				<updated>2008-09-02T17:59:04Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages | Gsmd}}&lt;br /&gt;
[[gsmd]] is the [[GSM]] daemon running in background of an Openmoko phone, managing the traditional 'phone' parts (voice/sms/gprs communication links) of the phone.&lt;br /&gt;
&lt;br /&gt;
Further technical details and API documentation in progress, is available [[Gsmd/document |here]].&lt;br /&gt;
&lt;br /&gt;
Note that this does not hold for phones running [[Om_2008.8]] - then gsmd has been replaced with [[Qtopia]]'s mobile stack. Installing gsmd and related tools will conflict with qpe and things may not work. &lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== On the phone ===&lt;br /&gt;
gsmd is usually started as a background daemon when booting by the /etc/init.d/gsmd script, in this case gsmd outputs debug messages to the file &amp;quot;/tmp/gsm.log&amp;quot; (stdout and stderr is redirected there).&lt;br /&gt;
&lt;br /&gt;
For debugging purposes gsmd can be run in foreground mode, options can be queried like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; gsmd --help&lt;br /&gt;
gsmd - (C) 2006 by Harald Welte &amp;lt;laforge@gnumonks.org&amp;gt;&lt;br /&gt;
This program is FREE SOFTWARE under the terms of GNU GPL&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
        -v      --version       Display program version&lt;br /&gt;
        -d      --daemon        Deamonize&lt;br /&gt;
        -h      --help          Display this help message&lt;br /&gt;
        -p dev  --device dev    Specify serial device to be used&lt;br /&gt;
        -s spd  --speed spd     Specify speed in bps (9600,38400,115200,...)&lt;br /&gt;
        -F      --hwflow        Hardware Flow Control (RTS/CTS)&lt;br /&gt;
        -L      --leak-report   Leak Report of talloc memory allocator&lt;br /&gt;
        -l file --logfile file  Specify a logfile to log to&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your GSM modem is attached to ttySAC0 (like in the [[:Category:Neo1973 Hardware | Neo1973]]), invoke it as e.g.:&lt;br /&gt;
 &amp;gt; gsmd -p /dev/ttySAC0 -s 115200 -F&lt;br /&gt;
(baud rate seems to be autodetected by the modem)&lt;br /&gt;
&lt;br /&gt;
In order to kill the actual gsmd process and then run gsmd with a separate logfile and in background, but not as daemon:&lt;br /&gt;
 &amp;gt; kill -SIGTERM `pidof gsmd`&lt;br /&gt;
and then to create a logfile with the date in the name&lt;br /&gt;
 &amp;gt; gsmd -p /dev/ttySAC0 -s 115200 -F -l logs_gsmd-`date +%Y-%m-%d_%Hh%M` &amp;amp;&lt;br /&gt;
&lt;br /&gt;
=== From host PC===&lt;br /&gt;
With recent [[uboot]] (svn &amp;gt; r2885), the gsm modem can be powered on and connected to uboot's serial console from uboot itself. Thus allowing the host PC to interact directly with the modem. Some notes about getting gsmd running in this manner is [[User:Miki/hosted_gsmd|here]].&lt;br /&gt;
&lt;br /&gt;
== libgsmd ==&lt;br /&gt;
&lt;br /&gt;
libgsmd is a library with C language API for application programs.  Programs using this library can use the phone, e.g. make phone calls, receive incoming calls, register to the network, etc.&lt;br /&gt;
&lt;br /&gt;
== libgsmd-tool ==&lt;br /&gt;
&lt;br /&gt;
libgsmd-tool is a small demo application that can be used to demonstrate the usage of the libgsmd API.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
libgsmd-tool has multiple modes.  &lt;br /&gt;
&lt;br /&gt;
=== Usage of shell mode ===&lt;br /&gt;
&lt;br /&gt;
Shell mode provides a simple text-based command interface for making voice calls.&lt;br /&gt;
&lt;br /&gt;
The shell mode can be started using&lt;br /&gt;
&lt;br /&gt;
 libgsmd-tool -m shell&lt;br /&gt;
&lt;br /&gt;
It can be used like in the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; src/util/libgsmd-tool -m shell&lt;br /&gt;
libgsm-tool - (C) 2006 by Harald Welte&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
        A       Answer incoming call&lt;br /&gt;
        D       Dial outgoing number&lt;br /&gt;
        H       Hangup call&lt;br /&gt;
        O       Antenna Power On&lt;br /&gt;
        o       Antenna Power Off&lt;br /&gt;
        gos     Get Antenna Status&lt;br /&gt;
        V       Vibrator Enable (CVIB=1)&lt;br /&gt;
        v       Vibrator Disable (CVIB=0)&lt;br /&gt;
        M       Modem Power On&lt;br /&gt;
        m       Modem Power Off&lt;br /&gt;
        r       Register to network&lt;br /&gt;
        R       Register to given operator (R=number)&lt;br /&gt;
        U       Unregister from netowrk&lt;br /&gt;
        P       Print current operator&lt;br /&gt;
        N       Print current operator in numeric&lt;br /&gt;
        L       List available operators&lt;br /&gt;
        Q       Read signal quality&lt;br /&gt;
        nr      Query network registration&lt;br /&gt;
        S       Sleep (S[=second], default 5)&lt;br /&gt;
        T       Send DTMF Tone&lt;br /&gt;
        n       Print subscriber numbers&lt;br /&gt;
        pd      PB Delete (pb=index)&lt;br /&gt;
        pr      PB Read (pr=index)&lt;br /&gt;
        prr     PB Read Range (prr=index1,index2)&lt;br /&gt;
        pf      PB Find (pf=indtext)&lt;br /&gt;
        pw      PB Write (pw=index,number,text)&lt;br /&gt;
        ps      PB Support&lt;br /&gt;
        pm      PB Memory&lt;br /&gt;
        pp      PB Set Memory (pp=storage)&lt;br /&gt;
        sd      SMS Delete (sd=index,delflg)&lt;br /&gt;
        sl      SMS List (sl=stat)&lt;br /&gt;
        sr      SMS Read (sr=index)&lt;br /&gt;
        ss      SMS Send (ss=ask_ds,number,text|[&amp;quot;text&amp;quot;])&lt;br /&gt;
        sw      SMS Write (sw=stat,number,text)&lt;br /&gt;
        sm      SMS Storage stats&lt;br /&gt;
        sM      SMS Set preferred storage (sM=mem1,mem2,mem3)&lt;br /&gt;
        sc      SMS Show Service Centre&lt;br /&gt;
        sC      SMS Set Service Centre (sC=number)&lt;br /&gt;
        gvm     Get Voicemail number&lt;br /&gt;
        svm     Set Voicemail number(svm=number)&lt;br /&gt;
        im      Get imsi&lt;br /&gt;
        mf      Get manufacturer&lt;br /&gt;
        ml      Get model&lt;br /&gt;
        rv      Get revision&lt;br /&gt;
        sn      Get serial number&lt;br /&gt;
        cs      Get Call status&lt;br /&gt;
        gp      Get PIN status&lt;br /&gt;
        cbc     Get Battery status&lt;br /&gt;
        Rh      Release all held calls (+CHLD=0)&lt;br /&gt;
        UDUB    User Determined User Busy (+CHLD=0)&lt;br /&gt;
        Ra      Release all active calls (+CHLD=1)&lt;br /&gt;
        Rx      Release specific active call x (Rx=x)(+CHLD=1x)&lt;br /&gt;
        Ha      Hold all active calls and accept held or waiting call (+CHLD=2)&lt;br /&gt;
        Hx      Hold all active calls except call x (Hx=x)(+CHLD=2x)&lt;br /&gt;
        MP      Add a held call to the conversation (+CHLD=3)&lt;br /&gt;
        CFD     Disable call forwarding (CFD=reason)&lt;br /&gt;
        CFE     Enable call forwarding (CFE=reason)&lt;br /&gt;
        CFQ     Query the status of call forwarding (CFQ=reason)&lt;br /&gt;
        CFR     Register call forwarding (CFR=reason,number)&lt;br /&gt;
        CFe     Erase a record of call forwarding (CFe=reason)&lt;br /&gt;
        q       Quit&lt;br /&gt;
&lt;br /&gt;
O&lt;br /&gt;
# EVENT: PIN request (type=1) Please enter PIN: 6582&lt;br /&gt;
r&lt;br /&gt;
# EVENT: Netreg searching for network &lt;br /&gt;
EVENT: Netreg registered (home network) &lt;br /&gt;
&lt;br /&gt;
D03024033902&lt;br /&gt;
# Dial 03024033902&lt;br /&gt;
EVENT: Call Progress: UNKNOWN&lt;br /&gt;
EVENT: Call Progress: PROCEED&lt;br /&gt;
EVENT: Call Progress: SYNC&lt;br /&gt;
EVENT: Call Progress: ALERT&lt;br /&gt;
H&lt;br /&gt;
# Hangup&lt;br /&gt;
EVENT: Call Progress: DISCONNECT&lt;br /&gt;
EVENT: Call Progress: RELEASE&lt;br /&gt;
&lt;br /&gt;
EVENT: Incoming call type=2!&lt;br /&gt;
EVENT: Incoming call clip=`&amp;quot;03024033902&amp;quot;'&lt;br /&gt;
EVENT: Incoming call type=2!&lt;br /&gt;
A&lt;br /&gt;
# Answer&lt;br /&gt;
RSTR=`OK'&lt;br /&gt;
H&lt;br /&gt;
# Hangup&lt;br /&gt;
RSTR=`OK'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage of atcmd mode ===&lt;br /&gt;
&lt;br /&gt;
The atcmd mode is a passthrough-mode.  Passthrough means that it accepts [[GSM 07.07]] commands, passes them through the daemon to the phone, and returns you the response.  this is very useful for debugging.&lt;br /&gt;
&lt;br /&gt;
The atcmd mode can be started using&lt;br /&gt;
&lt;br /&gt;
 libgsmd-tool -m atcmd&lt;br /&gt;
&lt;br /&gt;
Usage is like in the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; src/util/libgsmd-tool -m atcmd&lt;br /&gt;
libgsm-tool - (C) 2006 by Harald Welte&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
AT+CPAS&lt;br /&gt;
STR=`AT+CPAS'&lt;br /&gt;
RSTR=`+CPAS: 0'&lt;br /&gt;
AT+COPS=?&lt;br /&gt;
STR=`AT+COPS=?'&lt;br /&gt;
RSTR=`+COPS: (2,&amp;quot;E-Plus&amp;quot;,&amp;quot;E-Plus&amp;quot;,&amp;quot;26203&amp;quot;),(3,&amp;quot;o2 - de&amp;quot;,&amp;quot;o2 - de&amp;quot;,&amp;quot;26207&amp;quot;),(3,&amp;quot;Vodafone.de&amp;quot;,&amp;quot;Vodafone&amp;quot;,&amp;quot;26202&amp;quot;),(3,&amp;quot;T-Mobile D&amp;quot;,&amp;quot;TMO D&amp;quot;,&amp;quot;26201&amp;quot;)'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network related functions ==&lt;br /&gt;
Operator selection functions were implemented and merged into SVN head[http://lists.openmoko.org/pipermail/gsmd-devel/2007-September/000216.html]:&lt;br /&gt;
&lt;br /&gt;
The new commands in libgsmd-util are as followings:&lt;br /&gt;
  R  -  Register to given operator (R=number)&lt;br /&gt;
  P  -  Print current operator&lt;br /&gt;
  L  -  Detect available operators&lt;br /&gt;
  Q  -  Read signal quality&lt;br /&gt;
&lt;br /&gt;
This is implemented by the functions with &amp;quot;_opers_&amp;quot; naming.&lt;br /&gt;
== Currently missing ==&lt;br /&gt;
&lt;br /&gt;
(please add items to this list if you're missing more features)&lt;br /&gt;
&lt;br /&gt;
* Phone related functions&lt;br /&gt;
** Airplane mode / gsmd stop (this will be done outside gsmd, by using runlevels / upstart)&lt;br /&gt;
** Capability to set-up Emergency Calls, even if the device does not hold a SIM card&lt;br /&gt;
** obtain manufacturer/model/revision/IMEI&lt;br /&gt;
** Ability to notify user if the SIM card is locked (or even automagically unlock it?)&lt;br /&gt;
&lt;br /&gt;
* SMS related features&lt;br /&gt;
** send SMS&lt;br /&gt;
** receive SMS&lt;br /&gt;
** obtain IMSI&lt;br /&gt;
** access to SIM-card stored SMS - ''No longer missing - see help''&lt;br /&gt;
&lt;br /&gt;
* SIM related functions&lt;br /&gt;
** read phonebook entry - ''No longer missing - see help'' &lt;br /&gt;
** write phonebook entry - ''No longer missing - see help''&lt;br /&gt;
&lt;br /&gt;
* GPRS related functions - ''No longer missing - see [http://www.freesmartphone.org/index.php/Implementations/gsm0710muxd gsm0710muxd] for 07.10 multiplexing, and [https://wiki.muc.ccc.de/openmoko#gprs GPRS setup/de] for ppp via GPRS''&lt;br /&gt;
** set up GPRS link, use it via separate DLC of TS07.10 multiplex&lt;br /&gt;
&lt;br /&gt;
* GSM clock related functions&lt;br /&gt;
** time output suitable for ntpd clock source?&lt;br /&gt;
&lt;br /&gt;
* gsmd internal infrastructure&lt;br /&gt;
** fine-grained event subscriptions (rather than wildcard-subscribe)&lt;br /&gt;
** possibility to specify log-level from command line&lt;br /&gt;
** logfile re-opening on SIGUSR1 or SIGHUP (logrotate)&lt;br /&gt;
** permission handling&lt;br /&gt;
** d-bus interface&lt;br /&gt;
&lt;br /&gt;
== Implementation Thoughts ==&lt;br /&gt;
&lt;br /&gt;
== Testing framework ==&lt;br /&gt;
&lt;br /&gt;
Emulating/mocking the firmware, gsmd and libgsmd can be tested for functionality; on any machine.&lt;br /&gt;
See [[User:Kero|Kero's page]] or go directly to [http://chmeee.dyndns.org/om/testing_gsmd.html the (lib)gsmd testing page].&lt;br /&gt;
&lt;br /&gt;
== State tracking ==&lt;br /&gt;
&lt;br /&gt;
gsmd needs to do apropriate state tracking of the underlying GSM hardware.  For many of the state transition we only get events from the GSM Modem, but don't have apropriate query commands.  Thus, assuming gsmd runs all the time, applications can come and go, but still have an idea about the current state of the modem, even if they missed the initial state transitions.&lt;br /&gt;
&lt;br /&gt;
Also, gsmd state tracking allows us to allow for safer interoperability of multiple applications.  If i.e. one applications has just started an outgoing call, gsmd can detect another application who intends to interfere with that and deny access&lt;br /&gt;
&lt;br /&gt;
=== device power state ===&lt;br /&gt;
&lt;br /&gt;
* modem completely off, not responding to AT commands&lt;br /&gt;
* modem responding to AT commands, but powered off (CFUN=0)&lt;br /&gt;
* modem responding to AT commands, in some power saving mode&lt;br /&gt;
* modem responding to AT commands, powered on, fully operational (CFUN=1)&lt;br /&gt;
&lt;br /&gt;
=== Suspend power state ===&lt;br /&gt;
&lt;br /&gt;
It must also configure the modem so that it can on appropriate events wake the system from sleep.&lt;br /&gt;
&lt;br /&gt;
=== network registration state ===&lt;br /&gt;
&lt;br /&gt;
* not registered to any network, not trying to register&lt;br /&gt;
* not registred to any network, searching/trying to register&lt;br /&gt;
* registered to home network (including cellID)&lt;br /&gt;
* registered to roaming network (including cellID)&lt;br /&gt;
&lt;br /&gt;
=== ciphering indication state ===&lt;br /&gt;
&lt;br /&gt;
* ciphering indications not supported by modem&lt;br /&gt;
* ciphering indications supported, but disabled in SIM&lt;br /&gt;
* ciphering indications supported, ciphering active&lt;br /&gt;
* ciphering indications supported, ciphering inactive&lt;br /&gt;
&lt;br /&gt;
=== call state ===&lt;br /&gt;
&lt;br /&gt;
* idle&lt;br /&gt;
* busy&lt;br /&gt;
&lt;br /&gt;
Sources of gsmd are kept in [[Openmoko svn]] in src/target/gsm directory.&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Implemented]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Gsmd</id>
		<title>Gsmd</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Gsmd"/>
				<updated>2008-09-02T17:58:40Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages | Gsmd}}&lt;br /&gt;
[[gsmd]] is the [[GSM]] daemon running in background of an Openmoko phone, managing the traditional 'phone' parts (voice/sms/gprs communication links) of the phone.&lt;br /&gt;
&lt;br /&gt;
Further technical details and API documentation in progress, is available [[Gsmd/document |here]].&lt;br /&gt;
&lt;br /&gt;
Note that this does not hold for phones running [[Om_2008.08]] - then gsmd has been replaced with [[Qtopia]]'s mobile stack. Installing gsmd and related tools will conflict with qpe and things may not work. &lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== On the phone ===&lt;br /&gt;
gsmd is usually started as a background daemon when booting by the /etc/init.d/gsmd script, in this case gsmd outputs debug messages to the file &amp;quot;/tmp/gsm.log&amp;quot; (stdout and stderr is redirected there).&lt;br /&gt;
&lt;br /&gt;
For debugging purposes gsmd can be run in foreground mode, options can be queried like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; gsmd --help&lt;br /&gt;
gsmd - (C) 2006 by Harald Welte &amp;lt;laforge@gnumonks.org&amp;gt;&lt;br /&gt;
This program is FREE SOFTWARE under the terms of GNU GPL&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
        -v      --version       Display program version&lt;br /&gt;
        -d      --daemon        Deamonize&lt;br /&gt;
        -h      --help          Display this help message&lt;br /&gt;
        -p dev  --device dev    Specify serial device to be used&lt;br /&gt;
        -s spd  --speed spd     Specify speed in bps (9600,38400,115200,...)&lt;br /&gt;
        -F      --hwflow        Hardware Flow Control (RTS/CTS)&lt;br /&gt;
        -L      --leak-report   Leak Report of talloc memory allocator&lt;br /&gt;
        -l file --logfile file  Specify a logfile to log to&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your GSM modem is attached to ttySAC0 (like in the [[:Category:Neo1973 Hardware | Neo1973]]), invoke it as e.g.:&lt;br /&gt;
 &amp;gt; gsmd -p /dev/ttySAC0 -s 115200 -F&lt;br /&gt;
(baud rate seems to be autodetected by the modem)&lt;br /&gt;
&lt;br /&gt;
In order to kill the actual gsmd process and then run gsmd with a separate logfile and in background, but not as daemon:&lt;br /&gt;
 &amp;gt; kill -SIGTERM `pidof gsmd`&lt;br /&gt;
and then to create a logfile with the date in the name&lt;br /&gt;
 &amp;gt; gsmd -p /dev/ttySAC0 -s 115200 -F -l logs_gsmd-`date +%Y-%m-%d_%Hh%M` &amp;amp;&lt;br /&gt;
&lt;br /&gt;
=== From host PC===&lt;br /&gt;
With recent [[uboot]] (svn &amp;gt; r2885), the gsm modem can be powered on and connected to uboot's serial console from uboot itself. Thus allowing the host PC to interact directly with the modem. Some notes about getting gsmd running in this manner is [[User:Miki/hosted_gsmd|here]].&lt;br /&gt;
&lt;br /&gt;
== libgsmd ==&lt;br /&gt;
&lt;br /&gt;
libgsmd is a library with C language API for application programs.  Programs using this library can use the phone, e.g. make phone calls, receive incoming calls, register to the network, etc.&lt;br /&gt;
&lt;br /&gt;
== libgsmd-tool ==&lt;br /&gt;
&lt;br /&gt;
libgsmd-tool is a small demo application that can be used to demonstrate the usage of the libgsmd API.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
libgsmd-tool has multiple modes.  &lt;br /&gt;
&lt;br /&gt;
=== Usage of shell mode ===&lt;br /&gt;
&lt;br /&gt;
Shell mode provides a simple text-based command interface for making voice calls.&lt;br /&gt;
&lt;br /&gt;
The shell mode can be started using&lt;br /&gt;
&lt;br /&gt;
 libgsmd-tool -m shell&lt;br /&gt;
&lt;br /&gt;
It can be used like in the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; src/util/libgsmd-tool -m shell&lt;br /&gt;
libgsm-tool - (C) 2006 by Harald Welte&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
        A       Answer incoming call&lt;br /&gt;
        D       Dial outgoing number&lt;br /&gt;
        H       Hangup call&lt;br /&gt;
        O       Antenna Power On&lt;br /&gt;
        o       Antenna Power Off&lt;br /&gt;
        gos     Get Antenna Status&lt;br /&gt;
        V       Vibrator Enable (CVIB=1)&lt;br /&gt;
        v       Vibrator Disable (CVIB=0)&lt;br /&gt;
        M       Modem Power On&lt;br /&gt;
        m       Modem Power Off&lt;br /&gt;
        r       Register to network&lt;br /&gt;
        R       Register to given operator (R=number)&lt;br /&gt;
        U       Unregister from netowrk&lt;br /&gt;
        P       Print current operator&lt;br /&gt;
        N       Print current operator in numeric&lt;br /&gt;
        L       List available operators&lt;br /&gt;
        Q       Read signal quality&lt;br /&gt;
        nr      Query network registration&lt;br /&gt;
        S       Sleep (S[=second], default 5)&lt;br /&gt;
        T       Send DTMF Tone&lt;br /&gt;
        n       Print subscriber numbers&lt;br /&gt;
        pd      PB Delete (pb=index)&lt;br /&gt;
        pr      PB Read (pr=index)&lt;br /&gt;
        prr     PB Read Range (prr=index1,index2)&lt;br /&gt;
        pf      PB Find (pf=indtext)&lt;br /&gt;
        pw      PB Write (pw=index,number,text)&lt;br /&gt;
        ps      PB Support&lt;br /&gt;
        pm      PB Memory&lt;br /&gt;
        pp      PB Set Memory (pp=storage)&lt;br /&gt;
        sd      SMS Delete (sd=index,delflg)&lt;br /&gt;
        sl      SMS List (sl=stat)&lt;br /&gt;
        sr      SMS Read (sr=index)&lt;br /&gt;
        ss      SMS Send (ss=ask_ds,number,text|[&amp;quot;text&amp;quot;])&lt;br /&gt;
        sw      SMS Write (sw=stat,number,text)&lt;br /&gt;
        sm      SMS Storage stats&lt;br /&gt;
        sM      SMS Set preferred storage (sM=mem1,mem2,mem3)&lt;br /&gt;
        sc      SMS Show Service Centre&lt;br /&gt;
        sC      SMS Set Service Centre (sC=number)&lt;br /&gt;
        gvm     Get Voicemail number&lt;br /&gt;
        svm     Set Voicemail number(svm=number)&lt;br /&gt;
        im      Get imsi&lt;br /&gt;
        mf      Get manufacturer&lt;br /&gt;
        ml      Get model&lt;br /&gt;
        rv      Get revision&lt;br /&gt;
        sn      Get serial number&lt;br /&gt;
        cs      Get Call status&lt;br /&gt;
        gp      Get PIN status&lt;br /&gt;
        cbc     Get Battery status&lt;br /&gt;
        Rh      Release all held calls (+CHLD=0)&lt;br /&gt;
        UDUB    User Determined User Busy (+CHLD=0)&lt;br /&gt;
        Ra      Release all active calls (+CHLD=1)&lt;br /&gt;
        Rx      Release specific active call x (Rx=x)(+CHLD=1x)&lt;br /&gt;
        Ha      Hold all active calls and accept held or waiting call (+CHLD=2)&lt;br /&gt;
        Hx      Hold all active calls except call x (Hx=x)(+CHLD=2x)&lt;br /&gt;
        MP      Add a held call to the conversation (+CHLD=3)&lt;br /&gt;
        CFD     Disable call forwarding (CFD=reason)&lt;br /&gt;
        CFE     Enable call forwarding (CFE=reason)&lt;br /&gt;
        CFQ     Query the status of call forwarding (CFQ=reason)&lt;br /&gt;
        CFR     Register call forwarding (CFR=reason,number)&lt;br /&gt;
        CFe     Erase a record of call forwarding (CFe=reason)&lt;br /&gt;
        q       Quit&lt;br /&gt;
&lt;br /&gt;
O&lt;br /&gt;
# EVENT: PIN request (type=1) Please enter PIN: 6582&lt;br /&gt;
r&lt;br /&gt;
# EVENT: Netreg searching for network &lt;br /&gt;
EVENT: Netreg registered (home network) &lt;br /&gt;
&lt;br /&gt;
D03024033902&lt;br /&gt;
# Dial 03024033902&lt;br /&gt;
EVENT: Call Progress: UNKNOWN&lt;br /&gt;
EVENT: Call Progress: PROCEED&lt;br /&gt;
EVENT: Call Progress: SYNC&lt;br /&gt;
EVENT: Call Progress: ALERT&lt;br /&gt;
H&lt;br /&gt;
# Hangup&lt;br /&gt;
EVENT: Call Progress: DISCONNECT&lt;br /&gt;
EVENT: Call Progress: RELEASE&lt;br /&gt;
&lt;br /&gt;
EVENT: Incoming call type=2!&lt;br /&gt;
EVENT: Incoming call clip=`&amp;quot;03024033902&amp;quot;'&lt;br /&gt;
EVENT: Incoming call type=2!&lt;br /&gt;
A&lt;br /&gt;
# Answer&lt;br /&gt;
RSTR=`OK'&lt;br /&gt;
H&lt;br /&gt;
# Hangup&lt;br /&gt;
RSTR=`OK'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage of atcmd mode ===&lt;br /&gt;
&lt;br /&gt;
The atcmd mode is a passthrough-mode.  Passthrough means that it accepts [[GSM 07.07]] commands, passes them through the daemon to the phone, and returns you the response.  this is very useful for debugging.&lt;br /&gt;
&lt;br /&gt;
The atcmd mode can be started using&lt;br /&gt;
&lt;br /&gt;
 libgsmd-tool -m atcmd&lt;br /&gt;
&lt;br /&gt;
Usage is like in the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; src/util/libgsmd-tool -m atcmd&lt;br /&gt;
libgsm-tool - (C) 2006 by Harald Welte&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
AT+CPAS&lt;br /&gt;
STR=`AT+CPAS'&lt;br /&gt;
RSTR=`+CPAS: 0'&lt;br /&gt;
AT+COPS=?&lt;br /&gt;
STR=`AT+COPS=?'&lt;br /&gt;
RSTR=`+COPS: (2,&amp;quot;E-Plus&amp;quot;,&amp;quot;E-Plus&amp;quot;,&amp;quot;26203&amp;quot;),(3,&amp;quot;o2 - de&amp;quot;,&amp;quot;o2 - de&amp;quot;,&amp;quot;26207&amp;quot;),(3,&amp;quot;Vodafone.de&amp;quot;,&amp;quot;Vodafone&amp;quot;,&amp;quot;26202&amp;quot;),(3,&amp;quot;T-Mobile D&amp;quot;,&amp;quot;TMO D&amp;quot;,&amp;quot;26201&amp;quot;)'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network related functions ==&lt;br /&gt;
Operator selection functions were implemented and merged into SVN head[http://lists.openmoko.org/pipermail/gsmd-devel/2007-September/000216.html]:&lt;br /&gt;
&lt;br /&gt;
The new commands in libgsmd-util are as followings:&lt;br /&gt;
  R  -  Register to given operator (R=number)&lt;br /&gt;
  P  -  Print current operator&lt;br /&gt;
  L  -  Detect available operators&lt;br /&gt;
  Q  -  Read signal quality&lt;br /&gt;
&lt;br /&gt;
This is implemented by the functions with &amp;quot;_opers_&amp;quot; naming.&lt;br /&gt;
== Currently missing ==&lt;br /&gt;
&lt;br /&gt;
(please add items to this list if you're missing more features)&lt;br /&gt;
&lt;br /&gt;
* Phone related functions&lt;br /&gt;
** Airplane mode / gsmd stop (this will be done outside gsmd, by using runlevels / upstart)&lt;br /&gt;
** Capability to set-up Emergency Calls, even if the device does not hold a SIM card&lt;br /&gt;
** obtain manufacturer/model/revision/IMEI&lt;br /&gt;
** Ability to notify user if the SIM card is locked (or even automagically unlock it?)&lt;br /&gt;
&lt;br /&gt;
* SMS related features&lt;br /&gt;
** send SMS&lt;br /&gt;
** receive SMS&lt;br /&gt;
** obtain IMSI&lt;br /&gt;
** access to SIM-card stored SMS - ''No longer missing - see help''&lt;br /&gt;
&lt;br /&gt;
* SIM related functions&lt;br /&gt;
** read phonebook entry - ''No longer missing - see help'' &lt;br /&gt;
** write phonebook entry - ''No longer missing - see help''&lt;br /&gt;
&lt;br /&gt;
* GPRS related functions - ''No longer missing - see [http://www.freesmartphone.org/index.php/Implementations/gsm0710muxd gsm0710muxd] for 07.10 multiplexing, and [https://wiki.muc.ccc.de/openmoko#gprs GPRS setup/de] for ppp via GPRS''&lt;br /&gt;
** set up GPRS link, use it via separate DLC of TS07.10 multiplex&lt;br /&gt;
&lt;br /&gt;
* GSM clock related functions&lt;br /&gt;
** time output suitable for ntpd clock source?&lt;br /&gt;
&lt;br /&gt;
* gsmd internal infrastructure&lt;br /&gt;
** fine-grained event subscriptions (rather than wildcard-subscribe)&lt;br /&gt;
** possibility to specify log-level from command line&lt;br /&gt;
** logfile re-opening on SIGUSR1 or SIGHUP (logrotate)&lt;br /&gt;
** permission handling&lt;br /&gt;
** d-bus interface&lt;br /&gt;
&lt;br /&gt;
== Implementation Thoughts ==&lt;br /&gt;
&lt;br /&gt;
== Testing framework ==&lt;br /&gt;
&lt;br /&gt;
Emulating/mocking the firmware, gsmd and libgsmd can be tested for functionality; on any machine.&lt;br /&gt;
See [[User:Kero|Kero's page]] or go directly to [http://chmeee.dyndns.org/om/testing_gsmd.html the (lib)gsmd testing page].&lt;br /&gt;
&lt;br /&gt;
== State tracking ==&lt;br /&gt;
&lt;br /&gt;
gsmd needs to do apropriate state tracking of the underlying GSM hardware.  For many of the state transition we only get events from the GSM Modem, but don't have apropriate query commands.  Thus, assuming gsmd runs all the time, applications can come and go, but still have an idea about the current state of the modem, even if they missed the initial state transitions.&lt;br /&gt;
&lt;br /&gt;
Also, gsmd state tracking allows us to allow for safer interoperability of multiple applications.  If i.e. one applications has just started an outgoing call, gsmd can detect another application who intends to interfere with that and deny access&lt;br /&gt;
&lt;br /&gt;
=== device power state ===&lt;br /&gt;
&lt;br /&gt;
* modem completely off, not responding to AT commands&lt;br /&gt;
* modem responding to AT commands, but powered off (CFUN=0)&lt;br /&gt;
* modem responding to AT commands, in some power saving mode&lt;br /&gt;
* modem responding to AT commands, powered on, fully operational (CFUN=1)&lt;br /&gt;
&lt;br /&gt;
=== Suspend power state ===&lt;br /&gt;
&lt;br /&gt;
It must also configure the modem so that it can on appropriate events wake the system from sleep.&lt;br /&gt;
&lt;br /&gt;
=== network registration state ===&lt;br /&gt;
&lt;br /&gt;
* not registered to any network, not trying to register&lt;br /&gt;
* not registred to any network, searching/trying to register&lt;br /&gt;
* registered to home network (including cellID)&lt;br /&gt;
* registered to roaming network (including cellID)&lt;br /&gt;
&lt;br /&gt;
=== ciphering indication state ===&lt;br /&gt;
&lt;br /&gt;
* ciphering indications not supported by modem&lt;br /&gt;
* ciphering indications supported, but disabled in SIM&lt;br /&gt;
* ciphering indications supported, ciphering active&lt;br /&gt;
* ciphering indications supported, ciphering inactive&lt;br /&gt;
&lt;br /&gt;
=== call state ===&lt;br /&gt;
&lt;br /&gt;
* idle&lt;br /&gt;
* busy&lt;br /&gt;
&lt;br /&gt;
Sources of gsmd are kept in [[Openmoko svn]] in src/target/gsm directory.&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Implemented]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Gsmd</id>
		<title>Gsmd</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Gsmd"/>
				<updated>2008-09-02T17:58:24Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages | Gsmd}}&lt;br /&gt;
[[gsmd]] is the [[GSM]] daemon running in background of an Openmoko phone, managing the traditional 'phone' parts (voice/sms/gprs communication links) of the phone.&lt;br /&gt;
&lt;br /&gt;
Further technical details and API documentation in progress, is available [[Gsmd/document |here]].&lt;br /&gt;
&lt;br /&gt;
Note that this does not hold for phones running [[Om2008.08]] - then gsmd has been replaced with [[Qtopia]]'s mobile stack. Installing gsmd and related tools will conflict with qpe and things may not work. &lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== On the phone ===&lt;br /&gt;
gsmd is usually started as a background daemon when booting by the /etc/init.d/gsmd script, in this case gsmd outputs debug messages to the file &amp;quot;/tmp/gsm.log&amp;quot; (stdout and stderr is redirected there).&lt;br /&gt;
&lt;br /&gt;
For debugging purposes gsmd can be run in foreground mode, options can be queried like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; gsmd --help&lt;br /&gt;
gsmd - (C) 2006 by Harald Welte &amp;lt;laforge@gnumonks.org&amp;gt;&lt;br /&gt;
This program is FREE SOFTWARE under the terms of GNU GPL&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
        -v      --version       Display program version&lt;br /&gt;
        -d      --daemon        Deamonize&lt;br /&gt;
        -h      --help          Display this help message&lt;br /&gt;
        -p dev  --device dev    Specify serial device to be used&lt;br /&gt;
        -s spd  --speed spd     Specify speed in bps (9600,38400,115200,...)&lt;br /&gt;
        -F      --hwflow        Hardware Flow Control (RTS/CTS)&lt;br /&gt;
        -L      --leak-report   Leak Report of talloc memory allocator&lt;br /&gt;
        -l file --logfile file  Specify a logfile to log to&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your GSM modem is attached to ttySAC0 (like in the [[:Category:Neo1973 Hardware | Neo1973]]), invoke it as e.g.:&lt;br /&gt;
 &amp;gt; gsmd -p /dev/ttySAC0 -s 115200 -F&lt;br /&gt;
(baud rate seems to be autodetected by the modem)&lt;br /&gt;
&lt;br /&gt;
In order to kill the actual gsmd process and then run gsmd with a separate logfile and in background, but not as daemon:&lt;br /&gt;
 &amp;gt; kill -SIGTERM `pidof gsmd`&lt;br /&gt;
and then to create a logfile with the date in the name&lt;br /&gt;
 &amp;gt; gsmd -p /dev/ttySAC0 -s 115200 -F -l logs_gsmd-`date +%Y-%m-%d_%Hh%M` &amp;amp;&lt;br /&gt;
&lt;br /&gt;
=== From host PC===&lt;br /&gt;
With recent [[uboot]] (svn &amp;gt; r2885), the gsm modem can be powered on and connected to uboot's serial console from uboot itself. Thus allowing the host PC to interact directly with the modem. Some notes about getting gsmd running in this manner is [[User:Miki/hosted_gsmd|here]].&lt;br /&gt;
&lt;br /&gt;
== libgsmd ==&lt;br /&gt;
&lt;br /&gt;
libgsmd is a library with C language API for application programs.  Programs using this library can use the phone, e.g. make phone calls, receive incoming calls, register to the network, etc.&lt;br /&gt;
&lt;br /&gt;
== libgsmd-tool ==&lt;br /&gt;
&lt;br /&gt;
libgsmd-tool is a small demo application that can be used to demonstrate the usage of the libgsmd API.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
libgsmd-tool has multiple modes.  &lt;br /&gt;
&lt;br /&gt;
=== Usage of shell mode ===&lt;br /&gt;
&lt;br /&gt;
Shell mode provides a simple text-based command interface for making voice calls.&lt;br /&gt;
&lt;br /&gt;
The shell mode can be started using&lt;br /&gt;
&lt;br /&gt;
 libgsmd-tool -m shell&lt;br /&gt;
&lt;br /&gt;
It can be used like in the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; src/util/libgsmd-tool -m shell&lt;br /&gt;
libgsm-tool - (C) 2006 by Harald Welte&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
        A       Answer incoming call&lt;br /&gt;
        D       Dial outgoing number&lt;br /&gt;
        H       Hangup call&lt;br /&gt;
        O       Antenna Power On&lt;br /&gt;
        o       Antenna Power Off&lt;br /&gt;
        gos     Get Antenna Status&lt;br /&gt;
        V       Vibrator Enable (CVIB=1)&lt;br /&gt;
        v       Vibrator Disable (CVIB=0)&lt;br /&gt;
        M       Modem Power On&lt;br /&gt;
        m       Modem Power Off&lt;br /&gt;
        r       Register to network&lt;br /&gt;
        R       Register to given operator (R=number)&lt;br /&gt;
        U       Unregister from netowrk&lt;br /&gt;
        P       Print current operator&lt;br /&gt;
        N       Print current operator in numeric&lt;br /&gt;
        L       List available operators&lt;br /&gt;
        Q       Read signal quality&lt;br /&gt;
        nr      Query network registration&lt;br /&gt;
        S       Sleep (S[=second], default 5)&lt;br /&gt;
        T       Send DTMF Tone&lt;br /&gt;
        n       Print subscriber numbers&lt;br /&gt;
        pd      PB Delete (pb=index)&lt;br /&gt;
        pr      PB Read (pr=index)&lt;br /&gt;
        prr     PB Read Range (prr=index1,index2)&lt;br /&gt;
        pf      PB Find (pf=indtext)&lt;br /&gt;
        pw      PB Write (pw=index,number,text)&lt;br /&gt;
        ps      PB Support&lt;br /&gt;
        pm      PB Memory&lt;br /&gt;
        pp      PB Set Memory (pp=storage)&lt;br /&gt;
        sd      SMS Delete (sd=index,delflg)&lt;br /&gt;
        sl      SMS List (sl=stat)&lt;br /&gt;
        sr      SMS Read (sr=index)&lt;br /&gt;
        ss      SMS Send (ss=ask_ds,number,text|[&amp;quot;text&amp;quot;])&lt;br /&gt;
        sw      SMS Write (sw=stat,number,text)&lt;br /&gt;
        sm      SMS Storage stats&lt;br /&gt;
        sM      SMS Set preferred storage (sM=mem1,mem2,mem3)&lt;br /&gt;
        sc      SMS Show Service Centre&lt;br /&gt;
        sC      SMS Set Service Centre (sC=number)&lt;br /&gt;
        gvm     Get Voicemail number&lt;br /&gt;
        svm     Set Voicemail number(svm=number)&lt;br /&gt;
        im      Get imsi&lt;br /&gt;
        mf      Get manufacturer&lt;br /&gt;
        ml      Get model&lt;br /&gt;
        rv      Get revision&lt;br /&gt;
        sn      Get serial number&lt;br /&gt;
        cs      Get Call status&lt;br /&gt;
        gp      Get PIN status&lt;br /&gt;
        cbc     Get Battery status&lt;br /&gt;
        Rh      Release all held calls (+CHLD=0)&lt;br /&gt;
        UDUB    User Determined User Busy (+CHLD=0)&lt;br /&gt;
        Ra      Release all active calls (+CHLD=1)&lt;br /&gt;
        Rx      Release specific active call x (Rx=x)(+CHLD=1x)&lt;br /&gt;
        Ha      Hold all active calls and accept held or waiting call (+CHLD=2)&lt;br /&gt;
        Hx      Hold all active calls except call x (Hx=x)(+CHLD=2x)&lt;br /&gt;
        MP      Add a held call to the conversation (+CHLD=3)&lt;br /&gt;
        CFD     Disable call forwarding (CFD=reason)&lt;br /&gt;
        CFE     Enable call forwarding (CFE=reason)&lt;br /&gt;
        CFQ     Query the status of call forwarding (CFQ=reason)&lt;br /&gt;
        CFR     Register call forwarding (CFR=reason,number)&lt;br /&gt;
        CFe     Erase a record of call forwarding (CFe=reason)&lt;br /&gt;
        q       Quit&lt;br /&gt;
&lt;br /&gt;
O&lt;br /&gt;
# EVENT: PIN request (type=1) Please enter PIN: 6582&lt;br /&gt;
r&lt;br /&gt;
# EVENT: Netreg searching for network &lt;br /&gt;
EVENT: Netreg registered (home network) &lt;br /&gt;
&lt;br /&gt;
D03024033902&lt;br /&gt;
# Dial 03024033902&lt;br /&gt;
EVENT: Call Progress: UNKNOWN&lt;br /&gt;
EVENT: Call Progress: PROCEED&lt;br /&gt;
EVENT: Call Progress: SYNC&lt;br /&gt;
EVENT: Call Progress: ALERT&lt;br /&gt;
H&lt;br /&gt;
# Hangup&lt;br /&gt;
EVENT: Call Progress: DISCONNECT&lt;br /&gt;
EVENT: Call Progress: RELEASE&lt;br /&gt;
&lt;br /&gt;
EVENT: Incoming call type=2!&lt;br /&gt;
EVENT: Incoming call clip=`&amp;quot;03024033902&amp;quot;'&lt;br /&gt;
EVENT: Incoming call type=2!&lt;br /&gt;
A&lt;br /&gt;
# Answer&lt;br /&gt;
RSTR=`OK'&lt;br /&gt;
H&lt;br /&gt;
# Hangup&lt;br /&gt;
RSTR=`OK'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage of atcmd mode ===&lt;br /&gt;
&lt;br /&gt;
The atcmd mode is a passthrough-mode.  Passthrough means that it accepts [[GSM 07.07]] commands, passes them through the daemon to the phone, and returns you the response.  this is very useful for debugging.&lt;br /&gt;
&lt;br /&gt;
The atcmd mode can be started using&lt;br /&gt;
&lt;br /&gt;
 libgsmd-tool -m atcmd&lt;br /&gt;
&lt;br /&gt;
Usage is like in the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; src/util/libgsmd-tool -m atcmd&lt;br /&gt;
libgsm-tool - (C) 2006 by Harald Welte&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
AT+CPAS&lt;br /&gt;
STR=`AT+CPAS'&lt;br /&gt;
RSTR=`+CPAS: 0'&lt;br /&gt;
AT+COPS=?&lt;br /&gt;
STR=`AT+COPS=?'&lt;br /&gt;
RSTR=`+COPS: (2,&amp;quot;E-Plus&amp;quot;,&amp;quot;E-Plus&amp;quot;,&amp;quot;26203&amp;quot;),(3,&amp;quot;o2 - de&amp;quot;,&amp;quot;o2 - de&amp;quot;,&amp;quot;26207&amp;quot;),(3,&amp;quot;Vodafone.de&amp;quot;,&amp;quot;Vodafone&amp;quot;,&amp;quot;26202&amp;quot;),(3,&amp;quot;T-Mobile D&amp;quot;,&amp;quot;TMO D&amp;quot;,&amp;quot;26201&amp;quot;)'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network related functions ==&lt;br /&gt;
Operator selection functions were implemented and merged into SVN head[http://lists.openmoko.org/pipermail/gsmd-devel/2007-September/000216.html]:&lt;br /&gt;
&lt;br /&gt;
The new commands in libgsmd-util are as followings:&lt;br /&gt;
  R  -  Register to given operator (R=number)&lt;br /&gt;
  P  -  Print current operator&lt;br /&gt;
  L  -  Detect available operators&lt;br /&gt;
  Q  -  Read signal quality&lt;br /&gt;
&lt;br /&gt;
This is implemented by the functions with &amp;quot;_opers_&amp;quot; naming.&lt;br /&gt;
== Currently missing ==&lt;br /&gt;
&lt;br /&gt;
(please add items to this list if you're missing more features)&lt;br /&gt;
&lt;br /&gt;
* Phone related functions&lt;br /&gt;
** Airplane mode / gsmd stop (this will be done outside gsmd, by using runlevels / upstart)&lt;br /&gt;
** Capability to set-up Emergency Calls, even if the device does not hold a SIM card&lt;br /&gt;
** obtain manufacturer/model/revision/IMEI&lt;br /&gt;
** Ability to notify user if the SIM card is locked (or even automagically unlock it?)&lt;br /&gt;
&lt;br /&gt;
* SMS related features&lt;br /&gt;
** send SMS&lt;br /&gt;
** receive SMS&lt;br /&gt;
** obtain IMSI&lt;br /&gt;
** access to SIM-card stored SMS - ''No longer missing - see help''&lt;br /&gt;
&lt;br /&gt;
* SIM related functions&lt;br /&gt;
** read phonebook entry - ''No longer missing - see help'' &lt;br /&gt;
** write phonebook entry - ''No longer missing - see help''&lt;br /&gt;
&lt;br /&gt;
* GPRS related functions - ''No longer missing - see [http://www.freesmartphone.org/index.php/Implementations/gsm0710muxd gsm0710muxd] for 07.10 multiplexing, and [https://wiki.muc.ccc.de/openmoko#gprs GPRS setup/de] for ppp via GPRS''&lt;br /&gt;
** set up GPRS link, use it via separate DLC of TS07.10 multiplex&lt;br /&gt;
&lt;br /&gt;
* GSM clock related functions&lt;br /&gt;
** time output suitable for ntpd clock source?&lt;br /&gt;
&lt;br /&gt;
* gsmd internal infrastructure&lt;br /&gt;
** fine-grained event subscriptions (rather than wildcard-subscribe)&lt;br /&gt;
** possibility to specify log-level from command line&lt;br /&gt;
** logfile re-opening on SIGUSR1 or SIGHUP (logrotate)&lt;br /&gt;
** permission handling&lt;br /&gt;
** d-bus interface&lt;br /&gt;
&lt;br /&gt;
== Implementation Thoughts ==&lt;br /&gt;
&lt;br /&gt;
== Testing framework ==&lt;br /&gt;
&lt;br /&gt;
Emulating/mocking the firmware, gsmd and libgsmd can be tested for functionality; on any machine.&lt;br /&gt;
See [[User:Kero|Kero's page]] or go directly to [http://chmeee.dyndns.org/om/testing_gsmd.html the (lib)gsmd testing page].&lt;br /&gt;
&lt;br /&gt;
== State tracking ==&lt;br /&gt;
&lt;br /&gt;
gsmd needs to do apropriate state tracking of the underlying GSM hardware.  For many of the state transition we only get events from the GSM Modem, but don't have apropriate query commands.  Thus, assuming gsmd runs all the time, applications can come and go, but still have an idea about the current state of the modem, even if they missed the initial state transitions.&lt;br /&gt;
&lt;br /&gt;
Also, gsmd state tracking allows us to allow for safer interoperability of multiple applications.  If i.e. one applications has just started an outgoing call, gsmd can detect another application who intends to interfere with that and deny access&lt;br /&gt;
&lt;br /&gt;
=== device power state ===&lt;br /&gt;
&lt;br /&gt;
* modem completely off, not responding to AT commands&lt;br /&gt;
* modem responding to AT commands, but powered off (CFUN=0)&lt;br /&gt;
* modem responding to AT commands, in some power saving mode&lt;br /&gt;
* modem responding to AT commands, powered on, fully operational (CFUN=1)&lt;br /&gt;
&lt;br /&gt;
=== Suspend power state ===&lt;br /&gt;
&lt;br /&gt;
It must also configure the modem so that it can on appropriate events wake the system from sleep.&lt;br /&gt;
&lt;br /&gt;
=== network registration state ===&lt;br /&gt;
&lt;br /&gt;
* not registered to any network, not trying to register&lt;br /&gt;
* not registred to any network, searching/trying to register&lt;br /&gt;
* registered to home network (including cellID)&lt;br /&gt;
* registered to roaming network (including cellID)&lt;br /&gt;
&lt;br /&gt;
=== ciphering indication state ===&lt;br /&gt;
&lt;br /&gt;
* ciphering indications not supported by modem&lt;br /&gt;
* ciphering indications supported, but disabled in SIM&lt;br /&gt;
* ciphering indications supported, ciphering active&lt;br /&gt;
* ciphering indications supported, ciphering inactive&lt;br /&gt;
&lt;br /&gt;
=== call state ===&lt;br /&gt;
&lt;br /&gt;
* idle&lt;br /&gt;
* busy&lt;br /&gt;
&lt;br /&gt;
Sources of gsmd are kept in [[Openmoko svn]] in src/target/gsm directory.&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Implemented]]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Group_sales</id>
		<title>Group sales</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Group_sales"/>
				<updated>2008-04-29T11:35:53Z</updated>
		
		<summary type="html">&lt;p&gt;Gromgull: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Openmoko have announced a scheme to sell the forthcoming Neo Freerunner at a discount if bought in multiples of 10 (US$369, instead of 399), to be shipped in one package. Group buying will thus save money on the purchase, and on the shipping. This page is to to organise group purchases by region.&lt;br /&gt;
&lt;br /&gt;
Steve from Openmoko announced &amp;quot;Every 10 pack, will come with a box of stuff. 10 pouches and 10 head sets.&amp;quot;&lt;br /&gt;
So join us within a local group !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='float:right'&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Australia ==&lt;br /&gt;
=== Western Australia ===&lt;br /&gt;
==== Perth ====&lt;br /&gt;
&lt;br /&gt;
* Fred Janon mailto:fjanon@yahoo.com&lt;br /&gt;
&lt;br /&gt;
=== New South Whales  ===&lt;br /&gt;
==== Sydney ====&lt;br /&gt;
status: 5/10&lt;br /&gt;
&lt;br /&gt;
* 1X dbmoodb ---&amp;gt;  [http://wiki.openmoko.org/wiki/Special:Emailuser/Dbmoodb contact me here]&lt;br /&gt;
* 1 x Mark Chandler [http://wiki.openmoko.org/wiki/Special:Emailuser/Openmarko contact me here]&lt;br /&gt;
* 1 x bing [http://wiki.openmoko.org/wiki/Special:Emailuser/Bingquick contact me here]&lt;br /&gt;
* 1 x ch0gan [http://wiki.openmoko.org/wiki/Special:Emailuser/ch0gan contact me here]&lt;br /&gt;
* 1 x Neil Brown [http://wiki.openmoko.org/wiki/Special:Emailuser/Neilbrown contact me here]&lt;br /&gt;
&lt;br /&gt;
=== Victoria ===&lt;br /&gt;
==== Melbourne ====&lt;br /&gt;
Status: 4/10&lt;br /&gt;
&lt;br /&gt;
* 4x Dennis Wollersheim, mailto: dewoller (at) gmail (dot) com&lt;br /&gt;
&lt;br /&gt;
=== ACT ===&lt;br /&gt;
==== Canberra ====&lt;br /&gt;
Status: 1/10&lt;br /&gt;
&lt;br /&gt;
* J Dinale [http://wiki.openmoko.org/wiki/Special:Emailuser/Noledil Contact me here]&lt;br /&gt;
&lt;br /&gt;
=== Queensland ===&lt;br /&gt;
==== Brisbane ====&lt;br /&gt;
Status: 3/10 (possibly 20)&lt;br /&gt;
&lt;br /&gt;
* Nick Devereaux x 2 [http://wiki.openmoko.org/wiki/Special:Emailuser/Monkeypanic Contact me here]&lt;br /&gt;
* Matt Gallagher [http://wiki.openmoko.org/wiki/Special:Emailuser/mattg Contact me here]&lt;br /&gt;
&lt;br /&gt;
== Austria ==&lt;br /&gt;
There is a group-buy page at MetaLab, available here: http://metalab.at/wiki/OpenMoko .. we almost have the full 10 slots assigned, and its quite possible that we will order *20* phones, so please register on the Metalab pages and let us know if you're interested .. &lt;br /&gt;
&lt;br /&gt;
=== Salzburg ===&lt;br /&gt;
Status: 1/10&lt;br /&gt;
&lt;br /&gt;
* D. Kepplinger [http://wiki.openmoko.org/wiki/Special:Emailuser/Wedge Contact me here]&lt;br /&gt;
=== Wien ===&lt;br /&gt;
Status: 1/10&lt;br /&gt;
* M. Greifeneder [http://wiki.openmoko.org/wiki/Special:Emailuser/mikegr Contact me here]&lt;br /&gt;
* J. Vaughan (torpor) -- http://metalab.at/wiki/OpenMoko [http://wiki.openmoko.org/wiki/Special:Emailuser/torpor Contact me here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Styria ===&lt;br /&gt;
==== Graz ====&lt;br /&gt;
Status: 6/10&lt;br /&gt;
&lt;br /&gt;
* F Hackenberger [http://wiki.openmoko.org/wiki/Special:Emailuser/Deadman66 Contact me here]&lt;br /&gt;
* J Florineth [http://wiki.openmoko.org/wiki/Special:Emailuser/Flojoh Contact me here]&lt;br /&gt;
* G Michelitsch [http://wiki.openmoko.org/wiki/Special:Emailuser/graf_ithaka Contact me here] (I've found others @ TU Graz !)&lt;br /&gt;
* R Stoegbuchner [http://wiki.openmoko.org/wiki/Special:Emailuser/stoero Contact me here]&lt;br /&gt;
* M Lipp [http://wiki.openmoko.org/wiki/Special:Emailuser/Neldoreth Contact me here]&lt;br /&gt;
* M Maier [http://wiki.openmoko.org/wiki/Special:Emailuser/species Contact me here]&lt;br /&gt;
&lt;br /&gt;
== Belgium ==&lt;br /&gt;
=== Flanders ===&lt;br /&gt;
==== Brussel/Aalst/Gent/Brugge ====&lt;br /&gt;
Status 7/10&lt;br /&gt;
* Yorick, mailto: yorick DOT matthys AT gmail DOT com&lt;br /&gt;
* 2x Dolfje [http://wiki.openmoko.org/wiki/Special:Emailuser/Dolfje Contact me here]&lt;br /&gt;
* XVens, mailto: xavier DOT vens AT gmail DOT com&lt;br /&gt;
* Arno85, mailto: aaron DOT helin AT gmail DOT com, Kortrijk&lt;br /&gt;
* Philoufr, mailto: philoufr AT gmail DOT com&lt;br /&gt;
* Js Op de Beeck [http://wiki.openmoko.org/wiki/Special:Emailuser/Js.opdebeeck Contact me here]&lt;br /&gt;
ps: Dolfje can bring freerunners to Brugge if needed&lt;br /&gt;
&lt;br /&gt;
==== Antwerp ====&lt;br /&gt;
Status 5/10&lt;br /&gt;
&lt;br /&gt;
* michielv [http://wiki.openmoko.org/wiki/Special:Emailuser/Michielv Contact me here]&lt;br /&gt;
* Peter N [http://wiki.openmoko.org/wiki/Special:Emailuser/Bubsy Contact me here]&lt;br /&gt;
* Ivo [http://wiki.openmoko.org/wiki/Special:Emailuser/Ivo Contact me here]&lt;br /&gt;
* Peter Leemans, mailto: peter AT x-tend DOT be&lt;br /&gt;
* Richard B [http://wiki.openmoko.org/wiki/Special:Emailuser/richardb Contact me here]&lt;br /&gt;
&lt;br /&gt;
== Bulgaria ==&lt;br /&gt;
=== Sofia ===&lt;br /&gt;
==== Sofia ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* Dimitar Staykov, mailto:meditache@gmail.com&lt;br /&gt;
* Vernim, [http://wiki.openmoko.org/wiki/Special:Emailuser/Vernim Contact]&lt;br /&gt;
&lt;br /&gt;
== Canada ==&lt;br /&gt;
&lt;br /&gt;
=== British Columbia ===&lt;br /&gt;
Status : 8/10&lt;br /&gt;
&lt;br /&gt;
* Justin (Vancouver): mailto: stryderjzw AT gmail&lt;br /&gt;
* Dave (Vancouver) Vancouver Linux users group (unconfirmed but about 7 so far): mailto: doc AT skynet REMOVE dot REMOVE ie&lt;br /&gt;
&lt;br /&gt;
=== Alberta ===&lt;br /&gt;
Status : 3/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Wuth|Wuth]] : [mailto:wuth@acm.org]&lt;br /&gt;
* [[User:Slm3095om|stacy]] (2 units) : slm3095om AT millions dOt ca&lt;br /&gt;
&lt;br /&gt;
=== Ontario/Quebec ===&lt;br /&gt;
==== GTA (Toronto) ====&lt;br /&gt;
Status : 10/10&lt;br /&gt;
&lt;br /&gt;
* Gerald A [http://wiki.openmoko.org/wiki/Special:Emailuser/Historybuff Contact me here]&lt;br /&gt;
* MattC, mailto: quirkz AT gmail&lt;br /&gt;
* Sergey K, openmoko AT deeptown dOt org&lt;br /&gt;
* Peter Baldwin, vendor.openmoko AT pointclark DOT net  (3 units)&lt;br /&gt;
* Kristin Low, kristin dot low at gmail dot com (Kingston)&lt;br /&gt;
* Daniel Lister, dan.lister--&amp;gt;gmail&lt;br /&gt;
* Ronnie Wong: 3 units - r25wong AT ryerson dOT ca&lt;br /&gt;
* Paul V [http://wiki.openmoko.org/wiki/Special:Emailuser/Roju Contact me here]&lt;br /&gt;
&lt;br /&gt;
Group 2 Status: 1/10&lt;br /&gt;
&lt;br /&gt;
* Gabriel D - ace AT staticwave DOT ca&lt;br /&gt;
&lt;br /&gt;
== Chile ==&lt;br /&gt;
=== Santiago ===&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Mankeke]] Ricardo Manríquez C., mailto: ricardo.manriquez &amp;quot;remove this and add AT&amp;quot; gmail &amp;quot;dot&amp;quot; com&lt;br /&gt;
* [[User:XKnightmareX]] Gonzalo Pesenti., mailto: mare.knight1 &amp;quot;remove this and add AT&amp;quot; gmail &amp;quot;dot&amp;quot; com&lt;br /&gt;
&lt;br /&gt;
== Denmark ==&lt;br /&gt;
If we do not reach a total large enough, Denmark **is** a very small place - surely we could figure out a way of getting them to find their way 'round the country :)&lt;br /&gt;
&lt;br /&gt;
=== Jutland ===&lt;br /&gt;
==== Aalborg ====&lt;br /&gt;
Status: 3/10&lt;br /&gt;
&lt;br /&gt;
Should anyone need it, transportation from Aalborg to Thisted for phones can be arranged, if you don't want to pick it up in Aalborg yourself :) ~~leinir&lt;br /&gt;
&lt;br /&gt;
* Dan Leinir Turthra Jensen &amp;lt;br /&amp;gt; mailto:admin@leinir.dk &amp;lt;br /&amp;gt; [[User:Leinir]]&lt;br /&gt;
* Fabian Olesen &amp;lt;br /&amp;gt; mailto:firewalkerx@gmail.com&lt;br /&gt;
* Helge Willum Larsen &amp;lt;br /&amp;gt; mailto:helge.at.helges.dk&lt;br /&gt;
&lt;br /&gt;
==== Skjern ====&lt;br /&gt;
Status: 1/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Carlo]]&lt;br /&gt;
&lt;br /&gt;
=== Fyn ===&lt;br /&gt;
Status: 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:EsbenDamgaard]]&lt;br /&gt;
* [[User:apm]]&lt;br /&gt;
&lt;br /&gt;
=== Sjælland ===&lt;br /&gt;
==== Copenhagen ====&lt;br /&gt;
Status: 22/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Fursund]]&lt;br /&gt;
* [[User:Rasmusjensen]]&lt;br /&gt;
* [[User:tabac]] Thomas Ammitzbøll-Bach&lt;br /&gt;
* [[User:UlrikRasmussen | Ulrik Rasmussen]]&lt;br /&gt;
* [[User:KlaymenDK | Jan Gundtofte-Bruun]] (Pending final hw, eg. low-power LEDs)&lt;br /&gt;
* [[User:OleTange | Ole Tange]] (I need 14 with invoice)&lt;br /&gt;
* [[User:Pascal | Pascal d'Hermilly]] (I need 1 with invoice)&lt;br /&gt;
* [[User:Miwer]] Michael Andersen&lt;br /&gt;
* M. Stenderup [http://wiki.openmoko.org/wiki/Special:Emailuser/Mast contact me here]&lt;br /&gt;
&lt;br /&gt;
== Finland ==&lt;br /&gt;
=== Uusimaa ===&lt;br /&gt;
==== Helsinki I (Full)====&lt;br /&gt;
Status : 10/10&lt;br /&gt;
&lt;br /&gt;
* Mikko Rauhala x2 [mailto:mjr@iki.fi mjr@iki.fi]&lt;br /&gt;
* Aleksi Hankalahti &amp;lt;br /&amp;gt; [mailto:aleksi.hankalahti@iki.fi aleksi.hankalahti@iki.fi]&lt;br /&gt;
* Seppo Hätönen &amp;lt;br /&amp;gt; [mailto:karrde@iki.fi karrde@iki.fi]&lt;br /&gt;
* Arttu Sund &amp;lt;br /&amp;gt; [mailto:thearttu@gmail.com thearttu@gmail.com]&lt;br /&gt;
* Ville-Pekka Vainio &amp;lt;br /&amp;gt; vpivaini AT cs.helsinki.fi&lt;br /&gt;
* Heikki Hallamaa &amp;lt;br /&amp;gt; [mailto:heikki.hallamaa@iki.fi heikki.hallamaa@iki.fi]&lt;br /&gt;
* Tomi Jylhä-Ollila &amp;lt;br /&amp;gt; tomi.jylha-ollila@helsinki.fi&lt;br /&gt;
* Richard Braakman&lt;br /&gt;
* Timo Jyrinki &amp;lt;br /&amp;gt; [mailto:timo.jyrinki@iki.fi timo.jyrinki@iki.fi]&lt;br /&gt;
&lt;br /&gt;
==== Helsinki II ====&lt;br /&gt;
Status : 5/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Piksi]] &amp;lt;br /&amp;gt;openmoko ÄT pi-xi PISTE net ''(i'll post more info on my userpage when the group is full)''&lt;br /&gt;
* Risto H. Kurppa &amp;lt;br /&amp;gt; risto AT kurppa DOT fi&lt;br /&gt;
* Aapo Rantalainen &amp;lt;br /&amp;gt; aapo DOT rantalainen AT gmail DOT com&lt;br /&gt;
* Matti Laakso &amp;lt;br /&amp;gt; matti DOT laakso AT kotiposti DOT net&lt;br /&gt;
* Ismo Haanaho &amp;lt;br /&amp;gt; ismo DOT haanaho AT gmail DOT com&lt;br /&gt;
&lt;br /&gt;
=== Varsinais-Suomi ===&lt;br /&gt;
==== Turku ====&lt;br /&gt;
Status : 3/10&lt;br /&gt;
&lt;br /&gt;
* 2x Teemu Välimäki, [mailto:teemu.valimaki@iki.fi teemu.valimaki@iki.fi]&lt;br /&gt;
&lt;br /&gt;
* Jaakko Lehtinen, jaakko dot lehtinen at gmail dot com&lt;br /&gt;
&lt;br /&gt;
== France ==&lt;br /&gt;
=== Bretagne ===&lt;br /&gt;
==== Brest ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* StevenLeRoux [mailto:steven@pourri.fr steven@pourri.fr] Jabber_Id:Steven@jabber.fr&lt;br /&gt;
* Acheteur potentiel #2&lt;br /&gt;
&lt;br /&gt;
==== Rennes ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* Cédric DUFOUIL (openmoko at tsleg point com)&lt;br /&gt;
* Yves MAHE (ymahe at zindep dot com)&lt;br /&gt;
&lt;br /&gt;
=== Ile de france ===&lt;br /&gt;
==== Paris ====&lt;br /&gt;
Status : 9/10&lt;br /&gt;
&lt;br /&gt;
* StevenLeRoux&lt;br /&gt;
* [[User:Phyce|Phyce]]&lt;br /&gt;
* Yann SLADEK&lt;br /&gt;
* [[User:Wilk|Wilk]] [http://wiki.openmoko.org/wiki/Special:Emailuser/Wilk Contact me here]&lt;br /&gt;
* Jonathan Magano ([http://wiki.openmoko.org/wiki/Special:Emailuser/JonathanMM Contact me here])&lt;br /&gt;
* Benjamin Renard (bn8[AT]zionetrix.net)&lt;br /&gt;
* [[User:OlivierBerger|OlivierBerger]]&lt;br /&gt;
* [[User:BartGS|BartGS]] [http://wiki.openmoko.org/wiki/Special:Emailuser/BartGS Contact me here]&lt;br /&gt;
* [[User:rcoscali|Rémi Cohen-Scali]]&lt;br /&gt;
&lt;br /&gt;
You may also see :&lt;br /&gt;
http://bearstech.com/openmoko/register&lt;br /&gt;
&lt;br /&gt;
=== Pays de la Loire ===&lt;br /&gt;
==== La Roche sur Yon ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Special:Emailuser/Vtouchar Vincent Touchard] (I may soon move to Bretagne/Brest)&lt;br /&gt;
&lt;br /&gt;
=== Rhône-Alpes ===&lt;br /&gt;
==== Lyon ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Special:Emailuser/patou Vincent MEURISSE]&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Special:Emailuser/pini Gilles FILIPPINI]&lt;br /&gt;
&lt;br /&gt;
==== Grenoble ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Special:Emailuser/pbollard Philippe BOLLARD]&lt;br /&gt;
&lt;br /&gt;
=== Provence Alpes Cote d'Azur ===&lt;br /&gt;
==== Sophia Antipolis ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Special:Emailuser/nico.inc Nicolas HUOT]&lt;br /&gt;
&lt;br /&gt;
== Germany ==&lt;br /&gt;
=== Sachsen-Anhalt ===&lt;br /&gt;
==== Stendal (evtl. Magdeburg) ====&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* Fabian Off [http://wiki.openmoko.org/wiki/Special:Emailuser/Fabian2de Contact me here]&lt;br /&gt;
&lt;br /&gt;
=== Hamburg ===&lt;br /&gt;
==== Hamburg ====&lt;br /&gt;
Status 9-10&lt;br /&gt;
&lt;br /&gt;
* Jan 4-5[http://wiki.openmoko.org/wiki/Special:Emailuser/Jan07 Contact me here]&lt;br /&gt;
* Varacanero [http://wiki.openmoko.org/wiki/Special:Emailuser/varacanero Contact me here]&lt;br /&gt;
* Ole 3-5 pcs [http://wiki.openmoko.org/wiki/Special:Emailuser/Olemoko Contact me here]&lt;br /&gt;
&lt;br /&gt;
=== Sachsen ===&lt;br /&gt;
==== Chemnitz ====&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* Tobias [http://wiki.openmoko.org/wiki/Special:Emailuser/Tobydox Contact me here]&lt;br /&gt;
&lt;br /&gt;
=== Thueringen ===&lt;br /&gt;
==== Weimar ====&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Fries43]]&lt;br /&gt;
&lt;br /&gt;
=== NRW ===&lt;br /&gt;
==== Bielefeld ====&lt;br /&gt;
Status 4/10&lt;br /&gt;
&lt;br /&gt;
* David, infos on my [[User:Raven|user page]], or you can [[Special:Emailuser/Raven|contact me here]]&lt;br /&gt;
* Sebastian, infos on my [[User:Seppi|user page]], or you can [[Special:Emailuser/Seppi|contact me here]]&lt;br /&gt;
* Dackel, infos on my [[User:Killerdackel|user page]], or you can [[Special:Emailuser/Killerdackel|contact me here]]&lt;br /&gt;
* Conny&lt;br /&gt;
* Arndt, infos on my [[User:Arndot|user page]], or you can [[Special:Emailuser/Arndot|contact me here]]&lt;br /&gt;
&lt;br /&gt;
==== Aachen ====&lt;br /&gt;
Status 2/10&lt;br /&gt;
* Henrik, infos on my [[User:Henrikz|user page]], or you can [[Special:Emailuser/Henrikz|contact me here]]&lt;br /&gt;
* David, infos on my [[User:TechnoFan|user page]], or you can [[Special:Emailuser/TechnoFan|contact me here]]&lt;br /&gt;
&lt;br /&gt;
==== Düsseldorf ====&lt;br /&gt;
* mac2k, infos on my [[User:mac2k|user page]], or you can [[Special:Emailuser/mac2k|contact me here]]&lt;br /&gt;
&lt;br /&gt;
=== Baden-Württemberg ===&lt;br /&gt;
==== Karlsruhe ====&lt;br /&gt;
&lt;br /&gt;
Status 8/10&lt;br /&gt;
&lt;br /&gt;
* 2 for André (one for me and one for a friend), you can [[Special:Emailuser/Spacemarine|contact me here]]&lt;br /&gt;
* [[Special:Emailuser/Dr.Nop|Dr.Nop]]&lt;br /&gt;
* [[Special:Emailuser/JensB|JensB]]&lt;br /&gt;
* [[Special:Emailuser/Tedo|Tedo]]&lt;br /&gt;
* 3 devices at least, [[Special:Emailuser/ZaPPaS|ZaPPaS]]&lt;br /&gt;
&lt;br /&gt;
* [[Special:Emailuser/Gromgull|Gromgull]] (in Kaiserslautern, but Karlsruhe is close enough, and I doubt that I'll find 10 people here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bayern ===&lt;br /&gt;
==== München ====&lt;br /&gt;
&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* [[Special:Emailuser/Eriks|Eriks]]&lt;br /&gt;
&lt;br /&gt;
=== Berlin===&lt;br /&gt;
==== Berlin ====&lt;br /&gt;
&lt;br /&gt;
for berlin-talk: http://de.groups.yahoo.com/group/openmoko-berlin/&lt;br /&gt;
&lt;br /&gt;
* first member of new group&lt;br /&gt;
&lt;br /&gt;
This group has finished its forming:&lt;br /&gt;
Status 10/10&lt;br /&gt;
* Stephan [http://wiki.openmoko.org/wiki/User:Fischel Contact me here]&lt;br /&gt;
* Robert [http://wiki.openmoko.org/wiki/User:Thebohemian Contact me here]&lt;br /&gt;
* Nico [http://wiki.openmoko.org/wiki/User:Nico Contact me here]&lt;br /&gt;
* Torsten [http://wiki.openmoko.org/wiki/User:Torsten_Grote Contact me here]&lt;br /&gt;
* Bastian [[User:Fries43]]&lt;br /&gt;
* Sven-Ola [http://wiki.openmoko.org/wiki/User:Sven-ola Contact]&lt;br /&gt;
* Arne [http://wiki.openmoko.org/wiki/User:arnepp Contact me here]&lt;br /&gt;
* MM [http://wiki.openmoko.org/wiki/User:MM Contact]&lt;br /&gt;
* Keks [http://wiki.openmoko.org/wiki/User:Keksdosenmann Contact]&lt;br /&gt;
* Matthias [http://wiki.openmoko.org/wiki/User:mk Contact]&lt;br /&gt;
&lt;br /&gt;
== Italy == &lt;br /&gt;
If we don't reach the 10 phones limit in each city, maybe we could place an order in the &amp;quot;most requested city&amp;quot;, and from shipping to other buyers. We'll have anyway a good discount although the &amp;quot;double-shipping&amp;quot;. ([http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/10937/focus=10981 Read here for reference]).&lt;br /&gt;
&lt;br /&gt;
=== Toscana ===&lt;br /&gt;
==== Firenze (e dintorni) ====&lt;br /&gt;
Status 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Treviño|Marco Trevisan (Treviño)]] - [http://blog.3v1n0.net/contatti-trevino/ Contacts here]&lt;br /&gt;
* [[User:Niccolo|Niccolo Rigacci]] - ''niccolo [AT] rigacci.org''&lt;br /&gt;
* [[User:pcav|Paolo Cavallini]] - ''cavallini [AT] faunalia.it''&lt;br /&gt;
* [[User:BiggMatt|Mattia Gentile]] - ''biggmatt@hotmail.it''&lt;br /&gt;
&lt;br /&gt;
=== Lombardia ===&lt;br /&gt;
&lt;br /&gt;
==== Milano e dintorni ====&lt;br /&gt;
Status 12/10&lt;br /&gt;
&lt;br /&gt;
* Marco Crociani - [http://wiki.openmoko.org/wiki/Special:Emailuser/Tyrael Contacts here]&lt;br /&gt;
* Marcello Gorla&lt;br /&gt;
* Maxxer [mailto:maxxer@yetopen.it maxxer@yetopen.it] (Lecco)&lt;br /&gt;
* Pietro Montorfano [mailto:monto84@gmail.com monto84@gmail.com] (from como)&lt;br /&gt;
* Gianluigi Belli - [http://wiki.openmoko.org/wiki/Special:Emailuser/Pulciux Contacts here] (Milano)&lt;br /&gt;
* Michele Castellano - [http://wiki.openmoko.org/wiki/Special:Emailuser/mubumba Contacts here] (Milano)&lt;br /&gt;
* Maurizio Lipreri -  [http://wiki.openmoko.org/wiki/Special:Emailuser/Maldido Contacts here]( Como )&lt;br /&gt;
* Guido Conaldi - [http://wiki.openmoko.org/wiki/Special:Emailuser/skepz Contacts here] (Varese)&lt;br /&gt;
* Christian [mailto:christian.marzola@alice.it] (ferrara)&lt;br /&gt;
* [[User:Furester|Igor Scabini (furester)]] -[http://wiki.openmoko.org/wiki/Special:Emailuser/Furester Contacts here] (Milano)&lt;br /&gt;
* Dario Panico (sempre che la cosa sia possibile, #11) [http://wiki.openmoko.org/wiki/Special:Emailuser/Dareus Contacts here] (Busto Arsizio, VA)&lt;br /&gt;
* Marco Zanzotera (Milano città) - qualcuno sa indicarmi i metodi di pagamento per favore?&lt;br /&gt;
&lt;br /&gt;
=== Piemonte ===&lt;br /&gt;
==== Torino (and province) ====&lt;br /&gt;
Status 2/10&lt;br /&gt;
&lt;br /&gt;
* Claudio Carnino &amp;lt;br/&amp;gt; (jollyr0g3r AT gmail DOT com)&lt;br /&gt;
* Alessandro Degano &amp;lt;br/&amp;gt; (a.degano AT gmail DOT com)&lt;br /&gt;
&lt;br /&gt;
=== Trentino-Alto Adige ===&lt;br /&gt;
==== Trento (Padova too :)) ====&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* Andrea Debortoli &amp;lt;br/&amp;gt; (debortoland AT gmail DOT com)&lt;br /&gt;
&lt;br /&gt;
=== Friuli Venezia Giulia ===&lt;br /&gt;
==== Trieste ====&lt;br /&gt;
Status: 1/10&lt;br /&gt;
&lt;br /&gt;
* dorje [mailto:dorje@libero.it dorje@libero.it] - [[User:dorje|dorje]]&lt;br /&gt;
&lt;br /&gt;
=== Veneto ===&lt;br /&gt;
Status: 4/10&lt;br /&gt;
&lt;br /&gt;
==== Verona ====&lt;br /&gt;
&lt;br /&gt;
* Persegat [mailto:persegat@alice.it persegat@alice.it] - [[User:Pecce|Pecce]]&lt;br /&gt;
&lt;br /&gt;
==== Vicenza ====&lt;br /&gt;
&lt;br /&gt;
* Matteo [mailto:matteo@member.fsf.org matteo@member.fsf.org] - [[User:Tchernobog|Tchernobog]]&amp;lt;br /&amp;gt;Also Padova is okay.&lt;br /&gt;
&lt;br /&gt;
==== Venezia ====&lt;br /&gt;
&lt;br /&gt;
* Tommaso [mailto:tommaso.gardumi@gmail.com tommaso.gardumi@gmail.com] - [[User:Tobarello|Tobarello]] &amp;lt;br /&amp;gt;Also Padova, Vicenza &amp;amp; Trento are ok.&lt;br /&gt;
&lt;br /&gt;
==== Treviso ====&lt;br /&gt;
&lt;br /&gt;
* Dario [mailto:aliasbrain@gmail.com aliasbrain(at)gmail.com] - [[User:Rastafan|Rastafan]] &amp;lt;br /&amp;gt;one, maybe two.&lt;br /&gt;
&lt;br /&gt;
* Pedro [mailto:paguilar@junkerhq.net paguilar(at)junkerhq.net] - [[User:Paguilar|Paguilar]] &amp;lt;br/&amp;gt;Also Padova and Vicenza are ok.&lt;br /&gt;
&lt;br /&gt;
=== Emilia Romagna ===&lt;br /&gt;
==== Parma ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Delian|Marco Albanese]] [mailto:delian2@gmail.com delian2@gmail.com] For Me, it's ok for the decentralized shipment ( Milano for example :) ).&lt;br /&gt;
&lt;br /&gt;
=== Puglia ===&lt;br /&gt;
==== Lecce ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Morpheus90|Morpheus90]] [mailto:ugopiemontese@rudiaelinux.com ugopiemontese@rudiaelinux.com]&lt;br /&gt;
==== Bari ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Fradeve11|Fradeve11]] [mailto:fradeve@ubuntu-it.org fradeve@ubuntu-it.org]&lt;br /&gt;
&lt;br /&gt;
=== Campania ===&lt;br /&gt;
==== Caserta (and province) ====&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* fenoxxx [mailto:fenoxxx@gmail.com] - Aversa&lt;br /&gt;
&lt;br /&gt;
=== Lazio ===&lt;br /&gt;
==== Roma ====&lt;br /&gt;
Status 5/10&lt;br /&gt;
&lt;br /&gt;
* Hire X 2 [mailto:hiretto@gmail.com hiretto@gmail.com] (Roma)&lt;br /&gt;
* Darkbasic X 1 (Ancona)&lt;br /&gt;
* zione X 1 [mailto:alessio.filipponio@gmail.com alessio.filipponio@gmail.com](Roma)&lt;br /&gt;
* AntoMan X 1 (Roma)&lt;br /&gt;
&lt;br /&gt;
=== Liguria ===&lt;br /&gt;
==== Genova ====&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
* Luca Maranzano X 1 (liuk AT linux DOT it) [[User:liuk|liuk]]&lt;br /&gt;
&lt;br /&gt;
=== Sicilia ===&lt;br /&gt;
==== Palermo ====&lt;br /&gt;
Status 2/10&lt;br /&gt;
&lt;br /&gt;
* Giorgio Marciano' X 1 [mailto:giorgio.marciano@email.it giorgio.marciano@email.it]&lt;br /&gt;
* Michele Puccio X 1 [mailto:puccio@eng.it michele]&lt;br /&gt;
&lt;br /&gt;
== Macedonia ==&lt;br /&gt;
=== Skopje ===&lt;br /&gt;
* Kristijan Krsteski 1/10 &amp;lt;br /&amp;gt; [[User:neutrino]] &amp;lt;br /&amp;gt; [mailto:kristijan.krsteski@gmail.com]&lt;br /&gt;
===Status ===&lt;br /&gt;
1/10&lt;br /&gt;
&lt;br /&gt;
== México ==&lt;br /&gt;
=== Ciudad de México ===&lt;br /&gt;
* Kozapatista [[Special:Emailuser/User:kozapatista|Contact]]&lt;br /&gt;
===Status ===&lt;br /&gt;
1/10&lt;br /&gt;
&lt;br /&gt;
== [http://wiki.openmoko.org/wiki/Talk:GroupSales#The_Netherlands The Netherlands] ==&lt;br /&gt;
(Discuss this group sale on the [http://wiki.openmoko.org/wiki/Talk:GroupSales#The_Netherlands talk page])&lt;br /&gt;
&lt;br /&gt;
* Marijn Kruisselbrink 1 [[Special:Emailuser/User:mkruisselbrink|Contact]]&lt;br /&gt;
* Andy Powell 1/10 [[Special:Emailuser/User:ScaredyCat|Contact]]&lt;br /&gt;
* Arjan Veenstra 1/10 [[User:AVee]] [[Special:Emailuser/User:AVee|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Gelderland ===&lt;br /&gt;
&lt;br /&gt;
==== Nijmegen ====&lt;br /&gt;
* [[User:A.dre|André Disselhorst]] (Nijmegen 1x) [[Special:Emailuser/User:A.dre|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Limburg ===&lt;br /&gt;
&lt;br /&gt;
==== Griendtsveen ====&lt;br /&gt;
* [[User:KenSentMe|Jeroen van de Nieuwenhof]] (Griendtsveen 1x) [[Special:Emailuser/User:KenSentMe|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Noord-Brabant ===&lt;br /&gt;
&lt;br /&gt;
==== Bergen op Zoom ====&lt;br /&gt;
* [[User:Madjo|Marcel de Jong]] 1/10 [[Special:Emailuser/User:Madjo|Contact]]&lt;br /&gt;
&lt;br /&gt;
==== Eindhoven ====&lt;br /&gt;
* Christ van Willegen 1 [[User:ChristW]]&lt;br /&gt;
&lt;br /&gt;
=== Noord Holland ===&lt;br /&gt;
&lt;br /&gt;
==== Amsterdam ====&lt;br /&gt;
* Michel van Horssen 1/10 [[Special:Emailuser/User:mivaho|Contact]]&lt;br /&gt;
* Frank Richter 1 [[Special:Emailuser/User:res|Contact]]&lt;br /&gt;
* Eric Smith 1/10 [[User:Eric Smith]]&lt;br /&gt;
&lt;br /&gt;
==== Bussum ====&lt;br /&gt;
* Remco van Zuijlen 1x [[Special:Emailuser/User:Remco|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Overijssel ===&lt;br /&gt;
&lt;br /&gt;
==== Deventer ====&lt;br /&gt;
* Jan de Haan 1/10 [[User:Jan de Haan]] [[Special:Emailuser/User:Jan de Haan|Contact]]&lt;br /&gt;
&lt;br /&gt;
==== Hengelo ====&lt;br /&gt;
* Sander Hoentjen 1/10 [[Special:Emailuser/User:Tjikkun|Contact]]&lt;br /&gt;
* Peter Hageman 1 [[Special:Emailuser/User:PingPong|Contact]]&lt;br /&gt;
&lt;br /&gt;
==== Zwolle ====&lt;br /&gt;
* Boudewijn 1/10 [[User:Boudewijn|empty user page]] [[Special:Emailuser/User:Boudewijn|Contact]]; possibly got a second person interested&lt;br /&gt;
&lt;br /&gt;
=== Den Haag ===&lt;br /&gt;
&lt;br /&gt;
==== Rijswijk ====&lt;br /&gt;
* Fernando Martins 1x [[User:fmartins]]  [[Special:Emailuser/User:fmartins|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Utrecht ===&lt;br /&gt;
&lt;br /&gt;
==== Utrecht ====&lt;br /&gt;
* Eric Spierings 1/10 [[Special:Emailuser/User:ericsp|Contact]]&lt;br /&gt;
* Peter van de Werken 2/10 [[Special:Emailuser/User:PWerken|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
19/20&lt;br /&gt;
&lt;br /&gt;
== New Zealand ==&lt;br /&gt;
As Telecom are using the 850MHz network for their GSM network, and Vodafone/northelia (possibly aka orcon) are using 900/1800MHz, please state which version you want. This may need more research, I'm not 100%; see [http://www.gsmworld.com/roaming/gsminfo/cou_nz.shtml] for more info&amp;lt;br&amp;gt;&lt;br /&gt;
According to jeremy list, telecom will not be rolling out GSM for four years, so the point becomes moot - no-one is likely to get an 850 gsm phone now and wait that long&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on info from steve (openmoko marketing) concerning weight and size, shipping via UPS will be about US$185 (NZ$23 each phone) to Auckland.&amp;lt;br&amp;gt;&lt;br /&gt;
UPS are far from the cheapest, but (again according to steve), OM have a contract with them, so this is what we are stuck with&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Someone on the community list suggested using [http://www.myus.com], a shipping company that will re-post items overseas at decent rates. They claim US$66 for a 3kg package, or NZ$8 per phone. Of course, the cost of shipping the phone from OM to the shipping company has to be added in as well.&lt;br /&gt;
&lt;br /&gt;
As of 2008-04-28, US$399 is worth NZ$508&lt;br /&gt;
&lt;br /&gt;
import duty on mobile phones is 0%[http://www.customs.govt.nz/importers/Private+Importers/Customs+Charges.htm], and GST is 12.5% so the GST added to each phone will be NZ$66; 12.5% * {508 + 23), cos we pay GST on postage too...&lt;br /&gt;
&lt;br /&gt;
So, the total cost of a Freerunner as part of a 10 pack, will be:&amp;lt;br&amp;gt;&lt;br /&gt;
508 + 23 + 66&amp;lt;br&amp;gt;&lt;br /&gt;
= 597&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+ any possible charges to get it posted elsewhere in New Zealand&lt;br /&gt;
&lt;br /&gt;
=== Auckland ===&lt;br /&gt;
==== Auckland ====&lt;br /&gt;
Status:6/10&lt;br /&gt;
*Rob Paulson [[User:Myfanwy]] 900MHz&lt;br /&gt;
**i'm quite happy to organise the purchase, if no-one has any objections. to ease any worries about me running off with the money, we could use an escrow service such as [http://safetrader.co.nz], or paypal. or does anyone have any other ideas?&lt;br /&gt;
*Simon Wells [[User:Swel024]]&lt;br /&gt;
*Jeremy List [[User:Jeremy-list]] mailto:quick.dudley@gmail.com (Wellington, not Auckland, will pay for courier)&lt;br /&gt;
*David Murrell [[User:Viddy]] - [mailto:dmurrell@waikato.ac.nz] I'm in Hamilton, either courier, or I'll drive up :)&lt;br /&gt;
*Jeremy Gray [[User:Bogdan237]] [mailto:jgra163@ec.auckland.ac.nz] Auckland, 900MHz&lt;br /&gt;
*Glen Ogilvie [[User:Nelg]] {mailto:nelg@linuxsolutions.co.nz] Auckland, 900MHz&lt;br /&gt;
&lt;br /&gt;
== Norway ==&lt;br /&gt;
=== Nordland ===&lt;br /&gt;
==== Bodø ====&lt;br /&gt;
Status 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:AlecTBM|Alexander Frøyseth]] [mailto:alexander.froyseth@gmail.com alexander.froyseth@gmail.com]&lt;br /&gt;
* Ole Marius&lt;br /&gt;
* Stian Vading&lt;br /&gt;
=== Rogaland ===&lt;br /&gt;
Status 1/10&lt;br /&gt;
&lt;br /&gt;
*[[User:Dalaker|Tore Dalaker]] [mailto:tore@dalaker.com tore@dalaker.com]&lt;br /&gt;
&lt;br /&gt;
=== Sør-Trøndelag ===&lt;br /&gt;
==== Trondheim ====&lt;br /&gt;
Status 11/20&lt;br /&gt;
&lt;br /&gt;
*[[User:andy000|Andreas Kalvå]] [mailto:andy@samfundet.no andy@samfundet.no]&lt;br /&gt;
Send mail om du er interessert.&lt;br /&gt;
&lt;br /&gt;
=== Østlandet ===&lt;br /&gt;
==== Oslo, Akershus, Buskerud, Vestfold ====&lt;br /&gt;
Status 20/20(30?)&lt;br /&gt;
&lt;br /&gt;
* [[User:Ixian|Heikki Sørum]] [mailto:heikkis@matnat.uio.no] &amp;lt;br/&amp;gt; Interessert? mail meg.&lt;br /&gt;
* [[User:Bobkare|Knut Arne Bjørndal]] [mailto:bob@cakebox.net]&lt;br /&gt;
&lt;br /&gt;
== Poland ==&lt;br /&gt;
=== podlaskie ===&lt;br /&gt;
==== Białystok ====&lt;br /&gt;
2 x rhn [http://wiki.openmoko.org/wiki/Special:Emailuser/rhn contact me here]&lt;br /&gt;
Inne miasta mile widziane, pod warunkiem, że koszty przesyłki będą niskie&lt;br /&gt;
&lt;br /&gt;
=== dolnośląskie ===&lt;br /&gt;
==== Wrocław ====&lt;br /&gt;
&lt;br /&gt;
* Special group buy site: https://www.kumulator.pl/show/group/35&lt;br /&gt;
&lt;br /&gt;
== Portugal ==&lt;br /&gt;
=== Aveiro ===&lt;br /&gt;
==== Aveiro ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Ruben|Ruben Mendes]]&lt;br /&gt;
* [[User:kuyky|Tiago Saraiva]] &amp;lt;br /&amp;gt; [mailto:destructhor88@gmail.pt]&lt;br /&gt;
&lt;br /&gt;
== Sweden ==&lt;br /&gt;
If insufficient number of people, orders could be merged and remailed perhaps.&lt;br /&gt;
&lt;br /&gt;
Domestic remailing with Posten as A-class mail of a letter (criteria: length+width+height max 900 mm) weighing max 1 kg, without insurance should [http://www.posten.se/foretag/vara_tjanster/postageguide/postguideLetterDom.jspv cost 44 SEK]. 50 SEK more for insurance.&lt;br /&gt;
&lt;br /&gt;
If we end up with more than one 10-pack in Sweden, my guess is that it would probably pay to order everything in one shipment to one address in Sweden to save on the international shipping, and then remail domestically.&lt;br /&gt;
&lt;br /&gt;
=== Götaland ===&lt;br /&gt;
==== Göteborg ====&lt;br /&gt;
&lt;br /&gt;
* [[User:Fwendt|Fredrik Wendt]] [[Special:Emailuser/Fwendt|Contact]]/wendt.se&lt;br /&gt;
&lt;br /&gt;
==== Malmö ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* Lars Jarlvik &amp;lt;br /&amp;gt; mailto:lars@larsfactory.se&lt;br /&gt;
&lt;br /&gt;
=== Svealand ===&lt;br /&gt;
==== Stockholm ====&lt;br /&gt;
Status : 4/10&lt;br /&gt;
&lt;br /&gt;
* Erland Lewin &amp;lt;br /&amp;gt; mailto:erland@lewin.nu&lt;br /&gt;
* Simon Kågström &amp;lt;br /&amp;gt; mailto:simon.kagstrom@gmail.com&lt;br /&gt;
* Ingvaldur Sigurjonsson &amp;lt;br /&amp;gt; mailto:ingi@ultimalabor.se&lt;br /&gt;
* Adam Johansson &amp;lt;br /&amp;gt; mailto:adam@sollentunaholm.se&lt;br /&gt;
&lt;br /&gt;
==== Örebro ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* Anders Petersson &amp;lt;br /&amp;gt; [mailto:demitar@worldforge.org demitar@worldforge.org]&lt;br /&gt;
&lt;br /&gt;
==== Västerås ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
* Jörgen Lidholm, could join the Falun/Borlänge or Stockholm group &amp;lt;br /&amp;gt; [mailto:jorgen.lidholm@gmail.com]&lt;br /&gt;
&lt;br /&gt;
==== Falun &amp;amp; Borlänge ====&lt;br /&gt;
Status : 4/10&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.openstreetmap.org/index.php/User:Jth Johan Thelmén], Åke Hoff &amp;amp; a demo/backup&lt;br /&gt;
* [http://wiki.openstreetmap.org/index.php/User:eagle87 Pär Eriksson], Borlänge&lt;br /&gt;
&lt;br /&gt;
=== Norrland ===&lt;br /&gt;
==== Umeå ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Zash|Zash]] [[Special:Emailuser/Zash|Contact]]&lt;br /&gt;
* [[User:Benjamin|Benjamin]] [[Special:Emailuser/Benjamin|Contact]]&lt;br /&gt;
&lt;br /&gt;
==== Luleå ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* [[User:Mjukis|Mjukis]] [[Special:Emailuser/Mjukis|Contact]] - 2 Units. Can also join the Malmö group order.&lt;br /&gt;
&lt;br /&gt;
== Switzerland ==&lt;br /&gt;
Gabriel Ambuehl would volunteer to order the initial 10pack.&lt;br /&gt;
Alexandre Ghisoli could organize the second 10pack.&lt;br /&gt;
Both with payment in advance (a 10pack will cost approx 3'800 USD).&lt;br /&gt;
&lt;br /&gt;
Probably we will organize shipping, if we cannot all move to Zürich to get our Neo.&lt;br /&gt;
&lt;br /&gt;
==== Shipping ====&lt;br /&gt;
If we would ship Neos, here is the Swiss PostPac prices :&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Description&lt;br /&gt;
! Size [cm]&lt;br /&gt;
! Price CHF TTC&lt;br /&gt;
|-&lt;br /&gt;
| Size 1&lt;br /&gt;
| 22.9 x 14.7 x 9.9&lt;br /&gt;
| 2.20&lt;br /&gt;
|-&lt;br /&gt;
| Size 2&lt;br /&gt;
| 31.5 x 22.5 x 12.5&lt;br /&gt;
| 2.40&lt;br /&gt;
|-&lt;br /&gt;
| Shipping Priority&lt;br /&gt;
| up to 2Kg&lt;br /&gt;
| 8.-&lt;br /&gt;
|-&lt;br /&gt;
| Shipping Economy&lt;br /&gt;
| up to 2Kg&lt;br /&gt;
| 6.-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Steve posted informations about boxes that will be out with Neo :&lt;br /&gt;
&lt;br /&gt;
* 10 pack : 435mm x 371mm x 119mm, approx 3kg, UPS will charge 160USD (need to be verified)&lt;br /&gt;
* Individual pack : 178mm  x 104mm x 84mm, 237 grams&lt;br /&gt;
&lt;br /&gt;
So size 1 will fit ! Local delivery in Switzerland will cost 8.20 for Economy or 10.20 Priority.&lt;br /&gt;
&lt;br /&gt;
==== Zurich ====&lt;br /&gt;
Status : 20/20&lt;br /&gt;
&lt;br /&gt;
It seems that while there are 20 people listed here, actually the device number is 21, because Tobias Kündig is interested in 2 of them.  This means that the total number of devices for Swiss people is 23 (21 for Zürich plus 2 for Genève). -- LucaCapello&lt;br /&gt;
&lt;br /&gt;
* Simon Wenner &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Nowic Contact]&lt;br /&gt;
* Simon Schreiber &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Magbeat Contact]&lt;br /&gt;
* Markus Huggler &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Magbeat Contact]&lt;br /&gt;
* Andre Timmermann &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/darktim Contact]&lt;br /&gt;
* Raffael Schmid &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/darktim Contact]&lt;br /&gt;
* Pascal Weller &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/darktim Contact]&lt;br /&gt;
* Nick Zbinden (Luzern)&amp;lt;br /&amp;gt; [mailto:nickik@gmx.ch] oder [http://wiki.openmoko.org/wiki/Special:Emailuser/nickik Contact]&lt;br /&gt;
* Marcel Wirth &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Skarhand Contact]&lt;br /&gt;
* Marcel Lütolf (Luzern)&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/NeRo Contact]&lt;br /&gt;
* Christian Corrodi &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Matto Contact]&lt;br /&gt;
* Mirko Klingauf &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/RealAtaman Contact]&lt;br /&gt;
* Marcel Jost &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Onsonic Contact]&lt;br /&gt;
* Alexandre Ghisoli (Yverdon)&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Agh Contact]&lt;br /&gt;
* Marc Andre Tanner (Biel)&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/mat Contact]&lt;br /&gt;
* Tobias Kündig (2 Geräte) (Luzern)&amp;lt;br /&amp;gt; [mailto:info@it-media.ch]&lt;br /&gt;
* Peter Salvisberg&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Psal Contact]&lt;br /&gt;
* Robin Farine (Auvernier)&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/rfarine Contact]&lt;br /&gt;
* Martin Kos &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/KoS Contact]&lt;br /&gt;
* Lorenz Schori (Bern) &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Znerol Contact]&lt;br /&gt;
* Jonas Schwarz (Lausanne) &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/jnsc Contact]&lt;br /&gt;
&lt;br /&gt;
==== Geneve ====&lt;br /&gt;
Status : 3/10&lt;br /&gt;
&lt;br /&gt;
* Diego Abelenda&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Aelia Contact]&lt;br /&gt;
* Luca Capello&amp;lt;br /&amp;gt; [mailto:luca@pca.it]&lt;br /&gt;
* Nicolas Produit&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Produit Contact]&lt;br /&gt;
&lt;br /&gt;
== Spain ==&lt;br /&gt;
=== Spain (Country Group Sale) ===&lt;br /&gt;
Status: 5/10&lt;br /&gt;
=== Madrid ===&lt;br /&gt;
==== Madrid ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* Rafael Campos &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Methril Contact]&lt;br /&gt;
&lt;br /&gt;
=== Zaragoza ===&lt;br /&gt;
==== Zaragoza ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* Alejandro R. Mosteo &amp;lt;br /&amp;gt; alejandro AT mosteo · com&lt;br /&gt;
* Arturo Giner&amp;lt;br/&amp;gt;[[Special:Emailuser/artginer|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Barcelona ===&lt;br /&gt;
==== Barcelona ====&lt;br /&gt;
Status : 2/10&lt;br /&gt;
&lt;br /&gt;
* José Luis Pérez &amp;lt;br/&amp;gt;[[Special:Emailuser/jluis|Contact]]&lt;br /&gt;
* David Reyes Samblas Martinez&amp;lt;br/&amp;gt;[[Special:Emailuser/mutrox|Contact]]&lt;br /&gt;
&lt;br /&gt;
== UAE ==&lt;br /&gt;
Status: 1/10&lt;br /&gt;
* Yaser Ammar &amp;lt;br /&amp;gt; [[Special:Emailuser/Waraqa|Contact]]&lt;br /&gt;
&lt;br /&gt;
== USA ==&lt;br /&gt;
=== Colorado ===&lt;br /&gt;
==== Denver (Full) ====&lt;br /&gt;
Status: 10/10 (includes the gentleman from Utah)&lt;br /&gt;
* Shawn Sullivan &amp;lt;br /&amp;gt; [[mailto:shelbydz87@yahoo.com shelbydz87@yahoo.com]]&lt;br /&gt;
* Peter Abplanalp &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/alderion Contact]&lt;br /&gt;
* Ben Burdette &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Ansible Contact]&lt;br /&gt;
* Tom Russell &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/tazbert Contact]&lt;br /&gt;
* Trace &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/gnork Contact]&lt;br /&gt;
&lt;br /&gt;
=== California ===&lt;br /&gt;
==== Los Angeles ====&lt;br /&gt;
Status: 3/10&lt;br /&gt;
&lt;br /&gt;
* Ian Douglas &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Iandouglas Contact me here]&lt;br /&gt;
* Matthew &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Wetmoko Contact]&lt;br /&gt;
* Daniel &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Beaker82 Contact]&lt;br /&gt;
&lt;br /&gt;
==== San Francisco Bay Area ====&lt;br /&gt;
Status: 4/10&lt;br /&gt;
&lt;br /&gt;
* Ajit Natarajan - [http://wiki.openmoko.org/wiki/Special:Emailuser/ajitk Contact]&lt;br /&gt;
&lt;br /&gt;
* Dirk Bergstrom - [http://wiki.openmoko.org/wiki/Special:Emailuser/krid Contact]&lt;br /&gt;
&lt;br /&gt;
* Tupshin Harper - [http://wiki.openmoko.org/wiki/Special:Emailuser/tupshin Contact]&lt;br /&gt;
&lt;br /&gt;
* Lothar Werzinger (900MHz) - [http://wiki.openmoko.org/wiki/Special:Emailuser/Elektrolott Contact]&lt;br /&gt;
&lt;br /&gt;
==== San Diego (inc. San Diego county) ====&lt;br /&gt;
Status: 1/10&lt;br /&gt;
&lt;br /&gt;
* Peter Naulls &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Pnaulls Contact]&lt;br /&gt;
&lt;br /&gt;
==== Monterey ====&lt;br /&gt;
Status: 2/10&lt;br /&gt;
&lt;br /&gt;
* Cry Regarder &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Cry_Regarder Contact]&lt;br /&gt;
&lt;br /&gt;
=== Indiana / Kentucky ===&lt;br /&gt;
Status: 5/10&lt;br /&gt;
* Brandon Kruger  [mailto:bmk789@gmail.com email]&lt;br /&gt;
* Geoff Ruscoe    [[Special:Emailuser/Geocode|Contact]]&lt;br /&gt;
* Dan Staley      [[Special:Emailuser/Pyrasi|Contact]] (Kentucky)&lt;br /&gt;
* Donnie Jones    [[Special:Emailuser/Donniejones18|Contact]] (Lexington, KY)&lt;br /&gt;
* John Sterling   [[Special:Emailuser/Sterling|Contact]] (Lexington, KY)&lt;br /&gt;
=== Ohio / Michiga ===&lt;br /&gt;
Status: 1/10&lt;br /&gt;
* David Pais  [mailto:davioh2001@yahoo.com email]&lt;br /&gt;
=== Washington ===&lt;br /&gt;
==== Seattle ====&lt;br /&gt;
Status: 1/10&lt;br /&gt;
* Jon Pomeroy [[Special:Emailuser/Jepomeroy|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Tennessee ===&lt;br /&gt;
==== Memphis ====&lt;br /&gt;
Status: 1/10&lt;br /&gt;
* Peter O'Connor &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/poconnor Contact]&lt;br /&gt;
&lt;br /&gt;
=== Texas ===&lt;br /&gt;
==== Austin (4/10) ====&lt;br /&gt;
* Dale Schumacher [[Special:Emailuser/dalnefre|Contact]]&lt;br /&gt;
* Michael Cosby [[Special:Emailuser/mcosby|Contact]]&lt;br /&gt;
* Paul Jimenez [[Special:Emailuser/pj|Contact]]&lt;br /&gt;
* Charles [[Special:Emailuser/rbn|Contact]]&lt;br /&gt;
&lt;br /&gt;
==== Dallas (1/10) ====&lt;br /&gt;
* Philip White [[Special:Emailuser/pmw|Contact]]&lt;br /&gt;
&lt;br /&gt;
=== Mid-Atlantic ===&lt;br /&gt;
==== Virginia====&lt;br /&gt;
===== Richmond (1/10)=====&lt;br /&gt;
* Philippe Gerard &amp;lt;br/&amp;gt;[[Special:Emailuser/feydreva|Contact]]&lt;br /&gt;
&lt;br /&gt;
==== New York ====&lt;br /&gt;
Status: 2/10 or 3/10&lt;br /&gt;
&lt;br /&gt;
* Bert Hartmann &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/BertHartm Contact me here]&lt;br /&gt;
* Michael Cole mailto:mjcole137@gmail.com &amp;lt;br /&amp;gt;&lt;br /&gt;
* Jake Thebault-Spieker (probably, may not be able to afford it) [http://wiki.openmoko.org/Spcial:Emailuser/Summatusmentis Contact me here]&lt;br /&gt;
&lt;br /&gt;
==== Maryland (2/10)====&lt;br /&gt;
* Paul Buede mailto:paul@buede.com &amp;lt;br /&amp;gt;&lt;br /&gt;
* Charles Lohr&lt;br /&gt;
&lt;br /&gt;
== UK ==&lt;br /&gt;
&lt;br /&gt;
* Stroller (Milton Keynes, can travel) &amp;lt;br /&amp;gt;mailto:stroller@stellar.eclipse.co.uk 01908 663 513. &amp;lt;br /&amp;gt;Thinks that breaking the UK up into regions - at least outside London - is silly. There are unlikely to be 10 people in $your_town who want a Freerunner, so some posting if Freerunners will surely be required; see [http://wiki.openmoko.org/wiki/Talk:GroupSales#Oxford the talk page]. This is the same cost anywhere in the UK. I'm a realist, so I'm prepared to trust someone up front with my cash &amp;amp;/or travel to collect. In principle I'd be prepared to make the group order &amp;amp; post onwards (or allow collection), and I'd expect a 50% up-front payment; however cash is very tight at the moment, and I don't know that I'll be able to front the other 50%.&lt;br /&gt;
&lt;br /&gt;
=== Scotland ===&lt;br /&gt;
==== Edinburgh ====&lt;br /&gt;
Status : 3/10&lt;br /&gt;
&lt;br /&gt;
* Joe Wells (Edinburgh) [http://wiki.openmoko.org/wiki/Special:Emailuser/jbw Contact]&lt;br /&gt;
* Dave Ball (Edinburgh) [http://wiki.openmoko.org/wiki/Special:Emailuser/Daveb Contact]&lt;br /&gt;
* Stuart MacKinnon(Livingston) &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/hoagster Contact]&lt;br /&gt;
&lt;br /&gt;
=== England ===&lt;br /&gt;
&lt;br /&gt;
==== Hampshire ====&lt;br /&gt;
&lt;br /&gt;
http://www.hants.lug.org.uk/cgi-bin/wiki.pl?FreerunnerBulkBuy&lt;br /&gt;
&lt;br /&gt;
(Sorry, we set up the page before we knew about this one)&lt;br /&gt;
&lt;br /&gt;
==== London ====&lt;br /&gt;
&lt;br /&gt;
Status : 8/10&lt;br /&gt;
&lt;br /&gt;
* Juergen Schinker &amp;lt;br /&amp;gt; mailto:ba1020@homie.homelinux.net&lt;br /&gt;
* aled &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/aled Contact]&lt;br /&gt;
* Bin Zong (actually in Birmingham)&amp;lt;br /&amp;gt;  [mailto:hunter_00zb@hotmail.com]&lt;br /&gt;
* Robert Piasek (actually in Southampton)&amp;lt;br /&amp;gt;  [http://wiki.openmoko.org/wiki/Special:Emailuser/Queen6 Contact]&lt;br /&gt;
* Tom Scholl (Cambridge, travel to London now and then anyway so could pick up) &amp;lt;br /&amp;gt; [mailto:thomasscholl@gmail.com]&lt;br /&gt;
* Weiss (Cambridge, could collect from London) &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Weiss Contact]&lt;br /&gt;
* Neil Bentley (in Wiltshire) [http://wiki.openmoko.org/wiki/Special:Emailuser/Ohnez Contact]&lt;br /&gt;
&lt;br /&gt;
==== Oxford ====&lt;br /&gt;
&lt;br /&gt;
Idea to re-ship within the UK, see [http://wiki.openmoko.org/wiki/Talk:GroupSales#Oxford talk]&lt;br /&gt;
&lt;br /&gt;
Status : 3/10&lt;br /&gt;
&lt;br /&gt;
* Tim Coggins&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/sonicated Contact]&lt;br /&gt;
&lt;br /&gt;
* James Olney &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Webjames Contact]&lt;br /&gt;
* David Pottage (actually in Reading)&amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/chrestomanci Contact]&lt;br /&gt;
&lt;br /&gt;
==== West Midlands ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
&lt;br /&gt;
* Mo Abrahams (Walsall) &amp;lt;br /&amp;gt; mailto:moabrahams@dashavoo.com&lt;br /&gt;
&lt;br /&gt;
== Latvia ==&lt;br /&gt;
=== Riga ===&lt;br /&gt;
==== Riga ====&lt;br /&gt;
Status : 1/10&lt;br /&gt;
* Ilya &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/VRGhost Contact]&lt;br /&gt;
&lt;br /&gt;
== Singapore ==&lt;br /&gt;
Status : 1/10&lt;br /&gt;
* Wee Kiam Peng &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/Jipi Contact]&lt;br /&gt;
&lt;br /&gt;
== Israel==&lt;br /&gt;
Status : 1/10&lt;br /&gt;
* Ofer Herman &amp;lt;br /&amp;gt; [http://wiki.openmoko.org/wiki/Special:Emailuser/oferhe Contact]&lt;/div&gt;</summary>
		<author><name>Gromgull</name></author>	</entry>

	</feed>