Hi Chris,
Sorry to be the odd one out on this, but I don't agree :-)
> In general, "feature complete" means that the code goes into
> maintenance mode, meaning bugfixes, support and documentation will
> continue for some period of time (at least a year and ideally more),
> but new features will not be added.
I know you intend the above to mean less work for developers, but for me
at least with plane and rover this would be more work, not less.
If we followed this suggestion and froze development on features on AVR
but still had the inevitable bug fixes then we'd be doing both bugfix
releases for the AVR version and feature releases for the ARM
version. The flight testing needed for a release takes a lot of time,
and we would no longer be testing the same code bases for both. As the
two drifted apart this would increase the development burden, not
decrease it.
It is certainly fine for Randy to decide not to support AVR on future
releases of copter if he decides that is the best option, but I would
prefer to continue support for AVR for plane and rover for quite some
time.
What I'd like to do instead is on a module by module basis continue the
work we've been doing to take advantage of the additional processing
power available on the ARM boards. We've been doing that for some time
now, for example:
- on ARM we use much higher sampling rates on the sensors, and better
(more CPU intensive) filtering
- on ARM we have much better logging to the SD card
- on ARM we have a more accurate barometer calculation for EAS2TAS
- on ARM we support some new sensors (such as the new airspeed sensor)
which we could support on AVR if we wanted to put in the effort, but
haven't done so as we'd rather people start using the new ARM boards
I see this continuing with for example a move to Kalman filtering for
attitude. That wouldn't mean dropping the existing DCM complementary
filters, instead we would be able to switch between filters in
flight. On AVR only the DCM filter would be available, whereas on ARM we
could switch between two filters, just like we've been able to switch
mid-flight between attitude control algorithms, navigation algorithms
and speed/height controllers.
That is largely the point of the modular architecture we have been
moving the code to over the last 2 years. It gives us the ability to
slowly move the code to both take advantage of new hardware and also fix
bugs while keep things very stable.
> As we did with the original ArduPilot and then APM 1.x, it will soon
> be time to declare the APM 2.x codebases "feature complete" and move
> development to Pixhawk, which has so much more headroom.
this approach of the "big switch" is what I've been trying to get the
project away from. It is much better to do things incrementally,
switching over small portions of the code to take advantage of new
capabilities while leaving existing code stable than it is to think of
"new board, all new code".
I have no problem at all with whatever schedule 3DR chooses for stopping
selling the AVR boards, but I do want to keep doing development for
plane and rover for the time being with both AVR and ARM targets. For me
at least that will be both less work, and I also think the right thing
to do for the plane and rover communities.
Cheers, Tridge