Thanks for staying with me 😉 I'll try to explain what problem I'm experiencing. To start with, the problem exists when using both Euler angles and Quaternion output. I seem so suffer from 2 different orientation frames that result in different signs for pitch and roll and result in a different origin for yaw. I did lots of exeriments and can conclude that there are (only) 2 different orientation frames. Which frame the sensor decides to choose (at startup) is not clear and seems random. My use case is a followspot, mounted on a treepod (see picture of first post). Pan (yaw) and Tilt (pitch) are the 2 planes I'm interested in, but I observe roll as well. 1) orientation frame 1: I power my system (including BNO0555) and observe the signs of pitch and roll when I'm tilting and rolling my spot. Leaning backwards result in negative pitch angles. Leaning forward results in positive pitch angles. Rolling to the left results in negative roll angles, rolling to the right results in positive roll angles. The zero degrees of my yaw is in front of my spot 2) orientation frame 2: I power my system (including BNO0555) and again observe the signs of pitch and roll when I'm tilting and rolling my spot. Leaning backwards result in positive pitch angles. Leaning forward results in negative pitch angles. Rolling to the left results in positve roll angles, rolling to the right results in negative roll angles. The zero degrees of my yaw is behind my spot I have no control wich orientation frame the BNO055 is using, it seems random at startup.It does use abslote orientation since the range is OK and angles are comparable (they change in sign only). I have no clue why the BNO055 changes its reference frame at startup. I went through the datasheet forward and backward, but cannot find any clue. The sensor is calibrated, all offsets and radius are written to the proper registers at startup Calibration seems fine and reproducable. POST and BIST report no error at startup. I remap the axis at startup since my sensor is mounted in the 'P2' way on my PCB (writing 0x24 and 0x06 for _CONFIG and _SIGN) The last action seems to give me an important clue. I mentioned that the signs of the axis differ. That is exactly what I configure in the last step: the sign of the pitch and roll axis. I write this 0x06 value to the proper register and read it back for verification. Verification never fails. But.... writing something different then 0x00 to that register, results in unpredicted behaviour: the signs for pitch and roll seem random, resulting in either orientation frame 1 or 2. If I write 0x00 to this register (or leave the default 0x00 as is), then my orientation frame is always the same at startup and my problem is fixed. After many more experiments, I can conclude that writing anything else then 0x00 to the 'AXIS_MAP_SIGN_ADDRESS' (0x42) results in random signing of the pitch and roll axis and it changes the 0 degrees of the yaw plane (180 degrees opposite). Am I doing something wrong here? Is this some kind of known bug? Thanks! kind regards, Rob
... View more