Hi there, if you are still having troubles using the MPU6050, I just commited support for generic MPU6050 breakout boards into my FreeIMU library, which, a part from giving you access to raw readings, provides you also access to calibration routines and sensor fusion.
Mmm.. sorry but I'm not impressed. On the poor 16 MHz 8-bit Arduino, I'm able to run the FreeIMU library up to about 400Hz.. including calibration stuff for acc, magn and gyro.. what's the point of having "8 cores MPU" if you algorithm goes up to 200Hz ?!?!?!
A couple of precisations: any IMU may be subject of drifting, depending on the specific sensor bias of that specific IMU.. Assuming that no design flaws are present (eg: wrong power rails to the sensors, noisy voltage regulator, current carrying tracks near sensors, etc..) and that the IMU production has been done properly (eg: sensors stored without moisture, correct reflow oven soldering setup, etc.), IMU with similar sensors should perform pretty the same. So, assuming the above is true, an ArduIMU, since uses the same sensors of the FreeIMU, should perform the same.
With sensors heavily affected by biases, calibration becomes foundamental. Receintly I released calibration code for the FreeIMU (altough adaptable to other IMUs since open source) and this is the performance of a calibrated FreeIMU: https://www.youtube.com/watch?v=eho9MswafJI
I2C is open-drain meaning that devices will never drive the high but only low. This means that, if your I2C bus is pulled to 3.3V and your master only bring the I2C channels low and you don't have any internal pullups to 5V, you will be perfectly fine.
My FreeIMU v0.3.5_BMP has been cloned by China. If you didn't bought it from viacopter.eu or flyduino.net, then you have a cloned board and I can't assure the quality of that board nor that it will work as intended.
No, I have not seen a pure SPI IMU yet. I actually never saw a recent magnetometer sensor using SPI. Your best choice would be having an IMU with the MPU6000 connected to an I2C magnetometer via its AUX_I2C bus. This way the MPU6000 would handle the I2C communication with the magnetometer and you would only communicate to the MPU6000 via SPI. Unfortunately, I don't know of any IMU doing so. I do have some designs for something like that which I may share with you, contact me if interested.
Probably, your best bet for what it's available right now, is to just use an Arduino to read via I2C the IMU and read from the Arduino operating also as SPI slave.
Anyway, what kind of micro are you working with which doesn't have I2C but 4 SPI busses? Looks strange to me.
Well, if you followed the connection diagrams for the Arduino UNO available on bildr, then it won't work..
The leonardo has the I2C bus on different pins compared to the UNO.. You will just have to use the SDA and SCL pins which are available on the leonardo (near D13) and not the A4 and A5 like in the UNO.
With FreeIMU 0.4.3 using the FreeIMU library streaming over serial I get something about 330 Hz of quaternion output (complete orientation, result of sensor fusion). Faster speeds are achievable without streaming over serial.
On the MultiWii quadcopter firmware, with FreeIMU v0.4.3 you will get a loop time of 3200 to 3600 micro seconds in a complete control loop. The difference in time lies in those loops when the firmware needs to read the magnetometer or baromether since those have much slower sampling rate than the gyro/acc thus can be read less often.
FreeIMU is actually a 10DOF board as it also comes with the MS5611 high resolution baromether. This allows to not only track rotations (yaw, pitch and roll) but also to track altitude. When the pressure readings gets fused with the dynimic acceleration readings coming from the MPU6050, the altitude can be tracked with about 10 cm of precision and almost immediate response to motion.
FreeIMU can be used on any Arduino out of the box with the FreeIMU library which has code to easily read from the various sensors and perform sensor fusion into quaternions, euler angles and yaw, pitch and roll notations.
FreeIMU is affected by drifting only when sensor fusion is performed without the magnetometer (as in the DMP testing video you saw) since gyroscopes are affected by drifting .. when sensors are properly calibrated and the sensor fusion happens using gyro, accelerometer and magnetometer there is no drifting.
FreeIMU is assembled in Italy. Each board is tested personally by myself. FreeIMU is completely Open Hardware (CC-BY-SA license) and designed with KiCAD (no prioprietary software used) and on the project page you find all the information on how to build one by yourself.
Let me know if you have further questions, I'll be happy to reply.
Ci sono poi altri service, ma io per ora ho provato solo questi due e mi sento di consigliarveli. Non sono a conoscenza di servizi analoghi Made in Italy. Se avete accesso ad una laser cutter potete anche cercare il materiale di partenza e tagliarveli da soli.. noi al Fablab Torino ci proveremo prossimamente.
A mio parere e' impossibile fare un QFN con pasta saldante in siringa senza avere uno stencil. e' il procedimento corretto.
Altrimenti puoi mettere la pasta con la siringa a mano sui passivi (se grossi abbastanza, no 0402) e su i componenti con pin esposti se abbastanza grossi, saldare in forno e poi i QFN li devi fare con la pistola ad aria calda...