<?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=Kagee&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=Kagee&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Kagee"/>
		<updated>2013-06-19T14:34:14Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:I2C_Compass</id>
		<title>Talk:I2C Compass</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:I2C_Compass"/>
				<updated>2009-07-27T02:28:05Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: /* Ready-made module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-Orders =&lt;br /&gt;
Pre-orders of anything are non-binding so far and are to evaluate interest by the community. Please sign your name in the appropriate section.&lt;br /&gt;
== PCB only ==&lt;br /&gt;
&lt;br /&gt;
== DIY-Kit ==&lt;br /&gt;
&lt;br /&gt;
== Ready-made module ==&lt;br /&gt;
[[User:Kagee|Kagee]] 02:28, 27 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Updates=&lt;br /&gt;
As I proceed through the project, updates on my progress will show up here&lt;br /&gt;
== Userspace vs kernel module ==&lt;br /&gt;
Initial research in Linux I2C implementation (yes, believe it or not, I dived into this head-first without any prior knowledge of how linux i2c worked) revealed that besides direct kernel-space adressing, I2C devices can also be adressed from userspace via the device file system by means of the i2c-dev module. Since it will apparently be quite easy to actually bake together the contraption once I uncover a source of parts (which I haven't really looked into much so far), be ready to access the module from userspace for the time being, because actually writing a dedicated kernel module for the chip will definitely be the trickier part of the project. --[[User:Drdeath|Drdeath]] 00:14, 26 July 2009 (UTC)&lt;br /&gt;
== HMC6352 vs HMC5843 ==&lt;br /&gt;
The 6352 has the simpler peripheral circuitry, which means less space consumption, but is considerably bigger itself.&lt;br /&gt;
The 5843 is smaller on its own, but has the disadvantage of needing a rather big capacitor in the periphery, which will be as big as the chip itself. The real advantage of the 5843 is that is is 3-axis, meaning that the device will not need to be held horizontal for accurate measurements. Currently I am leaning heavily towards the 5843. initial experiments will have to show how we can pull off stuffing the (in comparison) monstrous capacitor into the space available and still have enough room for wiring and chip plus all the other little gadgets and gizmos that are needed to make the whole contraption work.--[[User:Drdeath|Drdeath]] 00:32, 26 July 2009 (UTC)&lt;br /&gt;
== Pricing Update ==&lt;br /&gt;
Supply of the HMC5843 is secured, digikey.com has them, and surprise! they are waaay cheaper than expected. Expect cost for the module and diy kit to be on the low end of the initial prediction, or maybe even a bit below!--[[User:Drdeath|Drdeath]] 01:30, 26 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Distribution Hubs to lower prices for everybody ===&lt;br /&gt;
One last idea before I turn in (it is past four am here): If enough pre-orders can be scraped together, we can all save money by having people in different countries handle the procurement/distribution of modules and PCBs for their area, thus eliminating the customs fees that would otherwise apply twice (once on me importing the modules into Germany, once more on you importing it to your country). Did I neglect to mention I'm gonna put PCB files and all public domain? Sloppy me. --[[User:Drdeath|Drdeath]] 02:20, 26 July 2009 (UTC) &lt;br /&gt;
&lt;br /&gt;
PS: Even if I have the PCBs made (which is not the best idea since I am subject to VAT) a handfull of PCBs for a few Euros sent in a single package to a single adress are more likely to pass by the customs bloodhounds unnoticed than a constant stream of modules at 40+USD (or more likely 30+ taking into account the more recent developments but I'm not making promises).&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/I2C_Compass</id>
		<title>I2C Compass</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/I2C_Compass"/>
				<updated>2009-07-27T01:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: /* Links and Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Announcement ==&lt;br /&gt;
I intend to build a I2C Compass module that fits into the cavity upwards the sim card holder and right of the battery.&lt;br /&gt;
&lt;br /&gt;
'''That being said I'd like to explicitly state that everything said below is so far a mere ''' '''''brainstorm''''' '''and nothing more. I'm still evaluating feasibility and make''' ''''' no promises whatsoever!!!''''' &lt;br /&gt;
&lt;br /&gt;
Further announcements and updates can be found on the discussion page.&lt;br /&gt;
&lt;br /&gt;
===Benefits===&lt;br /&gt;
While the gps does provide heading information, it computes said by drawing a line between the current and last position generated. Thus it is obvious that the heading generated will &lt;br /&gt;
* a) Fall behind increasingly with tightness of turn&lt;br /&gt;
* b) Be increasingly jittery and inaccurate with decreasing forward speed, as the gps-inherent jitter will be more and more pronounced. &lt;br /&gt;
Therefore it is desirable to have a device installed which generates heading directly from the earth magnetic field instead of by comparison of position.&lt;br /&gt;
&lt;br /&gt;
=== Limitations === &lt;br /&gt;
Unlike the gps, the magnetic compass module is affected by magnetic variation. Also the module will be next to useless pending implementation of it's use by software ad hoc.&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
The module will most likely consist of a HMC6352 or preferably the 3-axis HMC5843 module on a tiny PCB. &lt;br /&gt;
The HMC6352 in principle does not need any additional periphery to function. If the nearby radio circuits should turn out to interfere with the compass function, the addition of two resistors and two capacitors may prove necessary, which should have ample room in the space available. The HMC5843 needs a little more periphery but it should still be manageable in the space available Connections will be made by soldering wires to the test points on top of the main FR PCB. &lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
*It is possible if unlikely that the compass module could itself throw interference into the gps module. In this case, a decoupling capacitor in the power circuit of the compass module may be necessary.&lt;br /&gt;
*It is possible that the shielding of the nearby gps and gsm modules renders the magnetic field unusable to a HMC6352, or that the HMC6352, even decoupled, emits interferrence that render either the GPS or the GSM unusable if mounted in that position, either of which would lead to the project having to be given up since there is no other place inside the casing where the chip could be mounted. &lt;br /&gt;
&lt;br /&gt;
=== Request for Contributions ===&lt;br /&gt;
I would appreciate contributions in the form of software, especially patches to frontends and gpsd to have them make use of the module. I intend to try and write a module myself, but I don't make any promises yet. '''See first and next paragraph!'''&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
The module is currently in planning stage.&lt;br /&gt;
=== Next Step(s) ===&lt;br /&gt;
In that order&lt;br /&gt;
* Find out about how the i2c bus can be made use of in linux&lt;br /&gt;
* &amp;lt;strike&amp;gt;Find out if a kernel module exists for this chip&amp;lt;/strike&amp;gt; I've checked and came up blank.&lt;br /&gt;
* Order one or more ICs for testing purposes&lt;br /&gt;
* Etch a test board&lt;br /&gt;
* If none exists, get started on the kernel module&lt;br /&gt;
&lt;br /&gt;
== Purchase ==&lt;br /&gt;
The module is (obviously) not available for purchase yet.&lt;br /&gt;
&lt;br /&gt;
''' Wether or not I proceed to production state with this project depends largely on expression of interest by the community. '''&lt;br /&gt;
&lt;br /&gt;
=== Pricing ===&lt;br /&gt;
Please note that these are preliminary figures which may well go either up or down. I will try to find volume discount prices on ICs and post more accurate price/order count relations asap.&lt;br /&gt;
*The end price for the complete module will probably be in the range of 40-60 USD exc S/H. &lt;br /&gt;
*Bare PCBs will range in the area of 1.50 to 2.00 USD + S/H. &lt;br /&gt;
*DIY-Kits with IC and PCB will range between 30 and 50 USD depending on order count.&lt;br /&gt;
&lt;br /&gt;
=== Minimum Order Count ===&lt;br /&gt;
Preliminary minimum order counts are in the range of 40 PCBs. Ordering less PCBs is uneconomical.&lt;br /&gt;
=== Pre-Order ===&lt;br /&gt;
Non-binding pre-order is open effective immediately in the discussion thread of this page.&lt;br /&gt;
&lt;br /&gt;
== Links and Resources ==&lt;br /&gt;
*[http://www.magneticsensors.com/datasheets/HMC5843.pdf HMC5843 Datasheet]&lt;br /&gt;
*[http://www.sparkfun.com/datasheets/Components/HMC6352.pdf HMC6352 Datasheet]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Kagee</id>
		<title>User:Kagee</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Kagee"/>
				<updated>2009-07-25T23:37:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: nobody knows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bluetooth Networking==&lt;br /&gt;
This really says it all: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/bluetooth-guide.xml&lt;br /&gt;
Thu Jul 16 23:02:01 2009 UTC (9 days ago) by nightmorph&lt;br /&gt;
Branch: MAIN&lt;br /&gt;
CVS Tags: HEAD&lt;br /&gt;
Changes since 1.15: +12 -125 lines&lt;br /&gt;
Diff to previous 1.15&lt;br /&gt;
&lt;br /&gt;
updated bluetooth guide, emergency fixes, bug 266690. &lt;br /&gt;
we now no longer have a chapter on setting up a PAN, &lt;br /&gt;
since nobody knows how the hell to do this.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* org.freesmartphone.Usage - method - ListResources ( ) → as - description: List available resources.&lt;br /&gt;
&lt;br /&gt;
*cli-framework will report that that it could not coeenct to bluez - you have to usageiface.RequestResource('Bluetooth') in another cli-framwork session for it to work&lt;br /&gt;
&lt;br /&gt;
Removed several:&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.ListResources()&lt;br /&gt;
['WiFi', 'Display', 'Bluetooth', 'TEST', 'GSM', 'CPU', 'GPS']&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourcePolicy('Bluetooth')&lt;br /&gt;
'auto'&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;console&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/proxies.py&amp;quot;, line 140, in __call__&lt;br /&gt;
    **keywords)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/connection.py&amp;quot;, line 622, in call_blocking&lt;br /&gt;
    message, timeout)&lt;br /&gt;
DBusException: org.freesmartphone.Usage.UserExists: User :1.25 already requested Bluetooth&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
True&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cli&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:~# hcitool dev&lt;br /&gt;
Devices:&lt;br /&gt;
	hci0	00:06:6E:17:84:32&lt;br /&gt;
root@om-gta02:~# hciconfig&lt;br /&gt;
hci0:	Type: USB&lt;br /&gt;
	BD Address: 00:06:6E:17:84:32 ACL MTU: 384:8 SCO MTU: 64:8&lt;br /&gt;
	UP RUNNING PSCAN &lt;br /&gt;
	RX bytes:1111 acl:0 sco:0 events:47 errors:0&lt;br /&gt;
	TX bytes:449 acl:0 sco:0 commands:47 errors:0&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
cp /etc/default/dropbear .&lt;br /&gt;
nano /etc/default/dropbear  # DROPBEAR_PORT=22&lt;br /&gt;
/etc/init.d/dropbear restart&lt;br /&gt;
&lt;br /&gt;
/etc/bluetooth/main.conf # aaded pass=&amp;quot;1234&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* http://bluez.sourceforge.net/contrib/HOWTO-PAN (old)&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Kagee</id>
		<title>User:Kagee</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Kagee"/>
				<updated>2009-07-25T23:08:03Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* org.freesmartphone.Usage - method - ListResources ( ) → as - description: List available resources.&lt;br /&gt;
&lt;br /&gt;
*cli-framework will report that that it could not coeenct to bluez - you have to usageiface.RequestResource('Bluetooth') in another cli-framwork session for it to work&lt;br /&gt;
&lt;br /&gt;
Removed several:&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.ListResources()&lt;br /&gt;
['WiFi', 'Display', 'Bluetooth', 'TEST', 'GSM', 'CPU', 'GPS']&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourcePolicy('Bluetooth')&lt;br /&gt;
'auto'&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;console&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/proxies.py&amp;quot;, line 140, in __call__&lt;br /&gt;
    **keywords)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/connection.py&amp;quot;, line 622, in call_blocking&lt;br /&gt;
    message, timeout)&lt;br /&gt;
DBusException: org.freesmartphone.Usage.UserExists: User :1.25 already requested Bluetooth&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
True&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cli&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:~# hcitool dev&lt;br /&gt;
Devices:&lt;br /&gt;
	hci0	00:06:6E:17:84:32&lt;br /&gt;
root@om-gta02:~# hciconfig&lt;br /&gt;
hci0:	Type: USB&lt;br /&gt;
	BD Address: 00:06:6E:17:84:32 ACL MTU: 384:8 SCO MTU: 64:8&lt;br /&gt;
	UP RUNNING PSCAN &lt;br /&gt;
	RX bytes:1111 acl:0 sco:0 events:47 errors:0&lt;br /&gt;
	TX bytes:449 acl:0 sco:0 commands:47 errors:0&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
cp /etc/default/dropbear .&lt;br /&gt;
nano /etc/default/dropbear  # DROPBEAR_PORT=22&lt;br /&gt;
/etc/init.d/dropbear restart&lt;br /&gt;
&lt;br /&gt;
/etc/bluetooth/main.conf # aaded pass=&amp;quot;1234&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Kagee</id>
		<title>User:Kagee</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Kagee"/>
				<updated>2009-07-25T22:26:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* org.freesmartphone.Usage - method - ListResources ( ) → as - description: List available resources.&lt;br /&gt;
&lt;br /&gt;
*cli-framework&lt;br /&gt;
Removed several:&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.ListResources()&lt;br /&gt;
['WiFi', 'Display', 'Bluetooth', 'TEST', 'GSM', 'CPU', 'GPS']&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourcePolicy('Bluetooth')&lt;br /&gt;
'auto'&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;console&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/proxies.py&amp;quot;, line 140, in __call__&lt;br /&gt;
    **keywords)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/connection.py&amp;quot;, line 622, in call_blocking&lt;br /&gt;
    message, timeout)&lt;br /&gt;
DBusException: org.freesmartphone.Usage.UserExists: User :1.25 already requested Bluetooth&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
True&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cli&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:~# hcitool dev&lt;br /&gt;
Devices:&lt;br /&gt;
	hci0	00:06:6E:17:84:32&lt;br /&gt;
root@om-gta02:~# hciconfig&lt;br /&gt;
hci0:	Type: USB&lt;br /&gt;
	BD Address: 00:06:6E:17:84:32 ACL MTU: 384:8 SCO MTU: 64:8&lt;br /&gt;
	UP RUNNING PSCAN &lt;br /&gt;
	RX bytes:1111 acl:0 sco:0 events:47 errors:0&lt;br /&gt;
	TX bytes:449 acl:0 sco:0 commands:47 errors:0&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
cp /etc/default/dropbear .&lt;br /&gt;
nano /etc/default/dropbear  # DROPBEAR_PORT=22&lt;br /&gt;
/etc/init.d/dropbear restart&lt;br /&gt;
&lt;br /&gt;
/etc/bluetooth/main.conf # aaded pass=&amp;quot;1234&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Kagee</id>
		<title>User:Kagee</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Kagee"/>
				<updated>2009-07-25T21:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: New page:     org.freesmartphone.Usage  Method: ListResources ( ) → as  Description: List available resources. Returns as: resources  An array of resource names.      cli-framework &amp;gt;&amp;gt;&amp;gt; usageiface....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;    org.freesmartphone.Usage&lt;br /&gt;
&lt;br /&gt;
Method:&lt;br /&gt;
ListResources ( ) → as&lt;br /&gt;
&lt;br /&gt;
Description: List available resources.&lt;br /&gt;
Returns&lt;br /&gt;
as: resources&lt;br /&gt;
&lt;br /&gt;
An array of resource names.&lt;br /&gt;
&lt;br /&gt;
    cli-framework&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.ListResources()&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
['WiFi', 'Display', 'Bluetooth', 'TEST', 'GSM', 'CPU', 'GPS']&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.ListResources()&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
['WiFi', 'Display', 'Bluetooth', 'TEST', 'GSM', 'CPU', 'GPS']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourcePolicy('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
'auto'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
False&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;console&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/proxies.py&amp;quot;, line 140, in __call__&lt;br /&gt;
    **keywords)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.6/site-packages/dbus/connection.py&amp;quot;, line 622, in call_blocking&lt;br /&gt;
    message, timeout)&lt;br /&gt;
DBusException: org.freesmartphone.Usage.UserExists: User :1.25 already requested Bluetooth&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.ReleaseResource('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; usageiface.GetResourceState('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
False&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = usageiface.RequestResource('Bluetooth')&lt;br /&gt;
Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Ipkg</id>
		<title>Ipkg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Ipkg"/>
				<updated>2008-10-15T18:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: adding pre's around code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NB:''' Current (2008-04-04+) builds of Openmoko now come with the syntax compatible [[Opkg]] tool, not ipkg.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Integrate useful content into [[Opkg]] as a usage section.}}&lt;br /&gt;
&lt;br /&gt;
The practical way to install software on Openmoko is with the [http://handhelds.org/moin/moin.cgi/Ipkg Ipkg package manager], possibly via the graphical Application Manager. Naturally, you need to have obtained an Openmoko system by other means initially.&lt;br /&gt;
&lt;br /&gt;
In the shell, &amp;quot;opkg update&amp;quot; will update the list of available packages, &amp;quot;opkg upgrade&amp;quot; will download and install all packages that have a newer version available and &amp;quot;ipkg install new-app&amp;quot; will download and install &amp;quot;new-app&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Have a look at [[Users Repositories]] to get addresses of alternative software repositories, e.g. ScaredyCat's ipkg repository.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Ipkg re-implements for embedded systems the functionality of Debian tools dpkg, apt, and apt-get. For example, it uses much less disk space for the package metadata.&lt;br /&gt;
&lt;br /&gt;
== Installing Packages to the Memory Card ==&lt;br /&gt;
&lt;br /&gt;
You can use ipkg to install packages to a folder on the memory card.  To do this you'll need the following:&lt;br /&gt;
&lt;br /&gt;
=== Ext2 Formatted Memory Card ===&lt;br /&gt;
&lt;br /&gt;
By default, the memory card comes formated with VFAT (Windows Format).  You need to re-format the card with EXT2.  You will not be able to view the files on the card using a windows system after this.&lt;br /&gt;
&lt;br /&gt;
To check if your card is using vfat or ext, run the 'mount' command, and look for: /dev/mmcblk0p1 on /media/card.&lt;br /&gt;
&lt;br /&gt;
On the NEO, run the following:&lt;br /&gt;
''' This will erase everything on your memory card '''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /media/card&lt;br /&gt;
fdisk /dev/mmcblk0&lt;br /&gt;
t&lt;br /&gt;
83&lt;br /&gt;
w&lt;br /&gt;
mke2fs /dev/mmcblk0p1&lt;br /&gt;
mount /media/card&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entry in opkg.conf File ===&lt;br /&gt;
&lt;br /&gt;
In your /etc/opkg.conf file, after &amp;quot;dest root /&amp;quot; add a new line:&lt;br /&gt;
&amp;lt;pre&amp;gt;dest card /media/card/opkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create /media/card/opkg folder&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/card/opkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installing Packages on the Card ===&lt;br /&gt;
&lt;br /&gt;
When installing a package, use the -d option to have the package installed into the &amp;quot;card&amp;quot; destination:&lt;br /&gt;
&amp;lt;pre&amp;gt;opkg install -d card python-core&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will put all files (binaries and libraries) on the card, under the folder specified in the ipkg.conf file.&lt;br /&gt;
&lt;br /&gt;
=== Linking/Using Packages on the Card ===&lt;br /&gt;
&lt;br /&gt;
Your system will not be able to see the packages that you just added to your card.  There are two ways to remedy this.&lt;br /&gt;
The better solution is to use ipkg-link from the 'ipkg-utils' package, but 'better' is always subjective - YMMV.&lt;br /&gt;
&lt;br /&gt;
==== 1: Ipkg Utils and ipkg-link ====&lt;br /&gt;
&lt;br /&gt;
Ipkg-utils is a package that provides some additional functionality for ipkg.  A very useful tool is ipkg-link, which creates symbolic links for packages installed in non-root locations (such as a card) back to the root file system.&lt;br /&gt;
&lt;br /&gt;
To make this working with Opkg, you've simply to do:&lt;br /&gt;
&amp;lt;pre&amp;gt;ln -s /etc/opkg.conf /etc/ipkg.conf&lt;br /&gt;
ln -s /media/card/opkg/usr/lib/opkg /media/card/opkg/usr/lib/ipkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get ipkg-utils, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;ipkg install ipkg-utils&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create symbolic links to your root system for a specific package, run: ipkg-link add &amp;lt;package&amp;gt;.  For example, for python-core use:&lt;br /&gt;
&amp;lt;pre&amp;gt;ipkg-link add python-core&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create symbolic links for all packages installed in a location, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;ipkg-link mount /media/card/ipkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''ipkg-link remove'' and ''ipkg-link unmount'' commands remove the symlinks for a package or all packages.&lt;br /&gt;
&lt;br /&gt;
There is a list of the options for the ipkg command under &amp;quot;How do I use it?&amp;quot; [http://handhelds.org/moin/moin.cgi/Ipkg here.]&lt;br /&gt;
&lt;br /&gt;
==== 2: Adding the card PATH and LIB directories to your path  ====&lt;br /&gt;
Another way to add bin and lib files to your system is by modifying your environment variables in /etc/profile as follows:&lt;br /&gt;
&lt;br /&gt;
On the line that defines the PATH variable, add:&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:/media/card/ipkg/usr/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, before the 'export' line add:&lt;br /&gt;
&amp;lt;pre&amp;gt;LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/media/card/ipkg/usr/lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then modify the 'export' line and add LD_LIBRARY_PATH to the end.&lt;br /&gt;
&lt;br /&gt;
This will let the system see the binary and library files, but it will not see other resources, such as images, configuration files, desktop files, etc.  For this reason, ipkg-link is preferred.&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Ipkg</id>
		<title>Ipkg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Ipkg"/>
				<updated>2008-10-15T18:54:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: /* Ext2 Formatted Memory Card */ pre-tags around code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NB:''' Current (2008-04-04+) builds of Openmoko now come with the syntax compatible [[Opkg]] tool, not ipkg.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Integrate useful content into [[Opkg]] as a usage section.}}&lt;br /&gt;
&lt;br /&gt;
The practical way to install software on Openmoko is with the [http://handhelds.org/moin/moin.cgi/Ipkg Ipkg package manager], possibly via the graphical Application Manager. Naturally, you need to have obtained an Openmoko system by other means initially.&lt;br /&gt;
&lt;br /&gt;
In the shell, &amp;quot;opkg update&amp;quot; will update the list of available packages, &amp;quot;opkg upgrade&amp;quot; will download and install all packages that have a newer version available and &amp;quot;ipkg install new-app&amp;quot; will download and install &amp;quot;new-app&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Have a look at [[Users Repositories]] to get addresses of alternative software repositories, e.g. ScaredyCat's ipkg repository.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Ipkg re-implements for embedded systems the functionality of Debian tools dpkg, apt, and apt-get. For example, it uses much less disk space for the package metadata.&lt;br /&gt;
&lt;br /&gt;
== Installing Packages to the Memory Card ==&lt;br /&gt;
&lt;br /&gt;
You can use ipkg to install packages to a folder on the memory card.  To do this you'll need the following:&lt;br /&gt;
&lt;br /&gt;
=== Ext2 Formatted Memory Card ===&lt;br /&gt;
&lt;br /&gt;
By default, the memory card comes formated with VFAT (Windows Format).  You need to re-format the card with EXT2.  You will not be able to view the files on the card using a windows system after this.&lt;br /&gt;
&lt;br /&gt;
To check if your card is using vfat or ext, run the 'mount' command, and look for: /dev/mmcblk0p1 on /media/card.&lt;br /&gt;
&lt;br /&gt;
On the NEO, run the following:&lt;br /&gt;
''' This will erase everything on your memory card '''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /media/card&lt;br /&gt;
fdisk /dev/mmcblk0&lt;br /&gt;
t&lt;br /&gt;
83&lt;br /&gt;
w&lt;br /&gt;
mke2fs /dev/mmcblk0p1&lt;br /&gt;
mount /media/card&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entry in opkg.conf File ===&lt;br /&gt;
&lt;br /&gt;
In your /etc/opkg.conf file, after &amp;quot;dest root /&amp;quot; add a new line:&lt;br /&gt;
dest card /media/card/opkg&lt;br /&gt;
&lt;br /&gt;
Create /media/card/opkg folder&lt;br /&gt;
mkdir /media/card/opkg&lt;br /&gt;
&lt;br /&gt;
=== Installing Packages on the Card ===&lt;br /&gt;
&lt;br /&gt;
When installing a package, use the -d option to have the package installed into the &amp;quot;card&amp;quot; destination:&lt;br /&gt;
opkg install -d card python-core&lt;br /&gt;
&lt;br /&gt;
This will put all files (binaries and libraries) on the card, under the folder specified in the ipkg.conf file.&lt;br /&gt;
&lt;br /&gt;
=== Linking/Using Packages on the Card ===&lt;br /&gt;
&lt;br /&gt;
Your system will not be able to see the packages that you just added to your card.  There are two ways to remedy this.&lt;br /&gt;
The better solution is to use ipkg-link from the 'ipkg-utils' package, but 'better' is always subjective - YMMV.&lt;br /&gt;
&lt;br /&gt;
==== 1: Ipkg Utils and ipkg-link ====&lt;br /&gt;
&lt;br /&gt;
Ipkg-utils is a package that provides some additional functionality for ipkg.  A very useful tool is ipkg-link, which creates symbolic links for packages installed in non-root locations (such as a card) back to the root file system.&lt;br /&gt;
&lt;br /&gt;
To make this working with Opkg, you've simply to do:&lt;br /&gt;
ln -s /etc/opkg.conf /etc/ipkg.conf&lt;br /&gt;
ln -s /media/card/opkg/usr/lib/opkg /media/card/opkg/usr/lib/ipkg&lt;br /&gt;
&lt;br /&gt;
To get ipkg-utils, run:&lt;br /&gt;
ipkg install ipkg-utils&lt;br /&gt;
&lt;br /&gt;
To create symbolic links to your root system for a specific package, run: ipkg-link add &amp;lt;package&amp;gt;.  For example, for python-core use:&lt;br /&gt;
ipkg-link add python-core&lt;br /&gt;
&lt;br /&gt;
To create symbolic links for all packages installed in a location, run:&lt;br /&gt;
ipkg-link mount /media/card/ipkg&lt;br /&gt;
&lt;br /&gt;
The ''ipkg-link remove'' and ''ipkg-link unmount'' commands remove the symlinks for a package or all packages.&lt;br /&gt;
&lt;br /&gt;
There is a list of the options for the ipkg command under &amp;quot;How do I use it?&amp;quot; [http://handhelds.org/moin/moin.cgi/Ipkg here.]&lt;br /&gt;
&lt;br /&gt;
==== 2: Adding the card PATH and LIB directories to your path  ====&lt;br /&gt;
Another way to add bin and lib files to your system is by modifying your environment variables in /etc/profile as follows:&lt;br /&gt;
&lt;br /&gt;
On the line that defines the PATH variable, add:&lt;br /&gt;
PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:/media/card/ipkg/usr/bin&lt;br /&gt;
&lt;br /&gt;
Then, before the 'export' line add:&lt;br /&gt;
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/media/card/ipkg/usr/lib&lt;br /&gt;
&lt;br /&gt;
Then modify the 'export' line and add LD_LIBRARY_PATH to the end.&lt;br /&gt;
&lt;br /&gt;
This will let the system see the binary and library files, but it will not see other resources, such as images, configuration files, desktop files, etc.  For this reason, ipkg-link is preferred.&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/OpenmokoFramework</id>
		<title>OpenmokoFramework</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/OpenmokoFramework"/>
				<updated>2008-09-10T18:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kagee: /* Timeline */ update links, ms3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|OpenmokoFramework}}&lt;br /&gt;
{{FSO}}&lt;br /&gt;
{{Distributions|FSO}}&lt;br /&gt;
&lt;br /&gt;
FSO is an abbreviation for FreeSmartphone.Org. With FSO, Openmoko is working on a stable system services software back-end. The framework will be used in forthcoming Openmoko distributions -- a demonstration one is available as FSO-image. For more information see http://www.freesmartphone.org and http://trac.freesmartphone.org .&lt;br /&gt;
&lt;br /&gt;
=Q/A=&lt;br /&gt;
* ''Question'': Is this an Openmoko-only thing?&lt;br /&gt;
* ''Answer'': No. It's going to be available for all kinds of mobile hardware running Linux, i.e. OpenEZX, XanaduX, HTC/iPAQ, ...&lt;br /&gt;
* ''Question'': Is this a part of the current images yet? Is it perhaps the mystic ASU?&lt;br /&gt;
* ''Answer'': No.&lt;br /&gt;
* ''Question'': When can I see this as part of an image?&lt;br /&gt;
* ''Answer'': Not before spring 2009.&lt;br /&gt;
* ''Question'': What's the current status?&lt;br /&gt;
* ''Answer'': See right below or hop over to http://trac.freesmartphone.org .&lt;br /&gt;
** [[OpenmokoFramework/Status Update 1|Status Update 1]]&lt;br /&gt;
** [[OpenmokoFramework/Status Update 2|Status Update 2]]&lt;br /&gt;
** [[OpenmokoFramework/Status Update 3|Status Update 3]]&lt;br /&gt;
** [[OpenmokoFramework/Status Update 4|Status Update 4]]&lt;br /&gt;
* ''Question'': How do I work the Zhone (FSO demo app) UI?&lt;br /&gt;
* ''Answer'': [[FSO UI Tutorial]]&lt;br /&gt;
* ''Question'': What is the easiest way to build it?&lt;br /&gt;
* ''Answer'':   &amp;lt;pre&amp;gt;wget http://shr.bearstech.com/Makefile; make fso-testing-image&amp;lt;/pre&amp;gt;  See [[Building_FSO]] for more information.&lt;br /&gt;
&lt;br /&gt;
= Timeline=&lt;br /&gt;
* Unknown: milestone 4&lt;br /&gt;
* 10/09/2008: [[OpenmokoFramework/Status Update 4|milestone 3]] achieved&lt;br /&gt;
* 01/07/2008: [[OpenmokoFramework/Status Update 3|milestone 2]] achieved&lt;br /&gt;
* 01/06/2008: [[OpenmokoFramework/Status Update 2|milestone 1]] achieved&lt;br /&gt;
&lt;br /&gt;
=Purposes=&lt;br /&gt;
* Give people the infrastructure to create solid and exciting software products based on the Openmoko platform&lt;br /&gt;
* Support competing UIs while collaborating on developing services&lt;br /&gt;
* Encourage framework users (e.g. application developers) to also contribute to the framework&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* Make it simple&lt;br /&gt;
* Concentrate on core services&lt;br /&gt;
* Be programming language agnostic&lt;br /&gt;
* Be UI toolkit agnostic&lt;br /&gt;
* Try to reuse existing technologies as much as possible, but not at the cost of a bad API&lt;br /&gt;
&lt;br /&gt;
=How to achieve that technically=&lt;br /&gt;
* Choose [[Dbus|dbus]] as the collaboration line. Below dbus, we can work together. Above dbus, we can differentiate&lt;br /&gt;
* Expose features through dbus APIs implemented by UI-agnostic and language-agnostic services (daemons)&lt;br /&gt;
* Optimize for Openmoko devices, but support multiple architectures and purposes through plugin interfaces and suitable hardware abstraction mechanisms&lt;br /&gt;
* By not being afraid of reinventing the wheel for a wheelbarrow if all the existing wheels are made for sports cars&lt;br /&gt;
&lt;br /&gt;
=Mandatory Reading=&lt;br /&gt;
* [http://adam.gomaa.us/blog/frameworks-exist-for-conceptual-integrity/ Frameworks exist for conceptual integrity]&lt;br /&gt;
* [http://humanized.com/weblog/2007/10/05/make_oss_humane/ Ten ways to make more humane open source software]&lt;br /&gt;
* [http://www.freesmartphone.org FreeSmartPhone.org Wiki]&lt;br /&gt;
&lt;br /&gt;
=What this is NOT about=&lt;br /&gt;
This initiative does not cover low level services such as&lt;br /&gt;
* Bootloader, Kernel, or System Init.&lt;br /&gt;
&lt;br /&gt;
This initiative does not cover high level services such as&lt;br /&gt;
* X-Window-System, Window Manager, UI Toolkits,&lt;br /&gt;
* Application Launchers, Applications, or Fancy UIs.&lt;br /&gt;
&lt;br /&gt;
=Architectural Overview=&lt;br /&gt;
[[Image:OpenmokoFramework08.png |823px|frontside]]&lt;br /&gt;
&lt;br /&gt;
=Software Components=&lt;br /&gt;
&lt;br /&gt;
We differentiate between low-level and high-level services -- dbus will be used to communicate horizontally and vertically.&lt;br /&gt;
&lt;br /&gt;
===Low-Level Services===&lt;br /&gt;
&lt;br /&gt;
====Device Control====&lt;br /&gt;
The low level device control service manages peripheral control, i.e. controlling power for individual subsystems such as&lt;br /&gt;
* GSM, WiFi, Bluetooth, GPS, as well as&lt;br /&gt;
* Backlight brightness and power,&lt;br /&gt;
* Turning LEDs on and off, etc.&lt;br /&gt;
It also deals with&lt;br /&gt;
* Charging, suspend/resume,&lt;br /&gt;
* Accelerometers, and buttons.&lt;br /&gt;
Last but not least, it sends notifications about the user's activity so that listeners have a chance to&lt;br /&gt;
* Change to powersaving modes, or&lt;br /&gt;
* Lock the device.&lt;br /&gt;
We implement the following software for that:&lt;br /&gt;
* [http://www.freesmartphone.org/index.php/Implementations/OpenDeviceDaemon odeviced]&lt;br /&gt;
&lt;br /&gt;
====Audio====&lt;br /&gt;
The low level audio service relies on a working ALSA device driver with the dmix software mixing plugin (*). On top of that, there is the GStreamer streaming media framework:&lt;br /&gt;
* [http://gstreamer.freedesktop.org/ gstreamer]&lt;br /&gt;
&lt;br /&gt;
'''Gstreamer''' is to be used for all kinds of event sounds where a) multiple audio formats need to be supported and b) a latency of about one second is acceptable. This goes for e.g. ring tones, welcome tones, plug indication.&lt;br /&gt;
&lt;br /&gt;
*) Initially, we wanted to use PulseAudio on top of ALSA, howver currently it has serious performance problems on this hardware. [http://lists.openmoko.org/pipermail/devel/2008-July/000253.html]&lt;br /&gt;
====GSM====&lt;br /&gt;
The low level GSM services expect a modem complying to GSM 07.07, GSM 07.05, and assorted GSM specifications, talking an AT-protocol over a serial line. If GSM 07.10 is supported, we use the multiplexing daemon to export virtual serial lines over which -- again -- AT-protocol can be spoken:&lt;br /&gt;
* [http://www.freesmartphone.org/index.php/Implementations/gsm0710muxd gsm0710muxd]&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
The low level Bluetooth services rely on the official Linux Bluetooth subsystem:&lt;br /&gt;
* [http://www.bluez.org BlueZ].&lt;br /&gt;
&lt;br /&gt;
====GPS====&lt;br /&gt;
The low level GPS services assume a GPS device that talks NMEA over a device node. We implemented an ogpsd daemon speaking an extended Gypsy API:&lt;br /&gt;
* [http://gypsy.freedesktop.org Gypsy]&lt;br /&gt;
&lt;br /&gt;
====Network====&lt;br /&gt;
The low level networking service assumes network interfaces, such as USB, Ethernet, Wifi, etc. We rely on the following software here:&lt;br /&gt;
* Intel Connection Manager&lt;br /&gt;
* PPP&lt;br /&gt;
&lt;br /&gt;
===High Level===&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
The Usage subsystem is concerned with coordinating application I/O requirements. Applications are not supposed to turn on or off devices, since they do not have any knowledge about concurrent applications that may be also using the device -- think ''reference counting'' for I/O requirements.&lt;br /&gt;
&lt;br /&gt;
With this added layer, we could later think about monitoring subsystems, subsystem usage statistics, or accounting.&lt;br /&gt;
&lt;br /&gt;
See discussion page about PolicyKit.&lt;br /&gt;
&lt;br /&gt;
====Events====&lt;br /&gt;
* Signalling events via I/O (ringing, blinking, vibrating)&lt;br /&gt;
* Might use fd.o notification API&lt;br /&gt;
&lt;br /&gt;
====PIM====&lt;br /&gt;
An intelligent storage database server. This is being carried out as a Google Summer of Code project. See complete description [http://www.neo1973-germany.de/wiki/pyPimd here].&lt;br /&gt;
&lt;br /&gt;
====Context====&lt;br /&gt;
* Intelligent context API, integrating location as one -- among other -- sources&lt;br /&gt;
* Geoclue?&lt;br /&gt;
&lt;br /&gt;
====[http://www.freesmartphone.org/index.php/Standards/PhoneAPI Phone]====&lt;br /&gt;
The phone subsystem can be used to create and manage voices communications. It makes abstraction of the protocol used.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.freesmartphone.org/index.php/Implementations/OpenPreferencesDaemon Preferences] ===&lt;br /&gt;
* Settings database&lt;br /&gt;
&lt;br /&gt;
====Network====&lt;br /&gt;
* High-level networking queries&lt;br /&gt;
&lt;br /&gt;
=Implementation=&lt;br /&gt;
&lt;br /&gt;
===Completion Status===&lt;br /&gt;
&lt;br /&gt;
====Low-Level====&lt;br /&gt;
* Device control: 75%&lt;br /&gt;
* Audio: 90%&lt;br /&gt;
* GSM: 95%&lt;br /&gt;
* GPRS: 95%&lt;br /&gt;
* Bluetooth: 80%&lt;br /&gt;
* GPS: 95%&lt;br /&gt;
* Network: 50%&lt;br /&gt;
&lt;br /&gt;
====High Level====&lt;br /&gt;
* Usage: 50%&lt;br /&gt;
* Event: 70%&lt;br /&gt;
* [http://www.freesmartphone.org/index.php/Implementations/OpenPreferencesDaemon Preferences]: 50%&lt;br /&gt;
* Context: 0%&lt;br /&gt;
* [[Roadmap/Telephony|Telephony]]: 95%&lt;br /&gt;
* Networking: 0%&lt;br /&gt;
* PIM: 0%&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* [[OpenmokoFramework/mdbus|mdbus]] -- a dbus introspection and interaction utility,&lt;br /&gt;
* [[OpenmokoFramework/cli|cli-framework]] -- a python dbus command line interface.&lt;br /&gt;
* [[OpenmokoFramework/mickeyterm|mickeyterm]] -- a MUXer-aware minimal terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=The role of Python=&lt;br /&gt;
&lt;br /&gt;
Where we write new code, we will use Python to implement the dbus services. The reason for that being the rapid prototyping nature of Python and the emphasis on the [[Dbus|dbus]] APIs. Using Python, the turnaround times to experiment with APIs are incredibly faster than for using a compiled language such as C or C++.&lt;br /&gt;
&lt;br /&gt;
Once the APIs have been used by application programmers, we can start profiling and possibly reimplement some of the services with daemons written in Vala, ''if'' necessary. We might as well succeed in improving performance by using Pyrex/Cython/Ctypes to keep the benefits of Python.&lt;br /&gt;
&lt;br /&gt;
=Team &amp;amp; Roadmap=&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
&lt;br /&gt;
* [[User:Mickey|Michael 'Mickey' Lauer]] (team leader) -- Openmoko freelancer, working in Frankfurt/Main, Germany.&lt;br /&gt;
* [[User:Charlie| Guillaume 'Charlie' Chereau]] -- Openmoko employee, working fulltime in the Openmoko office, Taipei, Taiwan.&lt;br /&gt;
* [[User:Shoragan|Jan 'Shoragan' Luebbe]] -- Openmoko student, working part-time in Brunswick, Germany.&lt;br /&gt;
* [[User:DanielWillmann|Daniel 'Alphaone' Willmann]] -- Openmoko student, working part-time in Brunswick, Germany.&lt;br /&gt;
* [[User:StefanSchmidt|Stefan Schmidt]] -- Openmoko student, working part-time in Brunswick, Germany.&lt;br /&gt;
&lt;br /&gt;
==Roadmap==&lt;br /&gt;
&lt;br /&gt;
The milestone releases are combined Openmoko Framework and [[Zhone]] releases. Remember: A feature that isn't visible, working, and tested in our framework testing application (Zhone) does ''not'' exist. Until Framework 1.0.0 (later this year), we will not use any versioning in components. Afterwards, individual components may see individual releases.&lt;br /&gt;
&lt;br /&gt;
'''Note: The milestones and tasks moved over to our [http://trac.freesmartphone.org issue tracker].'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Framework| ]]&lt;br /&gt;
[[Category:FSO]]&lt;/div&gt;</summary>
		<author><name>Kagee</name></author>	</entry>

	</feed>