"
@@ -4328,5 +4334,11 @@
},
"rcSmoothing": {
"message": "RC Smoothing"
+ },
+ "throttle_scale": {
+ "message": "Throttle scale"
+ },
+ "throttle_scale_help": {
+ "message": "Allow to limit effective power fed to the motors. Throttle Scale 1 mean there is no power limiting. Throttle Scale 0.5 means throttle position will be cut in half before passed to the motors."
}
}
diff --git a/js/defaults_dialog.js b/js/defaults_dialog.js
index 19bca033..42b44324 100644
--- a/js/defaults_dialog.js
+++ b/js/defaults_dialog.js
@@ -287,19 +287,23 @@ helper.defaultsDialog = (function () {
},
{
key: "nav_fw_pos_z_p",
- value: 15
+ value: 25
},
{
- key: "nav_fw_pos_z_d",
+ key: "nav_fw_pos_z_i",
value: 5
},
+ {
+ key: "nav_fw_pos_z_d",
+ value: 8
+ },
{
key: "nav_fw_pos_xy_p",
- value: 60
+ value: 55
},
{
key: "fw_turn_assist_pitch_gain",
- value: 0.5
+ value: 0.4
},
{
key: "max_angle_inclination_rll",
@@ -359,11 +363,19 @@ helper.defaultsDialog = (function () {
},
{
key: "imu_acc_ignore_rate",
- value: 9
+ value: 7
},
{
key: "imu_acc_ignore_slope",
- value: 5
+ value: 4
+ },
+ {
+ key: "imu_dcm_kp",
+ value: 1000
+ },
+ {
+ key: "imu_dcm_ki",
+ value: 0
},
{
key: "airmode_type",
@@ -393,6 +405,22 @@ helper.defaultsDialog = (function () {
key: "nav_wp_radius",
value: 5000
},
+ {
+ key: "nav_fw_launch_max_angle",
+ value: 45
+ },
+ {
+ key: "nav_fw_launch_motor_delay",
+ value: 100
+ },
+ {
+ key: "nav_fw_launch_max_altitude",
+ value: 5000
+ },
+ {
+ key: "nav_fw_launch_climb_angle",
+ value: 25
+ },
],
"features": [
{
@@ -404,7 +432,7 @@ helper.defaultsDialog = (function () {
{
"title": 'Airplane without a Tail (Wing, Delta, etc)',
"notRecommended": false,
- "id": 3,
+ "id": 4,
"reboot": true,
"mixerToApply": 8,
"settings": [
@@ -418,7 +446,7 @@ helper.defaultsDialog = (function () {
},
{
key: "applied_defaults",
- value: 3
+ value: 4
},
{
key: "gyro_hardware_lpf",
@@ -486,19 +514,23 @@ helper.defaultsDialog = (function () {
},
{
key: "nav_fw_pos_z_p",
- value: 15
+ value: 35
},
{
- key: "nav_fw_pos_z_d",
+ key: "nav_fw_pos_z_i",
value: 5
},
+ {
+ key: "nav_fw_pos_z_d",
+ value: 10
+ },
{
key: "nav_fw_pos_xy_p",
- value: 60
+ value: 70
},
{
key: "fw_turn_assist_pitch_gain",
- value: 0.2
+ value: 0.3
},
{
key: "max_angle_inclination_rll",
@@ -564,6 +596,14 @@ helper.defaultsDialog = (function () {
key: "imu_acc_ignore_slope",
value: 5
},
+ {
+ key: "imu_dcm_kp",
+ value: 1000
+ },
+ {
+ key: "imu_dcm_ki",
+ value: 0
+ },
{
key: "airmode_type",
value: "STICK_CENTER_ONCE"
@@ -592,6 +632,22 @@ helper.defaultsDialog = (function () {
key: "nav_wp_radius",
value: 5000
},
+ {
+ key: "nav_fw_launch_max_angle",
+ value: 75
+ },
+ {
+ key: "nav_fw_launch_motor_delay",
+ value: 100
+ },
+ {
+ key: "nav_fw_launch_max_altitude",
+ value: 5000
+ },
+ {
+ key: "nav_fw_launch_climb_angle",
+ value: 25
+ },
],
"features": [
{
@@ -718,7 +774,9 @@ helper.defaultsDialog = (function () {
GUI.tab_switch_cleanup(function () {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, function () {
//noinspection JSUnresolvedVariable
- savingDefaultsModal.close();
+ if (typeof savingDefaultsModal !== 'undefined') {
+ savingDefaultsModal.close();
+ }
GUI.log(chrome.i18n.getMessage('deviceRebooting'));
GUI.handleReconnect();
});
@@ -728,13 +786,21 @@ helper.defaultsDialog = (function () {
};
privateScope.setSettings = function (selectedDefaultPreset) {
+ var currentControlProfile = parseInt($("#profilechange").val());
+ var currentBatteryProfile = parseInt($("#batteryprofilechange").val());
//Save analytics
googleAnalytics.sendEvent('Setting', 'Defaults', selectedDefaultPreset.title);
Promise.mapSeries(selectedDefaultPreset.settings, function (input, ii) {
return mspHelper.getSetting(input.key);
}).then(function () {
Promise.mapSeries(selectedDefaultPreset.settings, function (input, ii) {
- return mspHelper.setSetting(input.key, input.value);
+ if (FC.isControlProfileParameter(input.key)) {
+ return privateScope.setSettingForAllControlProfiles(input.key, input.value);
+ } else if (FC.isBatteryProfileParameter(input.key)) {
+ return privateScope.setSettingForAllBatteryProfiles(input.key, input.value);
+ } else {
+ return mspHelper.setSetting(input.key, input.value);
+ }
}).then(function () {
// If default preset is associated to a mixer, apply the mixer as well
@@ -751,19 +817,50 @@ helper.defaultsDialog = (function () {
mspHelper.sendServoMixer(function () {
mspHelper.sendMotorMixer(function () {
- privateScope.finalize(selectedDefaultPreset);
- })
+ MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [currentControlProfile], false, function() {
+ MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [currentBatteryProfile], false, privateScope.finalize(selectedDefaultPreset));
+ });
+ });
});
} else {
- privateScope.finalize(selectedDefaultPreset);
+ MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [currentControlProfile], false, function() {
+ MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [currentBatteryProfile], false, privateScope.finalize(selectedDefaultPreset));
+ });
}
-
-
-
})
});
};
+ privateScope.setSettingForAllControlProfiles = function (key, value) {
+ MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [0], false, function () {
+ mspHelper.setSetting(key, value, function() {
+ MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [1], false, function () {
+ mspHelper.setSetting(key, value, function() {
+ MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [2], false, function () {
+ mspHelper.setSetting(key, value);
+ });
+ });
+ });
+ });
+ });
+ return;
+ };
+
+ privateScope.setSettingForAllBatteryProfiles = function (key, value) {
+ MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [0], false, function () {
+ mspHelper.setSetting(key, value, function() {
+ MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [1], false, function () {
+ mspHelper.setSetting(key, value, function() {
+ MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [2], false, function () {
+ mspHelper.setSetting(key, value);
+ });
+ });
+ });
+ });
+ });
+ return;
+ };
+
privateScope.onPresetClick = function (event) {
savingDefaultsModal = new jBox('Modal', {
width: 400,
diff --git a/js/fc.js b/js/fc.js
index 096ccc69..aad1e3ab 100644
--- a/js/fc.js
+++ b/js/fc.js
@@ -1249,7 +1249,7 @@ var FC = {
4: {
name: "Logic Condition",
type: "range",
- range: [0, 31],
+ range: [0, (LOGIC_CONDITIONS.getMaxLogicConditionCount()-1)],
default: 0
},
5: {
diff --git a/js/gui.js b/js/gui.js
index 6849c972..94cbabe6 100644
--- a/js/gui.js
+++ b/js/gui.js
@@ -316,16 +316,27 @@ GUI_control.prototype.renderOperandValue = function ($container, operandMetadata
* @param {function} onChange
* @param {boolean} withAlways
*/
-GUI_control.prototype.renderLogicConditionSelect = function ($container, logicConditions, current, onChange, withAlways) {
+GUI_control.prototype.renderLogicConditionSelect = function ($container, logicConditions, current, onChange, withAlways, onlyEnabled) {
let $select = $container.append('').find("select"),
lcCount = logicConditions.getCount();
+ option = "";
if (withAlways) {
$select.append('Always ')
}
for (let i = 0; i < lcCount ; i++) {
- $select.append('Logic Condition ' + i + ' ');
+ if (!onlyEnabled || i === current || (logicConditions.isEnabled(i))) {
+ option = 'Logic Condition ' + i + ' ';
+
+ $select.append(option);
+ }
}
$select.val(current).change(onChange);
diff --git a/js/helpers.js b/js/helpers.js
index 8b611898..914fbbaa 100644
--- a/js/helpers.js
+++ b/js/helpers.js
@@ -42,8 +42,9 @@ function generateFilename(prefix, suffix) {
if (CONFIG) {
if (CONFIG.flightControllerIdentifier) {
- filename = CONFIG.flightControllerIdentifier + '_' + filename;
+ filename = CONFIG.flightControllerIdentifier + '_' + CONFIG.flightControllerVersion + "_" + filename;
}
+
if (CONFIG.name && CONFIG.name.trim() !== '') {
filename = filename + '_' + CONFIG.name.trim().replace(' ', '_');
}
diff --git a/js/logicCondition.js b/js/logicCondition.js
index e5a5de3e..8409476b 100644
--- a/js/logicCondition.js
+++ b/js/logicCondition.js
@@ -218,9 +218,10 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op
if (self.getEnabled()) {
GUI.renderLogicConditionSelect(
$e,
- LOGIC_CONDITIONS,
+ LOGIC_CONDITIONS,
self.getActivatorId,
self.onActivatorChange,
+ true,
true
);
} else {
diff --git a/js/logicConditionsCollection.js b/js/logicConditionsCollection.js
index 84ccc8ce..9412362c 100644
--- a/js/logicConditionsCollection.js
+++ b/js/logicConditionsCollection.js
@@ -28,6 +28,10 @@ let LogicConditionsCollection = function () {
return data.length
};
+ self.isEnabled = function (lcID) {
+ return data[lcID].getEnabled();
+ }
+
self.open = function () {
self.render();
$container.show();
diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js
index ef448dda..01b5789d 100644
--- a/js/msp/MSPHelper.js
+++ b/js/msp/MSPHelper.js
@@ -44,7 +44,7 @@ var mspHelper = (function (gui) {
'DJI_FPV': 21,
'SMARTPORT_MASTER': 23,
'IMU2': 24,
- 'HDZERO_VTX': 25,
+ 'MSP_DISPLAYPORT': 25,
};
// Required for MSP_DEBUGMSG because console.log() doesn't allow omitting
@@ -777,6 +777,18 @@ var mspHelper = (function (gui) {
CONFIG.boardIdentifier = identifier;
CONFIG.boardVersion = data.getUint16(offset, 1);
offset += 2;
+ if (semver.gt(CONFIG.flightControllerVersion, "4.1.0")) {
+ CONFIG.osdUsed = data.getUint8(offset++);
+ CONFIG.commCompatability = data.getUint8(offset++);
+ let targetNameLen = data.getUint8(offset++);
+ let targetName = "";
+ targetNameLen += offset;
+ for (offset = offset; offset < targetNameLen; offset++) {
+ targetName += String.fromCharCode(data.getUint8(offset));
+ }
+ CONFIG.target = targetName;
+ }
+
break;
case MSPCodes.MSP_SET_CHANNEL_FORWARDING:
@@ -3190,6 +3202,15 @@ var mspHelper = (function (gui) {
MSP.send_message(MSPCodes.MSP_MOTOR, false, false, callback);
};
+ self.getTarget = function(callback) {
+ MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function(resp){
+ var target = resp.data.readString();
+ if (callback) {
+ callback(target);
+ }
+ });
+ }
+
self.getCraftName = function (callback) {
MSP.send_message(MSPCodes.MSP_NAME, false, false, function (resp) {
var name = resp.data.readString();
diff --git a/js/settings.js b/js/settings.js
index e54fe492..36816ed9 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -173,19 +173,20 @@ var Settings = (function () {
let dataStep = input.data("step");
- if (dataStep !== undefined) {
- input.attr('step', dataStep);
- } else {
- input.attr('step', "0.01");
+ if (typeof dataStep === 'undefined') {
+ dataStep = self.countDecimals(s.value);
+ dataStep = 1 / Math.pow(10, dataStep);
+ input.data("step", dataStep);
}
+ input.attr('step', dataStep);
input.attr('min', s.setting.min);
input.attr('max', s.setting.max);
- input.val(s.value.toFixed(2));
-
+ input.val(s.value.toFixed(self.countDecimals(dataStep)));
} else {
var multiplier = parseFloat(input.data('setting-multiplier') || 1);
+ input.data("step", 1);
input.val((s.value / multiplier).toFixed(Math.log10(multiplier)));
input.attr('type', 'number');
if (typeof s.setting.min !== 'undefined' && s.setting.min !== null) {
@@ -449,7 +450,7 @@ var Settings = (function () {
'm-lrg' : 'mi',
'cms' : 'mph',
'v-cms' : 'fts',
- 'decadegps' : 'degpd',
+ 'decadegps' : 'degps',
'decideg' : 'deg',
'decideg-lrg' : 'deg',
'msec' : 'sec',
@@ -498,38 +499,33 @@ var Settings = (function () {
const multiplier = multiObj.multiplier;
const unitName = multiObj.unitName;
+ let decimalPlaces = 0;
// Update the step, min, and max; as we have the multiplier here.
if (element.attr('type') == 'number') {
- let step = element.attr('step') || 1;
- let decimalPlaces = 0;
+ let step = parseFloat(element.attr('step')) || 1;
- step = step / multiplier;
-
- if (step < 1) {
- decimalPlaces = step.toString().length - step.toString().indexOf(".") - 1;
- if (parseInt(step.toString().slice(-1)) > 1 ) {
- decimalPlaces--;
- }
+ if (multiplier !== 1) {
+ decimalPlaces = Math.min(Math.ceil(multiplier / 100), 3);
step = 1 / Math.pow(10, decimalPlaces);
}
element.attr('step', step.toFixed(decimalPlaces));
- if (multiplier != 'FAHREN') {
- element.attr('min', (element.attr('min') / multiplier).toFixed(decimalPlaces));
- element.attr('max', (element.attr('max') / multiplier).toFixed(decimalPlaces));
+ if (multiplier !== 'FAHREN' && multiplier !== 1) {
+ element.attr('min', (parseFloat(element.attr('min')) / multiplier).toFixed(decimalPlaces));
+ element.attr('max', (parseFloat(element.attr('max')) / multiplier).toFixed(decimalPlaces));
}
}
// Update the input with a new formatted unit
let newValue = "";
- if (multiplier == 'FAHREN') {
- element.attr('min', toFahrenheit(element.attr('min')).toFixed(2));
- element.attr('max', toFahrenheit(element.attr('max')).toFixed(2));
- newValue = toFahrenheit(oldValue).toFixed(2);
+ if (multiplier === 'FAHREN') {
+ element.attr('min', toFahrenheit(element.attr('min')).toFixed(decimalPlaces));
+ element.attr('max', toFahrenheit(element.attr('max')).toFixed(decimalPlaces));
+ newValue = toFahrenheit(oldValue).toFixed(decimalPlaces);
} else {
- const convertedValue = Number((oldValue / multiplier).toFixed(2));
- newValue = Number.isInteger(convertedValue) ? Math.round(convertedValue) : convertedValue;
+ newValue = Number((oldValue / multiplier)).toFixed(decimalPlaces);
}
+
element.val(newValue);
element.data('setting-multiplier', multiplier);
@@ -564,12 +560,36 @@ var Settings = (function () {
value = Math.round(((parseFloat(input.val())-32) / 1.8) * 10);
} else {
multiplier = parseFloat(multiplier);
- value = Math.round(parseFloat(input.val()) * multiplier);
+
+ let presicion = input.data("step") || 1; // data-step is always based on the default firmware units.
+ presicion = self.countDecimals(presicion);
+
+ if (presicion === 0) {
+ value = Math.round(parseFloat(input.val()) * multiplier);
+ } else {
+ value = Math.round((parseFloat(input.val()) * multiplier) * Math.pow(10, presicion)) / Math.pow(10, presicion);
+ }
}
}
+
return mspHelper.setSetting(settingName, value);
};
+ self.countDecimals = function(value) {
+ let text = value.toString()
+ // verify if number 0.000005 is represented as "5e-6"
+ if (text.indexOf('e-') > -1) {
+ let [base, trail] = text.split('e-');
+ let deg = parseInt(trail, 10);
+ return deg;
+ }
+ // count decimals for number in representation like "0.123456"
+ if (Math.floor(value) !== value) {
+ return value.toString().split(".")[1].length || 0;
+ }
+ return 0;
+ };
+
self.saveInputs = function() {
var inputs = [];
$('[data-setting!=""][data-setting]').each(function() {
diff --git a/main.css b/main.css
index 1c13dbf8..f2e47013 100644
--- a/main.css
+++ b/main.css
@@ -2010,6 +2010,10 @@ select {
padding: 1px;
}
+.lc_disabled {
+ color: #aaa;
+}
+
.ic_osd {
background-image: url("../images/icons/icon_osd.svg");
background-position-y: 4px;
diff --git a/main.js b/main.js
index 75a123df..b365b96a 100644
--- a/main.js
+++ b/main.js
@@ -657,7 +657,7 @@ function updateActivatedTab() {
function updateFirmwareVersion() {
if (CONFIGURATOR.connectionValid) {
- $('#logo .firmware_version').text(CONFIG.flightControllerVersion);
+ $('#logo .firmware_version').text(CONFIG.flightControllerVersion + " [" + CONFIG.target + "]");
} else {
$('#logo .firmware_version').text(chrome.i18n.getMessage('fcNotConnected'));
}
diff --git a/resources/osd/avatar/default/12x18/010.png b/resources/osd/avatar/default/12x18/010.png
index ce561447..13b120ec 100644
Binary files a/resources/osd/avatar/default/12x18/010.png and b/resources/osd/avatar/default/12x18/010.png differ
diff --git a/resources/osd/avatar/default/12x18/012.png b/resources/osd/avatar/default/12x18/012.png
index 0138d416..d5375212 100644
Binary files a/resources/osd/avatar/default/12x18/012.png and b/resources/osd/avatar/default/12x18/012.png differ
diff --git a/resources/osd/avatar/default/12x18/099.png b/resources/osd/avatar/default/12x18/099.png
index c4ecb5dd..f9829c46 100644
Binary files a/resources/osd/avatar/default/12x18/099.png and b/resources/osd/avatar/default/12x18/099.png differ
diff --git a/resources/osd/avatar/default/12x18/100.png b/resources/osd/avatar/default/12x18/100.png
index 0081a58f..76b25096 100644
Binary files a/resources/osd/avatar/default/12x18/100.png and b/resources/osd/avatar/default/12x18/100.png differ
diff --git a/resources/osd/avatar/default/12x18/101.png b/resources/osd/avatar/default/12x18/101.png
index b029d3c4..7e9095f0 100644
Binary files a/resources/osd/avatar/default/12x18/101.png and b/resources/osd/avatar/default/12x18/101.png differ
diff --git a/resources/osd/avatar/default/12x18/102.png b/resources/osd/avatar/default/12x18/102.png
index f6e5b5d4..8914107a 100644
Binary files a/resources/osd/avatar/default/12x18/102.png and b/resources/osd/avatar/default/12x18/102.png differ
diff --git a/resources/osd/avatar/default/12x18/103.png b/resources/osd/avatar/default/12x18/103.png
index 11cabf48..905c8ef2 100644
Binary files a/resources/osd/avatar/default/12x18/103.png and b/resources/osd/avatar/default/12x18/103.png differ
diff --git a/resources/osd/avatar/default/12x18/104.png b/resources/osd/avatar/default/12x18/104.png
index 9817bc89..b0927b8e 100644
Binary files a/resources/osd/avatar/default/12x18/104.png and b/resources/osd/avatar/default/12x18/104.png differ
diff --git a/resources/osd/avatar/default/12x18/105.png b/resources/osd/avatar/default/12x18/105.png
index 9f7030d3..aa4dab6b 100644
Binary files a/resources/osd/avatar/default/12x18/105.png and b/resources/osd/avatar/default/12x18/105.png differ
diff --git a/resources/osd/avatar/default/12x18/192.png b/resources/osd/avatar/default/12x18/192.png
index 71222bd7..f31e542b 100644
Binary files a/resources/osd/avatar/default/12x18/192.png and b/resources/osd/avatar/default/12x18/192.png differ
diff --git a/resources/osd/avatar/default/12x18/193.png b/resources/osd/avatar/default/12x18/193.png
index a0836019..fabfb7e2 100644
Binary files a/resources/osd/avatar/default/12x18/193.png and b/resources/osd/avatar/default/12x18/193.png differ
diff --git a/resources/osd/avatar/default/12x18/194.png b/resources/osd/avatar/default/12x18/194.png
index 9381ada1..defdb8af 100644
Binary files a/resources/osd/avatar/default/12x18/194.png and b/resources/osd/avatar/default/12x18/194.png differ
diff --git a/resources/osd/avatar/default/12x18/195.png b/resources/osd/avatar/default/12x18/195.png
index cb7de927..0d480b0e 100644
Binary files a/resources/osd/avatar/default/12x18/195.png and b/resources/osd/avatar/default/12x18/195.png differ
diff --git a/resources/osd/avatar/default/12x18/196.png b/resources/osd/avatar/default/12x18/196.png
index 52c64174..5c968838 100644
Binary files a/resources/osd/avatar/default/12x18/196.png and b/resources/osd/avatar/default/12x18/196.png differ
diff --git a/resources/osd/avatar/default/12x18/197.png b/resources/osd/avatar/default/12x18/197.png
index 212a880e..e047575e 100644
Binary files a/resources/osd/avatar/default/12x18/197.png and b/resources/osd/avatar/default/12x18/197.png differ
diff --git a/resources/osd/avatar/default/12x18/198.png b/resources/osd/avatar/default/12x18/198.png
index 83cb5bf8..709d2e31 100644
Binary files a/resources/osd/avatar/default/12x18/198.png and b/resources/osd/avatar/default/12x18/198.png differ
diff --git a/resources/osd/avatar/default/12x18/199.png b/resources/osd/avatar/default/12x18/199.png
index baa30830..eef95ed6 100644
Binary files a/resources/osd/avatar/default/12x18/199.png and b/resources/osd/avatar/default/12x18/199.png differ
diff --git a/resources/osd/avatar/default/12x18/200.png b/resources/osd/avatar/default/12x18/200.png
index 227f66a1..cf2a9755 100644
Binary files a/resources/osd/avatar/default/12x18/200.png and b/resources/osd/avatar/default/12x18/200.png differ
diff --git a/resources/osd/avatar/default/12x18/201.png b/resources/osd/avatar/default/12x18/201.png
index cb9b2c4d..882401ef 100644
Binary files a/resources/osd/avatar/default/12x18/201.png and b/resources/osd/avatar/default/12x18/201.png differ
diff --git a/resources/osd/avatar/default/12x18/202.png b/resources/osd/avatar/default/12x18/202.png
index e6302d97..b7031ccc 100644
Binary files a/resources/osd/avatar/default/12x18/202.png and b/resources/osd/avatar/default/12x18/202.png differ
diff --git a/resources/osd/avatar/default/12x18/203.png b/resources/osd/avatar/default/12x18/203.png
index 34e303d6..c3b98ff9 100644
Binary files a/resources/osd/avatar/default/12x18/203.png and b/resources/osd/avatar/default/12x18/203.png differ
diff --git a/resources/osd/avatar/default/12x18/204.png b/resources/osd/avatar/default/12x18/204.png
index 6fd9d380..975a40c6 100644
Binary files a/resources/osd/avatar/default/12x18/204.png and b/resources/osd/avatar/default/12x18/204.png differ
diff --git a/resources/osd/avatar/default/12x18/205.png b/resources/osd/avatar/default/12x18/205.png
index 836fed64..7e2216cf 100644
Binary files a/resources/osd/avatar/default/12x18/205.png and b/resources/osd/avatar/default/12x18/205.png differ
diff --git a/resources/osd/avatar/default/12x18/207.png b/resources/osd/avatar/default/12x18/207.png
index 847f72eb..a6b2d738 100644
Binary files a/resources/osd/avatar/default/12x18/207.png and b/resources/osd/avatar/default/12x18/207.png differ
diff --git a/resources/osd/avatar/default/12x18/251.png b/resources/osd/avatar/default/12x18/251.png
index 13a7d300..a114f76b 100644
Binary files a/resources/osd/avatar/default/12x18/251.png and b/resources/osd/avatar/default/12x18/251.png differ
diff --git a/resources/osd/avatar/default/12x18/252.png b/resources/osd/avatar/default/12x18/252.png
index 1177b415..eb81fa02 100644
Binary files a/resources/osd/avatar/default/12x18/252.png and b/resources/osd/avatar/default/12x18/252.png differ
diff --git a/resources/osd/avatar/default/12x18/352.png b/resources/osd/avatar/default/12x18/352.png
index d20f1dca..5d71cf31 100644
Binary files a/resources/osd/avatar/default/12x18/352.png and b/resources/osd/avatar/default/12x18/352.png differ
diff --git a/resources/osd/avatar/default/24x36/010.png b/resources/osd/avatar/default/24x36/010.png
index fae991b0..ef12790c 100644
Binary files a/resources/osd/avatar/default/24x36/010.png and b/resources/osd/avatar/default/24x36/010.png differ
diff --git a/resources/osd/avatar/default/24x36/012.png b/resources/osd/avatar/default/24x36/012.png
index 78cc2c67..f0d0eac5 100644
Binary files a/resources/osd/avatar/default/24x36/012.png and b/resources/osd/avatar/default/24x36/012.png differ
diff --git a/resources/osd/avatar/default/24x36/013.png b/resources/osd/avatar/default/24x36/013.png
index ccbc70c9..0eb96d64 100644
Binary files a/resources/osd/avatar/default/24x36/013.png and b/resources/osd/avatar/default/24x36/013.png differ
diff --git a/resources/osd/avatar/default/24x36/098.png b/resources/osd/avatar/default/24x36/098.png
index f17f3a86..0213a6da 100644
Binary files a/resources/osd/avatar/default/24x36/098.png and b/resources/osd/avatar/default/24x36/098.png differ
diff --git a/resources/osd/avatar/default/24x36/099.png b/resources/osd/avatar/default/24x36/099.png
index 8d09593f..b4d27f87 100644
Binary files a/resources/osd/avatar/default/24x36/099.png and b/resources/osd/avatar/default/24x36/099.png differ
diff --git a/resources/osd/avatar/default/24x36/100.png b/resources/osd/avatar/default/24x36/100.png
index 2f788467..1e3ecb10 100644
Binary files a/resources/osd/avatar/default/24x36/100.png and b/resources/osd/avatar/default/24x36/100.png differ
diff --git a/resources/osd/avatar/default/24x36/101.png b/resources/osd/avatar/default/24x36/101.png
index e8dc6d6b..d81bd5a1 100644
Binary files a/resources/osd/avatar/default/24x36/101.png and b/resources/osd/avatar/default/24x36/101.png differ
diff --git a/resources/osd/avatar/default/24x36/102.png b/resources/osd/avatar/default/24x36/102.png
index b5c61ae1..c85cee7a 100644
Binary files a/resources/osd/avatar/default/24x36/102.png and b/resources/osd/avatar/default/24x36/102.png differ
diff --git a/resources/osd/avatar/default/24x36/103.png b/resources/osd/avatar/default/24x36/103.png
index ac791d4d..61deacd1 100644
Binary files a/resources/osd/avatar/default/24x36/103.png and b/resources/osd/avatar/default/24x36/103.png differ
diff --git a/resources/osd/avatar/default/24x36/104.png b/resources/osd/avatar/default/24x36/104.png
index 73aaef24..b11cd307 100644
Binary files a/resources/osd/avatar/default/24x36/104.png and b/resources/osd/avatar/default/24x36/104.png differ
diff --git a/resources/osd/avatar/default/24x36/105.png b/resources/osd/avatar/default/24x36/105.png
index e62bd20f..9e00dc00 100644
Binary files a/resources/osd/avatar/default/24x36/105.png and b/resources/osd/avatar/default/24x36/105.png differ
diff --git a/resources/osd/avatar/default/24x36/117.png b/resources/osd/avatar/default/24x36/117.png
index 2b46521b..8f58ab6b 100644
Binary files a/resources/osd/avatar/default/24x36/117.png and b/resources/osd/avatar/default/24x36/117.png differ
diff --git a/resources/osd/avatar/default/24x36/134.png b/resources/osd/avatar/default/24x36/134.png
index 077417c7..24fae170 100644
Binary files a/resources/osd/avatar/default/24x36/134.png and b/resources/osd/avatar/default/24x36/134.png differ
diff --git a/resources/osd/avatar/default/24x36/149.png b/resources/osd/avatar/default/24x36/149.png
index ed40b735..19984a2f 100644
Binary files a/resources/osd/avatar/default/24x36/149.png and b/resources/osd/avatar/default/24x36/149.png differ
diff --git a/resources/osd/avatar/default/24x36/188.png b/resources/osd/avatar/default/24x36/188.png
index cf7326c1..8bda676f 100644
Binary files a/resources/osd/avatar/default/24x36/188.png and b/resources/osd/avatar/default/24x36/188.png differ
diff --git a/resources/osd/avatar/default/24x36/189.png b/resources/osd/avatar/default/24x36/189.png
index 76b2c228..1986d079 100644
Binary files a/resources/osd/avatar/default/24x36/189.png and b/resources/osd/avatar/default/24x36/189.png differ
diff --git a/resources/osd/avatar/default/24x36/190.png b/resources/osd/avatar/default/24x36/190.png
index 39dcae45..42325815 100644
Binary files a/resources/osd/avatar/default/24x36/190.png and b/resources/osd/avatar/default/24x36/190.png differ
diff --git a/resources/osd/avatar/default/24x36/191.png b/resources/osd/avatar/default/24x36/191.png
index 79c0e084..c12547a5 100644
Binary files a/resources/osd/avatar/default/24x36/191.png and b/resources/osd/avatar/default/24x36/191.png differ
diff --git a/resources/osd/avatar/default/24x36/192.png b/resources/osd/avatar/default/24x36/192.png
index e3b9e631..f38719a4 100644
Binary files a/resources/osd/avatar/default/24x36/192.png and b/resources/osd/avatar/default/24x36/192.png differ
diff --git a/resources/osd/avatar/default/24x36/193.png b/resources/osd/avatar/default/24x36/193.png
index a9845b9c..5486c215 100644
Binary files a/resources/osd/avatar/default/24x36/193.png and b/resources/osd/avatar/default/24x36/193.png differ
diff --git a/resources/osd/avatar/default/24x36/194.png b/resources/osd/avatar/default/24x36/194.png
index 4e324c28..82e7711a 100644
Binary files a/resources/osd/avatar/default/24x36/194.png and b/resources/osd/avatar/default/24x36/194.png differ
diff --git a/resources/osd/avatar/default/24x36/195.png b/resources/osd/avatar/default/24x36/195.png
index 07caddcf..c267c3ac 100644
Binary files a/resources/osd/avatar/default/24x36/195.png and b/resources/osd/avatar/default/24x36/195.png differ
diff --git a/resources/osd/avatar/default/24x36/196.png b/resources/osd/avatar/default/24x36/196.png
index a4013298..cbd4ff5c 100644
Binary files a/resources/osd/avatar/default/24x36/196.png and b/resources/osd/avatar/default/24x36/196.png differ
diff --git a/resources/osd/avatar/default/24x36/197.png b/resources/osd/avatar/default/24x36/197.png
index 477dde80..82c3f737 100644
Binary files a/resources/osd/avatar/default/24x36/197.png and b/resources/osd/avatar/default/24x36/197.png differ
diff --git a/resources/osd/avatar/default/24x36/198.png b/resources/osd/avatar/default/24x36/198.png
index c2f7af69..8e375bb4 100644
Binary files a/resources/osd/avatar/default/24x36/198.png and b/resources/osd/avatar/default/24x36/198.png differ
diff --git a/resources/osd/avatar/default/24x36/199.png b/resources/osd/avatar/default/24x36/199.png
index fe9a08ce..cccdf35e 100644
Binary files a/resources/osd/avatar/default/24x36/199.png and b/resources/osd/avatar/default/24x36/199.png differ
diff --git a/resources/osd/avatar/default/24x36/200.png b/resources/osd/avatar/default/24x36/200.png
index 464fe7d3..9a746a4b 100644
Binary files a/resources/osd/avatar/default/24x36/200.png and b/resources/osd/avatar/default/24x36/200.png differ
diff --git a/resources/osd/avatar/default/24x36/201.png b/resources/osd/avatar/default/24x36/201.png
index 73f52736..29660ae9 100644
Binary files a/resources/osd/avatar/default/24x36/201.png and b/resources/osd/avatar/default/24x36/201.png differ
diff --git a/resources/osd/avatar/default/24x36/202.png b/resources/osd/avatar/default/24x36/202.png
index 0c551a6e..bac0f4f4 100644
Binary files a/resources/osd/avatar/default/24x36/202.png and b/resources/osd/avatar/default/24x36/202.png differ
diff --git a/resources/osd/avatar/default/24x36/203.png b/resources/osd/avatar/default/24x36/203.png
index 4c1748fa..46cf96bd 100644
Binary files a/resources/osd/avatar/default/24x36/203.png and b/resources/osd/avatar/default/24x36/203.png differ
diff --git a/resources/osd/avatar/default/24x36/204.png b/resources/osd/avatar/default/24x36/204.png
index c8216414..3dcf94a5 100644
Binary files a/resources/osd/avatar/default/24x36/204.png and b/resources/osd/avatar/default/24x36/204.png differ
diff --git a/resources/osd/avatar/default/24x36/205.png b/resources/osd/avatar/default/24x36/205.png
index ca0e1ca4..385ce0f7 100644
Binary files a/resources/osd/avatar/default/24x36/205.png and b/resources/osd/avatar/default/24x36/205.png differ
diff --git a/resources/osd/avatar/default/24x36/207.png b/resources/osd/avatar/default/24x36/207.png
index 2f2b406d..652f3acf 100644
Binary files a/resources/osd/avatar/default/24x36/207.png and b/resources/osd/avatar/default/24x36/207.png differ
diff --git a/resources/osd/avatar/default/24x36/209.png b/resources/osd/avatar/default/24x36/209.png
index 8402e17a..9cc72658 100644
Binary files a/resources/osd/avatar/default/24x36/209.png and b/resources/osd/avatar/default/24x36/209.png differ
diff --git a/resources/osd/avatar/default/24x36/251.png b/resources/osd/avatar/default/24x36/251.png
index b95787ed..4e3a1804 100644
Binary files a/resources/osd/avatar/default/24x36/251.png and b/resources/osd/avatar/default/24x36/251.png differ
diff --git a/resources/osd/avatar/default/24x36/252.png b/resources/osd/avatar/default/24x36/252.png
index f149a4d6..f6bfa689 100644
Binary files a/resources/osd/avatar/default/24x36/252.png and b/resources/osd/avatar/default/24x36/252.png differ
diff --git a/resources/osd/avatar/default/24x36/302.png b/resources/osd/avatar/default/24x36/302.png
index 046918c0..bb747cd7 100644
Binary files a/resources/osd/avatar/default/24x36/302.png and b/resources/osd/avatar/default/24x36/302.png differ
diff --git a/resources/osd/avatar/default/24x36/303.png b/resources/osd/avatar/default/24x36/303.png
index d516ab8b..2c092abc 100644
Binary files a/resources/osd/avatar/default/24x36/303.png and b/resources/osd/avatar/default/24x36/303.png differ
diff --git a/resources/osd/avatar/default/24x36/304.png b/resources/osd/avatar/default/24x36/304.png
index de59d56e..ca78bbe6 100644
Binary files a/resources/osd/avatar/default/24x36/304.png and b/resources/osd/avatar/default/24x36/304.png differ
diff --git a/resources/osd/avatar/default/24x36/305.png b/resources/osd/avatar/default/24x36/305.png
index a68e371f..0916056f 100644
Binary files a/resources/osd/avatar/default/24x36/305.png and b/resources/osd/avatar/default/24x36/305.png differ
diff --git a/resources/osd/avatar/default/24x36/306.png b/resources/osd/avatar/default/24x36/306.png
index 8462e2a4..15553c58 100644
Binary files a/resources/osd/avatar/default/24x36/306.png and b/resources/osd/avatar/default/24x36/306.png differ
diff --git a/resources/osd/avatar/default/24x36/307.png b/resources/osd/avatar/default/24x36/307.png
index 7421b7fd..9203b565 100644
Binary files a/resources/osd/avatar/default/24x36/307.png and b/resources/osd/avatar/default/24x36/307.png differ
diff --git a/resources/osd/avatar/default/24x36/352.png b/resources/osd/avatar/default/24x36/352.png
index 17a56767..66667ff7 100644
Binary files a/resources/osd/avatar/default/24x36/352.png and b/resources/osd/avatar/default/24x36/352.png differ
diff --git a/resources/osd/avatar/default/36x54/010.png b/resources/osd/avatar/default/36x54/010.png
index 9aee5429..cfa4f6d4 100644
Binary files a/resources/osd/avatar/default/36x54/010.png and b/resources/osd/avatar/default/36x54/010.png differ
diff --git a/resources/osd/avatar/default/36x54/012.png b/resources/osd/avatar/default/36x54/012.png
index 83ed356f..9a28c32b 100644
Binary files a/resources/osd/avatar/default/36x54/012.png and b/resources/osd/avatar/default/36x54/012.png differ
diff --git a/resources/osd/avatar/default/36x54/013.png b/resources/osd/avatar/default/36x54/013.png
index 1f1c7c23..e3e17948 100644
Binary files a/resources/osd/avatar/default/36x54/013.png and b/resources/osd/avatar/default/36x54/013.png differ
diff --git a/resources/osd/avatar/default/36x54/098.png b/resources/osd/avatar/default/36x54/098.png
index e0dc1d62..2f24c9de 100644
Binary files a/resources/osd/avatar/default/36x54/098.png and b/resources/osd/avatar/default/36x54/098.png differ
diff --git a/resources/osd/avatar/default/36x54/099.png b/resources/osd/avatar/default/36x54/099.png
index 181805af..56a5d74e 100644
Binary files a/resources/osd/avatar/default/36x54/099.png and b/resources/osd/avatar/default/36x54/099.png differ
diff --git a/resources/osd/avatar/default/36x54/100.png b/resources/osd/avatar/default/36x54/100.png
index bd1f284d..d4bbee11 100644
Binary files a/resources/osd/avatar/default/36x54/100.png and b/resources/osd/avatar/default/36x54/100.png differ
diff --git a/resources/osd/avatar/default/36x54/101.png b/resources/osd/avatar/default/36x54/101.png
index 278154a6..4f5720b6 100644
Binary files a/resources/osd/avatar/default/36x54/101.png and b/resources/osd/avatar/default/36x54/101.png differ
diff --git a/resources/osd/avatar/default/36x54/102.png b/resources/osd/avatar/default/36x54/102.png
index 6384426e..95f69bbc 100644
Binary files a/resources/osd/avatar/default/36x54/102.png and b/resources/osd/avatar/default/36x54/102.png differ
diff --git a/resources/osd/avatar/default/36x54/103.png b/resources/osd/avatar/default/36x54/103.png
index 5c4ffff3..9ffd017b 100644
Binary files a/resources/osd/avatar/default/36x54/103.png and b/resources/osd/avatar/default/36x54/103.png differ
diff --git a/resources/osd/avatar/default/36x54/104.png b/resources/osd/avatar/default/36x54/104.png
index 328e29c3..d1ac7d37 100644
Binary files a/resources/osd/avatar/default/36x54/104.png and b/resources/osd/avatar/default/36x54/104.png differ
diff --git a/resources/osd/avatar/default/36x54/105.png b/resources/osd/avatar/default/36x54/105.png
index aa8da354..6b1f7917 100644
Binary files a/resources/osd/avatar/default/36x54/105.png and b/resources/osd/avatar/default/36x54/105.png differ
diff --git a/resources/osd/avatar/default/36x54/117.png b/resources/osd/avatar/default/36x54/117.png
index 1fe5644a..2901da88 100644
Binary files a/resources/osd/avatar/default/36x54/117.png and b/resources/osd/avatar/default/36x54/117.png differ
diff --git a/resources/osd/avatar/default/36x54/134.png b/resources/osd/avatar/default/36x54/134.png
index 1bf7836b..31507404 100644
Binary files a/resources/osd/avatar/default/36x54/134.png and b/resources/osd/avatar/default/36x54/134.png differ
diff --git a/resources/osd/avatar/default/36x54/149.png b/resources/osd/avatar/default/36x54/149.png
index f676d20f..1cd4f445 100644
Binary files a/resources/osd/avatar/default/36x54/149.png and b/resources/osd/avatar/default/36x54/149.png differ
diff --git a/resources/osd/avatar/default/36x54/188.png b/resources/osd/avatar/default/36x54/188.png
index e4ff0542..449d9a79 100644
Binary files a/resources/osd/avatar/default/36x54/188.png and b/resources/osd/avatar/default/36x54/188.png differ
diff --git a/resources/osd/avatar/default/36x54/189.png b/resources/osd/avatar/default/36x54/189.png
index 81802654..bb83796c 100644
Binary files a/resources/osd/avatar/default/36x54/189.png and b/resources/osd/avatar/default/36x54/189.png differ
diff --git a/resources/osd/avatar/default/36x54/190.png b/resources/osd/avatar/default/36x54/190.png
index c69e9cad..7aebf03d 100644
Binary files a/resources/osd/avatar/default/36x54/190.png and b/resources/osd/avatar/default/36x54/190.png differ
diff --git a/resources/osd/avatar/default/36x54/191.png b/resources/osd/avatar/default/36x54/191.png
index c099ab27..738cb5e1 100644
Binary files a/resources/osd/avatar/default/36x54/191.png and b/resources/osd/avatar/default/36x54/191.png differ
diff --git a/resources/osd/avatar/default/36x54/192.png b/resources/osd/avatar/default/36x54/192.png
index 8ca00784..29ef91c4 100644
Binary files a/resources/osd/avatar/default/36x54/192.png and b/resources/osd/avatar/default/36x54/192.png differ
diff --git a/resources/osd/avatar/default/36x54/193.png b/resources/osd/avatar/default/36x54/193.png
index 11957a7b..7238c00f 100644
Binary files a/resources/osd/avatar/default/36x54/193.png and b/resources/osd/avatar/default/36x54/193.png differ
diff --git a/resources/osd/avatar/default/36x54/194.png b/resources/osd/avatar/default/36x54/194.png
index 5464d4e5..095a4432 100644
Binary files a/resources/osd/avatar/default/36x54/194.png and b/resources/osd/avatar/default/36x54/194.png differ
diff --git a/resources/osd/avatar/default/36x54/195.png b/resources/osd/avatar/default/36x54/195.png
index 7baef063..d14cd47f 100644
Binary files a/resources/osd/avatar/default/36x54/195.png and b/resources/osd/avatar/default/36x54/195.png differ
diff --git a/resources/osd/avatar/default/36x54/196.png b/resources/osd/avatar/default/36x54/196.png
index 1d12030c..34b3e3ef 100644
Binary files a/resources/osd/avatar/default/36x54/196.png and b/resources/osd/avatar/default/36x54/196.png differ
diff --git a/resources/osd/avatar/default/36x54/197.png b/resources/osd/avatar/default/36x54/197.png
index 7a52e154..c0239aca 100644
Binary files a/resources/osd/avatar/default/36x54/197.png and b/resources/osd/avatar/default/36x54/197.png differ
diff --git a/resources/osd/avatar/default/36x54/198.png b/resources/osd/avatar/default/36x54/198.png
index 180183f1..a1e56363 100644
Binary files a/resources/osd/avatar/default/36x54/198.png and b/resources/osd/avatar/default/36x54/198.png differ
diff --git a/resources/osd/avatar/default/36x54/199.png b/resources/osd/avatar/default/36x54/199.png
index 8d94b5f8..123abdfb 100644
Binary files a/resources/osd/avatar/default/36x54/199.png and b/resources/osd/avatar/default/36x54/199.png differ
diff --git a/resources/osd/avatar/default/36x54/200.png b/resources/osd/avatar/default/36x54/200.png
index 162d6d8c..c69589be 100644
Binary files a/resources/osd/avatar/default/36x54/200.png and b/resources/osd/avatar/default/36x54/200.png differ
diff --git a/resources/osd/avatar/default/36x54/201.png b/resources/osd/avatar/default/36x54/201.png
index 15cd18d5..eb820a90 100644
Binary files a/resources/osd/avatar/default/36x54/201.png and b/resources/osd/avatar/default/36x54/201.png differ
diff --git a/resources/osd/avatar/default/36x54/202.png b/resources/osd/avatar/default/36x54/202.png
index 8769f391..69299fcf 100644
Binary files a/resources/osd/avatar/default/36x54/202.png and b/resources/osd/avatar/default/36x54/202.png differ
diff --git a/resources/osd/avatar/default/36x54/203.png b/resources/osd/avatar/default/36x54/203.png
index c0e02dd3..408a43f4 100644
Binary files a/resources/osd/avatar/default/36x54/203.png and b/resources/osd/avatar/default/36x54/203.png differ
diff --git a/resources/osd/avatar/default/36x54/204.png b/resources/osd/avatar/default/36x54/204.png
index d6f083fe..72e4559e 100644
Binary files a/resources/osd/avatar/default/36x54/204.png and b/resources/osd/avatar/default/36x54/204.png differ
diff --git a/resources/osd/avatar/default/36x54/205.png b/resources/osd/avatar/default/36x54/205.png
index 957ef352..85a8fb6c 100644
Binary files a/resources/osd/avatar/default/36x54/205.png and b/resources/osd/avatar/default/36x54/205.png differ
diff --git a/resources/osd/avatar/default/36x54/207.png b/resources/osd/avatar/default/36x54/207.png
index 13bd1777..875032ef 100644
Binary files a/resources/osd/avatar/default/36x54/207.png and b/resources/osd/avatar/default/36x54/207.png differ
diff --git a/resources/osd/avatar/default/36x54/209.png b/resources/osd/avatar/default/36x54/209.png
index c3e632ac..c30bcc40 100644
Binary files a/resources/osd/avatar/default/36x54/209.png and b/resources/osd/avatar/default/36x54/209.png differ
diff --git a/resources/osd/avatar/default/36x54/251.png b/resources/osd/avatar/default/36x54/251.png
index c7f92773..89bd226f 100644
Binary files a/resources/osd/avatar/default/36x54/251.png and b/resources/osd/avatar/default/36x54/251.png differ
diff --git a/resources/osd/avatar/default/36x54/252.png b/resources/osd/avatar/default/36x54/252.png
index d2888e3c..490d643d 100644
Binary files a/resources/osd/avatar/default/36x54/252.png and b/resources/osd/avatar/default/36x54/252.png differ
diff --git a/resources/osd/avatar/default/36x54/302.png b/resources/osd/avatar/default/36x54/302.png
index 388f7ffe..a5c9dc53 100644
Binary files a/resources/osd/avatar/default/36x54/302.png and b/resources/osd/avatar/default/36x54/302.png differ
diff --git a/resources/osd/avatar/default/36x54/303.png b/resources/osd/avatar/default/36x54/303.png
index 16430cbc..aab14995 100644
Binary files a/resources/osd/avatar/default/36x54/303.png and b/resources/osd/avatar/default/36x54/303.png differ
diff --git a/resources/osd/avatar/default/36x54/304.png b/resources/osd/avatar/default/36x54/304.png
index 530afcb6..e26a0221 100644
Binary files a/resources/osd/avatar/default/36x54/304.png and b/resources/osd/avatar/default/36x54/304.png differ
diff --git a/resources/osd/avatar/default/36x54/305.png b/resources/osd/avatar/default/36x54/305.png
index b86fcc4b..5a964969 100644
Binary files a/resources/osd/avatar/default/36x54/305.png and b/resources/osd/avatar/default/36x54/305.png differ
diff --git a/resources/osd/avatar/default/36x54/306.png b/resources/osd/avatar/default/36x54/306.png
index dd109ab1..45a220aa 100644
Binary files a/resources/osd/avatar/default/36x54/306.png and b/resources/osd/avatar/default/36x54/306.png differ
diff --git a/resources/osd/avatar/default/36x54/307.png b/resources/osd/avatar/default/36x54/307.png
index 7654ead0..2f0cb1ae 100644
Binary files a/resources/osd/avatar/default/36x54/307.png and b/resources/osd/avatar/default/36x54/307.png differ
diff --git a/resources/osd/avatar/default/36x54/352.png b/resources/osd/avatar/default/36x54/352.png
index 517079d0..c2508e73 100644
Binary files a/resources/osd/avatar/default/36x54/352.png and b/resources/osd/avatar/default/36x54/352.png differ
diff --git a/src/css/tabs/auxiliary.css b/src/css/tabs/auxiliary.css
index 86ff9acf..724f6758 100644
--- a/src/css/tabs/auxiliary.css
+++ b/src/css/tabs/auxiliary.css
@@ -81,18 +81,22 @@
background-color: #e4e4e4;
border-bottom: 5px solid white;
color: grey;
- min-width: 100px;
+ height: 85px;
+ width: 130px;
+ padding: 0px 5px;
}
.tab-auxiliary .mode .info .name {
font-weight: bold;
font-size: 1.0em;
+ padding-bottom: 5px;
}
.tab-auxiliary .mode .info .buttons {
position: absolute;
bottom: 14px;
width: 100%;
+ margin-left:-5px;
}
.tab-auxiliary .mode .info .buttons a {
diff --git a/src/css/tabs/firmware_flasher.css b/src/css/tabs/firmware_flasher.css
index ec488163..a57bf456 100644
--- a/src/css/tabs/firmware_flasher.css
+++ b/src/css/tabs/firmware_flasher.css
@@ -49,6 +49,11 @@
-webkit-appearance: none;
}
+.tab-firmware_flasher .autoselect_description {
+ margin-left: 10px;
+ line-height: 25px;
+}
+
/*noinspection ALL*/
.tab-firmware_flasher .info .progress::-webkit-progress-bar {
background-color: #4f4f4f;
diff --git a/tabs/adjustments.html b/tabs/adjustments.html
index 03769f7d..6cc87d6a 100644
--- a/tabs/adjustments.html
+++ b/tabs/adjustments.html
@@ -81,7 +81,7 @@
-
+
@@ -103,7 +103,7 @@
-
+
@@ -112,7 +112,7 @@
-
+
@@ -130,9 +130,10 @@
-
+
-
+
+
diff --git a/tabs/advanced_tuning.html b/tabs/advanced_tuning.html
index eaa1ded0..e1a81a4c 100644
--- a/tabs/advanced_tuning.html
+++ b/tabs/advanced_tuning.html
@@ -15,33 +15,16 @@
-
-
-
-
-
-
+
diff --git a/tabs/auxiliary.js b/tabs/auxiliary.js
index 7e497d00..7d38f164 100644
--- a/tabs/auxiliary.js
+++ b/tabs/auxiliary.js
@@ -18,7 +18,15 @@ TABS.auxiliary.initialize = function (callback) {
}
function get_rc_data() {
- MSP.send_message(MSPCodes.MSP_RC, false, false, load_html);
+ if (SERIAL_CONFIG.ports.length == 0) {
+ MSP.send_message(MSPCodes.MSP_RC, false, false, get_ports_data);
+ } else {
+ MSP.send_message(MSPCodes.MSP_RC, false, false, load_html);
+ }
+ }
+
+ function get_ports_data() {
+ MSP.send_message(MSPCodes.MSP2_CF_SERIAL_CONFIG, false, false, load_html);
}
function load_html() {
@@ -33,12 +41,12 @@ TABS.auxiliary.initialize = function (callback) {
modeSections["Arming"] = ["ARM", "PREARM"];
modeSections["Flight Modes"] = ["ANGLE", "HORIZON", "MANUAL"];
modeSections["Navigation Modes"] = ["NAV COURSE HOLD", "NAV CRUISE", "NAV POSHOLD", "NAV RTH", "NAV WP", "GCS NAV"];
- modeSections["Flight Mode Modifiers"] = ["NAV ALTHOLD", "HEADING HOLD", "AIR MODE", "SOARING", "SURFACE"];
- modeSections["Fixed Wing"] = ["AUTO TUNE", "SERVO AUTOTRIM", "AUTO LEVEL", "NAV LAUNCH", "LOITER CHANGE", "FLAPERON", "TURN ASSIST"];
+ modeSections["Flight Mode Modifiers"] = ["NAV ALTHOLD", "HEADING HOLD", "AIR MODE", "SOARING", "SURFACE", "TURN ASSIST"];
+ modeSections["Fixed Wing"] = ["AUTO TUNE", "SERVO AUTOTRIM", "AUTO LEVEL", "NAV LAUNCH", "LOITER CHANGE", "FLAPERON"];
modeSections["Multi-rotor"] = ["FPV ANGLE MIX", "TURTLE", "MC BRAKING", "HEADFREE", "HEADADJ"];
modeSections["OSD Modes"] = ["OSD OFF", "OSD ALT 1", "OSD ALT 2", "OSD ALT 3"];
modeSections["FPV Camera Modes"] = ["CAMSTAB", "CAMERA CONTROL 1", "CAMERA CONTROL 2", "CAMERA CONTROL 3"];
- modeSections["Misc Modes"] = ["BEEPER", "LEDS OFF", "LIGHTS", "HOME RESET", "WP PLANNER", "BLACKBOX", "FAILSAFE", "KILLSWITCH", "TELEMETRY", "MSP RC OVERRIDE", "USER1", "USER2", "USER3", "USER4"];
+ modeSections["Misc Modes"] = ["BEEPER", "LEDS OFF", "LIGHTS", "HOME RESET", "WP PLANNER", "MISSION CHANGE", "BLACKBOX", "FAILSAFE", "KILLSWITCH", "TELEMETRY", "MSP RC OVERRIDE", "USER1", "USER2", "USER3", "USER4"];
function sort_modes_for_display() {
// Sort the modes
@@ -49,7 +57,7 @@ TABS.auxiliary.initialize = function (callback) {
for (i=0; i
Loading ...
-
+
+
diff --git a/tabs/firmware_flasher.js b/tabs/firmware_flasher.js
index 21529e45..485a6753 100755
--- a/tabs/firmware_flasher.js
+++ b/tabs/firmware_flasher.js
@@ -50,8 +50,17 @@ TABS.firmware_flasher.initialize = function (callback) {
};
}
- $('input.show_development_releases').click(function(){
+ $('input.show_development_releases').click(function() {
+ let selectedTarget = String($('select[name="board"]').val());
+ GUI.log("selected target = " + selectedTarget);
buildBoardOptions();
+ GUI.log("toggled RCs");
+ if (selectedTarget === "0") {
+ TABS.firmware_flasher.getTarget();
+ } else {
+ $('select[name="board"] option[value=' + selectedTarget + ']').attr("selected", "selected");
+ $('select[name="board"]').change();
+ }
});
$('.target_search').on('input', function(){
@@ -74,10 +83,10 @@ TABS.firmware_flasher.initialize = function (callback) {
var buildBoardOptions = function(){
var boards_e = $('select[name="board"]').empty();
- var showDevReleases = ($('input.show_development_releases').is(':checked'));
- boards_e.append($("{0} ".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectBoard'))));
-
var versions_e = $('select[name="firmware_version"]').empty();
+ var showDevReleases = ($('input.show_development_releases').is(':checked'));
+
+ boards_e.append($("{0} ".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectBoard'))));
versions_e.append($("{0} ".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion'))));
var releases = {};
@@ -140,6 +149,7 @@ TABS.firmware_flasher.initialize = function (callback) {
releases[result.target].push(descriptor);
});
});
+
var selectTargets = [];
Object.keys(releases)
.sort()
@@ -158,6 +168,7 @@ TABS.firmware_flasher.initialize = function (callback) {
});
});
TABS.firmware_flasher.releases = releases;
+ return;
};
$.get('https://api.github.com/repos/iNavFlight/inav/releases?per_page=10', function (releasesData){
@@ -198,11 +209,15 @@ TABS.firmware_flasher.initialize = function (callback) {
}
});
+ $('a.auto_select_target').removeClass('disabled');
+ TABS.firmware_flasher.getTarget();
}).fail(function (data){
if (data["responseJSON"]){
GUI.log("GITHUB Query Failed: {0}
".format(data["responseJSON"].message));
}
- $('select[name="release"]').empty().append('Offline ');
+ $('select[name="board"]').empty().append('Offline ');
+ $('select[name="firmware_version"]').empty().append('Offline ');
+ $('a.auto_select_target').addClass('disabled');
});
$('a.load_file').on('click', function () {
@@ -561,6 +576,10 @@ TABS.firmware_flasher.initialize = function (callback) {
}
});
+ $('a.auto_select_target').click(function () {
+ TABS.firmware_flasher.getTarget();
+ });
+
GUI.content_ready(callback);
});
};
@@ -614,3 +633,133 @@ TABS.firmware_flasher.cleanup = function (callback) {
if (callback) callback();
};
+
+TABS.firmware_flasher.getTarget = function() {
+ GUI.log("Attempting automatic target selection");
+
+ var selected_baud = parseInt($('#baud').val());
+ var selected_port = $('#port').find('option:selected').data().isManual ? $('#port-override').val() : String($('#port').val());
+
+ if (selected_port !== 'DFU') {
+ if (selected_port == '0') {
+ GUI.log("Cannot prefetch target: No port");
+ } else {
+ console.log('Connecting to: ' + selected_port);
+ GUI.connecting_to = selected_port;
+
+ if (selected_port == 'tcp' || selected_port == 'udp') {
+ CONFIGURATOR.connection.connect($portOverride.val(), {}, TABS.firmware_flasher.onOpen);
+ } else {
+ CONFIGURATOR.connection.connect(selected_port, {bitrate: selected_baud}, TABS.firmware_flasher.onOpen);
+ }
+ }
+ } else {
+ GUI.log("Cannot prefetch target: Flight Controller in DFU");
+ }
+};
+
+TABS.firmware_flasher.onOpen = function(openInfo) {
+ if (openInfo) {
+ GUI.connected_to = GUI.connecting_to;
+
+ // reset connecting_to
+ GUI.connecting_to = false;
+
+ // save selected port with chrome.storage if the port differs
+ chrome.storage.local.get('last_used_port', function (result) {
+ if (result.last_used_port) {
+ if (result.last_used_port != GUI.connected_to) {
+ // last used port doesn't match the one found in local db, we will store the new one
+ chrome.storage.local.set({'last_used_port': GUI.connected_to});
+ }
+ } else {
+ // variable isn't stored yet, saving
+ chrome.storage.local.set({'last_used_port': GUI.connected_to});
+ }
+ });
+
+ chrome.storage.local.set({last_used_bps: CONFIGURATOR.connection.bitrate});
+ chrome.storage.local.set({wireless_mode_enabled: $('#wireless-mode').is(":checked")});
+
+ CONFIGURATOR.connection.addOnReceiveListener(read_serial);
+
+ // disconnect after 10 seconds with error if we don't get IDENT data
+ helper.timeout.add('connecting', function () {
+ if (!CONFIGURATOR.connectionValid) {
+ GUI.log("Cannot prefetch target: " + chrome.i18n.getMessage('noConfigurationReceived'));
+
+ TABS.firmware_flasher.closeTempConnection();
+ }
+ }, 10000);
+
+ FC.resetState();
+
+ // request configuration data. Start with MSPv1 and
+ // upgrade to MSPv2 if possible.
+ MSP.protocolVersion = MSP.constants.PROTOCOL_V2;
+ MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, function () {
+
+ if (CONFIG.apiVersion === "0.0.0") {
+ GUI_control.prototype.log("Cannot prefetch target: " + chrome.i18n.getMessage("illegalStateRestartRequired") + " ");
+ FC.restartRequired = true;
+ return;
+ }
+
+ MSP.send_message(MSPCodes.MSP_FC_VARIANT, false, false, function () {
+ if (CONFIG.flightControllerIdentifier == 'INAV') {
+ MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function () {
+ if (semver.gte(CONFIG.flightControllerVersion, CONFIGURATOR.minfirmwareVersionAccepted) && semver.lt(CONFIG.flightControllerVersion, CONFIGURATOR.maxFirmwareVersionAccepted)) {
+ if (CONFIGURATOR.connection.type == ConnectionType.BLE && semver.lt(CONFIG.flightControllerVersion, "5.0.0")) {
+ onBleNotSupported();
+ } else {
+ mspHelper.getCraftName(function(name) {
+ if (name) {
+ CONFIG.name = name;
+ }
+ TABS.firmware_flasher.onValidFirmware();
+ });
+ }
+ } else {
+ onInvalidFirmwareVersion();
+ }
+ });
+ } else {
+ GUI.log("Cannot prefetch target: Non-INAV Firmware");
+ onInvalidFirmwareVariant();
+ }
+ });
+ });
+ } else {
+ GUI.log("Cannot prefetch target: " + chrome.i18n.getMessage('serialPortOpenFail'));
+ return;
+ }
+};
+
+TABS.firmware_flasher.onValidFirmware = function() {
+ MSP.send_message(MSPCodes.MSP_BUILD_INFO, false, false, function () {
+ MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, function () {
+ $('select[name="board"] option[value=' + CONFIG.target + ']').attr("selected", "selected");
+ GUI.log("Target prefetch successful: " + CONFIG.target);
+
+ TABS.firmware_flasher.closeTempConnection();
+ $('select[name="board"]').change();
+ });
+ });
+};
+
+TABS.firmware_flasher.closeTempConnection = function() {
+ helper.timeout.killAll();
+ helper.interval.killAll(['global_data_refresh', 'msp-load-update']);
+ helper.mspBalancedInterval.flush();
+
+ helper.mspQueue.flush();
+ helper.mspQueue.freeHardLock();
+ helper.mspQueue.freeSoftLock();
+ CONFIGURATOR.connection.emptyOutputBuffer();
+
+ CONFIGURATOR.connectionValid = false;
+ GUI.connected_to = false;
+
+ CONFIGURATOR.connection.disconnect(onClosed);
+ MSP.disconnect_cleanup();
+};
\ No newline at end of file
diff --git a/tabs/mission_control.html b/tabs/mission_control.html
index aeda5ef1..508da5d2 100644
--- a/tabs/mission_control.html
+++ b/tabs/mission_control.html
@@ -156,8 +156,8 @@
-
+
N/A
diff --git a/tabs/mixer.js b/tabs/mixer.js
index 8494b974..c6b0fb05 100644
--- a/tabs/mixer.js
+++ b/tabs/mixer.js
@@ -301,6 +301,7 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
function () {
servoRule.setConditionId($(this).val());
},
+ true,
true
);
diff --git a/tabs/osd.html b/tabs/osd.html
index f2de7a6a..389ded66 100644
--- a/tabs/osd.html
+++ b/tabs/osd.html
@@ -248,7 +248,7 @@
-
+
diff --git a/tabs/osd.js b/tabs/osd.js
index 327b6581..44bd89d3 100644
--- a/tabs/osd.js
+++ b/tabs/osd.js
@@ -502,6 +502,7 @@ OSD.DjiElements = {
"Timers",
"VTX",
"CRSF",
+ "SwitchIndicators",
"GVars",
"PIDs",
"PIDOutputs",
@@ -1882,6 +1883,11 @@ OSD.constants = {
id: 135,
preview: 'LEVEL ' + FONT.embed_dot('5.4')
},
+ {
+ name: 'MISSION_INDEX',
+ id: 139,
+ preview: 'WP NO 7'
+ },
]
},
{
@@ -2052,7 +2058,7 @@ OSD.updateDisplaySize = function () {
var item = OSD.msp.helpers.unpack.position(origPos[jj]);
// leave element alone if outside of screen (enable and disable element to relocate to 0,0)
if (item.x < OSD.data.display_size.x && item.y < OSD.data.display_size.y) {
- items[jj] = item;
+ items[jj] = item;
}
}
}
@@ -2617,6 +2623,8 @@ OSD.GUI.updateDjiView = function(on) {
$(element).hide();
}
});
+
+ $('.switch-indicator-container').hide();
} else {
$(OSD.DjiElements.emptyGroups).each(function(index, groupName) {
$('#osdGroup' + groupName).show();
@@ -2629,6 +2637,8 @@ OSD.GUI.updateDjiView = function(on) {
$('.settings-container, .alarms-container').find('.settings').children()
.show()
.removeClass('no-bottom');
+
+ $('.switch-indicator-container').show();
}
OSD.GUI.updateDjiMessageElements($('#useCraftnameForMessages').is(':checked'));
};
@@ -3121,7 +3131,7 @@ function updateCraftName() {
for (let si = 0; si < generalGroup.items.length; si++) {
if (generalGroup.items[si].name == "CRAFT_NAME") {
let craftNameText = $('#craft_name').val();
-
+
if (craftNameText == "") {
generalGroup.items[si].preview = "CRAFT_NAME";
} else {
diff --git a/tabs/outputs.html b/tabs/outputs.html
index 6898a7a0..b19f953f 100644
--- a/tabs/outputs.html
+++ b/tabs/outputs.html
@@ -52,6 +52,14 @@
+
+
@@ -86,6 +94,7 @@
+
diff --git a/tabs/pid_tuning.html b/tabs/pid_tuning.html
index eb2dd329..0f1fafb6 100644
--- a/tabs/pid_tuning.html
+++ b/tabs/pid_tuning.html
@@ -496,7 +496,7 @@
-
+
diff --git a/tabs/ports.js b/tabs/ports.js
index af923652..f6320ed9 100644
--- a/tabs/ports.js
+++ b/tabs/ports.js
@@ -94,7 +94,7 @@ TABS.ports.initialize = function (callback) {
);
functionRules.push({
- name: 'HDZERO_VTX',
+ name: 'MSP_DISPLAYPORT',
groups: ['peripherals'],
maxPorts: 1 }
);
diff --git a/tabs/programming.js b/tabs/programming.js
index 6c22c85b..8114b913 100644
--- a/tabs/programming.js
+++ b/tabs/programming.js
@@ -40,7 +40,6 @@ TABS.programming.initialize = function (callback, scrollPosition) {
}
function processHtml() {
-
LOGIC_CONDITIONS.init($('#subtab-lc'));
LOGIC_CONDITIONS.render();