diff --git a/src/main/config/config.c b/src/main/config/config.c
index 5bcd1e923b..755598e4d7 100755
--- a/src/main/config/config.c
+++ b/src/main/config/config.c
@@ -645,7 +645,13 @@ static void resetConf(void)
masterConfig.blackbox_rate_denom = 1;
#endif // BLACKBOX
-
+
+#ifdef SERIALRX_UART
+ if (featureConfigured(FEATURE_RX_SERIAL)) {
+ masterConfig.serialConfig.portConfigs[SERIALRX_UART].functionMask = FUNCTION_RX_SERIAL;
+ }
+#endif
+
// alternative defaults settings for COLIBRI RACE targets
#if defined(COLIBRI_RACE)
masterConfig.escAndServoConfig.minthrottle = 1025;
@@ -660,11 +666,6 @@ static void resetConf(void)
#if defined(ALIENFLIGHT)
featureClear(FEATURE_ONESHOT125);
-#ifdef ALIENFLIGHTF1
- masterConfig.serialConfig.portConfigs[1].functionMask = FUNCTION_RX_SERIAL;
-#else
- masterConfig.serialConfig.portConfigs[2].functionMask = FUNCTION_RX_SERIAL;
-#endif
#ifdef ALIENFLIGHTF3
masterConfig.mag_hardware = MAG_NONE; // disabled by default
#endif
@@ -688,11 +689,6 @@ static void resetConf(void)
masterConfig.customMotorMixer[7] = (motorMixer_t){ 1.0f, 1.0f, 0.414178f, -1.0f }; // MIDREAR_L#endif
#endif
-#if defined(SINGULARITY)
- // alternative defaults settings for SINGULARITY target
- masterConfig.serialConfig.portConfigs[2].functionMask = FUNCTION_RX_SERIAL;
-#endif
-
// copy first profile into remaining profile
for (int i = 1; i < MAX_PROFILE_COUNT; i++) {
memcpy(&masterConfig.profile[i], currentProfile, sizeof(profile_t));
@@ -901,15 +897,11 @@ void validateAndFixConfig(void)
#if defined(COLIBRI_RACE)
masterConfig.serialConfig.portConfigs[0].functionMask = FUNCTION_MSP;
- if(featureConfigured(FEATURE_RX_PARALLEL_PWM) || featureConfigured(FEATURE_RX_MSP)) {
+ if (featureConfigured(FEATURE_RX_PARALLEL_PWM) || featureConfigured(FEATURE_RX_MSP)) {
featureClear(FEATURE_RX_PARALLEL_PWM);
featureClear(FEATURE_RX_MSP);
featureSet(FEATURE_RX_PPM);
}
- if(featureConfigured(FEATURE_RX_SERIAL)) {
- masterConfig.serialConfig.portConfigs[2].functionMask = FUNCTION_RX_SERIAL;
- //masterConfig.rxConfig.serialrx_provider = SERIALRX_SBUS;
- }
#endif
useRxConfig(&masterConfig.rxConfig);
diff --git a/src/main/target/ALIENFLIGHTF3/target.h b/src/main/target/ALIENFLIGHTF3/target.h
index a5d1b042f3..4cd3d955cb 100644
--- a/src/main/target/ALIENFLIGHTF3/target.h
+++ b/src/main/target/ALIENFLIGHTF3/target.h
@@ -117,7 +117,6 @@
#define USE_ADC
#define ADC_INSTANCE ADC2
-//#define BOARD_HAS_VOLTAGE_DIVIDER
#define VBAT_ADC_PIN PA4
#define VBAT_SCALE_DEFAULT 20
@@ -133,6 +132,7 @@
#define DEFAULT_FEATURES FEATURE_MOTOR_STOP
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
#define SERIALRX_PROVIDER SERIALRX_SPEKTRUM2048
+#define SERIALRX_UART SERIAL_PORT_USART3
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
diff --git a/src/main/target/COLIBRI_RACE/target.h b/src/main/target/COLIBRI_RACE/target.h
index 976b287a05..449a65e26c 100755
--- a/src/main/target/COLIBRI_RACE/target.h
+++ b/src/main/target/COLIBRI_RACE/target.h
@@ -113,7 +113,6 @@
#define USE_ADC
#define ADC_INSTANCE ADC1
-#define BOARD_HAS_VOLTAGE_DIVIDER
#define VBAT_ADC_PIN PC0
#define CURRENT_METER_ADC_PIN PC1
#define RSSI_ADC_PIN PC2
@@ -144,7 +143,10 @@
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW
-#define DEFAULT_RX_FEATURE FEATURE_RX_PPM
+#define DEFAULT_FEATURES FEATURE_VBAT
+#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
+#define SERIALRX_PROVIDER SERIALRX_SBUS
+#define SERIALRX_UART SERIAL_PORT_USART3
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
diff --git a/src/main/target/KISSFC/target.h b/src/main/target/KISSFC/target.h
index 9095ef7013..d5679d6f27 100644
--- a/src/main/target/KISSFC/target.h
+++ b/src/main/target/KISSFC/target.h
@@ -81,7 +81,8 @@
#define DEFAULT_FEATURES FEATURE_VBAT
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
-#define SERIALRX_PROVIDER SERIALRX_SBUS;
+#define SERIALRX_PROVIDER SERIALRX_SBUS
+#define SERIALRX_UART SERIAL_PORT_USART2
#define SPEKTRUM_BIND
#define BIND_PIN PB4
diff --git a/src/main/target/NAZE/target.h b/src/main/target/NAZE/target.h
index df73f8e4f2..1bc1ded34a 100644
--- a/src/main/target/NAZE/target.h
+++ b/src/main/target/NAZE/target.h
@@ -180,6 +180,7 @@
#define DEFAULT_FEATURES FEATURE_MOTOR_STOP
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
#define SERIALRX_PROVIDER SERIALRX_SPEKTRUM2048
+#define SERIALRX_UART SERIAL_PORT_USART2
#define HARDWARE_BIND_PLUG
// Hardware bind plug at PB5 (Pin 41)
diff --git a/src/main/target/OLIMEXINO/target.c b/src/main/target/OLIMEXINO/target.c
index 1b75af4224..ea20267b3c 100644
--- a/src/main/target/OLIMEXINO/target.c
+++ b/src/main/target/OLIMEXINO/target.c
@@ -1,8 +1,24 @@
+/*
+ * This file is part of Cleanflight.
+ *
+ * Cleanflight is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Cleanflight is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Cleanflight. If not, see .
+ */
-#include
#include
#include
+#include "drivers/io.h"
#include "drivers/pwm_mapping.h"
const uint16_t multiPPM[] = {
diff --git a/src/main/target/SINGULARITY/target.h b/src/main/target/SINGULARITY/target.h
index f58dcbe969..814b724205 100644
--- a/src/main/target/SINGULARITY/target.h
+++ b/src/main/target/SINGULARITY/target.h
@@ -91,7 +91,6 @@
#define M25P16_SPI_INSTANCE SPI2
#define USE_ADC
-#define BOARD_HAS_VOLTAGE_DIVIDER
#define ADC_INSTANCE ADC2
#define VBAT_ADC_PIN PB2
@@ -115,8 +114,9 @@
#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT
-#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
-#define DEFAULT_FEATURES FEATURE_BLACKBOX
+#define DEFAULT_FEATURES (FEATURE_VBAT | FEATURE_BLACKBOX)
+#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
+#define SERIALRX_UART SERIAL_PORT_USART3
#define SPEKTRUM_BIND
// USART2, PA15