Do I need an RC input to make the drone fly?

Hey guys, sorry for my stupidity in here, Im pretty new to this ardupilot and drone world, Im trying to make a simple vtol drone for some indoor hovering, and I would like to ask some questions to know if I can do this with navio2 and ardupilot.

First question would be: Do I need an RC input for flying indoors? Can I just use putty connectivity through wifi?

Second : Do I actually have to do anything or ardupilot is supposed to just do the control of the drone? (for a simple take off, hovering and landing for example)

Last question: If I want to make an unique design (like 3 motors with a different configuration or something like that), where can I modify the parameters of the code to input the data from my design (is it in c++ or python?) Or can I program my own controller using python or c++? (based on the examples on the developers sections of the DOCS page)
Thanks, and again, sorry if my questions seems stupid


First: in theory you can use it without RC, but on practice you should always have an RC,
Second: Ardupilot can handle takeoff, hovering and landing automatically.
Last: Ardupilot is written in C++. Writing an autopilot from scratch is possible, but it is a big task, so I’d recommend to start with Ardupilot.

Hey, thank you so much for your answers. I have a feel follow up questions.
1.The rc input is needed only for the lag that may happen over wifi? Or is there any other reason?
2.this might sound dumb…but if I have an rc input, do I also have to get a controller? Or the commands can be send by the ardupilot on the computer?
3. If I end up buying a joystick, I haven’t seen one on the hsrdware recommendations on the docs page. Could you maybe suggest one? Do I need those fancy rc controllers or can I adapt something else?
4.Lastly, regarding my previous question about writing my own code, I was actually thinking about writing a code in python using numpy and other math libraries to create an adaptive controller for a more stable flight (totally separate from ardupilot). I’m sure writing your own code to control the drone is possible, right?


  1. RC input is a major safety mechanism. And you’re also right about the lag - it would be bigger over WiFi.
  2. RC receiver works in pair with RC controller\transmitter.
  3. Affordable models will do just fine, Turnigy 9X is a popular model.
  4. Of course, it is possible.

Got an nvidia Shield controller, Xubuntu 17.10 and APM 2. Controller seems to be recognized and makes something happen.
But also I should say that I haven’t moved to test flight yet and the “joystick” code in APM2 seems very sketchy.

To begin with, they are using and approach to send joystick as mav-commands if I remember correctly & if so this introduces a lot of unnecessary overhead data. I suspect it has to the fact that other flight controllers don’t have a companion computer like the Navio do.

If you explored the area of joysticks I would love to hear about your findings.
There is much information out there, but scattered all over the internet, takes time to sift trough to find “interesting” information.

Made a post about alternative Joystick function
Im just in the initial stage so far.
But I do have Joystick functionality and so far, it seems to be little to no lag.
I havent had first flight yet, and I think (not certain yet) that I need to make some changes into the “heartbeat” functionality so that the autopilot figures out a possible loss of control.