I'd like to build a quadcopter with rotors that can tilt to increase the drone's flexibility. So far, I have only used a KK 2.1 board as a flight controller which doesn't really have this capability so I'm looking for a setup with more freedom in terms of how the transmitter's commands can be translated into commands for the servos and motors. Also, I'd like to program the flight controller in Python and control the drone with an Xbox controller.

Can you recommend some components that would be able to do this? Thanks in advance! :)


2 Answers 2


Sorry friend, going to shoot you down.

build a quadcopter with rotors that can tilt to increase the drone's flexibility.

The Stingray 500 is an amazing piece of tech. It is a rotorcraft (heli). So this is possible for tilt of this nature. Caveats include complex engineering considerations, considerable drag, and the build wants a single power plant like Curtis. A single power plant is a more complex and more drag. I love it, but a serious project.

If you mean angling the motors with fixed props, that is not a good idea. I have seen a few pull it off. It is very low performance and I think the paradigm is not technically viable. It appears the weight necessary to have a rigid enough form of "hinge" is quite large. As you scale down you will lose key functionality such as active braking, all sorts of "floaty fun", and a drop in power.

Performance-wise, a "hinge" mechanism is going to add considerable noise to your PID loop. Even on a KISS board that will be difficult to tune out.

The torque of a small 1404 motor with 3" props on 4s is VERY SERIOUS. They start and stop in fractions of a second. The mass * speed is a lot of energy, it will rip apart a "hinge" mechanism if you build to a typical FPV spec. That spec is one of speed and agility. Lightweight use would do well, I have seen many designs over the years.

Regarding Python, @Robin Bennett is correct. I am a career Python programmer and it is just not up to snuff. I also work in C and CPP, there is little choice. The modern flight controllers, generally Arduino derivatives, are high-performance microcomputing that is damn hard to beat.

As a commercial FPV pilot, I can tell you that an X-Box controller is a really bad idea. The throw is short, the pots are shit, and the travel is linear (I think). Despite the controller being proportional, it operates a lot like a button (boolean). I have used X-Box controller to fly sims, I can hang, but in the real air, everything is different. I use a FRSky Xlite currently, the sticks are ~2/3 the size of a FRSky Taranis. The Xlite limits my capabilities. I have become accustomed to it, but is like driving a jeep versus a BMW in how exact the response feels.

I hope that helps out. I applaud the ambition, we experiment a lot here cutting our own frames, PCB, etc. The general form factor of an FPV drone is settled for now. Innovation is focused on performance, miniaturization (for the sub-250 gram field), and refinement. Besides DJI's digital goggles, I can't think of anything really mind-numbingly awesome in the past few years??? Suggestions?


You don't say what firmware you're running on the KK2.1, but it's probably open source and available for you to edit. Have you seen OpenAeroVTOL ?

Most modern flight controllers run BetaFlight, which is also open source, so most of the hard work has been done for you. You'd have to modify it to add tilting rotors.

However BetaFlight is quite complex. I recommend using dRehmFlight, which is VTOL flight control firmware that is designed to be modified by hobbyists. It is designed to run on a Teensy, which is similar to an Arduino but much faster.

You probably won't find good options for working in Python. As an interpreted language, the processor has to compile the code as it runs, as well as actually running the code. That's a lot to ask of the tiny processors on a flight controller and their very limited RAM. You could use a Raspberry Pi, but you might find your flight controller programme pausing occasionally to allow an operating system process to run.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.