3D Robotics

ArduCopter 2.3 released

Jason is travelling this week, so I'll take the helm for the next software release post. 

UPDATE: the motor remapping thing was confusing everyone, so we took that out and returned to the regular motor mapping. That means that APM 2 users with Hexas and Octos should wait for the next version. APM 1 users should be fine with any frame.  

NOTE: Hexa and Octo users: there have been motor mapping changes that may affect you. Please don't upgrade until we can update the documentation to reflect the changes. This should happen by the end of the day today (Feb 1).

ArduCopter 2.3 is now available in the Mission Planner.  This is the next revision of the ArduCopter 2.2B6 code, which is perhaps the most tested code we've ever released (1288 comments in the thread!)  and certainly in my experience the best code, too. 

The default PIDs are optimized for a 3DR/Jdrones quad with 850 motors and 10" props. If you're using more powerful motors/props, start by turning down Rate Roll P (default is 0.14, so start by turning it down to 0.1. In general tune PIDs in 25% steps).

Now that we've got solid code out there, we can turn to collecting suggested gains for standard frames, and a better guide to how to tune PIDs for your unique setups. 

Here are Jason's note on the latest changes (mostly from 2.2B6)

A dampening term called STAB_D has been refined. A D term for all of the Rate based control loops has been added based on Igor's work. Landing for Baro and Sonar has been refined based on JLN's work. A slightly new approach to Loiter and Navigation is being used to try and linearize the pitch and roll for rate control. It tends to use lower gains, yet has a more assertive response in the air.

STAB_D : This is the gyro accretion dampener. This can remove small wobbles during sharp changes in angle commands. Making this too high can have a negative effect in performance and add a memory effect that can cause temporary loss in control. The in flight tuning is ranged so you are just below that effect.

If you haven't noticed before the control loops are in two stages. The first is a PI stage that converts some sort of position or angle error into a desired rate. These generally do not need to be tuned. They are more of a user preference on how fast you want the copter to perform a motion. 

The second stage is the actual PID loop that needs to be tuned for the copter. This converts the desired rate into a motor command of some sort. I added a D term based on Igor's recommendation to the PI's for each rate controller. These should show up soon in the mission planner for the release. I cannot give you a concrete answer for how to tune the D terms, because they each depend on their function such as alt hold or loiter, etc.

Still, the absolute most important term is always the Rate_P term for each loop. Start tuning here.

The default PIDs are in the what flies great for a stock jDrones/3DR Quad with the purple motors in X mode.

Note the Mission Planner does not yet highlight these D terms on the main tuning page (it will soon), but you can find them and modify them on in the Parameters list.

Autolanding should now work well (see video above) and the Tri servo issue is now resolved. 

The code should now compile with Arduino 1.0 (thank, Randy!), but remember that you need to use the "relaxpatch" version of Arduino in our downloads section

[Update: we've reverted the below. See update at the top of the post]

Important for Octo users:

We've changed some of the motor orders for some more exotic airframes. We'll be updating the docs on the Wiki in a day or two to reflect this. Pat Hickey explains:

As before, the hexa plus APM2 motor setup has changed from the ordering [1, 2, 3, 4, 5, 6] to [ 5, 6, 1, 2, 3, 4 ].

The Octa V layout for APM2 is:
6            4
  2        5
    8    1
      3 7
Motors 1 through 4 spin clockwise, and 5 through 8 spin counterclockwise.
Support for roll/tilt camera control on APM 2 should be coming in the next version. Traditional Heli will also be updating to this latest code as well once we track down a memory issue. 
As always, you can see a complete list of changes in the changelogs.

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

Join diydrones

Email me when people reply –


  • Alt_HOLD parameters

    Alt_hold behabiour is controled by several parameters, in my understanding:

    Throttle_rate: P, I, D and IMax

    Alt_Hold: P, I , Imax

    Throttle_Hold_KP (in the CH6 option). I guess this is ALT_HOLD_P

    Has anyone more info about this?



  • Arducopter 2.3 Nav tuning video scenarios

    In order not to spam this thread anymore, I've posted some video experiments of my 3rd day of nav tuning with the 2.3 code. I hope this is useful to those like me who are basically new to the loiter/auto/nav/rtl modes. I also hope that some of the more experienced members or developers can give us some tips(specific to 2.3) on how to make things better tuning wise. The post is located at http://diydrones.com/profiles/blogs/arducopter-2-3-nav-tuning-video... (at the moment of writng this, it still awaiting approval)

  • Hey guys,

    Could any one of you please post a screen shot of mission planner when planning flights. Why i ask this is because when i set my flight mode to Alt Hold or Loiter the Quad seems to just shoot up endlessly.


    1. When i set my home position the height it takes is 0 in the bottom right corner of the screen (actual as per google earth is 367m) so do i leave it at 0 or change it to the actual ??
    2. What about the check box option of Actual height do i check it or leave it unchecked ??
    3. What height should i use in the waypoints i create for an AUTO mission ?? 
  • Nobody has answered my question, so here we go again... Does anybody (developers?) has an idea of how long it will take  the "next version" with hexa support to be available?.. I've started to think about canceling my order for APM2 (as it hasn't even been delivered yet) and going for another hardware/software controller, as I can't keep waiting, willing to use it in AP !



  • Im still no further getting any reasonable stability and control with 2.3 and nearly at a point I'm thinking to strip the whole rig down and rebuild it from ground up just to make sure I'm eliminating any hardware glitches I might be missing.

    Yesterdays flights I couldn't really get any good stability. I could take of in stable OK but it starts to rotate an wont hold a stable yaw. I then put it back to Stab simple and launched again and once up to about 5 meters clicked loiter and then it started to wobble around a lot while descending. Once I clicked back to Stabilize it settled down but  still kept wandering away. I also tried RTL and it did similar to Loiter and wobbled around while descending. It did look like it was trying to come back to home position but it would be on the ground before it could make it.

    I few things Im thinking as a slim chance to be part the cause. Could the bottom motors props being in the wash of the top motors props be giving some kind if weird feed back the the ESC? Maybe if I use smaller props on the bottom?

    The wire length from the ESC to the motors is about 40cm and I read somewhere this might cause some signal feed back issues and to try keep the wire between the ESCs to motors as short as possible. I wouldn't have thought though it would make a lot of difference but I don't really know.  If I do a rebuild then Ill mount the ESC at the end of the arms with the motors.

    I'm only using a 3300mAh 4S 35-70C Turnigy battery to run 8 motors. But surly I should be able to get at least 2-3 min of good flight time. Ive measured voltage and its never been below 15v after each flight.  I have a separate Switching 5v  regulator for the APM so it cant be a brown out from poor power feed from the ESCs.

    Attached is my param file if anyone can please let me know if they see any problems with it.

    My X8 Quad specs

    Board: AMP1

    GCS: MP1.1.31

    Firmware: 2.3

    Quad X8 (coaxial 2 motors/ESC per arm sharing one APM signal)

    3300mAh 4S 35-70C

    Droidworx ADR Quad Standard, (72cmx72cm across)

    Flight weight 2.4kgs

    Motors 880kv Jdrones

    8 Props 12x4.5

    ESC 30A Jdrones

    APM power supply. 5V, 3amp switching regulator (SVR3 Tahmazo)

    Sonar XL-EZ0 (MB1200)

    Declination:  -0.5899

    Param Jan 2nd 12 MrcoSugstd1a.param

  • Challange and entertainment


  • My tu'ppenth on Loiter with 2.3...

    After yesterday in no/very low winds, I had ended up with a bit of Loiter P in at 0.9 and Loiter I at 0.001. After reading Dave C's comments on Rate_xxx_D, I arbitrarily reduced that overnight to 0.005. Seemed to get rid of the twitches - in fact, one of the good things about 2.3 is that it is now generally less twitchy, especially in fast vertical descents when previous codes had it wobbling in its own downwash, much reduced now.

    Wind this morning was gusting between 10-17mph on my uncalibrated iPhone app, which was in line with what the Met Office forecast said. My parameters are derived from Tomas Soedergren's, so initially I had quite low Nav_P - it quickly became apparent that more was needed as my quad was blown back by the wind. The best results I had were with Nav_P at around 2.0 - I also tried reducing Nav_I, but that did not work. I was getting pudding bowling with Nav_P up to 2.2, so I was going to try increasing Nav_I to see what effect that would have, but ran out of time and was getting very cold so only managed 2 flights.

    I may not be holding it static for long enough in Alt Hold, because I was still seeing some lurch back, and generally, even if I was getting reasonable loiter boxes e.g. 6x4m boxes, which I thought was pretty good for those winds, there is definitely a back and forth motion, but at least it can hold. If I had had more time, I am confident that I would get better results, but actually I am really hoping that Dave C cracks it, especially if he can make it smooth at the same time! I am also really hoping that one set of parameters will cater for no/low winds and gusty higher winds, but am not yet convinced that will be the case. The Load/Save parameters functionality in Mission Planner will help if we do need different sets.

    For what they are worth (not much, but possibly a starter set for a stock 3DR, APM1 board, 2 x 2150maH 3S1P batteries), I attach the parameters I ended on (reposted with correct yaw). Hope someone somewhere has decent weather, snowing a blizzard here now... Regards, Bill

    3DR APM1 FW 2.3 BJ PIDs 20120204 with reduced Rate D.param

  • I'm using 2.3 on a 3DR frame with purple motors and 10" props and had an almost crash today. I was pretty high and must have lost signal. Within a couple of seconds it got a signal again and recovered before hitting mother earth :) It was amazing to see how fast it corrected itself from a free fall!

    Anyway I thought my failsafe was setup wrong so I checked it out and it seems set up right but it's not doing what it should.

    I have a JR9503 Tx and 9ch Rx. I know the way to do the smart failsafe is to pull the binding plug out before doing the final binding step of turning on the Tx. I always put RTL on the mid switch position of my flap which I'm combining with my gear switch to get 6 values.

    So I turned on the copter to simulate what happened. Like always I wait for GPS lock and red light not flashing and then armed it. I gave it more than hover throttle and then killed the Tx power. Right away motors stop and I see on the mission planner in the MODE SETUP it go to 1521 which is the value of my switch in RTL mode.

    If I use the switch to manually put it in RTL model using the same conditions then I see it act properly. I can feel it trying to fly somewhere even though it's in the home position. I've also activated RTL in the air and it works as expected.

    So why are the motors getting killed when connection is lost? It's receiving the correct value that I set when I did the preset failsafe but it just stays in stable mode with zero throttle.

    Has anyone else tested the fail safe to see what happens when Tx is turned off?

  • My new baby: small "pushing quad"

    3692350053?profile=original3692350040?profile=original3692350115?profile=original3692350071?profile=originalUsed this Jakub´s frame, total weigh w/o batt = 510gr

    See here the first indoor flight with 2.3 code. Used almost standar pids + some "spicy" D


  • So any chance for some pointers on loiter/nav tuning before I go for day 3 of testing tomorrow? :)

This reply was deleted.


DIY Robocars via Twitter
DIY Robocars via Twitter
DIY Robocars via Twitter
May 13
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
May 13
DIY Robocars via Twitter
May 11
DIY Robocars via Twitter
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Noticed my car zigzagged in last run. It turned out to be the grass stuck in the wheel and made the odometry less accura…
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Test my car. RTK GPS worked great. Thanks @emlid for their support. https://t.co/EkQ6qmjmWR
May 8
DIY Drones via Twitter
RT @chr1sa: @kane That's @diydrones circa 2009. Still have a box of those Canon cameras that we used to strap into planes, just like this.…
May 3
DIY Robocars via Twitter
RT @chr1sa: Our next @diyrobocars race is going to be outside at a real RC racetrack in Fremont on May 28. Fully autonomous racing, head-to…
Apr 30
DIY Robocars via Twitter
RT @f1tenth: Our Spring 2022 F1TENTH course @PennEngineers is coming to an end with a head-to-head race as a big finale. So proud of our st…
Apr 26
DIY Robocars via Twitter
RT @DanielChiaJH: I wrote a thing! Throughout the development of my @diyrobocars car I've been using @foxglovedev Studio to visualize and d…
Apr 23
DIY Robocars via Twitter
RT @SmallpixelCar: My new car for high speed. Low body, everything ( @NVIDIAEmbedded Jetson Xavier NX, @emlid RTK GPS, IMC) under the deck…
Apr 23
DIY Robocars via Twitter
Apr 21
DIY Robocars via Twitter
RT @f1tenth: F1TENTH Race training setup @PennEngineers for our upcoming ICRA2022 @ieee_ras_icra competition. @OpenRoboticsOrg @IndyAChalle…
Apr 21
DIY Robocars via Twitter
RT @fatcatFABLAB: Proud to be hosting a restarted DIY Robocars NYC Meetup April 26. Come by if you want to talk about and race self-driving…
Apr 17