Developer

Ardu-IMU-Pilot firmware ready for beta test!

I have completed ground testing on the new firmware I have written for ArduPilot to use ArduIMU in place of the thermopiles. It has been snowing here and I probably won't get to fly the code for a bit, but figured others might be interested in giving it a try at this point. This firmware will probably exist on a temporary basis, with the code getting incorporated into the regular ArduPilot firmware in the future. If there is sufficient interest in this approach I will consider working on a ArduPilot shield board that would add the pressure sensors to ArduIMU and package it all as a shield.

I will maintain the code for a while in a repository at http://code.google.com/p/ardu-imu-pilot/

If you try it out give me your feedback. It is similar to ArduPilot 2.4 but uses a different header file.

To interface ArduIMU to ArduPilot you connect the gps (ublox only) to ArduIMU, provide common power and ground to ArduPilot and ArduIMU, and connect the serial output pin of ArduIMU to the serial input pin of ArduPilot.
E-mail me when people leave their comments –

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

Join diydrones

Comments

  • Developer
    Yves,
    2.5.1 reads the IMU, does the new binary protocol to the ground station, and consolidates the PID loops. And perhaps adds better line holding algorithm using vector fields.
  • Hello, what is the diffrence between 2.5 and 2.5.1 infact?
    Thank you.
  • Developer
    And to reiterrate again... This project ("ArduIMUPilot) was just something I did to work out the integration between ArduPilot and ArduIMU. However, I am not supporting this any longer. I am working to incorporate this functionality into the regular ArduPilot code. This functionality should be there in version 2.5 or 2.5.1
  • @Michael: Thank you for the explicit explaination. My confusion was that I thought the IMU + daughterboards connected directly to the arduipilot via the analog ins. This was the missing part I don't have:
    http://store.diydrones.com/ProductDetails.asp?ProductCode=BR-ArduIM...

    I understand now how it all works together. Thanks again!
  • @Kyle - Familiarize yourself with this page http://www.diydrones.com/profiles/blogs/ardupilot-main-page
    It describes the ardupilot main board. Then look through this manual - http://docs.google.com/View?id=ddjmqgw3_43gm6gvggf it describes how to assemble the ardupilot main board to its add on shield.
    The ardupilot is available from sparkfun.com and the shield (sold also as a complete kit with cables and other goodies) is on this site's store. After you have assembled this, it will be time to connect your arduimu to this assembly. The ardupilot and arduimu communication over a serial link. The autopilot and arduimu code were made to work with each other, mostly for test purposes, by Doug.

    To answer you questions, now that you have a system concept. Analog 3 is the airspeed input leading to the microcontroller on the ardupilot main board. (From the shield...down to the main board) The arduimu uses 6 analog inputs to measure sensors it has connected to its own microcontroller as you have observed.

    Thus the system ArduIMU Pilot is a two Atmega328 microcontoller system...ardupilot and arduimu working together.

    Note: Read the details of the software and upcoming releases that will make this more optimally.
  • I'm sorry, I'm still confused I guess. Are you saying they are mutually exclusive? Like you can't use the shield with the ArduIMU?
  • Developer
    Hello Kyle,

    This project involved firmware for both ArduIMU and ArduPilot (with the shield). The pressure sensor is used by ArduPilot for airspeed, which is used in the elevator and throttle control.
  • I'm slightly confused about the pressure sensor and how it mixes in with this. It was mentioned that you need the shield for the pressure sensor, but that takes up analog 3. I'm using the V1 arduIMU and it takes up Analog 1-6 (including 3!). How does that work? And I don't see it mentioned in the software.
  • Ok ok, I understand. It is for that maybe that it not worked perfectly also. In this case don't use this code, and thank for the other information about HappyK for his emulator that support binary code now.
  • Developer
    Nice connection diagrams!
This reply was deleted.