Designing a High Performance 3D Printed FPV Drone Frame
by MasterARK in Design > 3D Design
6855 Views, 68 Favorites, 0 Comments
Designing a High Performance 3D Printed FPV Drone Frame
There's nothing quite like FPV drones. Building them, flying them, crashing them, and rebuilding them. When it comes to raw speed, agility, and precision, nothing in the maker hobby world comes close. Piloting a machine, you built yourself, threading it through a race course at full throttle with millimetre precision, that's exactly the spirit this competition is about.
I started building quadcopters at 13. Now, five years later, I'm applying to study Mechanical Engineering at some of the top universities in the United States and United Kingdom. Building quadcopters helped me find my love for engineering and develop that engineering mindeset.
The Problem
Anyone can design a drone frame. Sketch out a 2D profile in Fusion 360, cut it from carbon fibre sheet on a CNC mill, and you've got yourself a traditional frame. Simple enough — if you have access to carbon fibre and a CNC mill.
I don't. What I do have is a 3D printer in my school workshop.
The obvious solution is to 3D print a frame out of plastic. But, you can't just replicate a traditional carbon fibre design in plastic. The frame would be far too weak, and plastic's damping characteristics introduce resonance issues that make the quad practically unflyable.
So the real challenge became: Can you design a 3D-printed plastic drone frame that genuinely rivals a carbon fibre one?
The Goal
That question sent me down a year-long rabbit hole. I wanted a frame that was:
- Lightweight- competitive with carbon fibre alternatives
- Strong- capable of surviving real crashes
- Resonance-optimised- no vibration-induced flight instability
- manufacturable at home- on a standard FPV printer, cheaply
- Easy to transfer- No need to unsolder or resolder anything to transfer componenets to the frame
The catalyst was my HGLRC Rekon 35, which was a compact, 2S lithium-ion FPV quad that I loved flying. When HGLRC discontinued the frame to make way for the V2, I was left in a tough spot: crash it, and it's gone. No replacements, no repairs. That frustration became the spark for this project. The goal was to design a new, 3.5” frame to house the electronics and make it better than the original. (addressing the vibration issues & making it lighter)
The answer to all of this lies in the Generative Design workspace in Autodesk Fusion 360.
In this Instructable, I'll walk you through designing a unibody 3.5" FPV drone frame that can be made with a traditional, hobby-grade FDM printer, optimised to be made from plastic.
The final result of this Instructables can be found on Makerworld
A quick note before we begin: this Instructable is fairly text heavy by nature, since a lot of what we're covering requires detailed explanation. To help with this, I've included as many screenshots and photos as possible throughout each step. Where needed, each image is labelled and referenced in the text below it. Unfortunately Instructables doesn't allow images and text to be placed side by side, so all the photos sit at the top of each step with the written explanation underneath.
Supplies
This Instructable covers the design phase only. If you're here for the full build, a separate Instructable will cover the electronics and assembly. Due to that, you will only need:
- A Laptop or Desktop computer cabable of running Fusion 360
- A mouse (Technically optional, but highly recommended)
- Autodesk Fusion 360 (Requires a valid Subscription- see notes bellow)
- A mouse (not really needed but easier to work with)
- At least 11 cloud credits (Required for the Generative Design Study)
A quick note on the Fusion 360 Subscription
Fusion 360 can be expensive, but there are two ways to get it for free:
- Students — Sign up with a valid student email through Autodesk's Education plan. You'll get full access plus unlimited cloud credits, meaning you won't need to purchase anything extra for this project.
- Hobbyists — Autodesk offers a free Personal Use license for non-commercial projects. Note that this plan does not include cloud credits, so you will need to purchase at least 11 credits separately to run the Generative Design study.
If you also want to build the quadcopter (Optional)
If you plan to follow along with the companion build Instructable, you'll also need a set of electronics for the quadcopter:
- Flight Controller + ESC (AIO or FC-ESC Stack)
- Video Transmitter (VTX)
- Receiver (RX)
- FPV Camera
- Motors
- Propellers
- Frame hardware (standoffs, screws, etc.)
FYI: The second Instructables will only guide you through the build, you should already know how to configure, setup and bind the FPV drone to all the peripherals
Objectives, Goals & Specifications
Before jumping into CAD, it's important to define what your frame needs to do. This saves you from redesigning halfway through when you realise a motor doesn't fit or your stack won't mount.
What we're defining:
- The physical dimensions of the frame
- What electronics it needs to be compatible with
(Essentially all the dimensions highlighted in the Image above)
These are the following specifications I am using for my 3.5inch Quadcopter. The Diagram above should help you understand the frame dimensions.
Frame Dimensions
- Wheelbase: 170mm
- Width: 130mm
- Length: 115mm
This is close to a traditional X frame, making it a versatile quadcopter with enough central space for all the electronics.
Electronics Compatibility
Flight Controller / ESC Mount
25.5x25.5mm mounting holes for AIO & 20x20mm mounting holes for a min FC+ESC Stack
VTX Mount
20x20mm and 25.5x25.5mm mounting holes to cover all digital system Video transmitters and most analogue ones
Antenna Holders
3 antenna holders. Central one can be used for analogue system with 1 antenna. Side antenna holders can be used for digital systems with 2 antennas
Camera Mount
Supports 21mm mini FPV camera. This allows me to support most digital and analog cameras. And spacers can be used to use micro(19mm) and nano(14mm) cameras as well
Motor Mount
Have ø 9-12mm mounting pattern so that its compatible with most 3.5” motors. 1404, 1804, 2004 etc.
Once you've locked in your specs, you're ready to start designing. Your specs may differ depending on your prop size and build style.
I would highly recommend you write them down somewhere, or note it down in the comment tab of Fusion360 before doing any CAD
Introduction to Generative Design
Since we're creating the entire drone frame with the assistance of Generative Design, it's important to understand what it is and how it works so we can build our base model accordingly.
What Is Generative Design?
Generative design is when software figures out the optimised shape to connect different parts of a model based on the goals, objectives and constraints you define. Instead of drawing the geometry yourself, you tell the software where parts need to connect, what forces they'll experience, what material is being used and how it will be manufactured. The algorithm then explores thousands of possible forms, often producing organic, branching structures that no human would arrive at through traditional parametric modelling.
Designing a drone frame in a material like ABS, PETG or resin is a perfect use case for this. These materials aren't as strong or stiff as carbon fibre, but we can use the algorithm to work around those limitations, thus generating a result that maximises stiffness while minimising weight, which is genuinely difficult to achieve by hand.
The 3 Main Geometries in a Generative Design Study
I'm getting a little ahead of myself here, but it's worth quickly covering the 3 geometries you need to set up before running a Generative Design study. Understanding these now will make it much easier when we start building the base model.
- Preserve Geometry- This is your base geometry. It tells the algorithm what it must include in the final form. In our case, a good example is the flight controller mounts: A geometry we always want maintain regardless of what shape the algorithm produces.
- Obstacle Geometry- This tells the algorithm where it cannot generate any material. For example, we don't want any structure generated in the propeller zones, so we place obstacle geometry there to restrict it.
- Starting Geometry- This is optional. You can give the algorithm an initial shape (like a basic quadcopter frame connecting all the preserve geometry) as a starting point to optimise from. Rather than generating something from scratch, it will refine within the bounds you've set.
I've attached an image of how Fusion 360 describes these, since they explain it really well.
Base Model (Preserve Geometry)
In the last step we already went over what Preserve Geometry is, so let's start creating it in CAD. The first step is identifying everything that needs to be included.
Here's the list I came up with for my frame (yours may differ):
- Flight Controller mounting points
- Video Transmitter mounting points
- Motor mounting points
- Camera cage
- Top plate
- VTX and RX antenna holders
The idea is to let the algorithm generate the arms and connections between these parts, so I've kept the preserve geometry to the minimum needed and passed as much creative control to the algorithm as possible. It's worth noting that any forces we define in the study act on the preserve geometry, so every structural feature like the motor bumpers, camera cage or any other component needs to be represented there. This does mean I'll need to be strict with the obstacle geometry later.
(Note: you might think the arm needs to be included here, but it doesn't. The arm just helps distribute force. The actual forces act either on the main body or at the motor mounting point at the end of the arm.)
In the image above I've coloured everything green for easy identification and labelled each part. I've also included technical drawings for key components like the motor mount and FC mount. Its worth noting that a 25.5mm AIO stack is typically mounted at 45 degrees, so make sure that's reflected in your CAD.
One more thing you may have noticed in my preserve geometry the unusual shape of the top frame. Since I am trying to create a unibody design, everything is one part. Due to that, I've made the gap above where the FC/ESC and VTX sit deliberately larger, allowing you to insert those components through the top during assembly.
Base Model (Obstacle Geometry)
To make it easier to visualise, I've changed the appearance of all obstacle geometries to red.
The next step is adding all the obstacle geometry to the base model. Without it, the algorithm has no restrictions and will generate material everywhere, including where the propellers, flight controller and all the other components need to go. Essentially, we need to create a series of bodies that tell the algorithm where not to generate any material.
In the images above you can see all the obstacle geometries in my model, with each one labelled so I can explain them below. The first image shows everything together.
Image 1- FC/ESC Mount + VTX
A couple of things to note here. The obstacle geometry fills all the holes in the mounts so the algorithm doesn't plug them with material. The space allocated is also quite tall and vertical, extending beyond the top plate. This ensures there is enough room for the FC and VTX to fit, and that they can be inserted from the top in case there isn't enough clearance from the sides. There is also a small connecting feature between the FC and VTX obstacle geometries to leave enough space for cables and the battery connector to pass through.
My recommendation is to make all obstacle geometries slightly larger than the actual component. It gives you enough leeway for everything to fit.
Image 2- Motor Mounts
Similar to the FC and VTX, the obstacle geometry fills all the holes and leaves enough clearance for the bolt heads. The motor obstacle geometry extends upwards, and there is a separate obstacle geometry for the propeller to ensure adequate clearance for both. I would recommend making the motor obstacle geometry slightly thicker and shorter, and the propeller geometry taller with a larger diameter, to guarantee enough space between the printed part and the components.
Image 3- Camera Mount
There are obstacle geometries for where the camera sits, as well as for the screws and side plate to preserve those features. The camera obstacle geometry is also extended outward to cover the entire field of view of the lens. We don't want any material appearing in the image feed, so this just prevents that from happening.
Image 4- Antennas
For the RX and video antennas, the obstacle geometry simply prevents the holes (where the antenna will be) from being filled in. The RX antenna obstacle geometry is essentially a slightly oversized version of the antenna itself, ensuring everything passes through cleanly.
Image 5- Battery Straps
We can't always predict exactly where the algorithm will generate material, and battery straps on an FPV drone typically wrap around the top plate. As a precautionary measure, I've added obstacle geometry for the strap path to guarantee there will be a dedicated slit for it in at least two location.
Image 6- Side Wiring Channels
This one isn't strictly necessary, but I added some extra obstacle geometries on the sides of the main body as channels to guide the motor wires through to their arms. It is much easier to solder everything outside the frame and then feed it through, so this just ensures there is always a clear path without needing to unsolder anything later.
Starting Shape (Optional)
In my case, I want the algorithm to generate the drone body from scratch with minimal input from me, so I haven't used a starting shape. However, if you want to optimise an existing design rather than generate something entirely new, this is where you'd do it.
A starting shape is an initial geometry that gives the algorithm a hint about where to begin growing/removing material. Instead of figuring out a form from scratch, it takes your shape and optimises from there. Without one, Fusion 360 generates its own starting point, which can sometimes produce unusual or unpredictable results. Providing one tends to speed up convergence and produce cleaner outcomes.
For a drone frame, a good starting shape would be something simple like an X shaped extrusion connecting all the motor mounts to the centre body. It doesn't need to be detailed at all. The algorithm will still modify and optimise it significantly, so think of it as a rough guide rather than a finished design.
The key thing to keep in mind is that the starting shape must connect all the preserve geometries. We are still in the design workspace at this point and haven't assigned any of the preserve, obstacle or starting geometries yet. That happens in the next step, but it's worth getting this right now to avoid running into errors later.
Setting Up the Generative Design Study
Now that the base model is complete, we can move into the Generative Design workspace. The screenshots throughout this step should help guide you.
Opening the Workspace
Click the Design dropdown in the top left of the screen and select Generative Design. You'll be prompted to create a new study, so go ahead and do that. Once the workspace opens, you'll notice all the appearances from your geometry have been removed. That's normal.
Assigning Geometries
The first thing to do is assign all your bodies to their correct geometry type. Click the Design Space dropdown in the toolbar and select the relevant option to assign each body as either preserve, obstacle or starting geometry. Work through all of them before moving on.
Study Settings
Once your geometries are assigned, right click on the study and select Study Settings. There are two things worth configuring here.
The first is the outcome resolution slider. I'd recommend keeping it somewhere in the middle, slightly toward the high end. This balances result quality with how long the study takes to run.
The second is the Remove Rigid Body Modes option. This setting determines whether the model is fixed in place during the simulation. I didn't have much luck with it enabled for my frame, so I left it unchecked. Your choice here will also affect how you set up your structural constraints, which I'll cover below.
Design Conditions: Constraints and Loads
Navigate to the Design Conditions tab. This is where you define how the frame is held in place and what forces are acting on it, the two most important inputs for the entire study.
Structural Constraints
Constraints define where the part is fixed or grounded in the simulation. If you left Remove Rigid Body Modes unchecked, you need to manually constrain the model. I constrained mine at the top plate just under where the battery sits, since that's closest to the centre of mass. If you enabled Remove Rigid Body Modes, you can skip this.
To apply a constraint, click the Structural Constraints button, select the target face, edge or vertex, and choose the constraint type. For a drone frame, the default fixed constraint works well.
Structural Loads
Loads are the real world forces acting on the frame during flight and crashes. In the left panel you'll see Load Case 1. You can right click the study to add additional load cases, and each one can have its own set of constraints and forces. This lets you simulate different scenarios independently.
For a drone frame, the main forces to consider are:
Motor thrust, which is an upward force on each motor mount. If you're a beginner, use estimated values but always err on the generous side. The more accurate approach is to pull the max thrust figure at your operating voltage directly from your motor datasheet.
Motor torque, which is the rotational force acting on each motor mount during spin up, spin down and direction changes.
Crash loads, which simulate impact forces at various points on the frame. I used 3N, but you can scale this up or down depending on the size of your quad.
To apply a load, click the Structural Load button, select the target face, edge or vertex, then set the magnitude and direction. You can define this perpendicular to a plane, as an angle and magnitude, or as a vector.
My Load Cases
These are the load cases I set up for my study. It's quite thorough and definitely more than the minimum needed, but I wanted to cover as many real world scenarios as possible:
Thrust up, thrust down, yaw, pitch, crash on the camera cage, crash on the arms, crash from the battery side and crash from the antenna side.
The video attached shows all the loads applied in the study.
Design Criteria and Material
The final step before running the study is configuring the Design Criteria and Material settings. These tell the algorithm what to optimise for and what material to assume when doing its calculations.
Objectives
The first choice is what you want the algorithm to optimise for. You can either minimise mass or maximise stiffness.
Minimising mass tells the algorithm to find the lightest possible solution while maintaining adequate stiffness. Maximising stiffness works the other way — you give it a target mass and it keeps refining the form until that mass is reached, then maximises stiffness within it. For a drone frame I'd recommend minimising mass, since weight directly affects flight performance.
The safety factor setting defines how much stronger the part needs to be compared to the loads you applied. A safety factor of 2 means the part is designed to handle twice the load before failure. For a drone frame I'd recommend somewhere between 1.5 and 2.5 — low enough that the algorithm doesn't over-engineer the structure, but with enough margin to account for real world impacts and the limitations of FDM printing.
You can also set a maximum deformation limit, which caps how much the generated form is allowed to flex under the loads you defined. For our frame there's a reasonable amount of leeway, so I set this to 1mm in each direction. If your application required something more rigid you'd bring this down significantly.
The modal frequency setting lets you define a minimum frequency before the first resonant mode appears. Since the drone frame is a free floating body and not mounted to anything, the first few modes naturally appear at 0Hz. You can leave this unchecked.
Buckling refers to the sudden lateral collapse of a structure under compressive load. You can set a minimum safety factor for buckling if needed, but for a drone frame this can be left unchecked.
Manufacturing Method
This is where you tell the algorithm how the part will be made, which directly influences the geometry it produces. I set up two outcomes: unrestricted, just to see what the algorithm produces with no manufacturing constraints, and additive in all directions, since FDM is an additive process.
For the additive setting, I set the overhang angle to 70 degrees since my Bambu Lab A1 Mini handles overhangs well up to that point. I also set the minimum thickness to 3mm to prevent the algorithm from generating features too thin to print reliably. In practice the overhang angle hasn't always been respected in the results, but it's still worth setting.
You can also select milling, 2-axis cutting and casting as manufacturing methods, but these aren't relevant for our use case so I left them unchecked.
A Note on Symmetry
If you want the algorithm to produce a symmetric frame, you can enforce symmetry constraints in the study. For a quadcopter this is highly recommended since a symmetric frame is easier to tune, more predictable in flight and generally produces a cleaner result.
Material
The material you select matters because the algorithm uses its mechanical properties (stiffness, density, yield strength) to calculate how much material is needed and where. It's important to understand that Generative Design assumes the material is isotropic, meaning it has the same mechanical properties in all directions.
However, FDM printed parts are not isotropic. The X and Y directions will always be stronger than Z, since layer adhesion between printed lines is weaker than the material itself. This means the algorithm may generate outcomes that look structurally sound on paper but could still fail along layer lines in practice. There's no elegant way around this, so the best approach is to be aware of it and use your own judgement when reviewing outcomes. If something looks questionable to you, it probably is.
For my study I selected ABS plastic as my primary material, along with PET (the closest equivalent to PETG in Fusion's library) and Acetal resin for comparison. Fusion 360 also includes HIPS in its material library if that's what you're printing with.
Once all of this is configured, you're ready to run the study.
Running the Study
Before hitting generate, there are a couple of things to check first.
Precheck
In the Generate tab, click the Precheck button. This will flag any issues with your study setup and return one of three statuses:
Red means the study has unmet requirements and won't generate an outcome until they're resolved. Orange means you can proceed but there are potential issues worth looking at. Green means you're good to go.
Fix any red issues before moving on, and use the precheck details to identify exactly where the problem is.
Previewer
Once you're green, run the Previewer tool before generating. This locally runs the initial stages of the study and gives you a rough early outcome. If the previewer fails or produces something clearly wrong, it's worth revisiting your geometry or simplifying the study before committing to a full cloud run. If it looks reasonable, you're ready to proceed.
Click Generate and then Generate Study to send the study to Autodesk's cloud. Depending on the outcome resolution you selected earlier, the study can take anywhere from an hour to half a day to complete. The video attached shows the progression from iteration 1 through to around iteration 30.
Reviewing the Outcomes
Once done, the algorithm returns a range of results rather than a single answer. Some outcomes are lighter, others are stiffer, and there is always a tradeoff between the two. To compare them, switch to Scatter Plot view under the Display dropdown. You can then set whatever you want on each axis. I plot mass against maximum global displacement, which lets me quickly identify the outcome with the lowest weight and the least deformation under peak load. Each outcome is colour coded by material, making it straightforward to compare results across different material choices and select the best one.
Exporting & Preparing for 3D Printing
By this point you should have chosen your preferred outcome based on weight, max displacement, stiffness and Autodesk's own recommendation. Now we need to get it out of the study.
Choosing the Right Outcome
The outcome you want to export will have a Design Preview, shown as a purple box on the left side. This confirms the outcome has fully converged and has a final result with all the preserve and obstacle geometries properly merged into the form. Since we're 3D printing, I'd recommend selecting the outcome generated with the additive manufacturing method, as this is the one that accounts for the 3mm minimum thickness we set earlier.
If an outcome appears grey and has no design preview, it typically means the preserve and obstacle geometries haven't merged cleanly with the generated form. Fusion 360 will usually fail to export these, so it's best to avoid them.
Exporting the Design
Once you've chosen your outcome, go to the Create dropdown and select Design from Outcome. I wouldn't recommend using Mesh from Outcome since meshes are much harder to post process in Fusion 360 later on.
A blue box will appear while Fusion 360 prepares the design. Once it turns green and shows Design Ready: Click to Continue, follow the prompt and the generative form will open as a new design file.
Post Processing
At this point the generative design part is essentially done. You can post process the frame before exporting, which is what I did. I added some branding to the top plate, motor guards and a small reinforcement between the top plate and the antenna mount. Once you're happy, go to the Utilities tab, click Make, and export the file to your slicer as an STL or OBJ.
Print Orientation
One important thing to consider before printing. Earlier I mentioned that the generative design algorithm assumes the material is isotropic, meaning equal strength in all directions. In reality, FDM printed parts are not. Printing in ABS on my Bambu Lab A1 Mini, the part will always be weaker in the Z direction due to the layer lines, meaning the frame can snap/break between layers under impact.
To minimise this, I'm printing in the Z+ orientation with the motor, FC and VTX mounts parallel to the build plate (as seen in the final image). This maximises the contact area between each layer and also reduces the total layer count through the most structurally critical sections of the frame.
Showcase
And that's it.
That's how to design your own custom 3D printed quadcopter frame from scratch using Generative Design.
It's not a perfect process, particularly when it comes to the material limitations I mentioned earlier, but the results speak for themselves. Above are more photos of the finished quad along with some DVR footage of it flying. I've also included the graphs showing the frame's raw resonance and vibration characteristics that reach the flight controller (gyro scaled frequency against throttle), which honestly came out better than expected. You may notice that the only noticeable vibrations is that caused by the motors & propellors.
This frame was never meant to replace a traditional carbon fibre build. It's simply a cheap, easy to replace alternative. If something breaks, you don't need to order parts and wait weeks for delivery, just print a new one and transfer the electronics straight over.
The design I made is available on MakerWorld using this hyperlink