Skip to content

Georgekemk/Educopter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

160 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EDUCOPTER

Welcome to the EDUCOPTER GitHub repository.

This project has been developed based on the work of the OBAL project, which demonstrated that a Raspberry Pi can be used as the single flight computer for a custom ArduPilot flight controller. Thanks go to Mohammad Hefny for his contribution to custom Linux flight controller developement.

EDUCOPTER builds upon this foundation with the goal of creating a simpler, highly replicable custom flight controller designed specifically for education and experimentation.


What is EDUCOPTER?

EDUCOPTER is a minimal ArduPilot-compatible flight controller platform designed to be easily reproduced by students, researchers, and hobbyists. Although this repository demonstrates its use on a quadcopter, the EDUCOPTER board can be used with any vehicle supported by ArduPilot, including rovers, fixed-wing aircraft, submarines, and multirotors.

Unlike many flight controller designs that prioritise performance or compactness, EDUCOPTER prioritises simplicity and reproducibility.

Key characteristics of the design include:

  • A Raspberry Pi–based Linux flight controller
  • A single-sided PCB for easy manufacturing
  • Only essential sensors and actuators required to fly with ArduPilot
  • ArduPilot source code changes for Linux porting
  • Parameter and Service files to run alonside ArduPilot and MAVProxy
  • A complete set of documentation and instructions allowing others to replicate the project from scratch with little experience in this area

The project demonstrates how a fully functional ArduPilot drone can be built with minimal hardware complexity, while still providing a powerful and flexible autopilot platform.


Project Goals

The EDUCOPTER project aims to:

  • Provide a simple reference design for a Linux-based ArduPilot drone
  • Enable students and educators to build and understand a flight controller
  • Demonstrate how ArduPilot can run on custom hardware
  • Provide clear instructions and documentation for full system replication
  • Present a guide for porting any custom Linux board design in ArduPilot firmware

Repository Structure

This repository is organised into several sections to make it easy to understand and reproduce the project.

EDUCOPTER/
├── software/
├── hardware/
├── BOM/
├── flying/
├── testing/
├── Future Research/

Each section contains documentation and files required for a specific stage of the project. The future research section summarises the Linux board specific porting for ArduPilot, and gives some examples of future projects that can build from the EDUCOPTER platform.


Software

The software section contains all code and configuration required to run ArduPilot on the EDUCOPTER flight controller.

This includes:

  • Modified or configured ArduPilot code
  • Supporting scripts and configuration files
  • Instructions for installing and running the software on the Raspberry Pi

A detailed README inside this folder contains instructions for software implementation and must be read. It explains:

  • Raspberry Pi setup and connection
  • Linux Virtual Environment setup
  • Compiling ArduPilot
  • Configuring the EDUCOPTER board
  • Connecting to ground control software
  • Running the firmware and testing
software/
└── README.md

Hardware

The hardware section explains how to construct the EDUCOPTER flight controller board.

This includes:

  • PCB gerber files and images
  • Circuit schematics
  • Instructions for manufacturing the board
  • Guidance for soldering components and assembling the hardware

The hardware README provides step-by-step instructions for building the EDUCOPTER board.

hardware/
└── README.md

Bill of Materials (BOM)

The BOM section contains a complete list of components required to build both the EDUCOPTER flight controller and the final drone platform.

This includes:

  • Electronic components used on the board
  • Sensors and connectors
  • External drone components such as motors, ESCs, frame, and power distribution board

These parts are included primarily for completeness; compatible alternatives may be used where appropriate.

BOM/
└── BOM.xlsx

Testing the flight controller

The testing section documents the procedures used to verify correct operation of the EDUCOPTER flight controller before flight.

This section contains:

  • Instructions for confirming SPI communication with the IMU
  • Instructions for verifying I2C device detection for the barometer and PWM driver
  • Instructions for testing UART connections for the GPS module and RC receiver
testing/
└── README.md

Flying the Drone

The flying section demonstrates the final stage of the project.

This section contains:

  • Images of the completed drone
  • Instructions for integrating the EDUCOPTER board with a quadcopter design
  • Instructions for performing the first flight
flying/
└── README.md

Future Research

The future section then outlines possible extensions to the EDUCOPTER platform and identifies directions for further experimentation based on this architecture.

Future Research/
└── README.md

Replicating the Project

This repository has been structured so that users can follow the entire process from start to finish, including:

  1. Building the flight controller hardware
  2. Installing and configuring the software
  3. Assembling the drone platform
  4. Performing system calibration and first flight

All necessary documentation is provided within the repository.


Acknowledgements

This project builds upon the work of the OBAL project and the wider ArduPilot community.

Special thanks to Mohammad Hefny for his contributions to the OBAL platform and for enabling Linux-based flight controller development.

Also thanks go to Oliver Vogt for his supervision and guidance with this project.


License

This project follows the licensing terms of the software and tools it builds upon. Please refer to the relevant directories for detailed licensing information.

About

This details the hardware and firmware implementation of a Raspberry Pi Linux flight controller board to run Ardupilot.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages