Major new update for APM:Rover code!

3689570019?profile=originalArduRover Developer Test Track and Typical Mission Test Course

Good news from Andrew Tridgell and the rest of the APM:Rover (ArduRover) Development Team: they've pushed out a major new release (2.45). Major changes include: numerous updates for PX4 and Pixhawk, dual sensor support on the Pixhawk and reduced GPS latency for all three navigation controllers.

The following is from Tridge's release announcement. Please post any questions or comments there.

Pixhawk updates
The biggest set of changes are for the PX4 and Pixhawk boards. The Pixhawk production boards started shipping a few weeks ago and include some nice hardware features that didn't make it into the 2.44 release. The most important of these is dual sensor support. The Pixhawk has two gyros and two accelerometers, and (if you have an external GPS/compass combo) dual compass as well. In the 2.44 release only one of each of these sensors could be used. With the 2.45 release the health of each sensor is monitored and if one sensor fails the second sensor can take over. In addition to failover support the code logs both sets of sensor values both to MAVLink and to the logs on the microSD card, which is very useful for diagnostics. We are also working on dual GPS support which we hope to get into the next release.
GPS navigation improvements
A very simple change to our GPS configuration made a big difference for this release. In previous rover releases we setup the uBlox as ENGINE_AUTOMOTIVE as we thought that would be the best match for a rover. What we discovered recently is that using the AUTOMOTIVE mode led to much more time delay (lag) in the GPS velocity data, which led to poor handling of sharp turns. We have now switched to ENGINE_AIRBORNE_4G and found that we get much better navigation at higher speed with sharp turns.
Parameter storage
Another major change for this release is the way parameters are stored on PX4 and Pixhawk. In previous releases we stored parameters on a file on the microSD card. That usually worked fine, but recently there have been a few too many issues with FAT filesystem corruption of microSD cards, especially when powering off while writing to the SD card. For this release we have moved all parameters to the EEPROM on the PX4 and the FRAM chip on the Pixhawk. This makes parameter storage independent of the microSD card, avoiding parameters becoming corrupt due to microSD card problems. Parameters from a microSD card will be automatically copied to EEPROM/FRAM when you upgrade to APM:Rover 2.45.
Improved relay code
The relay and servo set code has had a major overhaul, with up to 4 relays now supported for MAVLink control and much better support for the DO_SET_SERVO, DO_SET_RELAY, DO_REPEAT_SERVO and DO_REPEAT_RELAY MAVLink commands. Along with these changes is a new parameter BRD_PWM_COUNT which allows you to specify how many auxillary PWM outputs to enable, with the remaining outputs being available as digital relays. This allows you to re-assign some of the aux servo outputs on Pixhawk for use as relays, by setting the RELAY_PIN, RELAY_PIN2, RELAY_PIN3 and RELAY_PIN4 parameters. The pin numbers for these pins start at 50 for the first aux servo pin, and go to 55 on Pixhawk.
Improved logging
There have been logs of logging improvements in this release. Apart from the dual sensor logging, we can now transfer on-board log files to the ground station over MAVLink, which makes it much easier to get detailed logs without having to pull a microSD card out, or boot to the CLI. We're hoping to remove the need for the CLI completely in a future release, doing everything over MAVLink.
The new logging code also includes the git version number of APM and (if needed) the PX4Firmware and PX4NuttX repositories used to build the firmware in the logs. This makes it easier to track down any issues to the exact code used.
More telemetry ports
On Pixhawk and PX4 you can now have a 3rd telemetry port, allowing USB and two serial telemetry ports to be active at the same time, which is very useful when you have an onboard computer.


TCIII ArduRover2 Developer 

E-mail me when people leave their comments –

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

Join diydrones


  • Actually Jack it's Randy who mostly knocks out the Arducopter, but I don't think either one of them actually sleep.

  • Watching Tridge knock out a new arducopter, arudplane, & ardurover release every month makes me feel damn lazy.

  • Developer

    Thanks for the update Tom.
    It is always a joy to attend the hangout and observe the progress made every week.

    keep it up!


  • 3D Robotics

    Just in time to start putting together my Sparkfun AVC entry!

  • Hi Thomas and Tridge, great update.

    I have now copied the entire contents of this announcement int the news section of the APM:Rover wiki News page along with the previous two announcements as well.

    This is consistent with how we are now handling it on plane and copter.

    Of course, I tidied things up accordingly and links to the Blog and forum are also maintained.

    Best Regards,


  • My PixHawk should be shipping this week and my first APMRover build will soon be on it's way!

    The truck has is ready and I have been 3D printing my dual Sonar brackets, plat to mount electronics and other parts so I am ready to roll once the electronics arrive!

    Can't wait to run this new release of code on it!

  • Admin

    Hi All,

    As we move towards the Wimbledon of Hobby Autonomous Vehicle Competitions, the Sparkfun AVC, Tridge and the ArduRover2 Developer Team has once again brought forth a significant improvement in the APM:Rover navigation firmware that should make AVC teams using 3DR navigation products formidable competitors!


    TCIII ArduRover Developer

This reply was deleted.