Posted by: Claudio Carbone | 9 March 2012

How I loathe the marketing guys

Invensense Press Releases

Invensense Press Releases

Look at the timeline reported above. 20 April 2011 : 9dof sensor fusion presented. 13 September 2011 beginning of high volume production. 27 February 2012 availability of version 5 of the MotionApps software.

Now in reality nothing is true.

They presented a familiy of devices that, with the help of some onboard processing, would have provided sensor fusion.

A little bit of history is required here.

Invensense is a designer and producer of MEMS devices. MEMS devices are all the rage these days because they provide the kind of informations that required sensors as big as a car in the old days in teny-tiny chip packages!
Everyone has heard his smartphone has accelerometer and compass inside: the accelerometer helps detecting the orientation and allowing automatic rotation of the screen, the compass is self-explanatory. Well these devices used to be as big as old laptops!
Now they are about 3×3 mm!

So invensense has been selling gyroscopes and accelerometers for years and you can find its products most everywhere (have a look at Sparkfun ). What’s the fuss? The fuss is that, as with anything, what you do with the information is the key to power.
Accs and Gyros alone don’t give you very much: they are quite noisy, and most of the task we use them for don’t need the kind of information they provide. For example the rotation of the screen of the phone is measured in degrees with respect to the vertical going to the center of the earth. The gyroscope gives measures of the speed of rotation around its axis, while the accelerometer gives measures of accelerations. And we need an orientation. An orientation may be obtained as the sum against time of speeds of rotation: if you know you’re turning 10°/s, after 9s you’ve rotated 90°. It looks simple, doesn’t it?
Well it isn’t!

I’m not delving into this, look for some paper about IMUs or Attitude estimation, suffice it to say you have to do some heavy processing on the raw data to obtain useful information.

Since this is heavy processing (often involving filtering data and matrix products) it is resource intensive, and it has historically been bread&butter with the DSP world.
Now having a single chip that does the work of: gyro, accelerometer AND dsp… WONDERFULL!!!
Anybody could go, buy it, solder it and BAM! Motion processing on the cheap!

Well that was the promise of Invensense.

Now the true facts.

Theirchips available so far are: the MPU6000 and MPU6050. On paper the only difference is that the 6050 is I2C and the 6000 is SPI. You’d go SPI anytime as it is much faster. Wait until you read that the software platform from Invensense doesn’t support the 6000!
Don’t know what the difference is: it’s just a bus, but they don’t support it!

Next what you’ve been reading on all the press releases is that they support 9DOF fusion.
If you ever get far in reading docs, you’ll never find any hint at how exactly this is done.
Then you may buy an eval board, and find there is an external compass (an AK8975).
Then you may try downloading some code from the Developers Corner… good luck with that!

The code itself is a mistery: there are two zips, one is for the TI430 MotionFit wireless sdk (based on the new 9150) and has the library PRECOMPILED. So no joy. The other is for the AVR UC3 and has lots and lots of source (and this already gives hints on how transparent they are). Now if you try to compile this code, you’ll notice a few files missing:

  • AK8975.h
  • compass_debug.h
  • compass_legacy.h

The first has been bugging the community for almost a year now. If you ask Invensense, they tell you to go ask AK. If you ask AK they tell you to go ask Invensense. So no compass headers. The other two I just found missing in the package, haven’t much to say about them.
Now all of this is Version 2. They just published a PR of Version 5! We don’t have nothing more than a cumbersome V2! Where are V3, V4 and V5?????
If you ask in their forum, they tell you it’s there in the Downloads section. Except that all you can find is those two zips I described.

Now onto real matters: thanks to people who got their hands dirty and literally sniffed the I2C traffic we have some data to work on, otherwise we would have none! Invensense refuses to explain how to use their chip. They tell you to go download the software, but there is almost no software! The two packages are for two extremely customized platforms, there is no general purpose library.

If you ask them how to do the fusion, they won’t answer.
If you ask them how to interface to the data processing core, they won’t answer.
If you ask about the new software versions, they won’t answer.

There is a reality wispered among the community: they never actually did it.
That’s why the released in rapid succession: MPU6000, MPU6050, MPU9150.
At this point the 6000 is useless, it’s not even supported by the community. The 6050 may be usefull, but they are not disclosing enough information and all relays on hackers. The 9150 is the 6150 with the AK inside and MAY BE ABLE to do what it promises.
At least people who got ahold of the demo board, say it really does the 9DOF fusion, albeit how did they test it is a mistery.

I leave you with a capture of a discussion from the Invensense forum. Sectionsbest appears to be a moderator (a forum without explicit moderator labeling?) or otherwise a man from Invensense.

Invensense Forum Capture

Invensense Forum Capture


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: