KISS Flightcontroller

ronco

Erfahrener Benutzer
Hi,

wir hatte in der GUI einen text dreher :/ RC rate und Rate waren vertauscht :(. ich habe eine neue version veröffentlicht (GUI v1.03) in der das richtig ist.

als versuch die verwirrung möglichst klein zu halten:
es sind lediglich die beschriftungen in der GUI v1.01 und v1.02 falsch:
rate_fail.jpg
in der v1.03 ist das korregiert. alles andere bleibt gleich. wenn ihr also einstellungen habt mit denen ihr froh seid, müsst ihr nix machen :)

falls euch chrome die GUI nicht schnell genug updated, könnt ihr die jetzt installierte version löschen und diese neu installieren:
https://chrome.google.com/webstore/detail/kissfc/hecmfiemalajlglacajmnplhjmnkinpm?hl=de


ich hab ausserdem mit einem kleinen raten rechner angefangen. der verdeutlicht die einflüsse von RC Rate, Rate und RC curve etwas.
http://ultraesc.de/KISSFC/rates.html

gruß

Felix
 

ronco

Erfahrener Benutzer
hi,

version 1.02 beta 5 ist nun für alle dies ausprobieren wollen bereit :)
http://ultraesc.de/KISSFC/beta_update_en.html

wer froh ist mit version 1.01 oder keinerlei risiko eieingehen will, sollte diese update nicht flashen!

wichtigste neuerungen sind:

- FrSky Smartport telemetrie (spannung, strom und verbrauch (mAh))
- Jeti Ex-bus telemetrie (spannung, strom und verbrauch (mAh), max drehzhl)
- SBus2 sollte jetzt auch gehen.
- erweiterte einstllungen (TPA einfluss mit 2 breakpoints und Spannungs PID ausgleich)

die version 1.02 stable kann noch was dauern.

gruß

Felix
 

DIE_KUH

Erfahrener Benutzer
D. h., Telemetrie gibt's nur mit den FrSky X-Empfängern, nicht aber z. B. mit einem D4R-II? Kommt das denn auch noch?

Und wie ist das mit der PID voltage correction? Ist die jeweils aktiv, wenn man einen Wert unterschreitet oder überschreitet?

Noch eine zu TPA influence: Verläuft TPA zwischen den Breakpoints linear oder in Stufen (ich nehme an, ersteres)? Und so, wie das in dem Screenshot angegeben ist, gibt es keine Breakpoints, sondern es verläuft linear von 30% Einfluss bei 0% Throttle bis zu 100% Einfluss bei 100% Throttle? Wäre also bei 50% Throttle dann bei 65%?

Sorry für die nervige Fragerei, aber ich finde das alles zu uneindeutig. ;)
 
Zuletzt bearbeitet:

ronco

Erfahrener Benutzer
D. h., Telemetrie gibt's nur mit den FrSky X-Empfängern, nicht aber z. B. mit einem D4R-II? Kommt das denn auch noch?
der d4r hat halt nicht den smartport, sondern nen normalen serial (zwei leitungen) ich hab einen hier. wenn ich dazu komme bau ich den auch noch ein.

bisher aber erstmal nur for die X empfänger die auch SBus können.

gruß

Felix
 
...wir hatte in der GUI einen text dreher :/ RC rate und Rate waren vertauscht :(. ich habe eine neue version veröffentlicht (GUI v1.03) in der das richtig ist...
...ich hab ausserdem mit einem kleinen raten rechner angefangen. der verdeutlicht die einflüsse von RC Rate, Rate und RC curve etwas...
danke fürs richtig stellen! ich hab beim einstellen schon mehrfach an mir gezweifelt da veränderungen ganz anders ausfielen als erwartet.
den raten-rechner find ich in dem zusammenhang übrigens prima, hätte es den schon eher gegeben wäre meine deckenlampe sicher noch heile... ;)

ehrlich gesagt hab ich allerdings immer noch nicht ganz den funktionsumfang und einfluß von "rate" erfasst. anfangs bin ich davon ausgegangen dass es sich um eine reduzierung der jeweiligen pid-werte mit zunehmenden stickausschlag handelt, also ähnlich tpa für throttle.
aber wieso beeinflusst "rate" auch gleichzeitig noch die drehrate und wirkt außerdem als expo-kurve???

viele grüße, gerald.
 
Ich habe mich das auch gefragt und habe mal den Code des Raterechners analysiert.
Rate wirkt wie folgt:
Bei Vollausschlag des Sticks verdoppelt ein Rate Wert von 0,5 die Drehrate. Die Standarddrehrate ist 200 Grad pro Sekunde. Rate geht mit 1/(1 - Rate) ein. Also ist bei Rate 0,5 die Drehrate 1/(1 - 0,5) = 2 Mal so hoch. Bei 0,75 ist sie 4 Mal so hoch. Also 400 bzw. 800 Grad pro Sekunde. Nähert man sich Rate = 1, geht die Drehrate gegen unendlich, was natürlich nicht geht. Sie wird allerdings extrem hoch.
Der Wert 0,5 skaliert jedoch mit dem Stickausschlag. D.h. der Wert 0,5 wird erst bei Vollausschlag erreicht. Bei halbem Ausschlag liegt er bei 0,25, somit ist deine Drehrate 1/(1 - 0,25) und somit nicht die Hälfte der ursprünglichen Drehrate sondern weniger. Die Funktion 1/(1 - Stickausschlag) sorgt für das nichtlineare, Expo-ähnliche Verhalten. Also je mehr Stickausschlag, desto größer wird die Drehrate, exponentiell.
 

ronco

Erfahrener Benutzer
Ich habe mich das auch gefragt und habe mal den Code des Raterechners analysiert.
Rate wirkt wie folgt:
Bei Vollausschlag des Sticks verdoppelt ein Rate Wert von 0,5 die Drehrate. Die Standarddrehrate ist 200 Grad pro Sekunde. Rate geht mit 1/(1 - Rate) ein. Also ist bei Rate 0,5 die Drehrate 1/(1 - 0,5) = 2 Mal so hoch. Bei 0,75 ist sie 4 Mal so hoch. Also 400 bzw. 800 Grad pro Sekunde. Nähert man sich Rate = 1, geht die Drehrate gegen unendlich, was natürlich nicht geht. Sie wird allerdings extrem hoch.
Der Wert 0,5 skaliert jedoch mit dem Stickausschlag. D.h. der Wert 0,5 wird erst bei Vollausschlag erreicht. Bei halbem Ausschlag liegt er bei 0,25, somit ist deine Drehrate 1/(1 - 0,25) und somit nicht die Hälfte der ursprünglichen Drehrate sondern weniger. Die Funktion 1/(1 - Stickausschlag) sorgt für das nichtlineare, Expo-ähnliche Verhalten. Also je mehr Stickausschlag, desto größer wird die Drehrate, exponentiell.
genu :)

grob gesagt:

RC rate verstärkt den RC einfluss. mit RC rate 1.0 und keiner Rate oder kurve hat man bei halben ausschalg eine drehrate von 0.3 flips und bei voll auschlag dann 0.6 flips. mit RC rate 2.0 ist es genau das doppelte. wenn ich jetzt RC curve dazu mache, verringer ich den wert um 0 rum. vollauschlag bleibt gleich aber bei z.b 500 ist es dann weniger als die hälfte. rate reduziert die gyro einwirkung linear zum knüppel ausschlag. das wirkt dann auch rund, geht aber auf die voll auschlag drehrate.

zusammen gefasst:

RC rate verstärkt die drehrate in allen lagen.
RC curve reduziert die drehrate um die mitte herum
Rate verstärkt direhrate an den enden.

jetzt könnte man meinen das man das gleiche was mir rate erreicht wird, auch mit RC rate und RC curve erreichen könnte. das stimmt aber nicht ganz, da durch die rate der gyro einfluss reduziert wird, erreicht man gleichzeitig eine wobblel/oscillations unterdrückung bei starken auschlägen :)


gruß

Felix
 
Um das versuchen zu können, bräuchte ich aber einen Multiplex SRXL Empfänger und eine KISS FC. Beides hab ich aber nicht hier und würde gern vor dem Kauf wissen, ob das dann auch funktioniert oder nur rausgeschmissenes Geld sein wird.

Leider hat Multiplex seinen 6-Kanal Micro-Empfänger scheinbar nicht mehr im Programm, sonst würde ich den einfach nehmen. So hab ich die Wahl zwischen einem 4/9 Kanal SRXL Empfänger oder einem größeren und schwereren 6 Kanal Doppelempfänger. Beides hätte seine Vorteile, aber speziell für den geplanten Mini-Copter wäre mir die leichtere Variante lieber, aber mehr als 4 Kanäle kommen da nur aus dem SRXL-Port.
Multiplex SRXL sieht anders aus (download vom vorher gerosteten link) als Spektrum SXRL: Multiplex kann 12 bzw. 16 Kanäle, Spektrum überträgt bis zu 18 Kanäle wobei die Kanäle 13 bis 18 eine geringere Auflösung haben (512 steps). Hinzu kommt, dass Multiplex 4096 Steps auf den normalen Kanälen hat (12-bit) während Spektrum mit 11-bit (2048 steps) arbeitet --> in den meisten Fällen wird der 'Standard-Code' somit am Masking scheitern:
z.B.
Code:
                addr = (b[0]>>3) & 0x0f;
                val = ((b[0] & 0x07)<<8) | b[1];
Man braucht halt zwei Bytes um 16-bit über die UART zu nudeln. Der Code oben macht aber ein masking für 11-bit --> dein Multiplex SRXL-MSB würde hops gehen.

Den Autoquad Code habe ich wie nachstehend geändert um alle 18 Kanäle zu nutzen (erfordert AR9020 oder AR10000 für das Binding des Sats und X-PLUS muss am TX eingeschaltet sein):
Code:
...
            for (i = 0; i < 7; i++) {
                uint8_t *b = &buf[2 + i*2];

                // empty channel
                if (b[0] == 0xff && b[1] == 0xff)
                    continue;

                // X-Plus channel - check if first or second data package (MSB only TRUE in channel 0!)
                if (((b[0] & 0x80)>>7) == 1)
                      packetid = 1;     // Channel 12 contains X-Plus channels X+5 to X+8 when transmitted in second package

                addr = (b[0]>>3) & 0x0f;
                val = ((b[0] & 0x07)<<8) | b[1];

                // throttle
                if (addr == (int)p[RADIO_THRO_CH]) 
                    val -= 338;
                else
                    val -= 1024;

                // X-Plus channel decoding
                if (addr == 12) {
                    // check in which packed X-Plus channel was transmitted
                    if (packetid == 1) {                  //  X-Plus channels X+5 to X+8
                        addr = ((b[0]>>1) & 0x03) + 14;
                        val =  ((((b[0] & 0x01)<<8) | b[1]) *2 ) - 512;
                                                          //  correction for +/- range swing and interpolation
                        // clear data package marker
                        packetid = 0;
                    }

                    else {                                //  X-Plus channels X+1 to X+4
                        addr = ((b[0]>>1) & 0x03);
                        if (addr == 0 || addr == 1)
                            continue;                     // X+1 and X+2 are duplicates of channel 10 and 11
                                                          // skip these channels due to lower resolution of 
                                                          // X-Plus channels
                        else {
                            addr += 10;  
                            val =  ((((b[0] & 0x01)<<8) | b[1]) *2 ) - 512;
                                                          //  correction for +/- range swing and interpolation
                        }
                    }
                }

                r->channels[addr] = val;
...
Hier mal der Background:
Channel numbers 0 to 11 are normal, with data resolution 11bit (2048 steps). Please notice that these channels were duplicates of channel 10 (X+1) and channel 11 (X+2).
Channel 12 always carries the X-Plus channel data when X-Plus is enabled. The data resolution is 9bit (512 steps).

Channel transfer structure:
packet 0 -> 1 5 2 4 6 10 12
packet 1 -> 0 7 3 8 9 11 12

X-Plus data format
Each 16bit X-Plus data value is defined as:

a bbbb cc ddddddddd

a: always 0
bbbb: always 12, since channel 12 contains X-Plus channel data when X-Plus is enabled on the transmitter
cc: X-Plus channel number, lower 2 bits only. The third bit is defined by the packet number containing the data:
transferred via packet 0 --> channel# = 0b0CC
transferred via packet 1 --> channel# = 0b1CC
Channel number range during transfer is 0 to 7!

ddddddddd: X-Plus channel data, 9 bits resolution, mid at 256
Die 'volle Dröhung' gibts hier: http://www.rcgroups.com/forums/showpost.php?p=31072107&postcount=64

Da muss dann Felix ran, da Kiss-FC auch closed source!
 
...zusammen gefasst:

RC rate verstärkt die drehrate in allen lagen.
RC curve reduziert die drehrate um die mitte herum
Rate verstärkt direhrate an den enden.

jetzt könnte man meinen das man das gleiche was mir rate erreicht wird, auch mit RC rate und RC curve erreichen könnte. das stimmt aber nicht ganz, da durch die rate der gyro einfluss reduziert wird, erreicht man gleichzeitig eine wobblel/oscillations unterdrückung bei starken auschlägen :)

danke für diese zusammenfassung!!! jetzt ist alles klar und verständlich und erscheint mir auch noch sehr sinnvoll... :)

viele grüße, gerald.
 

snake

Erfahrener Benutzer
Hi,

wenn ich das richtig gelesen habe, müßte ja nun mit der neuesten FW auch die JETI-Telemetrie für z. B. einen RSat2 funktionieren, oder?

Hat vielleicht jemand ne Info drüber, welche PIN´s der KISS FC dann wie mit dem JETI-Telemetrieeingang verbunden werden müssen?

Wäre klasse ;)
 

ronco

Erfahrener Benutzer
Zuletzt bearbeitet:

Sealord

Erfahrener Benutzer
Zum Thema Rate usw:
Ich hab das Ganze nicht wirklich kapiert, also bitte für den Normal User wie mich: was sollte man zu Beginn einstellen um ein Fliegbares Setup zu haben?
 

-evil-

Neuer Benutzer
hi anscheinend bin ich der Einzige der das nicht hin bekommt :(

hab blheli ESC und bekomme die um das verrecken nicht angelernt..

Die Beschreibung zu anlernen ist gut aber halt für kiss..

bei cleanflight ist das bei den kiss auch so 1x vollgas 1x min gas und gut ist aber auch wenn man im cleanflight blheli anlernt ist das Prozedere zwar so ähnlich aber eben nicht gleich..

bei blheli singt dir der ESC ja quasi was vor nur dann ist er richtig angelernt aber das bekomm ich nicht hin mit dem Kiss FC.

bitte um hilfe! und ja ich weiss ich hätte kiss esc nehmen solln ;) nächtses mal wieder versprochen :)
 
FPV1

Banggood

Oben Unten