Hi ,

 

Atmel has recently released the new (blue) Xmega A1 Xplained board (29 USD) and plug on sensors ATAVRSBIN1 (Inertial One, 54 USD) and  ATAVRSBPR1 (Pressure One, 24 USD). A few days ago ATAVRSBIN2 (Inertial Two, 54 USD) expanded the line of sensors. While Inertial One is based on the 9DOF combo: ITG-3200 gyros (Invensense), BMA150 accelerometers (Bosch), and AK8975 magnetometers (Asahi Kasai), Inertial Two utilizes the IMU-3200 gyros (Invensense) reading the KXTF9 accels (Kionix) on board and streaming 6DOF raw information to the Xmega. The additional 3DOF from the HMC5883L magnetometers (Honeywell) are read by independant I2C access. Pressure One is based on BMP085 (Bosch).

I saw that the pricing is rather (!) competetive and so I could not resist to port Bill's DCM code to the combo XmegaA1 Xplained, Inertial One and Pressure One. Please find the HEX file attached. Plug Inertial One onto the left side connectors and Pressure One onto the right side of the Xplained (USB is facing upwards), Atmel logo's should be readable. Download AVR1927 and follow instructions: Have FLIP 3.4.2 installed as the minimum. You may use Batchisp (as recommended in AVR1927) but I prefer FLIP due to it's ease of use.  You just need a USB cable - no programmer - as the Xmega A1 Xplained comes with a FLIP-compatible bootloader.  FLIP the HEX attached and you have a Xmega based AHRS for just a little more than 100 USD and lots of spare power.

The core DCM makes 800Hz+ without sensor reading, just to give you an idea that an Xmega, while still 8/16 bit, is not a bad choice. Combining the ADC with DMA makes it at 400Hz+ when using ANALOG gyros and accelerometers. Using the I2C components on board of Inertial One and Two the maximum speed is 250 Hz - this is the price one has to pay for low  noise and digital sensors. But I think that 250 Hz Eulers is OK for many autopilot applications including multicopters.

After starting the combo, LED1 flashes rapidly to indicate measuring the magnitude of gravity in accel-units. Right after data streaming starts (default 115200 8N1). The terminal program should understand standard TTY control codes. In the first 30 seconds the data show larger variations (phase I) reflecting an alternative to "analog offsetting" previously discussed on this forum. The outstream shows Euler angles x, y, z, altitude above sea level, gyro temperature, and looptime. After omega_I filling the combo switches to phase II automatically - phase II has smaller Kp's and Ki's than phase I - the data are smoother here.

If you press  SW7 on the A1 Xplained board, you enter a main menu. From here you can change baudrates, looptimes, type of outstream,do  magnetometer calibration, read I2C sensor registers, and store your setting in EEPROM.

Have fun,

Natalius

 

PS: The souce's location will be communicated a bit later.

 

 

 

KixCigPack.hex

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

This reply was deleted.

Activity