3D Robotics

Using ArduPilot 2.x in the field

Instructions for using ArduPilot 2.x in the field:

ArduPilot 2.1 and above (with Z sensor). This version of the software auto-calibrates the IR sensors. The only thing you need to do at the field is to record the "home" GPS position in EEPROM memory, which will not be erased when you reset or power down the board. To do so, follow these instructions:
  1. Ensure that the autopilot is in manual mode (channel five toggle off) and GPS is connected
  2. Place a jumper cap on pins D6 and D7 (you can also connect a regular RC power switch to those pins if you want to control the autopilot from outside of the aircraft). Ensure that your aileron and elevator sticks are in the center position, and power on the board.
  3. The yellow status LED will blink for a few seconds as the autopilot programs the GPS for binary mode. Then the blue lock GPS will blink rapidly, which means the autopilot is waiting for GPS lock. You can now remove the jumper (or return the switch to the normal position)
  4. When the autopilot has established a GPS lock it will move the rudder. Note that ArduPilot puts the EM406 into binary mode, which disables the red LED on that module, so it will not blink.
  5. You’re now ready to fly! Press the reset button on the ArduPilot board to restart it (your calibration settings are saved in permanent memory and will not be erased).
  6. ArduPilot 2.0 supports two autonomous modes: waypoint and return-to-launch (RTL). If you have a three-position toggle switch or a proportional dial on your RC transmitter, the middle position is Waypoint Mode and the up (or full clockwise) position is RTL Mode. These can be changed in the software if desired. The Mode LED on the ArduPilot board will light up with it is in Waypoint Mode.
  7. To use fly-by-wire mode (just stabilization, like the FMA Co-Pilot), simply disconnect the GPS. ArduPilot also automatically switches into stabilazation mode if it ever loses GPS lock.
ArduPilot 2.0 (no Z sensor): This version requires that the IR sensor be calibrated in the field, on arriving and if the weather conditions change significantly:
  1. Ensure that the autopilot is in manual mode (channel five toggle off) and GPS is connected
  2. Place a jumper cap on pins D6 and D7 (you can also connect a regular RC power switch to those pins if you want to control the autopilot from outside of the aircraft). Ensure that your aileron and elevator sticks are in the center position, and power on the board.
  3. The yellow status LED will blink for a few seconds as the autopilot programs the GPS for binary mode. Then the blue lock GPS will blink rapidly, which means the autopilot is waiting for GPS lock. You can now remove the jumper (or return the switch to the normal position)
  4. When the autopilot has established a GPS lock it will move the rudder. Note that ArduPilot puts the EM406 into binary mode, which disables the red LED on that module, so it will not blink.
  5. Holding the aircraft without obscuring the thermopile sensor, point the nose at the ground. Switch the autopilot on with your RC toggle switch. The elevator will move, signaling that the sensor has been calibrated.
  6. You’re now ready to fly! Switch the aircraft back into manual mode for launch, and press the reset button on the ArduPilot board to restart it (your calibration settings are saved in permanent memory and will not be erased).
  7. ArduPilot 2.0 supports two autonomous modes: waypoint and return-to-launch (RTL). If you have a three-position toggle switch or a proportional dial on your RC transmitter, the middle position is Waypoint Mode and the up (or full clockwise) position is RTL Mode. These can be changed in the software if desired. The Mode LED on the ArduPilot board will light up with it is in Waypoint Mode.
  8. To use fly-by-wire mode (just stabilization, like the FMA Co-Pilot), simply disconnect the GPS. ArduPilot also automatically switches into stabilazation mode if it ever loses GPS lock.
E-mail me when people leave their comments –

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

Join diydrones

Comments

  • Just to make sure I understand it correctly...

    Set up: ArduPilot version 2.1 and above with FMA XYZ, ArduShield (with the speed sensor), but NO GPS connected, will still provide "flight stabilization" by controlling the rudder, alerions, and throttle via speed input?
  • I just loaded code 2.0 and try the field setup again. After a few seconds the blue light started to blink rapidly.
    Soon I will do the field check.... on the field ... now I did it at home.
    After that, I will load the 2.1.1 version again. I think the 2.1.1 code can't program my GPS mudule.

    Would this be the solution of the problem that I had ?

    Robert
  • @ Chris,
    ASP 310 thh 0 rll -60 pch -60
    when I put my hand over the FMA sensor
    I see the change ASP 350

    Seems to be right, or .....

    Robert
  • 3D Robotics
    Sounds like the code isn't loaded right. What are you seeing if you leave the FTDI connected and look at the Arduino serial window? (make sure to select 57k baud and right serial port).
  • Problems with the field setup step number 2

    Code 2.1.1
    all servo are connected
    jumper on D6-D7


    "The yellow status LED will blink for a few seconds as the autopilot programs the GPS for binary mode. Then the blue lock GPS will blink rapidly, which means the autopilot is waiting for GPS lock. You can now remove the jumper (or return the switch to the normal position) "



    Stat LED = off and stays off (this should be blinking)
    GPS LED = on and blinking after a few seconds (this should be off)

    What can be the problem ?

    Thanks,

    Robert
  • I took the predator to the field today for the initial test which wasn't too successful.

    Here are my observations, maybe someone can provide some guidance for me.

    GPS
    Firstly, after each code upload, I had the blue light immediately, so I gather that the EPROM is not totally erased and that I don't need to jumper the pins for every restart.

    Cable
    I then changed the code to reflect the cable at the front like so:
    #define REVERSE_X_SENSOR 0 //1 = cable behind, 0 = cable front

    Pitch and Roll orientation
    I pitched the aircraft up and down and noted that the elevator was compensating the wrong way so I changed the following line of code as follows:
    #define REVERSE_PITCH 1 //To reverse servo pitch
    I rolled the plane and saw the corrections were of the correct orientation so I left the code as follows:
    #define REVERSE_ROLL 0 //To reverse servo roll
    I note that when I I pitched or rolled the plane the pitch and roll servos took a long long time to move to the correct position. I expected them to move in real time.

    Roll trim
    The plane has a whole heap of right trim programmed in on my radio for it to fly strait and level.
    When I flick my switch from Manual mode to RTL, the ailerons try and center themselves by jumping back to servo center. I tried adjusting the following line of code which had NO effect.
    char roll_trim= -4; //You know like the transmitter trims
    Is this the code to edit the neutral roll trim of the aircraft?
    If so, what are the +-ranges I can try. It had no effect even though I tried -40 to +40
    Whilst ground testing this, I expected to be able to flick the switch to RTL and see no deviation if I had found the correct values.

    The elevator needs the same attention and editing of the following line of code had no effect, so as with the roll trim, I left it at default:
    char pitch_trim= 10; //You know like the transmitter trims

    Launch
    I launched anyway and flew about 150 meters away and at about 50 meters height, When I flicked the switch to RTL, the plane immediately rolled left and the nose pitched suddenly down. I let it fly a while and the nose came up a bit, but it was still in a descent and the plane continued to want to orbit left.

    SO my questions are:
    1) How do I fix the neutral trim position?; and
    2) What lines of code should I be looking at next, considering the plane didn't even nearly do what I had expected?

    thanks

    Matt
  • 3D Robotics
    Matt,

    Yes, that's correct.

    I think RTL alt is set at 75m AGL. I can't remember whether uploading new code erases the EEPROM or not. If so, you do need to jump pin 6&7 every time you load new code to record the home position again. It's easy to test it and find out--please tell us which it is.
  • 3D Robotics
    Rasit,

    You can see the data ArduPilot is sending back by looking at the serial monitor in the Arduino IDE. Make sure the Ground Station isn't running, and select the correct serial port and 57k baud speed.

    No special setup is needed. The ground station only works with ArduPilot 2.1 and above. As I mentioned in your other post on the configuration utility (BTW, please don't crosspost your help requests!), we don't have time to diagnose your problem.

    I suggest you downgrade to 2.0.1 and work without the ground station and setup utility for now (the flight functionality is the same). We'll try to sort you with 2.2 in a few weeks.
  • @Chris,
    For testing the RTL on my first flights, should I just be observing the turn back to home?
    so would the process for initial fight testing of a new airframe be as follows at the field:
    - Check control throws in RTL mode whilst on ground then adjust reversing as needed.
    - Fly plane away from self, then enter RTL mode and watch how plane responds then land.
    - Tweak settings in code, then test RTL again.

    What altitude will RTL try and hit?
    Do I need to jump pin 6&7 every time after a new code upload?
  • Thanks for the help. The ground station deploys Google Earth and I can select an I/O port.

    However, still no communication with the ardupilot. I see that ardupilot sends back some data after a fix. Is there a special setup needed?

    As for the Ardupilot config, I can select a port and CPU. I get "Something is wrong!!!" message when I hit the write button. Read, also fails (it write's first).

    More help?...

    --Rasit
This reply was deleted.