ultrabook + sensorsAPI (ie 3d compass)

ultrabook + sensorsAPI (ie 3d compass)

Imagen de Clicktoy

Hello,

(I hope this is a good place to ask this kind of support question)

I've fully implemented an asynchronous sensors api testing app.  currently i'm trying to read the compass: aka

"SENSOR_DATA_TYPE_MAGNETIC_HEADING_COMPENSATED_MAGNETIC_NORTH_DEGREES"

and I find I'm getting erroneous data.  I orient the laptop in various cardinal directions.  I do not seem to get a reliable 360 degrees of bearing. mostly I get 60-180 (always positive, but I can get almost all 360 values if I twist it around quickly).  If I tilt the UB upright (keyboard perpendicular to the floor)  then for a moment, with the key's facing north, I get a correct bearing..however with a small amount of yawing back and forth, there is an obvious drift such that after a few seconds, north is now 5% to the west.  If I continue yaw'ing back and forth, the drift persists until 0 degrees (ergo the keyboard) is fully facing west.   I don't seem to ever get correct bearing results when the UB is sitting flat.

Is the UB compass truly this unreliable? Or perhaps the UB Intel sent me is faulty? Is there some kind of ongoing calibration I'm supposed to do?  I haven't found anything online or in intel/microsoft sensor API docs that cover this kind of drift error.  I would expect the compass to "just work"(tm).

Thank you for any info, suggested reading, or direction you offer. 

Regards,

Ken

publicaciones de 7 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.
Imagen de daflippers

Hi Ken,

Have you tried the Microsoft Windows 8 compass sample http://code.msdn.microsoft.com/windowsapps/Compass-Sensor-Sample-0ed09c55?

I have seen the Compass and other sensors stop updating for a short time and also the Compass not follow rotation on a PUBDR UB from Intel.

David 

Imagen de Clicktoy

Thank yout for your reply.

I took a look at that sample. I use VS2010 and am more of a low level C++ coder. I don't know how to do any of that kind of "managed" windows programming.  That code is all xaml and uses vs 2012 express. Makes me tired when after 20 years of coding I feel like I don't know what I'm doing.

I'm using all the COM interfaces.  (ISensorManager, ISensorCollection, ISensorManagerEvents, etc)

I am getting values from the compass but they're just crazy. 

If i face the UB east, and start my app. I get a heading of 90.
If I face the UB south, start, I get 280?!
If I face the UB west, start, I get 170 ?!
If I face the UB north, start, I get 148 ?!

makes no sense at all.

if I quickly swing it from east by 90 degress (towards south), the heading lurches to 180 then clocks back down to 128 as I remain motionless. Almost like the compass is giving me a movement delta rather than the current heading. but then just returns a nonesensical heading thereafter.

My code seems correct otherwise as I can switch to the light sensor and get seemingly valid lumens values. the gyro also returns relatively meaningful G force shifts on all axises.  The GPS (as noted by other forum posts) is useless. I sat outside for 15 minutes waiting for a signal which never came. 

For now I'm focusing on getting the compass working.  I'm unsure if I'm coding something wrong or if the UB is faulty.

I am guessing I'd have to install 2012 express to build that sample..something I'm not keen on at the moment. Maybe in a month or so I'll renew my msdn at upgrade (shudder).

anyways.. not sure where to go from here.

Imagen de daflippers

I understand what you mean ;o)

David

Imagen de Adrian Stevens

The digital compass in my Ivy Bridge Ultrabook developer platform seems to be completely inconsistent with the compass but I do get reliable results with retail devices (Lenovo Tablet 2, etc).  So I wouldn't worry about strange results with the dev platform. 

http://www.themethodology.net http://www.vancouvermobile.net
Imagen de Harsh

Maybe your internal sensor needs a calibration or is affected by a field. In the first case, either calibrate ir or if you can't do that write a small 'reading converter' function that modifies read reading to desired reading (i.e. removes errors).

Harsh Prateek,CEO and Owner,Mamba International
Imagen de daflippers

Hi Harsh,

Unfortunately the UB reverence platforms had many issues and inconsistent compass readings were one of them.  This means your suggestions cannot be implemented.

David

Inicie sesión para dejar un comentario.