<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sushi</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sushi"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Sushi"/>
	<updated>2026-04-15T09:37:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Accelerometer&amp;diff=2247</id>
		<title>Accelerometer</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Accelerometer&amp;diff=2247"/>
		<updated>2009-07-25T06:20:29Z</updated>

		<summary type="html">&lt;p&gt;Sushi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The accelerometer appears to be a &amp;quot;KXSD9 SERIES Tri-Axis, 2g, 4g, 6g, 8g, User Selectable, Ultra Low Power Digital&amp;quot;&lt;br /&gt;
[http://www.kionix.com/accelerometers/accelerometer-KXSD9.html http://www.kionix.com/accelerometers/accelerometer-KXSD9.html]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/sys/class/input/input5# cat name&lt;br /&gt;
kxsd9_accelerometer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
more info:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/sys/class/input/input5# cat uevent&lt;br /&gt;
PHYSDEVPATH=/class/i2c-adapter/i2c-3/3-0018&lt;br /&gt;
PHYSDEVBUS=i2c&lt;br /&gt;
PHYSDEVDRIVER=kxsd9_accelerometer&lt;br /&gt;
PRODUCT=18/1/1/100&lt;br /&gt;
NAME=&amp;quot;kxsd9_accelerometer&amp;quot;&lt;br /&gt;
EV==9&lt;br /&gt;
ABS==7&lt;br /&gt;
MODALIAS=input:b0018v0001p0001e0100-e0,3,kra0,1,2,mlsfw&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and at the very least you could adjust the low pass filter used, or the threshold for waking up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/sys/class/input/input5# ls -al&lt;br /&gt;
drwxr-xr-x    6 root     root            0 Jun 11 17:47 .&lt;br /&gt;
drwxr-xr-x    8 root     root            0 Jun 11 17:47 ..&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Jun 11 23:58 accelerometer_filter_frequency&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Jun 11 23:58 accelerometer_motion_wake_up_threshold&lt;br /&gt;
drwxr-xr-x    2 root     root            0 Jun 11 23:58 capabilities&lt;br /&gt;
lrwxrwxrwx    1 root     root            0 Jun 11 23:58 device -&amp;gt; ../../../class/i2c-adapter/i2c-3/3-0018&lt;br /&gt;
drwxr-xr-x    3 root     root            0 Jun 11 23:49 event5&lt;br /&gt;
drwxr-xr-x    2 root     root            0 Jun 11 23:58 id&lt;br /&gt;
lrwxrwxrwx    1 root     root            0 Jun 11 23:58 input:event5 -&amp;gt; ../../../class/input/input5/event5&lt;br /&gt;
-r--r--r--    1 root     root         4096 Jun 11 23:58 modalias&lt;br /&gt;
-rw-r--r--    1 root     root            0 Jun 11 23:50 mode&lt;br /&gt;
-r--r--r--    1 root     root         4096 Jun 11 23:53 name&lt;br /&gt;
-r--r--r--    1 root     root         4096 Jun 11 23:58 phys&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Jun 11 23:58 poll_interval&lt;br /&gt;
drwxr-xr-x    2 root     root            0 Jun 11 23:58 power&lt;br /&gt;
lrwxrwxrwx    1 root     root            0 Jun 11 23:58 subsystem -&amp;gt; ../../../class/input&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Jun 11 23:58 uevent&lt;br /&gt;
-r--r--r--    1 root     root         4096 Jun 11 23:58 uniq&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More accelerometer info &lt;br /&gt;
&lt;br /&gt;
There's a library called libhidaccelerometer.so -- so it's treated as an HID class of devices. There is no dbus activity when you move the device, so this probably a much lower level service. Makes sense: you don't want zillions of dbus messages firing off whenever someone moves.&lt;br /&gt;
&lt;br /&gt;
Looking in running processes, I notice /usr/bin/hidd, which references a configuration file '''/etc/hidd/HidPlugins.xml'''&lt;br /&gt;
&lt;br /&gt;
In this file, two sockets are mentioned:&lt;br /&gt;
/var/tmp/hidd/AccelerometerCmdSocket&lt;br /&gt;
/var/tmp/hidd/AccelerometerEventSocket&lt;br /&gt;
&lt;br /&gt;
These are UNIX DGRAM sockets, which are open on the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sample code ==&lt;br /&gt;
Taken from boydell's Magic 8 Ball app:&lt;br /&gt;
&lt;br /&gt;
In his '''first-assistant.js''' (''... = code skips'')&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
...    &lt;br /&gt;
        this.controller.listen(this.controller.sceneElement, Mojo.Event.tap, this.handleTap.bind(this));&lt;br /&gt;
        this.controller.listen(document, 'shakestart', this.handleShakeStart.bind(this));&lt;br /&gt;
        this.controller.listen(document, 'shaking', this.handleShaking.bind(this));&lt;br /&gt;
        this.controller.listen(document, 'shakeend', this.handleShakeEnd.bind(this));&lt;br /&gt;
...&lt;br /&gt;
FirstAssistant.prototype.handleShakeStart = function(event) {&lt;br /&gt;
        this.setBall();&lt;br /&gt;
        this.hideMessage();&lt;br /&gt;
        Event.stop(event);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FirstAssistant.prototype.handleShaking = function(event) {&lt;br /&gt;
        this.setBall();&lt;br /&gt;
        this.hideMessage();&lt;br /&gt;
        Event.stop(event);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FirstAssistant.prototype.handleShakeEnd = function(event) {&lt;br /&gt;
        this.showRandomMessage();&lt;br /&gt;
        Event.stop(event);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Sushi</name></author>
	</entry>
</feed>