Open GoogleCodeExporter opened 9 years ago
accelerometer is not supported (yet) so - of course - those games don´t work
yet :)
Original comment by aleo...@gmail.com
on 20 Jan 2011 at 8:10
Original comment by elbee1...@gmail.com
on 20 Jan 2011 at 9:20
Accelerometer chip is one of these
http://www.kionix.com/accelerometers/accelerometer-KXSD9.html
Original comment by vabb...@gmail.com
on 7 Feb 2011 at 4:39
supported on kernel level:
http://o2droid.phj.hu/trac/browser/kern_oII/drivers/sensor/accel
but not yet on Android level ...
Original comment by elbee1...@gmail.com
on 7 Feb 2011 at 8:24
vabb.. you have info about what chips are in our phones, i would like to invite
you to write or help writing a wiki article containing the chipnames with
function and links. This would be a nice base for documenting the differences
between I8000 B7610 I920 and other omnia like phones. Those differences are
important to know to include (extra) support for these phones. You can contact
me at my "nickname"@gmail.com.
Original comment by elbee1...@gmail.com
on 8 Feb 2011 at 10:08
Elbee... I better specialise in hardware than software. I have a professional
camera with macro lens and flash which helped me take the photographs in the
B7610 Teardown thread.
http://www.modaco.com/content/b7610-omnia-pro-b7610-modaco-com/331038/b7610-hard
ware-teardown/ I will update this and the links to datasheets there in as I
find them. Some are hard to identify as markings are poor. I probably need to
take more photos. Happy to help with the Wiki.
Original comment by vabb...@gmail.com
on 8 Feb 2011 at 10:17
so with rev94 the orientation seems to work .... mostly .-)
at least on the b7610 it works excactly against excpetect:
turn the phone clockwise 90° will switch to orientation landscape
but than it is 'upside down'
turn again 90° (so phone is upside down) turns back to portrait.
how can i fix that?
Original comment by mosclamer
on 3 Mar 2011 at 5:17
should be -90° (270°) landscape
and than 0° (started at -90°) potrait
Original comment by mosclamer
on 3 Mar 2011 at 5:40
"should be -90° (270°) landscape
and than 0° (started at -90°) potrait"
how to change config?
Original comment by htdu...@gmail.com
on 4 Mar 2011 at 8:30
installed latest (20110303) update from site (rev93) on my i8000 and when
device turned -90 screen turns ok, when device turned back to 0 screen turns ok
(after a while). 90 and 180 device turn doesnt do anything. All this in home
screen.
rev94 not tried yet ... (played abduction, nice but only sound effects, no
sound track)
Original comment by elbee1...@gmail.com
on 4 Mar 2011 at 10:07
Cant find an i8000 tear-down as good as my B7610 one to compare, but it is most
likely that Printed Circuit Board design between the two phones has meant that
the accelerometer is mounted 180 degrees differently.
Strange that the Compass isn't working as it is the same sensor that has the
same I2C addressing.
Original comment by vabb...@gmail.com
on 4 Mar 2011 at 3:52
UPDATE. Compass IS working (B7610)! ..but it's 90 degrees out. Used Compass
App. Remember to calibrate your device.
http://www.s3sensor.com/en/s3/calibration/recalibrate/index.html
Original comment by vabb...@gmail.com
on 4 Mar 2011 at 4:28
strange - i have tried 4 different comapss apps and some sensor-tools (super
compass,smart compass,compass & level,(catch.com) compass and sensotest & plot,
Z-Device test, SensorInfo and many calibrations ... no reaction.
what kernel do you use? the one for I8000?
Original comment by mosclamer
on 4 Mar 2011 at 5:15
Mosci, Iupdated with your latest kernel from the7610 keymapping issue. Compass
is catch v2.0 first I tried. On correct calibration, phone vibrated and compass
worked.
Original comment by vabb...@gmail.com
on 4 Mar 2011 at 5:34
still strange ... but i'm happy for you :-)
it vibrates every time if i doing calibration - but still don't work.
heres my logcat during calibration ... looks good in the end ...
but again ... compass is not moving
I/Compass ( 2869): Registering Sensor Event Listener for ShakeSensor
E/SensorManager( 2869): registerListener 1:BMA150 delay:120
D/Sensors ( 1930): sensors_control_activate active=00000009 sensor=00000002
new_sensors=b changed=2
W/Sensors ( 1930): Accelerometer opend
I/Sensors ( 1930): set AK daemon delay=60 fd=125
E/SensorManager( 2869): registerListener:
com.apksoftware.compass.ShakeSensor@43fc4050
I/Sensors ( 2869): sensors_data_delay handle=1 delay=120 mMinDelay=60
I/Compass ( 2869): Shake 1/4 detected.
I/Compass ( 2869): Shake 2/4 detected.
I/Compass ( 2869): Shake 3/4 detected.
I/Compass ( 2869): Shake 4/4 detected.
I/Compass ( 2869): Unregistering Sensor Event Listener for ShakeSensor
E/SensorManager( 2869): unregisterListener:
com.apksoftware.compass.ShakeSensor@43fc4050
I/Sensors ( 2869): sensors_data_delay handle=1 delay=2147483647 mMinDelay=60
D/Sensors ( 1930): sensors_control_activate active=0000000b sensor=00000002
new_sensors=9 changed=2
W/Sensors ( 1930): Accelerometer closed
I/Sensors ( 1930): set AK daemon delay=60 fd=77
I/Compass ( 2869): Calibration is complete.
Original comment by mosclamer
on 4 Mar 2011 at 5:47
[deleted comment]
Mosci, using your update, I calibrated compass via GPS Status app. After GPS
fix, my heading according to compass, equals heading via GPS. So it is working.
Update: Heading means.. 90 degrees mismatch indeed. Was to quick with my
conclusion
Original comment by erikcas1972@gmail.com
on 4 Mar 2011 at 7:37
Where are the alignment constants stored in Linux? There must be a way of
telling the system which way the chip is aligned in the phone so that it works
correctly.
I am thinking that with the B7610 the Accelerometer is aligned 180 degrees
different to i8000 and the compass is +90 degrees different.
Original comment by vabb...@gmail.com
on 7 Mar 2011 at 8:53
maybe stored on filesystem, but maybe in compiled java, we dont have source for
that?
maybe patching the source is easier, but you have to understand the chip.
maybe debug kernel with uncommented gprintk function in
http://o2droid.phj.hu/trac/browser/kern_oII/drivers/sensor/accel/kxsd9_2042.h
can give some more info in dmesg what acc values need to be corrected. After
this, patch is walk in the park?
Original comment by elbee1...@gmail.com
on 7 Mar 2011 at 10:55
for updating the compatibility section on
http://code.google.com/p/omnia2droid/wiki/Features
(working sensors on i8000: orientation/accelometer, magnetic/compass, light,
temperature)
- what sensors work (out off the box) for B7610?
- what sensors have what kind of "bug" (eg screen upside down after -90 turn)?
- what sensors work after calibration, and how to do this calibration?
Original comment by elbee1...@gmail.com
on 9 Mar 2011 at 11:53
Original comment by elbee1...@gmail.com
on 9 Mar 2011 at 11:56
@vabbot: how alignment constants are stored in Android can maybe be found by
making a filesystem copy of android before and after calibration.
@mosclaimer: is there an easy way to compare two filesets with
directories/files on unix? maybe a script which makes a hash (md5 or sha) of
all files and compare those outputs? maybe it can be done on live android/linux
with adb shell (saves coping, but maybe hash program has to be compiled for
s3c6410 first)?
Original comment by elbee1...@gmail.com
on 9 Mar 2011 at 12:12
Elbee
B7610
Light sensor works out of the box. Accelerometer chip is aligned 180deg
different in the phone, so on 'GPS status' APP, tipping phone UP shows as DOWN
and LEFT shows as RIGHT etc.
Compass Chip appears to be aligned -90deg different. After calibration,
pointing the phone SOUTH, EAST is reported.
Original comment by vabb...@gmail.com
on 9 Mar 2011 at 12:14
@vic: thx, what about 3rd question, can the two problems be fixed by
calibrating apps, how to do this, and is calibration reboot persistent?
and even if we find where/how calibration info is stored, is it usefull to use
this as alternative for using calibration app once (people have diff
locations/magnetic readings)?
Original comment by elbee1...@gmail.com
on 9 Mar 2011 at 12:41
Elbee I don't know for linux but in windhoze winmerge can be used for
comparison. Will compare two given filesystems tonight when I'm home. If
somebody not already did in the meantime.
Original comment by erikcas1972@gmail.com
on 9 Mar 2011 at 4:54
I dont think calibration can make this sort of correction. This is something
that is set at design build of a piece of hardware. A Chip on a circuit board
can usually be aligned in one of four ways, plus upside down. this is usually
set by the CAD software which sets the optimum layout for ease of manufacture.
The Accelerometer does not appear to need calibrating as its stable,dependent
only on gravity.
I think this has something to do with the sensors 'absolute parameters' This
Article https://github.com/alankila/Junk/tree/master/akmd/ implies that
'libsensors' has a lot to do with it.
Original comment by vabb...@gmail.com
on 9 Mar 2011 at 4:57
Attachments:
you could be right :) so you think it will not worth spending energy ?
Original comment by erikcas1972@gmail.com
on 9 Mar 2011 at 5:14
No far from it ;) there must be parameters somewhere which will adjust the
sensors to fit! but where ?? Linux kernel or Android system?
Original comment by vabb...@gmail.com
on 9 Mar 2011 at 5:23
made a i8000 kernel (+mods) with some extra sensor kernelmessages for
debugging. Who would like to test it on a B7610 and give back some readings?
Attached a zImage and an o2db2update.tgz file with modules. Dont know if the
modules are needed to escape magic errors, but i used them. This image/module
set does not have the mosci patches, so you may want to use his latest update
to recover.
The extra kernel messages form the accelrometer and compas can be read with
"adb shell dmesg" or "adb shell dmesg -c" last one clears buffer after
printing, so you can see the delta.
I did these tests with accelerometer (tilted in home screen)
Normal (cube under and front)
[ 727.034961] kxsd9_workqueue_func(269): Read value [x=2047, y=2847, z=1984]
[ 727.035003] kxsd9_workqueue_func(270): Read value [ax=11, ay=-255, az=32]
-90 deg (cube right and front)
[ 730.036061] kxsd9_workqueue_func(269): Read value [x=1223, y=2040, z=2063]
[ 730.036219] kxsd9_workqueue_func(270): Read value [ax=285, ay=13, az=5]
I am interested in the B7610 values so i can patch/test it.
Compass logging should be on too, but not tested it myself, just use a compass
app and note the values for North/South/East/West.
Original comment by elbee1...@gmail.com
on 10 Mar 2011 at 8:12
Attachments:
PS: you can use OSMonitor from Android market if you dont like working with
adb,use dmesg as logtype in OSMonitor Option screen.
Original comment by elbee1...@gmail.com
on 10 Mar 2011 at 8:16
Will be home in an hour,will test and post results
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 3:32
Output dmesg:
Phone right up in front of mee, facing screen (menu and power under)
[ 278.896140] kxsd9_workqueue_func(269): Read value [x=2083, y=1200, z=1953]
[ 278.896303] kxsd9_workqueue_func(270): Read value [ax=-1, ay=293, az=42]
+ ~90 (landscape, clockwise) (menu and power button left)
[ 349.411131] kxsd9_workqueue_func(269): Read value [x=1311, y=2012, z=1760]
[ 349.411295] kxsd9_workqueue_func(270): Read value [ax=256, ay=22, az=106]
+ ~180(phone upside down) (menu and power button up)
[ 385.916176] kxsd9_workqueue_func(269): Read value [x=2111, y=2814, z=1888]
[ 385.916340] kxsd9_workqueue_func(270): Read value [ax=-10, ay=-244, az=64]
+ ~270 (landscape upside down, clockwise) (menu and power button right)
[ 416.421186] kxsd9_workqueue_func(269): Read value [x=2895, y=1959, z=1927]
[ 416.421348] kxsd9_workqueue_func(270): Read value [ax=-271, ay=40, az=51]
~360/0 (clockwise, to right up again)
[ 450.431151] kxsd9_workqueue_func(269): Read value [x=2048, y=1200, z=1891]
[ 450.431314] kxsd9_workqueue_func(270): Read value [ax=10, ay=293, az=63]
Please note, as described is how I hold phone, not what I'm seeing on screen.
Behaviour of screen is (offcourse) how we see it all on B7610.
degrees are not exact, I'm holding the phone near the degrees I put here.
Not able to calibrate a compass, my b7610 is freezing when I use buttons / keys.
I think I need patchfiles for that (if they work for 7610 together with mosci's
patchfiles) so I can compile zImage and module-update, then maybe device won't
freeze when touching buttons / keys
grtz Erik
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 6:36
thx, looks promissing ... i think i can patch it ...
i'll make a compass diff so you or mosci can make a b7610 patched version to
test the compas. i can make a patched version also, but takes some more time.
maybe i make a version with some wifi logging too (dont get your hopes up ...
long way to go ...)
you rotated the phone in one plain only, can you collect some logging of
"rolling" the phone in landscape and portrait?
Original comment by elbee1...@gmail.com
on 10 Mar 2011 at 7:10
testing compass now.. dont have to calibrate. but there is some more dmesg
output, and I'm not sure if it is correct. I suspect some interfence of my
laptops magnetic field.
and I have to test one by one because of freezing.
for accelerometer, I will also test with surface horizontal, screen up and down
:)
grtz Erik
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 7:17
Compass --> 4 directions, complete adb shell -c dmesg ouput
much output :)
see file attached.
Now watch some Ajax, during break of game I will collect and post accelero,
with phone lying on table
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 7:51
Attachments:
Elbee, here some more outputs in attached file, if you need more, or you don't
understand the device positions which I'm describing, please let me know (for
positions maybe mail me @ cas at cas - online, so I can describe in dutch)
grtz Erik
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 8:39
Attachments:
[deleted comment]
accelerometer seems to be inverted for x and y values (not z values).
possible fix for b7610 flip while landscape: remove "-" sign at lines 258 and
259 in
http://o2droid.phj.hu/trac/browser/kern_oII/drivers/sensor/accel/kxsd9_2042.c
(not tested yet)
Original comment by elbee1...@gmail.com
on 10 Mar 2011 at 10:35
[deleted comment]
Elbee, lets give it a shot. Back to ubuntu, b)ack here in some minutes :
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 10:49
Briljant Elbee!! It is working!! The screen is rotating right now. I will PM
the file to Mosci @ his Modaco account, so he can, as project member, check and
provide update!
Thanx!
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 11:06
compass kernel log messages comparisson is not so clear :-(
but from code solution could be found in lines 622 to 627 of
http://o2droid.phj.hu/trac/browser/kern_oII/drivers/sensor/compass/ak8973b.c
fastest way is some trail-and-error.
* switch the signs at lines 625 and 626 (3 combinations)
* don't switch x and y and switch the signs (4 combinations)
so get compiling ;-)
Original comment by elbee1...@gmail.com
on 10 Mar 2011 at 11:23
[deleted comment]
And why not post corrected kxsd9_2042.c file here :)
pff was planning to go to sleep. oke here I go again :)
Original comment by erikcas1972@gmail.com
on 10 Mar 2011 at 11:27
Attachments:
[deleted comment]
will look into this again tomorrow moring. I can't detect any changes whatever
I do
Original comment by erikcas1972@gmail.com
on 11 Mar 2011 at 1:55
[deleted comment]
send a mail with some examples
Original comment by elbee1...@gmail.com
on 11 Mar 2011 at 7:35
I've compiled kernel with attached file. Mosci's update is also applied to this
file.
Should be placed in kern_oII/drivers/sensor/compass/
Compass is working right when holding vertical on my phone.
Elbee, can it be tested?
Original comment by erikcas1972@gmail.com
on 11 Mar 2011 at 2:42
Attachments:
Vic reported the compass has a problem. East and West are ok but South and
North are transposed. i.e the compass needle rotates in the wrong direction
when the phone is turned.
so maybe only negating x and y values and leaving the x=y switch like i8000 in
compass source?
Original comment by elbee1...@gmail.com
on 12 Mar 2011 at 6:49
Original issue reported on code.google.com by
nencio...@alice.it
on 20 Jan 2011 at 8:05