Table of Contents
Development Resources
Building the Code
Building Deviation requires a cross-compiler tool-chain, and due to memory limitations on some transmitters, only some versions of the compilers can successfully build small-enough code for those. This means that getting the build-chain setup can be challenging. We have decided to use Docker images to simplify this process and provide a consistent build environment for everyone
Instructions for building Deviation with Docker can be found here
If you want to look at the code, the Deviation GitHub repository is here.
The legacy instructions on setting up the build environment by hand can be found here, but this method is no longer recommended.
Some users have also tried various build approaches. These are generally less well supported, but alternate instructions for building on Windows can be found here, and instructions for building with Eclipse are available here. Instructions for building on OSX can be found here
Hardware Information
Deviation has been designed to be portable to lots of different hardware. While it is easiest to port to STM32 based transmitters, it should be possible to port it to any hardware with a sufficiently capable MCU. The 1st step in supporting a new transmitter is to document its pin connections. We have provided this information for each of the supported transmitters here
Script for uploading Test builds easily
PhracturedBlue released a script that makes it easy for developers to upload builds to the Test Build section. This script is only available to developers. If you provide test-builds, and do not have access, please PM him. The script can be found here: https://www.deviationtx.com/downloads-new/category/64-developer-tools Look for 'upload_test_build.pl'
Download the script and make it executable. You will need to have: a) a git repository b) curl c) perl
Before beginning, create a file in your repo directory: <repo>/.git/deviationtx Place your forum username on the 1st line and your forum password on the 2nd line. Restrict permissions as desired (because this file is in the .git directory, you don't need to worry about it being accidentally checked in unless you share the metadata (which you shouldn't)
Now you can run: cd <repo> upload_test_build.pl -title “Category Name” -description “Long description or txt file” file1.zip file2.zip …
(Only zip files are allowed) It will create a new category in the 'Test Build' section and upload your files there.The description uses HTML (not BBCode) markup
You can remove a category and all files within it via: upload_test_build.pl -title “Category Name” -delete
Note that your username is automatically appended to the category name so it isn't possible for you to conflict with another user. The script also automatically checks for updated versions each time it is run so that any changes are pushed to all users.