diff --git a/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.cpp b/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.cpp
index 838a3c2ac..fa8f17d03 100644
--- a/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.cpp
+++ b/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.cpp
@@ -82,8 +82,8 @@ void OutputCalibrationPage::setupActuatorMinMaxAndNeutral(int motorChannelStart,
for (int servoid = 0; servoid < 12; servoid++) {
if (servoid >= motorChannelStart && servoid <= motorChannelEnd) {
// Set to motor safe values
- m_actuatorSettings[servoid].channelMin = LOW_OUTPUT_RATE_MILLISECONDS;
- m_actuatorSettings[servoid].channelNeutral = LOW_OUTPUT_RATE_MILLISECONDS;
+ m_actuatorSettings[servoid].channelMin = getLowOutputRate();
+ m_actuatorSettings[servoid].channelNeutral = getLowOutputRate();
m_actuatorSettings[servoid].channelMax = getHighOutputRate();
m_actuatorSettings[servoid].isReversableMotor = false;
// Car, Tank, Boat and Boat differential should use reversable Esc/motors
@@ -91,25 +91,25 @@ void OutputCalibrationPage::setupActuatorMinMaxAndNeutral(int motorChannelStart,
|| (getWizard()->getVehicleSubType() == SetupWizard::GROUNDVEHICLE_DIFFERENTIAL)
|| (getWizard()->getVehicleSubType() == SetupWizard::GROUNDVEHICLE_BOAT)
|| (getWizard()->getVehicleSubType() == SetupWizard::GROUNDVEHICLE_DIFFERENTIAL_BOAT)) {
- m_actuatorSettings[servoid].channelNeutral = NEUTRAL_OUTPUT_RATE_MILLISECONDS;
+ m_actuatorSettings[servoid].channelNeutral = NEUTRAL_OUTPUT_RATE_MS;
m_actuatorSettings[servoid].isReversableMotor = true;
- // Set initial output value
- m_calibrationUtil->startChannelOutput(servoid, NEUTRAL_OUTPUT_RATE_MILLISECONDS);
- m_calibrationUtil->stopChannelOutput();
}
+ // Set initial output value
+ m_calibrationUtil->startChannelOutput(servoid, m_actuatorSettings[servoid].channelNeutral);
+ m_calibrationUtil->stopChannelOutput();
} else if (servoid < totalUsedChannels) {
// Set to servo safe values
- m_actuatorSettings[servoid].channelMin = NEUTRAL_OUTPUT_RATE_MILLISECONDS;
- m_actuatorSettings[servoid].channelNeutral = NEUTRAL_OUTPUT_RATE_MILLISECONDS;
- m_actuatorSettings[servoid].channelMax = NEUTRAL_OUTPUT_RATE_MILLISECONDS;
+ m_actuatorSettings[servoid].channelMin = NEUTRAL_OUTPUT_RATE_MS;
+ m_actuatorSettings[servoid].channelNeutral = NEUTRAL_OUTPUT_RATE_MS;
+ m_actuatorSettings[servoid].channelMax = NEUTRAL_OUTPUT_RATE_MS;
// Set initial servo output value
- m_calibrationUtil->startChannelOutput(servoid, NEUTRAL_OUTPUT_RATE_MILLISECONDS);
+ m_calibrationUtil->startChannelOutput(servoid, NEUTRAL_OUTPUT_RATE_MS);
m_calibrationUtil->stopChannelOutput();
} else {
// "Disable" these channels
- m_actuatorSettings[servoid].channelMin = LOW_OUTPUT_RATE_MILLISECONDS;
- m_actuatorSettings[servoid].channelNeutral = LOW_OUTPUT_RATE_MILLISECONDS;
- m_actuatorSettings[servoid].channelMax = LOW_OUTPUT_RATE_MILLISECONDS;
+ m_actuatorSettings[servoid].channelMin = LOW_OUTPUT_RATE_MS;
+ m_actuatorSettings[servoid].channelNeutral = LOW_OUTPUT_RATE_MS;
+ m_actuatorSettings[servoid].channelMax = LOW_OUTPUT_RATE_MS;
}
}
}
@@ -466,11 +466,18 @@ void OutputCalibrationPage::setWizardPage()
qDebug() << "Current channel: " << currentChannel + 1;
if (currentChannel >= 0) {
if (currentPageIndex == 1) {
+ // Set Min, Neutral and Max for slider in all cases, needed for DShot.
+ ui->motorNeutralSlider->setMinimum(m_actuatorSettings[currentChannel].channelMin);
ui->motorNeutralSlider->setValue(m_actuatorSettings[currentChannel].channelNeutral);
- ui->motorPWMValue->setText(QString(tr("Output value : %1 µs")).arg(m_actuatorSettings[currentChannel].channelNeutral));
+ ui->motorNeutralSlider->setMaximum(m_actuatorSettings[currentChannel].channelMin + NEUTRAL_OUTPUT_RATE_RANGE);
+ if (ui->motorNeutralSlider->minimum() == LOW_OUTPUT_RATE_DSHOT) {
+ // DShot output
+ ui->motorPWMValue->setText(tr("Digital output value : %1").arg(m_actuatorSettings[currentChannel].channelNeutral));
+ } else {
+ ui->motorPWMValue->setText(tr("Output value : %1 µs").arg(m_actuatorSettings[currentChannel].channelNeutral));
+ }
// Reversable motor found
if (m_actuatorSettings[currentChannel].isReversableMotor) {
- ui->motorNeutralSlider->setMinimum(m_actuatorSettings[currentChannel].channelMin);
ui->motorNeutralSlider->setMaximum(m_actuatorSettings[currentChannel].channelMax);
ui->motorInfo->setText(tr("To find the neutral rate for this reversable motor, press the Start button below and slide the slider to the right or left until you find the value where the motor doesn't start.
When done press button again to stop.
"));
}
@@ -781,10 +788,10 @@ bool OutputCalibrationPage::checkAlarms()
if (data.Alarm[SystemAlarms::ALARM_ACTUATOR] != SystemAlarms::ALARM_OK) {
QMessageBox mbox(this);
- mbox.setText(QString(tr("The actuator module is in an error state.\n\n"
- "Please make sure the correct firmware version is used then "
- "restart the wizard and try again. If the problem persists please "
- "consult the librepilot.org support forum.")));
+ mbox.setText(tr("The actuator module is in an error state.\n\n"
+ "Please make sure the correct firmware version is used then "
+ "restart the wizard and try again. If the problem persists please "
+ "consult the librepilot.org support forum."));
mbox.setStandardButtons(QMessageBox::Ok);
mbox.setIcon(QMessageBox::Critical);
@@ -816,20 +823,40 @@ void OutputCalibrationPage::debugLogChannelValues(bool showFirst)
qDebug() << "ChannelMax : " << m_actuatorSettings[currentChannel].channelMax;
}
+int OutputCalibrationPage::getLowOutputRate()
+{
+ if (getWizard()->getEscType() == VehicleConfigurationSource::ESC_DSHOT150 ||
+ getWizard()->getEscType() == VehicleConfigurationSource::ESC_DSHOT600 ||
+ getWizard()->getEscType() == VehicleConfigurationSource::ESC_DSHOT1200) {
+ return LOW_OUTPUT_RATE_DSHOT;
+ }
+ return LOW_OUTPUT_RATE_PWM_MS;
+}
+
int OutputCalibrationPage::getHighOutputRate()
{
- if (getWizard()->getEscType() == SetupWizard::ESC_ONESHOT) {
- return HIGH_OUTPUT_RATE_MILLISECONDS_ONESHOT125;
- } else {
- return HIGH_OUTPUT_RATE_MILLISECONDS_PWM;
+ if (getWizard()->getEscType() == VehicleConfigurationSource::ESC_ONESHOT125 ||
+ getWizard()->getEscType() == VehicleConfigurationSource::ESC_ONESHOT42 ||
+ getWizard()->getEscType() == VehicleConfigurationSource::ESC_MULTISHOT) {
+ return HIGH_OUTPUT_RATE_ONESHOT_MULTISHOT_MS;
+ } else if (getWizard()->getEscType() == VehicleConfigurationSource::ESC_DSHOT150 ||
+ getWizard()->getEscType() == VehicleConfigurationSource::ESC_DSHOT600 ||
+ getWizard()->getEscType() == VehicleConfigurationSource::ESC_DSHOT1200) {
+ return HIGH_OUTPUT_RATE_DSHOT;
}
+ return HIGH_OUTPUT_RATE_PWM_MS;
}
void OutputCalibrationPage::on_motorNeutralSlider_valueChanged(int value)
{
Q_UNUSED(value);
- ui->motorPWMValue->setText(tr("Output value : %1 µs").arg(value));
+ if (ui->motorNeutralSlider->minimum() == LOW_OUTPUT_RATE_DSHOT) {
+ // DShot output
+ ui->motorPWMValue->setText(tr("Digital output value : %1").arg(value));
+ } else {
+ ui->motorPWMValue->setText(tr("Output value : %1 µs").arg(value));
+ }
if (ui->motorNeutralButton->isChecked()) {
quint16 value = ui->motorNeutralSlider->value();
m_calibrationUtil->setChannelOutputValue(value);
diff --git a/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.h b/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.h
index 13cd2c427..567b5d01e 100644
--- a/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.h
+++ b/ground/gcs/src/plugins/setupwizard/pages/outputcalibrationpage.h
@@ -87,10 +87,14 @@ private slots:
private:
enum ElementType { FULL, FRAME, MOTOR, SERVO };
- static const int LOW_OUTPUT_RATE_MILLISECONDS = 1000;
- static const int NEUTRAL_OUTPUT_RATE_MILLISECONDS = 1500;
- static const int HIGH_OUTPUT_RATE_MILLISECONDS_PWM = 1900;
- static const int HIGH_OUTPUT_RATE_MILLISECONDS_ONESHOT125 = 2000;
+ static const int LOW_OUTPUT_RATE_DSHOT = 0;
+ static const int HIGH_OUTPUT_RATE_DSHOT = 2000;
+ static const int LOW_OUTPUT_RATE_MS = 1000;
+ static const int LOW_OUTPUT_RATE_PWM_MS = 1000;
+ static const int HIGH_OUTPUT_RATE_PWM_MS = 1900;
+ static const int NEUTRAL_OUTPUT_RATE_RANGE = 500;
+ static const int NEUTRAL_OUTPUT_RATE_MS = 1500;
+ static const int HIGH_OUTPUT_RATE_ONESHOT_MULTISHOT_MS = 2000;
void setupVehicle();
void startWizard();
@@ -112,6 +116,7 @@ private:
void getCurrentChannels(QList &channels);
void enableAllMotorsCheckBox(bool enable);
+ int getLowOutputRate();
int getHighOutputRate();
quint16 getCurrentChannel();
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot1200-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot1200-dwn.png
new file mode 100644
index 000000000..0f428c6fe
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot1200-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot1200-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot1200-up.png
new file mode 100644
index 000000000..62f5a1e82
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot1200-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot150-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot150-dwn.png
new file mode 100644
index 000000000..e4f04144c
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot150-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot150-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot150-up.png
new file mode 100644
index 000000000..61e09cf35
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot150-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot600-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot600-dwn.png
new file mode 100644
index 000000000..92f32ab8e
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot600-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot600-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot600-up.png
new file mode 100644
index 000000000..a4d5cac89
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-dshot600-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-ESC-down.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-esc-down.png
similarity index 100%
rename from ground/gcs/src/plugins/setupwizard/resources/bttn-ESC-down.png
rename to ground/gcs/src/plugins/setupwizard/resources/bttn-esc-down.png
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-ESC-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-esc-up.png
similarity index 100%
rename from ground/gcs/src/plugins/setupwizard/resources/bttn-ESC-up.png
rename to ground/gcs/src/plugins/setupwizard/resources/bttn-esc-up.png
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-esc300-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-esc300-dwn.png
new file mode 100644
index 000000000..f3f5aaf04
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-esc300-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-esc300-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-esc300-up.png
new file mode 100644
index 000000000..33a5b5ec3
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-esc300-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-multishot-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-multishot-dwn.png
new file mode 100644
index 000000000..c02edd673
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-multishot-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-multishot-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-multishot-up.png
new file mode 100644
index 000000000..70ee2280c
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-multishot-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-dwn.png
new file mode 100644
index 000000000..965789a57
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-up.png
index aae7e4ef8..161f88932 100644
Binary files a/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-up.png and b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot125-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot42-dwn.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot42-dwn.png
new file mode 100644
index 000000000..a3ceeee59
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot42-dwn.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot42-up.png b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot42-up.png
new file mode 100644
index 000000000..e107d7ba9
Binary files /dev/null and b/ground/gcs/src/plugins/setupwizard/resources/bttn-oneshot42-up.png differ
diff --git a/ground/gcs/src/plugins/setupwizard/setupwizard.cpp b/ground/gcs/src/plugins/setupwizard/setupwizard.cpp
index 5bb2f5833..5a8f46728 100644
--- a/ground/gcs/src/plugins/setupwizard/setupwizard.cpp
+++ b/ground/gcs/src/plugins/setupwizard/setupwizard.cpp
@@ -181,7 +181,10 @@ int SetupWizard::nextId() const
}
case PAGE_BIAS_CALIBRATION:
- if (getVehicleType() == VEHICLE_MULTI) {
+ if ((getVehicleType() == VEHICLE_MULTI) &&
+ (getEscType() != ESC_DSHOT150) &&
+ (getEscType() != ESC_DSHOT600) &&
+ (getEscType() != ESC_DSHOT1200)) {
return PAGE_ESC_CALIBRATION;
} else {
return PAGE_OUTPUT_CALIBRATION;
@@ -414,14 +417,32 @@ QString SetupWizard::getSummaryText()
case ESC_STANDARD:
summary.append(tr("Standard ESC (%1 Hz)").arg(VehicleConfigurationHelper::LEGACY_ESC_FREQUENCY));
break;
+ case ESC_STANDARD300:
+ summary.append(tr("Standard ESC (%1 Hz)").arg(VehicleConfigurationHelper::LEGACY_MULTI_ESC_FREQUENCY));
+ break;
case ESC_RAPID:
summary.append(tr("Rapid ESC (%1 Hz)").arg(VehicleConfigurationHelper::RAPID_ESC_FREQUENCY));
break;
case ESC_SYNCHED:
summary.append(tr("Synched ESC"));
break;
- case ESC_ONESHOT:
- summary.append(tr("Oneshot ESC"));
+ case ESC_ONESHOT125:
+ summary.append(tr("Oneshot125 ESC"));
+ break;
+ case ESC_ONESHOT42:
+ summary.append(tr("Oneshot42 ESC"));
+ break;
+ case ESC_MULTISHOT:
+ summary.append(tr("Multishot ESC"));
+ break;
+ case ESC_DSHOT150:
+ summary.append(tr("Dshot150 ESC"));
+ break;
+ case ESC_DSHOT600:
+ summary.append(tr("Dshot600 ESC"));
+ break;
+ case ESC_DSHOT1200:
+ summary.append(tr("Dshot1200 ESC"));
break;
default:
summary.append(tr("Unknown"));
diff --git a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp
index dd266f6e3..9ae0f840b 100644
--- a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp
+++ b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp
@@ -157,7 +157,9 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
data.CC_RcvrPort = HwSettings::CC_RCVRPORT_PWMNOONESHOT;
break;
case VehicleConfigurationSource::INPUT_PPM:
- if (m_configSource->getEscType() == VehicleConfigurationSource::ESC_ONESHOT ||
+ if (m_configSource->getEscType() == VehicleConfigurationSource::ESC_ONESHOT125 ||
+ m_configSource->getEscType() == VehicleConfigurationSource::ESC_ONESHOT42 ||
+ m_configSource->getEscType() == VehicleConfigurationSource::ESC_MULTISHOT ||
m_configSource->getEscType() == VehicleConfigurationSource::ESC_SYNCHED) {
data.CC_RcvrPort = HwSettings::CC_RCVRPORT_PPM_PIN8ONESHOT;
} else {
@@ -515,6 +517,7 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
ActuatorSettings *actSettings = ActuatorSettings::GetInstance(m_uavoManager);
qint16 escFrequence = LEGACY_ESC_FREQUENCY;
+ qint16 escDShotMode = LEGACY_DSHOT_MODE;
ActuatorSettings::BankModeOptions bankMode = ActuatorSettings::BANKMODE_PWM;
switch (m_configSource->getEscType()) {
@@ -522,6 +525,10 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
escFrequence = LEGACY_ESC_FREQUENCY;
bankMode = ActuatorSettings::BANKMODE_PWM;
break;
+ case VehicleConfigurationSource::ESC_STANDARD300:
+ escFrequence = LEGACY_MULTI_ESC_FREQUENCY;
+ bankMode = ActuatorSettings::BANKMODE_PWM;
+ break;
case VehicleConfigurationSource::ESC_RAPID:
bankMode = ActuatorSettings::BANKMODE_PWM;
escFrequence = RAPID_ESC_FREQUENCY;
@@ -530,9 +537,32 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
bankMode = ActuatorSettings::BANKMODE_PWMSYNC;
escFrequence = PWMSYNC_ESC_FREQUENCY;
break;
- case VehicleConfigurationSource::ESC_ONESHOT:
+ case VehicleConfigurationSource::ESC_ONESHOT125:
bankMode = ActuatorSettings::BANKMODE_ONESHOT125;
- escFrequence = ONESHOT_ESC_FREQUENCY;
+ escFrequence = ESC_FREQUENCY_ZERO;
+ break;
+ case VehicleConfigurationSource::ESC_ONESHOT42:
+ bankMode = ActuatorSettings::BANKMODE_ONESHOT42;
+ escFrequence = ESC_FREQUENCY_ZERO;
+ break;
+ case VehicleConfigurationSource::ESC_MULTISHOT:
+ bankMode = ActuatorSettings::BANKMODE_MULTISHOT;
+ escFrequence = ESC_FREQUENCY_ZERO;
+ break;
+ case VehicleConfigurationSource::ESC_DSHOT150:
+ bankMode = ActuatorSettings::BANKMODE_DSHOT;
+ escFrequence = ESC_FREQUENCY_ZERO;
+ escDShotMode = DSHOT_MODE_150;
+ break;
+ case VehicleConfigurationSource::ESC_DSHOT600:
+ bankMode = ActuatorSettings::BANKMODE_DSHOT;
+ escFrequence = ESC_FREQUENCY_ZERO;
+ // escDShotFrequence = LEGACY_DSHOT_ESC_FREQUENCY;
+ break;
+ case VehicleConfigurationSource::ESC_DSHOT1200:
+ bankMode = ActuatorSettings::BANKMODE_DSHOT;
+ escFrequence = ESC_FREQUENCY_ZERO;
+ escDShotMode = DSHOT_MODE_1200;
break;
default:
break;
@@ -574,6 +604,7 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
switch (m_configSource->getVehicleSubType()) {
case VehicleConfigurationSource::MULTI_ROTOR_TRI_Y:
// Servo always on channel 4
+ data.DShotMode = escDShotMode;
data.BankUpdateFreq[0] = escFrequence;
data.BankMode[0] = bankMode;
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO
@@ -591,6 +622,7 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
break;
case VehicleConfigurationSource::MULTI_ROTOR_QUAD_X:
case VehicleConfigurationSource::MULTI_ROTOR_QUAD_PLUS:
+ data.DShotMode = escDShotMode;
data.BankUpdateFreq[0] = escFrequence;
data.BankMode[0] = bankMode;
data.BankUpdateFreq[1] = escFrequence;
@@ -617,6 +649,7 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
case VehicleConfigurationSource::MULTI_ROTOR_OCTO_COAX_X:
case VehicleConfigurationSource::MULTI_ROTOR_OCTO_COAX_PLUS:
case VehicleConfigurationSource::MULTI_ROTOR_OCTO_V:
+ data.DShotMode = escDShotMode;
data.BankUpdateFreq[0] = escFrequence;
data.BankMode[0] = bankMode;
data.BankUpdateFreq[1] = escFrequence;
diff --git a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.h b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.h
index 31f7707ac..7227ecd96 100644
--- a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.h
+++ b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.h
@@ -61,15 +61,19 @@ public:
VehicleConfigurationHelper(VehicleConfigurationSource *configSource);
bool setupVehicle(bool save = true);
bool setupHardwareSettings(bool save = true);
- static const qint16 LEGACY_ESC_FREQUENCY = 50;
- static const qint16 RAPID_ESC_FREQUENCY = 490;
- static const qint16 PWMSYNC_ESC_FREQUENCY = 0;
- static const qint16 ONESHOT_ESC_FREQUENCY = 0;
- static const qint16 ANALOG_SERVO_FREQUENCY = 50;
- static const qint16 DIGITAL_SERVO_FREQUENCY = 333;
+ static const qint16 LEGACY_ESC_FREQUENCY = 50;
+ static const qint16 LEGACY_MULTI_ESC_FREQUENCY = 300;
+ static const qint16 RAPID_ESC_FREQUENCY = 490;
+ static const qint16 PWMSYNC_ESC_FREQUENCY = 0;
+ static const qint16 ESC_FREQUENCY_ZERO = 0;
+ static const qint16 DSHOT_MODE_150 = 150;
+ static const qint16 LEGACY_DSHOT_MODE = 600;
+ static const qint16 DSHOT_MODE_1200 = 1200;
+ static const qint16 ANALOG_SERVO_FREQUENCY = 50;
+ static const qint16 DIGITAL_SERVO_FREQUENCY = 333;
static const int MIXER_TYPE_NONE = 0;
static const int MIXER_TYPE_MOTOR = 1;
- static const int MIXER_TYPE_REVERSABLEMOTOR = 2;
+ static const int MIXER_TYPE_REVERSABLEMOTOR = 2;
static const int MIXER_TYPE_SERVO = 3;
diff --git a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h
index bb5885364..ee0be765f 100644
--- a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h
+++ b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h
@@ -65,7 +65,7 @@ public:
MULTI_ROTOR_OCTO_X, MULTI_ROTOR_OCTO_V, MULTI_ROTOR_OCTO_COAX_X, MULTI_ROTOR_OCTO_COAX_PLUS,
FIXED_WING_DUAL_AILERON, FIXED_WING_AILERON, FIXED_WING_ELEVON, FIXED_WING_VTAIL, HELI_CCPM,
GROUNDVEHICLE_MOTORCYCLE, GROUNDVEHICLE_CAR, GROUNDVEHICLE_DIFFERENTIAL, GROUNDVEHICLE_BOAT, GROUNDVEHICLE_DIFFERENTIAL_BOAT };
- enum ESC_TYPE { ESC_ONESHOT, ESC_SYNCHED, ESC_RAPID, ESC_STANDARD, ESC_UNKNOWN };
+ enum ESC_TYPE { ESC_DSHOT1200, ESC_DSHOT600, ESC_DSHOT150, ESC_MULTISHOT, ESC_ONESHOT42, ESC_ONESHOT125, ESC_SYNCHED, ESC_RAPID, ESC_STANDARD300, ESC_STANDARD, ESC_UNKNOWN };
enum SERVO_TYPE { SERVO_ANALOG, SERVO_DIGITAL, SERVO_UNKNOWN };
enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSM, INPUT_SRXL, INPUT_HOTT_SUMD, INPUT_EXBUS, INPUT_IBUS, INPUT_UNKNOWN };
enum AIRSPEED_TYPE { AIRSPEED_ESTIMATE, AIRSPEED_EAGLETREE, AIRSPEED_MS4525, AIRSPEED_DISABLED };
diff --git a/ground/gcs/src/plugins/setupwizard/wizardResources.qrc b/ground/gcs/src/plugins/setupwizard/wizardResources.qrc
index dffe4bac9..260b1d157 100644
--- a/ground/gcs/src/plugins/setupwizard/wizardResources.qrc
+++ b/ground/gcs/src/plugins/setupwizard/wizardResources.qrc
@@ -12,8 +12,8 @@
resources/bttn-plane-down.png
resources/bttn-plane-over.png
resources/bttn-plane-up.png
- resources/bttn-ESC-down.png
- resources/bttn-ESC-up.png
+ resources/bttn-esc-down.png
+ resources/bttn-esc-up.png
resources/bttn-ppm-down.png
resources/bttn-ppm-up.png
resources/bttn-pwm-down.png
@@ -52,8 +52,22 @@
resources/bttn-upgrade-up.png
resources/not-connected.png
resources/connected.png
+ resources/bttn-esc300-dwn.png
+ resources/bttn-esc300-up.png
resources/bttn-oneshot-dwn.png
resources/bttn-oneshot-up.png
+ resources/bttn-oneshot125-dwn.png
+ resources/bttn-oneshot125-up.png
+ resources/bttn-oneshot42-dwn.png
+ resources/bttn-oneshot42-up.png
+ resources/bttn-multishot-dwn.png
+ resources/bttn-multishot-up.png
+ resources/bttn-dshot150-dwn.png
+ resources/bttn-dshot150-up.png
+ resources/bttn-dshot600-dwn.png
+ resources/bttn-dshot600-up.png
+ resources/bttn-dshot1200-dwn.png
+ resources/bttn-dshot1200-up.png
resources/bttn-srxl-down.png
resources/bttn-srxl-up.png
resources/bttn-hott-down.png