Flysky fs-I6 noise

Hello

I'm working on a ground rover with an arduino mega and a fs-i6 remote controller and receiver. The idea is for the rover to be able to swap between manual control and autonomous navigation when a switch is flipped on the controller, but i've noticed the flysky is generating a lot of noise that causes the rover to shudder when idle, and it interferes with the auto drive (makes turns and driving stop short). This happens regardless of if my code is actively taking commands from the flysky, but doesn't happen when the ibusRC serial isn't initialized. Any ideas on what might be causing this?

Also I'm using a sabertooth 2x32 motor controller

I've used these with no problem. In projects anyone might look at and say I'd never get away with…

Have you confirmed that the control signals are getting through with tests that did not have anything else (motors, servos and so forth) attached? Just receive and print.

It sounds like an electrical noise issue, please post a schematic and a few pictures of your project. Wiring and lead dress and power supplies and that kind of thing is more likely to be where your problems are.

a7

Not sure how to confirm the signals have nothing attached, I can attach the code I've been testing.

Can't post pictures of the project sadly, it's for work and they're pretty strict about that.

// Copyright (c) 2012 Dimension Engineering LLC
// See license.txt for license details.

#include <Servo.h>
#include <IBusBM.h>

IBusBM ibusRc;
HardwareSerial& ibusRcSerial = Serial1;

Servo ST1, ST2;  // We'll name the Sabertooth servo channel objects ST1 and ST2.
                 // For how to configure the Sabertooth, see the DIP Switch Wizard for
                 //   http://www.dimensionengineering.com/datasheets/SabertoothDIPWizard/start.htm
                 // Be sure to select RC Microcontroller Mode for use with this sample.
                 //
                 // Connections to make:
                 //   Arduino Pin 9  ->  Sabertooth S1
                 //   Arduino Pin 10 ->  Sabertooth S2
                 //   Arduino GND    ->  Sabertooth 0V
                 //   Arduino VIN    ->  Sabertooth 5V (OPTIONAL, if you want the Sabertooth to power the Arduino)
                 //
                 // Sabertooth accepts servo pulses from 1000 us to 2000 us.
                 // We need to specify the pulse widths in attach(). 0 degrees will be full reverse, 180 degrees will be
                 // full forward. Sending a servo command of 90 will stop the motor. Whether the servo pulses control
                 // the motors individually or control throttle and turning depends on your mixed mode setting.

// Notice these attach() calls. The second and third arguments are important.
// With a single argument, the range is 44 to 141 degrees, with 92 being stopped.
// With all three arguments, we can use 0 to 180 degrees, with 90 being stopped.
void setup() {
  ST1.attach(9, 1000, 2000);
  ST2.attach(10, 1000, 2000);
  Serial.begin(9600);
  //ibusRc.begin(ibusRcSerial);
}



void loop() {
  // put your main code here, to run repeatedly:
    ST1.write(180);
    delay(3000);
  
    ST1.write(90);
    delay(5000);
}

type or paste code here

IbusSerial is commented out for testing, usually it's on. When it's active I notice the shuddering.

That's too bad. You will enjoy retirement!

Confirm the signals by receiving them, printing them to the serial monitor and looking to see if they are plausible and well-behaved.

With all the motor stuff disconnected.

a7

Signals look the same with or without the motors connected. Also when the controller on and then turned off, it still repeats the same signals. I'd thought it was the receiver's failsafe kicking in but I turned it off in the controller's menu and it's still going.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.