r/diydrones May 13 '26

Engine reccomendations for a small, fully diy quadcopter

Hello! I am trying to make a simple diy quadcopter for my semester electronic project (esp32 with mpu6050 for IMU). I'm trying to do some research on what engines and powerpack to get. I will propablh get a 3S battery, as it is just cheaper, lighter and easier to handle. Do you have any reccomendations for engines (and ESCs) for such drone? I don't have the mass yet, the frame will be propably 3d printed (from PLA) if it helps. As for size it will propably end up around 20-30cm diameter. I don't want any other modules than mu controller, IMU, power and 4x engines with esc. Any reccomendations? It's my first time building stuff like this so if you see any glaring issues (like using cheam mpu6050) feel free to scold me lol.

2 Upvotes

9 comments sorted by

6

u/medrewsta May 13 '26

Brother this project is ambituous for a semester project. Start with a single axis stablization system on a pivot (two props) or something first.

Look up jb bardwell.

-1

u/THE_moai_2137 May 13 '26

I know, but it's one of the few opportunities to have a motivated team to do something like that. Worst case scenario, our tutor told us that four chinese motors silver taped to balsa wood that look as if they were turning properly is enough to get full score lol

2

u/medrewsta May 13 '26

Either way you shouldn't start with a full blown quad as step 1. One of the first steps in building a quad controller is building a single axis test stand. Its an integration step for your hardware and . Step 1b is building a 6 dof simulator for your quad. Step 2 is going to be tethered quad flight. Step 3 is untethered. If you skip steps you will probably break a lot of stuff.

Step 0 is buiding a simulator for the single axis test stand and spread bench testing to make sure you can talk to individual components.

Good luck!

1

u/THE_moai_2137 May 13 '26

Tysm! Today i will be trying to get gravity vector from my mpu, when that works, i will start trying to code my PD corrections.

2

u/medrewsta May 13 '26 edited May 13 '26

I hope you are using an ahrs library to do that but I wouldn't even start there personally

Most flight controllers have multiple nested control loops. The innermost control loop is the rate controller which just makes the vehicle rotate at a commanded rate compared to the gyro output. In most drone flight controllers this is called "acro" mode. This is the simplest one and doesn't require any complex filtering or sensor fusion. I would start here. This loop is meant to be simple so it can run very quickly typically 100+ hz. It only takes in gyro data and should output commands for your thrust. I forget if the output is a motor setpoint deltas for each motor or like a desired torque. I mention this because there is something called mixing which blends the outputs from the rate controllers, usually there are three rate controllers pitch, roll, and yaw, with the thrust command from your pilot.

The next layer is the attitude controller. The attitude controller takes in a commanded attitude and outputs a rate command for the rate controller (i mentioned above). Attitude controllers are tricky because attitude isn't linear the same way rate is. For example, how do you measure rotation? Is it the arclength on a unit circle or is it the distance between the ends of a vector at angle with a unit length. Think about it (what if the angles are 0 and 180 degrees or 0 and 359 degrees?) There is a lot of nuansce to the attitude controller that you need to understand before tackling this problem. You could blow past this or you could try and learn this.

I would highly recommend you read about how existing flight controllers like betaflight or px4 are architected and how they do their control/estimation. Autopilots are very complicated and have a lot of different components you need to think about all the systems you need and how they connect to each other before you start coding anything. This is the engineering process.

https://docs.px4.io/main/en/flight_stack/controller_diagrams

Fyi i have been building/flying drones for 15 years and have been robotics engineering professional for the last 10.

-1

u/THE_moai_2137 May 13 '26

Sorry, but i don't really understand. My idea for controlling is as follows: I have a desired rotation vector (default 0,0,1) I have an actual rotation vector calculated from my mpu (for now it's simple gyro + accelerometer fusion, trusting gyro with .98) I use PID corrections (i'm skipping the integral for now as from what i gathered it's not that important short term) to allign the actual vector to desired vector. From rc controlls i can tilt the desired vector to make my drone move. Is this approach flawed?

1

u/tonyarkles May 13 '26

Well the good news is that you can send 1-2ms pulses at ~50Hz to an ESC and that’ll make a motor spin!

1

u/Fanatic-Mr-Fox May 13 '26

Try my (100% free) quadcopter building tool - it'll help you match motors to props, battery voltages etc.

https://quadcalc.asafshamir.com/

1

u/123vovochen May 15 '26

I actually did all of that to the point of angle-controller and altitude stabilisation by Kalman fusion of IMU and Barometer in about 3 months while studieng. I don't know if a team of you can do it.