Skip to content

Commit 245e7f4

Browse files
committed
Fix gps rescue throttle pid gains
1 parent ad79fbc commit 245e7f4

File tree

3 files changed

+195
-1
lines changed

3 files changed

+195
-1
lines changed

js/flightlog_fielddefs.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,9 @@ var
339339
"TIMING_ACCURACY",
340340
"RX_EXPRESSLRS_SPI",
341341
"RX_EXPRESSLRS_PHASELOCK",
342+
"DEBUG_RX_STATE_TIME",
343+
"GPS_RESCUE_VELOCITY",
344+
"GPS_RESCUE_HEADING"
342345
]),
343346

344347
SUPER_EXPO_YAW = makeReadOnly([

js/flightlog_fields_presenter.js

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,20 @@ function FlightLogFieldPresenter() {
626626
'debug[2]':'Frequency Offset',
627627
'debug[3]':'Phase Shift',
628628
},
629+
'GPS_RESCUE_VELOCITY' : {
630+
'debug[all]':'GPS Rescue Velocity PIDs',
631+
'debug[0]':'Velocity P',
632+
'debug[1]':'Velocity I',
633+
'debug[2]':'Velocity D',
634+
'debug[3]':'GroundSpeed',
635+
},
636+
'GPS_RESCUE_HEADING' : {
637+
'debug[all]':'GPS Rescue Heading',
638+
'debug[0]':'Error angle',
639+
'debug[1]':'Angle to home',
640+
'debug[2]':'Rescue Yaw rate',
641+
'debug[3]':'Rescue Roll angle',
642+
},
629643
};
630644

631645
let DEBUG_FRIENDLY_FIELD_NAMES = null;
@@ -678,6 +692,13 @@ function FlightLogFieldPresenter() {
678692
'debug[2]':'Notch 3 Center Freq [dbg-axis]',
679693
'debug[3]':'Gyro Pre Dyn Notch [dbg-axis]',
680694
};
695+
DEBUG_FRIENDLY_FIELD_NAMES.GPS_RESCUE_THROTTLE_PID = {
696+
'debug[all]':'GPS Rescue Throttle PID',
697+
'debug[0]':'Throttle P',
698+
'debug[1]':'Throttle I',
699+
'debug[2]':'Throttle D',
700+
'debug[3]':'Altitude',
701+
};
681702
} else if (semver.gte(firmwareVersion, '4.2.0')) {
682703
DEBUG_FRIENDLY_FIELD_NAMES.FF_INTERPOLATED = {
683704
'debug[all]':'Feedforward [roll]',
@@ -999,8 +1020,12 @@ function FlightLogFieldPresenter() {
9991020
}
10001021
case 'RTH':
10011022
switch(fieldName) {
1023+
case 'debug[0]':
1024+
return value.toFixed(0) + 'us';
10021025
case 'debug[1]':
10031026
return (value / 100).toFixed(1) + 'deg';
1027+
case 'debug[2]':
1028+
return value.toFixed(0) + 'us';
10041029
default:
10051030
return value.toFixed(0);
10061031
}
@@ -1056,7 +1081,15 @@ function FlightLogFieldPresenter() {
10561081
return value.toFixed(0) + "Hz";
10571082
}
10581083
case 'GPS_RESCUE_THROTTLE_PID':
1059-
return value.toFixed(0);
1084+
switch (fieldName) {
1085+
// debug 0 = Throttle P
1086+
// debug 1 = Throttle I
1087+
// debug 3 = Throttle D
1088+
case 'debug[3]': // current altitude in m
1089+
return (value / 100).toFixed(2) + 'm';
1090+
default:
1091+
return value.toFixed(0);
1092+
}
10601093
case 'DYN_IDLE':
10611094
switch (fieldName) {
10621095
case 'debug[3]': // minRPS
@@ -1125,6 +1158,32 @@ function FlightLogFieldPresenter() {
11251158
default:
11261159
return value.toFixed(0) + 'us';
11271160
}
1161+
case 'GPS_RESCUE_VELOCITY':
1162+
switch (fieldName) {
1163+
// debug 0 = Velocity P
1164+
// debug 1 = Velocity I
1165+
// debug 2 = Velocity D
1166+
case 'debug[3]': // Velocity cm/s
1167+
return (value / 100).toFixed(2) + 'm/s';
1168+
default:
1169+
return value.toFixed(0);
1170+
}
1171+
case 'GPS_RESCUE_HEADING':
1172+
switch (fieldName) {
1173+
// debug 0 = error angle tenths of a degree
1174+
case 'debug[0]': // error angle tenths of a degree
1175+
return (value / 10).toFixed(1) + 'deg';
1176+
// debug 1 = Velocity I
1177+
case 'debug[1]': // angle to home in tenths of a degree
1178+
return (value / 10).toFixed(1) + 'deg';
1179+
// debug 2 = Velocity D
1180+
case 'debug[2]': // commanded yaw rate in tenths of a degree
1181+
return (value / 10).toFixed(1) + 'deg/s';
1182+
case 'debug[3]': // roll angle in hundredths of a degree
1183+
return (value / 100).toFixed(2) + 'deg';
1184+
default:
1185+
return value.toFixed(0);
1186+
}
11281187
}
11291188
return value.toFixed(0);
11301189
}

js/graph_config.js

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,138 @@ GraphConfig.load = function(config) {
736736
default:
737737
return getCurveForMinMaxFields(fieldName);
738738
}
739+
case 'GPS_RESCUE_THROTTLE_PID':
740+
switch (fieldName) {
741+
case 'debug[0]': // Throttle P
742+
return {
743+
offset: 0,
744+
power: 1.0,
745+
inputRange: 500,
746+
outputRange: 1.0,
747+
};
748+
case 'debug[1]': // Throttle I
749+
return {
750+
offset: 0,
751+
power: 1.0,
752+
inputRange: 500,
753+
outputRange: 1.0,
754+
};
755+
case 'debug[2]': // Throttle D
756+
return {
757+
offset: 0,
758+
power: 1.0,
759+
inputRange: 500,
760+
outputRange: 1.0,
761+
};
762+
case 'debug[3]': // Altitude
763+
return {
764+
offset: -10000,
765+
power: 1.0,
766+
inputRange: 10000,
767+
outputRange: 1.0,
768+
};
769+
default:
770+
return getCurveForMinMaxFields(fieldName);
771+
}
772+
case 'GPS_RESCUE_VELOCITY':
773+
switch (fieldName) {
774+
case 'debug[0]': // Throttle P
775+
return {
776+
offset: 0,
777+
power: 1.0,
778+
inputRange: 500,
779+
outputRange: 1.0,
780+
};
781+
case 'debug[1]': // Throttle I
782+
return {
783+
offset: 0,
784+
power: 1.0,
785+
inputRange: 500,
786+
outputRange: 1.0,
787+
};
788+
case 'debug[2]': // Throttle D
789+
return {
790+
offset: 0,
791+
power: 1.0,
792+
inputRange: 500,
793+
outputRange: 1.0,
794+
};
795+
case 'debug[3]': // Velocity cm/s
796+
return {
797+
offset: 0,
798+
power: 1.0,
799+
inputRange: 500,
800+
outputRange: 1.0,
801+
};
802+
default:
803+
return getCurveForMinMaxFields(fieldName);
804+
}
805+
case 'GPS_RESCUE_HEADING':
806+
switch (fieldName) {
807+
case 'debug[0]': // Error angle tenths of a degree
808+
return {
809+
offset: 0,
810+
power: 1.0,
811+
inputRange: 100,
812+
outputRange: 1.0,
813+
};
814+
case 'debug[1]': // Angle to home tenths of a degree
815+
return {
816+
offset: 0,
817+
power: 1.0,
818+
inputRange: 1800,
819+
outputRange: 1.0,
820+
};
821+
case 'debug[2]': // Rescue yaw rate deg/s * 10
822+
return {
823+
offset: 0,
824+
power: 1.0,
825+
inputRange: 100,
826+
outputRange: 1.0,
827+
};
828+
case 'debug[3]': // Rescue roll angle degrees * 100
829+
return {
830+
offset: 0,
831+
power: 1.0,
832+
inputRange: 1000,
833+
outputRange: 1.0,
834+
};
835+
default:
836+
return getCurveForMinMaxFields(fieldName);
837+
}
838+
case 'RTH':
839+
switch (fieldName) {
840+
case 'debug[0]': // FailureState
841+
return {
842+
offset: -5,
843+
power: 1.0,
844+
inputRange: 5,
845+
outputRange: 1.0,
846+
};
847+
case 'debug[1]': // Rescue throttle us
848+
return {
849+
offset: -1500,
850+
power: 1.0,
851+
inputRange: 500,
852+
outputRange: 1.0,
853+
};
854+
case 'debug[2]': // Rescue angle decidegrees
855+
return {
856+
offset: 0,
857+
power: 1.0,
858+
inputRange: 450,
859+
outputRange: 1.0,
860+
};
861+
case 'debug[3]': // Throttle adjustment us
862+
return {
863+
offset: 0,
864+
power: 1.0,
865+
inputRange: 500,
866+
outputRange: 1.0,
867+
};
868+
default:
869+
return getCurveForMinMaxFields(fieldName);
870+
}
739871
}
740872
}
741873
// if not found above then

0 commit comments

Comments
 (0)