Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years ago.
How to read/write configuration data in MTi-1
Hi,
I am able to read data from MTI-1 sensor using SPI. I am now trying to read and write the configuration data. As per the MTSSP protocol documentation I have sent TX: FA FF 30 00 D1 and waited for 100ms. But, I am receiving FA FF FF FF 03 00 47. As per the documentation 03 indicates that the sensor is in config state. I also have tried sending TX: FA FF D0 02 00 06 29, but receiving the same FA FF FF FF 03 00 47. I am not able to find any procedure / way if the sensor expects any particular way the data to be sent/receive.
I am using SPI on raspberry pi connecting MTI-1 sensor.
Appreciate your help.
Abhijit
1 Answer
7 years, 11 months ago.
you may have a look there :
https://developer.mbed.org/teams/Xsens/
Hello Francois,
Thank you for your reply.
I am using MTI1 series sensor only, not the evaluation board. When I am decoding the measurement data I get "Delta Q (dq) / XDI_DeltaQ /803y where y =0 , the measurement data message consist of "3F 7F FF 4A BB 4E 81 D8 B9 E7 DE C1 3B 5E 5C 0C" with the data_ID "80 30". As per the documentation is the delta quaternion data indicated by 8030. But when I check the mbed code I see the below code where there is no difference between case XDI_Quaternion and case XDI_DeltaQ. both results in the same output. I am not able to trace anywhere in the code where they indicate both are different. However as per the "FMT Low level communication Protocol documentation" both is different, FMT low level protocol document talks about mtssp protocol with some additional information. basically I am looking for deriving the quaternion values from the output of MTI1 sensor. Not sure whether I am referring the right set of documents.
# Mbed Code snippets referred from the above link provided
bool XbusMessage_getDataItem(void* item, enum XsDataIdentifier id, struct XbusMessage const* message)
{
uint8_t const* raw = getPointerToData(id, message->data, message->length);
if (raw)
{ switch (id)
{
case XDI_Quaternion:
case XDI_DeltaQ:
readFloats(item, raw, 4);
break;
default:
return false; }
return true;
}
else
{
return false;
} }
Appreciate your help. Abhijit
posted by 10 Jan 2017