ArduPilot / CustomBuild

Custom build server source
GNU General Public License v3.0
14 stars 44 forks source link

ArduPilot Custom Firmware Builder - GSoC 2021 Project

Summary

This is a website that generates a downloadable custom ArduPilot firmware, based on user selection. Website: https://custom.ardupilot.org Blog post: https://discuss.ardupilot.org/t/gsoc-2021-custom-firmware-builder/74946

How to build the server locally for testing

It is expected that you have an environment where ArduPilot can be built. Otherwise, see https://ardupilot.org/dev/docs/building-setup-linux.html.

  1. Fork and Clone the ArduPilot/CustomBuild repository

  2. In the directory containing the CustomBuild repo just cloned, create a /base subdirectory and change to that directory.

  3. Clone a fork of the ArduPilot/ardupilot repository.

Detailed Instructions for Ubuntu

For example, here are the commands for Ubuntu.

If not already set up, configure your Git username: Substitute your-github-account with your Github username.

git config --global credential.username your-github-account

Next, clone the repositories:

git config credential.username your-github-account
cd ~
git clone git@github.com:$(git config credential.username)/CustomBuild.git
git clone --depth 1 git@github.com:$(git config credential.username)/ardupilot.git base/ardupilot

Finally, add the upstream ArduPilot to your remotes.

git -C base/ardupilot remote add upstream git@github.com:ardupilot/ardupilot.git
git -C base/ardupilot fetch --depth 1 upstream

Directory structure

The default directory structure is as follows:

/home/<username>
-CustomBuild
-base
--ardupilot

Install Dependencies

cd ~/CustomBuild
python3 -m pip install --user --upgrade --requirement requirements.txt

Running

To run, in the CustomBuild directory execute the following command:

cd ~/CustomBuild
./app.py

Use --basedir to adjust the base directory. The default one is base.

Once running, you will be given a link to a local host port in which the interface is displayed for the build server. It can be run at this point. Output will NOT be accessible via the interface buttons for build directory. Builds are stored in the base/builds subdirectory

For Apache web server on Ubuntu with WSGI

To create a full server with network access: