This is a customised Ardupilot firmware builder which allows to integrate custom patches, recall old builds etc. This is hosted on a private server but publicly accessible and the source code can be downloaded by anyone. Detailed instruction on how to build your custom firmware patcher based with this code are in the readme below. A live version of this app can be accessed here: https://ardupilot.equalmass.com

Shiv Tyagi ce201be66a utils: wrap target method call in TaskRunner inside try-except 11 meses atrás
ap_git 5ace3c503e ap_git: add GitRepo.clone_if_needed method 1 ano atrás
build_manager cfdf46009e build_manager: initial implementation of the module 11 meses atrás
builder a5ede5a6f6 builder: add Dockerfile 11 meses atrás
examples 6daa523148 examples: add .env.sample 11 meses atrás
metadata_manager 2917079d6d metadata_manager: add get_remote_info in VersionsFetcher 11 meses atrás
scripts 579a8e6b16 scripts: change basedir default location to repo home 1 ano atrás
utils ce201be66a utils: wrap target method call in TaskRunner inside try-except 11 meses atrás
web b36886922f web: create remotes.json if it doesn't exist 11 meses atrás
.gitignore 944367a32f gitignore: ignore anything with the name base 11 meses atrás
LICENSE 519e1f8813 Initial commit 5 anos atrás
README.md 4694ee6c85 Improve checkout/clone process 2 anos atrás
Vagrantfile 28c381d75c Vagrant: add Vagrant vm definition and creation script 4 anos atrás
docker-compose.yml 2702a12743 Add docker-compose file 11 meses atrás

README.md

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:

  • Install mod_wsgi for python 3:

    sudo apt-get install apache2 libapache2-mod-wsgi-py3 python3 python3-pip
    
  • update /etc/apache2/envvars

  • set correct username and group (default is www-data)

  • add export PATH=/opt/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH to end of file (this is default location if you have followed the dev env setup instructions above)

  • Copy the config file to /etc/apache2/sites-available/ and specify the correct directory.

  • Edit the file as necessary for your use case

  • Enable the file:

    sudo a2ensite CustomBuild.conf
    
  • To restart Apache:

    sudo apache2ctl graceful
    
  • To stop Apache:

    sudo apache2ctl stop
    
  • To start Apache:

    sudo apache2ctl start
    

    Webpage: 127.0.0.1