Quadcopter Project: minIMU-9 and CHR-UM6-LT Comparison

Hello All,
I am in a group of 4 people for a senior design project trying to build a quadcopter and stuck between two IMU devices for copter stabilization:
minIMU-9: pololu.com/catalog/product/1265
CHR-UM6-LT: pololu.com/catalog/product/1256

For starters, I was looking at pololu’s comparisons of the products, and even though each IMU has a triple axis accel, triple axis gyro, and triple axis manometer, the comparison states that only the CHR has pitch yaw and roll estimation. I am curious as to how both IMUs have the sensors required to estimate pitch yaw and roll, yet only one IMU is claimed to do so. I was wondering if someone could clear this up for me.

Also, 3/4 down the page on the minIMU-9, there is a very large schematic which “shows the additional components the carrier board incorporates to make the L3G4200D and LSM303 easier to use”. It is no ordinary schematic, as it looks like it contains frequency mixers, along with a large amount of resistors and caps. What worries me is if I need to build it in this fashion in order to make the IMU do what it needs to do. I would not know how to build a frequency mixer nor do I want to buy IC that will do it, the more outside hardware that is involved, harder it may to make it work correctly and figure out all the bugs.

Finally, we are unsure of the microcontroller we will be using. One possible control board is a 32bit 80MHz microcontroller: digilentinc.com/Data/Products/CH … x32_rm.pdf

I would like to make sure that both or at least one of the IMUs can use any control board as well as an Arduino, this way we have more options other than just an arduino. I am not sure of how much code we are required to write ourselves, so the use of pre-made libraries is questionable.

Thanks
David

Hello David,

The CHR board is an AHRS, which means that it includes a processor dedicated to computing the yaw, pitch, and roll. The MinIMU does not have that: it is basically just a convenient breakout board for the gyro and compass chips.

The MinIMU does not contain “frequency mixers”. The circled X that you might be referring to is just our symbol for a through-hole connection point. Also, the schematic shows the parts already on the MinIMU, not what you are supposed to buy!

You did not say what you need to do for helicopter stabilization, but any 32-bit 80 MHz processor is going to be far more powerful than an Arduino and capable of doing all of the computations involved in turning the MinIMU into an AHRS. However, implementing an AHRS is mathematically challenging, so if you are not willing to spend many hours debugging vector math, you should just get the CHR board.

When choosing a processor, you should make sure that it is electrically compatible with the MinIMU. In particular, it will need to be capable of doing I2C communication at a voltage between 2.6 and 5V.

Good luck with your project!
-Paul

David,

I’ve done quite a bit of poking around and research in the last few months on IMU’s etc. I’ll offer my perspective…

Right now the hot or cutting edge gyro/acc chip is the mpu-6000 or the mpu-6050. The reason is that these chips can communicate directly with a magnetometer and process the 9DOF to output euler, quaternions etc. Very cool. They have been hard to get and are so new we are only seeing a few products with them in the market. At this time the smaller shops are having a hard time getting API info on enabling certain functionality, but it should be coming soon. The good news is that a breakout with this chip can work in both passthrough mode where you can simply get gyro, acc and mag data and when the API data comes to turn the unit into an AHRS it’s just a small software change.

Take a look at this:

store.diydrones.com/ProductDetai … ArduIMU-30

and FreeIMU version 0.4:

varesano.net/projects/hardware/FreeIMU

Hello,

Just to be clear, we do provide software for turning the MinIMU into an AHRS on Arduino, so if you want to use Arduino, you can just get our code. But if you want to use a different processor or programming environment with the MinIMU, you will have to write your own code.

-Paul