Ultimate IMU Video Tutorial


The Ultimate IMU is one of our most popular products - it combines an ITG-3200 gyro, ADXL345 accelerometer, and an HMC-5843 magnetometer in a single package. It also has a GPS header, MicroSD socket, and an XBee header. Control is provided through an LPC2148 processor with plenty of extra memory for custom code development. It's a great platform for a number of applications.

We get quite a few questions about how to use the Ultimate IMU (and how to integrate it with XBee), so in SparkFun fashion, we've created a beginner video tutorial to help you along the way. Check it out:

We hope this video helps you get started with the quite useful Ultimate IMU. If you have additional questions you can (as always) contact tech support or leave a question in the comments here or on the IMU page - we'll do our best to get you going! Cheers!


Comments 12 comments

  • Wish list for all parts in video:
    http://sprkfn.com/w21932
    Good video too!

  • Great video and I look forward to seeing more in the future. Can I suggest using something like CamStudio Capture (free) to record video for computer screen capture?

  • Wow, love the static protection!

  • I’ve been working with the Ultimate IMU for a little over a month now, and I do have a couple of burning questions…
    Firstly, since there are no axes silkscreened onto the board, can you please confirm the alignment of the sensor axes? See my question on the forum for more details: http://forum.sparkfun.com/viewtopic.php?f=11&t=28833&sid=a23c7903866da973be3254c94b31baca.
    Secondly. I’ve been picking through Ryan Owen’s DCM code on Git for a quadrocopter controller. In it he defines the following:
    // Correct directions x,y,z - gyros, accels, magnetormeter
    SENSOR_SIGN[9] = {-1,1,-1,1,1,1,-1,-1,-1};
    Can you please confirm that this is correct for a right-hand coordinate system, with:
    - X being the PCB edge with SDA/SCL/GND/3.3v
    - Y being the PCB edge “Ulimate IMU"
    - Z being the vector orthogonal to X/Y from the MCU to XBEE
    Thirdly, some of us have noticed a problem with streaming multiple GPS sentences. If you enable GPGSA and GPRMC, the GPRMC string consistently loses characters at the beginning of the string. See here: http://forum.sparkfun.com/viewtopic.php?f=11&t=28893&sid=a23c7903866da973be3254c94b31baca
    Finally, I was wondering if Sparkfun might have any plans to improve firmware on the board itself? The UM6-LT (http://www.chrobotics.com/index.php?main_page=product_info&products_id=9) has GPL’d firmware that updates an EKF internally at 500Hz to provide attitude estimation. Hve you guys seen this?

    • can you please confirm the alignment of the sensor axes?
      The picture you’ve posted is correct.
      I’ve been picking through Ryan Owen’s DCM code on Git for a quadrocopter controller.
      Answer #1: It’s actually Jordi Munez’s DCM code, based on the algorithm developed by Bill Permalani which I only ported to the ARM.
      Answer #2: The coordinate system you describe is correct.
      If you enable GPGSA and GPRMC, the GPRMC string consistently loses characters at the beginning of the string.
      That’s odd, I’ll try to replicate it. Does the board exhibit this problem only with these 2 message types, or any message type?
      Finally, I was wondering if Sparkfun might have any plans to improve firmware on the board itself?
      Once the quadcopter is working I’ll likely migrate some of the new filtering over to the Ultimate IMU repository. But I likely won’t do too much more than that. I’d highly encourage you to fork the project and make any improvements you can think of!

      • I managed to fix the GPRMC string issue. The problem is that the maximum GPS sentence size is 82 bytes, yet uart1ISR.{c,h} defines the uart1Message character array too small. Thus, it overflows and loses the initial message characters. When used in conjunction with the NMEA C library (http://nmea.sourceforge.net) this works really really well! Note that you neet to modify time.c in the NMEA library to work with the RTC in stead of a _gettimeofday unix system call.

    • Hi Simmers,
      I have passed your questions along to the Engineer. He maybe able to help you more.
      Thanks,
      Tim

  • …was that a windows 98 desktop?

  • I found your parts in microcenter today! yay!
    this IMU Looks good.


This Week

This Month

Heartbleed

Happy Arduino Day!