Orientation values do not match real angles



I have strange values for the orientation within Arduino API. It is supposed to be expressed in degrees but the values are between 0. and 4096. First I have tried to convert this range to the 0. / 360. range but obviously the values I got do not match the real angles: the figures are lower than the real angles and then jump to the maximum after a rotation of 180 degrees). So, I have tried to convert the data to the 0. / 180. range but the values provided are still smaller than the real angles.

By the way, I guess a similar issue exists within C API as the sensel external for Max returns strange values for this parameter too (negative values going below -500. and positive values going over +400.).

So, how can I get a trustable orientation?

Orientation values

Hello, when reading directly from the device, the orientation is reported as degrees times a scale factor (16 for the Morph). The angles are usually -90 to 90 degrees since fingertips are symmetrical, but we go above and below these values so we can continuously track rotation of the contact. I have verified that the orientation is being reported correctly in the C API.


Hi Alex,

Thank you for the precision.

I suggest to include this information in API Calls -> SenselContact section, which states only this:

    float orientation; // Angle in degrees

The multiplicator isn’t mentioned.

Best regards.