Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been using a gyroscope sensor for an Arduino project. It's all hooked up and working but I have no idea what the units of the data it's giving me are in. I try to spin the board in my hand at what should be roughly 90 deg/sec but I'm getting numbers from the gyro of 2000-5000 range. I've just tried scaling it down and calibrating the scale factor by visually rotating the board 90 deg/sec. I know there has to be a better way to do this. I've been over the data sheet many times and I'm still not getting it. It says the units are mdps/digit which I've never heard of before.

share|improve this question
Did you have a look at the product page? If not take a look at section 5.2 of this and section 3.2 of this document. Maybe you are interpreting the raw data in a wrong way. – PetPaulsen Aug 29 '12 at 7:51
Thanks! I hadn't seen the app notes before. I found what I needed in there. And it had a good section about how to filter the noise from the sensor. – JDD Aug 29 '12 at 10:45
up vote 2 down vote accepted

It says the range can be set to 250/500/2000 DPS, which I think is the maximum angular speed the device can measure (i.e 2000 DPS is the fastest setting)
DPS stands for Degrees Per Second, so 360 DPS means 60 RPM (revolutions per minute) or 1 revolution per second.

The mdps/digit stands for Milli Degrees Per Second, so (I think) for instance the value of 70 mdps/digit for the 2000 full scale range could be converted to degrees per second by dividing by 1 / 0.07 = 14.286. 1 revolution per second should therefore be 360 * 14.286 = 5413 Make sure you are reading the output registers correctly, the data is a 16-bit value in 2's complement (i.e the MSB is the sign bit, then 15 bits for the value)

Try the above and see how it goes.

share|improve this answer
I actually came up with 0.068 before by doing lots of trial and error measurements. I guess I wasn't too far off. – JDD Aug 30 '12 at 0:12
I just wanted to say THANK YOU! The documentation was driving we mad, and I am currently hitting myself in the head for not considering the "Sensitivity" values in the documentation. – kigurai Feb 14 '13 at 16:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.