Git Product home page Git Product logo

Comments (3)

ctzsnooze avatar ctzsnooze commented on August 22, 2024

We are entering into a complex but fundamental discussion about what parameters should, or may, be included in the 'tune/default' file, and which should, or may, be included in TUNE category presets.

These are my thoughts on this question.

In a kind of 'general' sense, primary tuning parameters are assumed to be things like PID values and their controlling sliders.

Other tuning parameters include iterm_relax, antigravity, thrust_linear, feedforward transition, jitter reduction, iterm_rotation, boost, Dmax gain, and so on.

RC smoothing settings are not usually thought of as being a tuning parameter, but need to be specified in a TUNE to control stick responsiveness, since in that respect they are just as important as feedforward settings when the TUNE is applied. For example, a Race tune would be pretty if applied over a previous Cinematic tune that had RC_smoothing set to 120.

Filters also are not classical tuning parameters, but matching the filers to the PIDs in a particular build is a very fundamental part of 'tuning' a quad. Hence I would expect filter settings to be included in a TUNE.

Some other parameters, e/g/ throttle boost, dynamic idle, sag compensation and throttle curves, have a strong influence on how a quad flies, in particular, say, a whoop, and would be considered, in a build like that, to be part of the 'tune', even though most people wouldn't ordinarily think of them as being 'tuning parameters' in a more general sense.

It seems to me that a TUNE should set all the values that need to be controlled to ensure that the outcome will be as expected by the user. If the TUNE is for Whoops, then perhaps a few more fields need controlling than for a Race type tune.

Hence i think that a TUNE might need to include RC smoothing, filters, and indeed many other parameters, at least some of which would not ordinarily be thought of as being directly tuning related. The author should carefully consider which parameters need to be controlled for their tune to work, considering all possible prior states of the machine, and control them. In contrast, they should not touch values that the user should reasonably expect to retain after applying the TUNE.

In thinking about what should go into the defaults file for the TUNE category, I think we need to consider the intended use of such a default.

It seems likely that most people would use a default TUNE to 'reset' their 'tuning-related' parameters after messing with the PIDs. In such a case I doubt that they would want to reset every value that might be put into any TUNE. Most likely things like RC smoothing and throttle boost would be expected to be retained.

Hence it's my view that while we should be liberal with the content of a TUNE, the defaults.txt file should only reset those settings that most people would reasonably expect to be tuning parameters, such as:

  • PIDs
  • PID sliders
  • Dmax gain and sub-parameters
  • Iterm_relax
  • Antigravity
  • Feedforward sub-parameters

Perhaps we should provide check-boxes in the 'default tune' document to allow optional reset of other things like:

  • Filters
  • RC_Smoothing
  • Sag_Compensation etc.

from firmware-presets.

limonspb avatar limonspb commented on August 22, 2024

If a person applies, for example, karate TUNE he is expecting his quad to be just TUNE defaults + karate, not some leftovers from his previous tune + karate.

Moreover, the author of presets does not need to care about ALL "tune"parameters. He should just care about non-default TUNE parameters. He just includes tune/defaults.txt and then adds his own CLI.

We have to:

  1. Specify which parameters are allowed in TUNE category
  2. Add them to defaults.txt for TUNE
  3. Strictly follow this list of parameters, don't allow any other parameters in TUNE category.

Otherwise, we are confusing both users and preset authors with these leftovers and dirty mixes.
If you want to add personal stuff like rates, throttle curve, name - just add your preset in the "OTHER" category

from firmware-presets.

limonspb avatar limonspb commented on August 22, 2024

resolved by this PR:
#63

from firmware-presets.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.