Picture
New version of arduplane has been released!

The big news in this release is the addition of the new L1 navigation controller. The work on the L1 controller library was started by Brandon Jones, and his initial github pull request is a great please to look to understand the new code. As is so often the case with ArduPlane, the documentation still hasn't caught up with the code (though I hope it soon will!)


 
 
ArduPlane 2.61 is now released, which has a lot of small bug fixes from 2.60.

Changes since the 2.60 release include:

  • fixed wheeled takeoff to work with the APM_CONTROL controllers
  • support setting the plane into MANUAL or FBWA via MAVLink
  • added XTRK_USE_WIND parameter. When set to true (which is the default) the wind estimate from AHRS is used in the navigation code to help with navigation crosstrack
  • added support for using the airspeed estimate from wind + groundspeed when no airspeed sensor is installed to do surface speed scaling
  • added reporting of estimated airspeed over MAVLink if a real airspeed sensor is not available
  • fixed a bug with the throttle suppression code that prevents takeoff in auto when near home. The suppression code could get a false positive if a large gust of wind hit. We now no longer use airspeed for throttle suppression decisions
  • removed the reset_I() calls and instead auto-reset integrators in the PID library if the PID has not be used for 1 second
  • fixed a bug with DO_JUMP mission elements introduced in the last release
  • added ALT_CTRL_ALG option. When enabled, this allows you to select the non-airspeed altitude control code with airspeed enabled. This makes it possible to use airspeed for speed scaling and wind estimation, but use the non-airspeed control for throttle and pitch
  • improvements to the APM_OBC failsafe module
  • added new TELEM_DELAY option to delay telemetry on startup to prevent Xbee bricking
  • fix for HIL simulation in ATTITUDE mode
  • changed FBWA to obey both lower and upper pitch limits
  • added magnetometer accumulation in main loop. This gives us much better mag averaging, reducing compass noise a lot
  • added XTRK_MIN_DIST option, allowing a minimum waypoint distance for crosstrack navigation.
  • added support for the DO_SET_SERVO MAVLink command
  • added RUDDER_STEER option. When enabled, only rudder will be used for steering on takeoff and landing
  • fixed mount control code to allow multiple channels to be set to the same function. In particular this fixes having multiple manual output channels.
  • fixed throttle nudging to not depend on the RC3_TRIM value
  • added THROTTLE_NUDGE option for enabling/disabling throttle nuding
 
 
The main new features in this release are:
  • wind estimation
  • long term dead reckoning support
  • wheeled takeoff and landing support
  • optional new roll/pitch/yaw controllers from Jon Challinger
For a description of the first 3 new features have a look at the previous post. All of these features have been test flown on my PulseXT 40 and have performed very well.

The new roll/pitch/yaw controllers from Jon can be enabled by building with

 #define APM_CONTROL ENABLED

in your APM_Config.h. If you enable the new controllers then I strongly suggest you read Jons blog post about the new controllers and how to tune them. These controllers are still experimental, but if we get good feedback on them from users we will quite likely adopt them as the standard controllers in a future release.

Other changes in 2.60 include:

  • a new RECEIVER_RSSI_PIN compile time option, to allow you to display receiver RSSI via MAVLink. This should be useful for FPV flying.
  • an important fix from Jason Short for an erase bug in the dataflash. If you use dataflash logs then please erase them after loading this release to ensure the pages are properly initialised.
  • support for the new features in the new MTK GPS firmware
  • updates to the configuration parameters for the Mount code. If you use the mount code, then please check your parameters carefully, as some things have changed.
  • a fix to the JUMP command in missions, which solved a problem where the wrong command could sometimes be run
  • a fix to the initial yaw from AHRS when using a compass
  • new FENCE_ACTION_REPORT value for FENCE_ACTION
  • new "OBC" failsafe code as a compile time option
  • new RST_MISSION_CH option
  • new STICK_MIXING option
  • support for dual stabilisation mounts (eg. one camera and one antenna)
  • removed old CLI switch and dip switch support
  • fixed a derivative filter bug that could have a small affect on AHRS attitude
  • fixed LOITER_TIME to match MAVLink spec (time is in seconds)
  • added FBWB_ELEV_REV option
Happy flying!

 
 
Picture
ArduPlane 2.40 has now been released. Many thanks to everyone who gave flight test feedback on the beta release!

Note that ArduPlane now uses MAVLink 1.0, so you'll need to update your Mission Planner to the newer version, which supports that. You'll find it in the same directory as your current Mission Planner, in a file called ArduPilotMegaPlanner10.exe


For a list of feature changes
  • switch to MAVLink 1.0 for telemetry. This has been pending for quite some time, and it is nice to finally get it done. The reason it took so long is we needed some coordination between the various bits of code that deal with MAVLink in APM (the ground stations, autotest, ArduPlane itself etc). The various pieces finally came together and we can now support MAVLink 1.0 properly. This doesn't change the features of APM significantly, but it does prepare us for telemetry improvements in the future. 
  • auto-configuration of UBlox GPSes. It should now be possible to attach a UBlox GPS in just about any state and the APM GPS code will re-configure it appropriately. The configuration isn't saved, so if you power cycle the GPS it will revert to what was set before, but it should now be possible for the APM to use a UBlox in factory default config. It's still a good idea to setup your UBlox correctly (38400 baud in UBX binary mode) as that will make the detection faster on startup, but it should work regardless.
  • updated Camera and Mount control code from Amilcar Lucus and Greg Fletcher. These are not enabled by default, and I have not tested them myself, so I'm hoping Amilcar and Greg will be able to answer any questions that come up. Many thanks to Amilcar and Greg for all their work on this!
  • sped up eeprom erase using chip erase
  • Added ARSPD_USE parameter. This is useful when first setting up an airspeed sensor. The existing ARSPD_ENABLE parameter only allowed you to enable/disable airspeed and if enabled then it would be used for flight control. With ARSPD_USE you can now enable the airspeed sensor but not ask APM to use it for flight control (by setting ARSPD_ENABLE to 1 and ARSPD_USE to 0). That allows you to log your airspeed data without using it for flight control, which means you can validate the airspeed sensor is working correctly without risking your airframe if it is badly calibrated.
  • fixed an ELEVON_REVERSE bug. The ELEVON_REVERSE parameter was being applied to only one channel, whereas it should be applied to both channels. If you use elevons then please be careful to carefully test your setup before your next flight!
Happy flying!


 
 
Picture
This release includes one very important update for APM2 users, and a few other minor updates.

The main reason for the release is to fix a bug in the scaling of the MPU6000 accelerometers. We discovered that the MPU6000 on the most recently shipped APM2 boards had different accelerometer scaling than earlier boards. This resulted in bad attitude calculations which would get worse during flight (as the DCM code interpreted the conflicting information between the gyroscope and accelerometers as gyro drift). We now query the product ID of the MPU6000 on startup, and fix the scaling according to whether it is a RevC or RevD version of the chip.

If you use an APM2 with ArduPlane then it is strongly recommended that you update to the 2.34 release.
Other less critical changes in this release include:
  • fixes for building ArduPlane with the MAVLink 1.0 protocol (we currently use the 0.9 protocol). In a future release this will be the default once all other components are ready
  • expose a new parameter AHRS_YAW_P to control how fast the compass controls the heading. The default is 0.2, which should be good for most users (this was mostly added for ArduCopter users)
  • fixed the reporting of the raw servo output value in the MAVLink logs. Previously if you uses a mission element to set a servo value (for example, for a bottle drop) the log would not reflect the servo change. The logged value is now obtained directly from the servo library so will always be accurate
  • changed the default I terms for navigation roll and pitch to 0.1. It is very common to need a small I value for navigation, so a 0.1 default is better than 0
  • make it possible to use UART2 for Telemetry. The APM2 has a otherwise unused UART2 port, which you can connect to the telemetry connector via a solder bridge. This adds a TELEMETRY_UART2 build option to configure the code to use this port. This is mostly useful if you have an onboard computer connecting to the APM2 via USB at the same time as you connect a radio to the telemetry port, and you want both telemetry streams active
Happy flying!


 
 
Picture
The main features of the new arduplane 2.33 release are:Basically, if you are using one of the new 3DR radios with DUTY_CYCLE set then APM and the radio will automatically adjust the telemetry rates down to suit the available bandwidth.

 
 
Picture
The new Geo-fencing feature for ardupilot mega is ideal for beginners who want to learn how to fly.  The ardupilot mega geo-fencing feature allows the user to specify a GPS fence around a specific flying area, including a minimum and maximum altitude.  Think of it as a box the aircraft can fly in.  If your ardupilot mega powered UAV flies outside of this box, the autopilot will automatically take over and bring your Drone back to a pre defined loiter point and fly in a circle around that loiter point until you take over control again. 

This feature is ideal for beginners who are learning to fly as you if you fly too far away your UAV will turn around and come back home.  If you fly too low or too high, Ardupilot Mega will take over and make sure you do not crash.

Read more for some more info on how to use this new feature


 

Creative Commons Licence