1. We know that the gyroscope can be measured in the same degree / s as the measurement range, and the measurement range is from ± 125 ° / s to 2000 ° / s, which can be detected from 125 ° to 2000 °I wonder.

2. I am curious about the sensing method of the humidity sensor.Includes circuit-related content

3. The unit of magnetism is called uT (Micro Tesla). I wonder which unit or which value is based on the user's understanding.

4. XDK exterior is plastic material, but I wonder what kind of plastic it is in detail..

As you mentioned, the range can be set to detect rotation speeds from +/- 125º/s to +/- 2000º/s. This also means that, if the range is set to +/- 125 º/s, the maximum speed you can detect is 125 º/s, but you will have fine-grained values between 0 and 125. On the other hand, if the range is set to +/- 2000 º/s, you will have the possibility to detect greater maximum speeds, but the values between 0 and 2000 are less fine-grained.

This means, if you do not expect high rotation speeds, but need to detect speed differences accurately, I would recommend a lower range. Whereas if you need to detect if the XDK rotates at a speed of 2000º/s, you will need the maximum range option.

Does this answer your question?

If you have a specific question, I can try to answer that, but in general, all the information regarding the environment sensor is available in the BME280 Datasheet.

It is correct that the Magnetometer API returns the sensor values in the unit µT, which is equivalent to µVs/m2. Does this answer your question? If not, could you please go into more detail?

I can request information regarding the details of the XDK's housing material, if this is neccessary for your use case.

Please tell me if this was helpful, and do not hesitate to ask further questions.

The unit of the sensor value of the gyroscope is indeed angular velocity and its physical representation is degree per second (or radian per second). The Gyroscope API allows for reading degree per second sensor values using Gyroscope_readXyzDegreeValue() .

The API does not offer functions to read the degrees. For this, you could measure the angular velocity at equidistant time intervals between the start and end of a rotation and integrate over those values.

Regarding the BME280 to measure the relative humidity, I have no concrete information on what principle is used in the BME280 to measure relative humidity.

I would recommend taking a look at this article here . It is likely that a capacitive approach is made because of its linearity in the range of 0 to 100% humidity and using acapacitive characteristics is a common principle in very small MEMS structures.

Regarding your questions about 1000µT, what exactly do you want to know? Could you please go into more detail?

Regarding the housing material, I will make a request for information. Please note that it may take a few days.

Please let me know if this answers your questions and feel free to ask if you have further questions.

On gyro: The gyroscope measures vector angular velocity corresponding to each axis. The sensor will not give You plain degrees, but the sensor libraries can use the signal and integrate it to give You orientation or degree

The humidity sensor is based on MEMS humidity sensing tecnology. There are two main transducer tecnologies (resistive and capacitive), however since the datasheet does not answer this, I suppose that Bosch Sensortec does not want to disclose the exact sensing method. But feel free to inform Yourself on the Internet about the fascinating MEME sensing tecnologies.

https://en.wikipedia.org/wiki/Orders_of_magnitude_(magnetic_field) can give You some insights about magnetic field strenghts. 1T is a very strong neodymium magnet (supermagnet), 1mT is a refrigerator magnet which is easy to remove, 100uT is dangerous for pacemakers and 30-50uT is a typical value range for earths magnetic field.

I used the Gyroscope_readXyzDegreeValue () function. However, the value is strange.The XDK is left alone, but the values change dramatically in this way: 400, -1400, 1300.Is there a way to solve this problem?

I assume you are referring to the gyroscope BMG160 integrated with the XDK.

You can control the output noise the BMG160 is producing while being untouched by setting the bandwidth parameter with the function Gyroscope_setBandwidth() to filter the sensor values produced by the BMG160. A bandwidth of 64 or 116 Hz should be sufficient to do that.

Please note that initializing the BMG160 without setting a bandwidth will automatically set the unfiltered bandwidth option of 523 Hz.

Please let me know if this was helpful and feel free to ask if you have further questions.

As already mentioned, measurement of the covered angle distance is only possible by integrating the angular velocity sensor values from the gyroscope. In that regard, I cannot simply answer the question why a 90 degree rotation is not measured accordingly without seeing your application code. For a detailed explanation, I would need to see how you implemented the equation to calculate the covered angle distance from the angular velocity of the gyroscope.

The default values for the BMG160 for sensor range and bandwidth are +-2000 degrees per second and an unfiltered bandwidth of 523 Hz.

The default values are not always the same for all sensors on the XDK. The gyroscope element of the BMI160, for example, has the same default sensor range as the BMG160, but a default bandwidth of 39.9 Hz.

These values can be obtained by using the functions Gyroscope_getBandwidth() and Gyroscope_getRange() . For all other sensors, similar functions are available to obtain the default settings for them.

Please let me know if this was helpful and feel free to ask if you have further questions.

Afterwards, I read out the unsigned integer value and cross-checked it with the defined enumerations in the interface BCDS_Gyroscope.h .

I received the value 10 and this is equal to GYROSCOPE_BMI160_BANDWIDTH_39_9HZ .

Please note that you can easly set any other bandwidth after the initialization with the function call Gyroscope_setBandwidth() . As such, you do not need to rely on the default value for the bandwidth for the BMI160.

Regarding your second question about the range of the gyroscope. Unfortunately, I was not able to reproduce this behavior. Could you post here an additional codesnippet how you read the sensor range from the gyroscope including the respective function calls?

Furthermore, if an sensor value exceeds your set range parameter, then the maximum value is applied. For example, if you set an acceleration range of +-2g and measure an acceleration of 4g, 2g will be read out by the accelerometer.

Please let me know if that was helpful and feel free to ask if you have further questions.