From b69bab33b2d04b933674f5f126b51e3a978542db Mon Sep 17 00:00:00 2001 From: borisbstyle Date: Sun, 16 Aug 2015 23:25:16 +0200 Subject: [PATCH] Configurable RC Smoothing --- src/main/config/config.c | 1 + src/main/io/serial_cli.c | 1 + src/main/mw.c | 4 +++- src/main/rx/rx.h | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/config/config.c b/src/main/config/config.c index 6764ad4abd..3f615ecf5c 100755 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -414,6 +414,7 @@ static void resetConf(void) masterConfig.rxConfig.rssi_channel = 0; masterConfig.rxConfig.rssi_scale = RSSI_SCALE_DEFAULT; masterConfig.rxConfig.rssi_ppm_invert = 0; + masterConfig.rxConfig.rcSmoothing = 1; resetAllRxChannelRangeConfigurations(masterConfig.rxConfig.channelRanges); diff --git a/src/main/io/serial_cli.c b/src/main/io/serial_cli.c index eddbf960af..fbc6ca197b 100644 --- a/src/main/io/serial_cli.c +++ b/src/main/io/serial_cli.c @@ -316,6 +316,7 @@ const clivalue_t valueTable[] = { { "rssi_channel", VAR_INT8 | MASTER_VALUE, &masterConfig.rxConfig.rssi_channel, 0, MAX_SUPPORTED_RC_CHANNEL_COUNT }, { "rssi_scale", VAR_UINT8 | MASTER_VALUE, &masterConfig.rxConfig.rssi_scale, RSSI_SCALE_MIN, RSSI_SCALE_MAX }, { "rssi_ppm_invert", VAR_INT8 | MASTER_VALUE, &masterConfig.rxConfig.rssi_ppm_invert, 0, 1 }, + { "rc_smoothing", VAR_INT8 | MASTER_VALUE, &masterConfig.rxConfig.rcSmoothing, 0, 1 }, { "input_filtering_mode", VAR_INT8 | MASTER_VALUE, &masterConfig.inputFilteringMode, 0, 1 }, { "min_throttle", VAR_UINT16 | MASTER_VALUE, &masterConfig.escAndServoConfig.minthrottle, PWM_RANGE_ZERO, PWM_RANGE_MAX }, diff --git a/src/main/mw.c b/src/main/mw.c index 708dc006ab..5fc1e4159f 100644 --- a/src/main/mw.c +++ b/src/main/mw.c @@ -857,7 +857,9 @@ void loop(void) } } - filterRc(); + if (masterConfig.rxConfig.rcSmoothing) { + filterRc(); + } annexCode(); #if defined(BARO) || defined(SONAR) diff --git a/src/main/rx/rx.h b/src/main/rx/rx.h index 7ab45f1066..058c3b0897 100644 --- a/src/main/rx/rx.h +++ b/src/main/rx/rx.h @@ -106,6 +106,7 @@ typedef struct rxConfig_s { uint8_t rssi_channel; uint8_t rssi_scale; uint8_t rssi_ppm_invert; + uint8_t rcSmoothing; // Enable/Disable RC filtering uint16_t midrc; // Some radios have not a neutral point centered on 1500. can be changed here uint16_t mincheck; // minimum rc end uint16_t maxcheck; // maximum rc end