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

Ryan Friedman 2e062cb427 Improve bad vehicle failure message 2 роки тому
scripts cfe15ec38b Vagrant: allow su to www-data 4 роки тому
static 567a117802 static: add_build.js: check uncheck all should reflect current state 2 роки тому
templates c15bd928c6 Fix incorrect paths 2 роки тому
.gitignore 28c381d75c Vagrant: add Vagrant vm definition and creation script 4 роки тому
CustomBuild.conf 75a5cc39c7 Updated config file (final GSoC commit) 4 роки тому
LICENSE 519e1f8813 Initial commit 5 роки тому
README.md d76da42f06 Update README with clearer instructions 4 роки тому
Vagrantfile 28c381d75c Vagrant: add Vagrant vm definition and creation script 4 роки тому
__init__.py dbb766af42 Attempted to get apache server running with wsgi (not currently working) 4 роки тому
app.py 2e062cb427 Improve bad vehicle failure message 2 роки тому
app.wsgi 32ebd62a5a tidy ups of WSGI support 4 роки тому

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 containg the CustomBuild repo just cloned, create a /base subdirectory and change to that directory.

  3. Clone a fork of the ArduPilot/ardupilot repository. The structure should appear similar to that below:

Directory structure

default directory structure is as follows

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

Install Flask

python3 -m pip install --user -U flask

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

Running

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

./app.py

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