Modular S500 quadcopter (X-frame) airframe modeled in OpenSCAD. Every structural part ships as a standalone, ready-to-print
polyhedron, and a single assembly file (drone.scad) combines them into the complete drone.
Requires OpenSCAD ≥ 2021.01 · Licensed under MIT.
- Features
- Installation
- Usage
- Configuration
- Project Structure
- Contributing
- Validation
- License
- Acknowledgements
- Complete S500 X-frame — 4 arms, 4 landing legs, top/bottom center plates, battery tray, side rails and vibration dampers.
- Pre-positioned parts — each
*.scadpart is an exportedpolyhedronalready placed at its final location (centered in X/Y, correct Z height), so the assembly is a plainunionwith no manual transforms. - Symmetry-aware assembly —
arm.scadandleg.scadare 4-fold symmetric (one file = all 4 arms / legs);rail-supportandrail-support-grommeteach already contain a full set of 4 dampers. - Parametric mount offsets — rail spacing and battery centering are
exposed as variables in
drone.scad. - 9045 propeller layout — motor positions match a standard 9″ (9045) propeller footprint.
Prerequisites
- OpenSCAD ≥ 2021.01
- Git
git clone https://github.com/colgecen/DroneSkeleton.git
cd DroneSkeletonNo additional dependencies or build step are required — the part files are self-contained geometry.
Open the full assembly:
openscad drone.scadRender/export a single part, e.g. one arm:
openscad arm.scadExport the complete airframe to STL:
openscad --export-format=asciistl -o build/drone.stl drone.scadA rendered preview image belongs here — drop a
docs/preview.pngscreenshot and link it below once you have rendered the model.
The assembly behavior is controlled by two variables at the top of
drone.scad:
| Variable | Default | Description |
|---|---|---|
rail_offset |
45 |
X-axis offset of the two side rails (mm). |
battery_center |
[-44.17, 0, 0] |
Translation that shifts the battery sub-assembly to the dead center. |
Part geometry itself is fixed (exported meshes), so dimensional changes
require re-exporting the source part, not editing drone.scad.
| File | Description |
|---|---|
drone.scad |
Main assembly — combines every part. |
arm.scad |
4 arms (single file, 4-fold symmetric). |
leg.scad |
4 landing legs (single file, 4-fold symmetric). |
top-plate.scad |
Top center plate. |
bottom-plate.scad |
Bottom center plate. |
battery-plate.scad |
Battery tray plate. |
battery-support.scad |
Battery support bracket. |
rail.scad |
Single side rail (used twice in the assembly). |
rail-support.scad |
Vibration damper (file already contains 4). |
rail-support-grommet.scad |
Damper grommet (file already contains 4). |
- Fork the repository and create a feature branch.
- Keep
README.mdin sync with any structural changes. - Render your changes in OpenSCAD and export an STL to confirm the model is manifold before opening a pull request.
This repository ships a CAD model, not executable code, so there is no automated test suite. Validate a change by rendering and exporting:
openscad --export-format=asciistl -o build/check.stl drone.scadThen confirm OpenSCAD reports the output as manifold (no self-intersections or open edges). All original parts were verified manifold under OpenSCAD 2021.01.
Released under the MIT License.
Built as an open, remixable S500 airframe. Thanks to the OpenSCAD community for the tooling and conventions used throughout this project.