diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a9d6280..11de09a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,6 @@ # Workflow for testing MULTI-Module firmware builds -name: CI +name: MULTI Test, Build, Deploy, Release on: # Trigger the workflow on pushes, except those that are tagged (avoids double-testing releases) @@ -32,7 +32,7 @@ on: workflow_dispatch: jobs: - build: + test: runs-on: ubuntu-latest # Configure the board matrix @@ -51,21 +51,21 @@ jobs: - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none" name: "STM32F103 (128KB)" - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=native" - name: "STM32F103 (128KB, USB Debugging)" + name: "STM32F103 (128KB, USB Debug)" - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi" - name: "STM32F103 (128KB, Serial Debugging)" + name: "STM32F103 (128KB, Serial Debug)" - board: "multi4in1:STM32F1:multi5in1t18int" name: "T18 5-in-1 (128KB)" # Set the build name using the friendly board name - name: ${{ matrix.name }} + name: "[Test] ${{ matrix.name }}" # Set the environment variables env: BOARD: ${{ matrix.board }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Arduino CLI uses: arduino/setup-arduino-cli@v1.1.2 @@ -161,23 +161,38 @@ jobs: - name: Build serial only run: | - source ./buildroot/bin/buildFunctions; - cp ./_Config.h.bak Multiprotocol/_Config.h - opt_disable ENABLE_PPM; - buildMulti; + # Skip the serial-only build for boards where it's too large now + if [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=none" ]] || [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then + printf "Not testing serial-only build for $BOARD."; + else + source ./buildroot/bin/buildFunctions; + cp ./_Config.h.bak Multiprotocol/_Config.h + opt_disable ENABLE_PPM; + buildMulti; + fi - name: Build PPM only run: | - source ./buildroot/bin/buildFunctions; - cp ./_Config.h.bak Multiprotocol/_Config.h - opt_disable ENABLE_SERIAL; - buildMulti; + # Skip the PPM-only build for boards where it's too large now + if [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=none" ]] || [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then + printf "Not testing PPM-only build for $BOARD."; + else + source ./buildroot/bin/buildFunctions; + cp ./_Config.h.bak Multiprotocol/_Config.h + opt_disable ENABLE_SERIAL; + buildMulti; + fi - name: Build each RF module individually run: | - source ./buildroot/bin/buildFunctions; - cp ./_Config.h.bak Multiprotocol/_Config.h; - buildEachRFModule; + # Skip the per-RF module builds for boards which have fixed modules + if [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then + printf "Not testing individual RF module builds for $BOARD."; + else + source ./buildroot/bin/buildFunctions; + cp ./_Config.h.bak Multiprotocol/_Config.h; + buildEachRFModule; + fi - name: Build each protocol individually run: | @@ -185,6 +200,128 @@ jobs: cp ./_Config.h.bak Multiprotocol/_Config.h; buildEachProtocol; + build: + runs-on: ubuntu-latest + + # Configure the board matrix + strategy: + fail-fast: false + matrix: + include: + - board: "multi4in1:avr:multiatmega328p:bootloader=none" + name: "ATmega328p" + release: "atmega328p" + - board: "multi4in1:avr:multiatmega328p:bootloader=optiboot" + name: "ATmega328p (Optiboot)" + release: "atmega328p-optiboot" + - board: "multi4in1:avr:multixmega32d4" + name: "OrangeRX" + release: "orangerx" + - board: "multi4in1:STM32F1:multistm32f103c8:debug_option=none" + name: "STM32F103 CC2500 (64KB)" + release: "stm32f103-cc2500-64k" + - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none" + name: "STM32F103 CC2500 (128KB)" + release: "stm32f103-cc2500-128k" + - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none" + name: "STM32F103 (128KB)" + release: "stm32f103-128k-4in1" + - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=native" + name: "STM32F103 (128KB, USB Debug)" + release: "stm32f103-128k-usb-debug" + - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi" + name: "STM32F103 (128KB, Serial Debug)" + release: "stm32f103-128k-serial-debug" + - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none" + name: "STM32F103 5-in-1 (128KB)" + release: "stm32f103-128k-5in1" + - board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none" + name: "T-Lite 5-in-1 (128KB)" + release: "tlite-5in1" + - board: "multi4in1:STM32F1:multi5in1t18int" + name: "T18 5-in-1 (128KB)" + release: "t18-5in1" + - board: "none" + name: "Scripts" + release: "scripts" + + # Set the build name using the friendly board name + name: "[Build] ${{ matrix.name }}" + + # Set the environment variables + env: + BOARD: ${{ matrix.board }} + RELEASE: ${{ matrix.release }} + + steps: + - uses: actions/checkout@v4 + + - name: Install Arduino CLI + uses: arduino/setup-arduino-cli@v1.1.2 + with: + version: "0.32.2" + + - name: Prepare build environment + run: | + echo "Github Ref: $GITHUB_REF" + echo "Event name: ${{ github.event_name }}" + echo "Event action: ${{ github.event.action }}" + echo "Tag name: ${{ github.event.release.tag_name }}" + + arduino-cli config init --additional-urls https://raw.githubusercontent.com/pascallanger/DIY-Multiprotocol-TX-Module-Boards/master/package_multi_4in1_board_index.json,https://raw.githubusercontent.com/pascallanger/DIY-Multiprotocol-TX-Module-Boards/devel/source/package_multi_4in1_board_devel_index.json + arduino-cli core update-index + + if [[ "$BOARD" =~ ":avr:" ]]; then + arduino-cli core install arduino:avr; + fi + + if [[ "$BOARD" =~ "multi4in1-devel:avr" ]]; then + arduino-cli core install multi4in1-devel:avr + elif [[ "$BOARD" =~ "multi4in1:avr" ]]; then + arduino-cli core install multi4in1:avr + fi + + if [[ "$BOARD" =~ "multi4in1-devel:STM32F1:" ]]; then + arduino-cli core install multi4in1-devel:STM32F1 + elif [[ "$BOARD" =~ "multi4in1:STM32F1:" ]]; then + arduino-cli core install multi4in1:STM32F1 + fi + + chmod +x ${GITHUB_WORKSPACE}/buildroot/bin/* + echo "${GITHUB_WORKSPACE}/buildroot/bin" >> $GITHUB_PATH + + mkdir ./build + mkdir ./binaries + + - name: Configure MULTI-Module firmware options + run: | + # Load the build functions + source ./buildroot/bin/buildFunctions; + + # Get the version + getMultiVersion + echo "MULTI_VERSION=$(echo $MULTI_VERSION)" >> $GITHUB_ENV + + # Get all the protocols for this board + getAllProtocols + echo "A7105_PROTOCOLS=$(echo $A7105_PROTOCOLS)" >> $GITHUB_ENV + echo "CC2500_PROTOCOLS=$(echo $CC2500_PROTOCOLS)" >> $GITHUB_ENV + echo "CYRF6936_PROTOCOLS=$(echo $CYRF6936_PROTOCOLS)" >> $GITHUB_ENV + echo "NRF24L01_PROTOCOLS=$(echo $NRF24L01_PROTOCOLS)" >> $GITHUB_ENV + echo "SX1276_PROTOCOLS=$(echo $SX1276_PROTOCOLS)" >> $GITHUB_ENV + echo "CCNRF_INO_PROTOCOLS=$(echo $CCNRF_INO_PROTOCOLS)" >> $GITHUB_ENV + echo "ALL_PROTOCOLS=$(echo $ALL_PROTOCOLS)" >> $GITHUB_ENV + + # Disable CHECK_FOR_BOOTLOADER when not needed + if [[ "$BOARD" =~ ":avr:multiatmega328p:bootloader=none" ]]; then + opt_disable CHECK_FOR_BOOTLOADER; + fi + + - name: Save default firmware configuration + run: | + cat Multiprotocol/_Config.h + cp Multiprotocol/_Config.h ./_Config.h.bak + - name: Build release files run: | source ./buildroot/bin/buildFunctions; @@ -199,16 +336,43 @@ jobs: echo "HAVE_FILES=false" >> $GITHUB_ENV fi - - name: Deploy files to release - if: github.event_name == 'release' && github.event.action == 'created' && env.HAVE_FILES == 'true' - uses: AButler/upload-release-assets@v2.0 - with: - files: './binaries/*' - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: 'Upload Artifacts' if: env.HAVE_FILES == 'true' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact/@v4 + with: + name: multi-${{ matrix.release }} + path: ./binaries/ + + deploy: + name: "[Deploy] Attach Build Artifacts" + runs-on: ubuntu-latest + needs: [test, build] + steps: + - name: Combine and upload build artifacts + uses: actions/upload-artifact/merge@v4 with: name: multi-test-build - path: ./binaries/ + pattern: multi-* + delete-merged: true + retention-days: 90 + + release: + name: "[Release] Publish Files to Release" + if: github.event_name == 'release' && github.event.action == 'created' + runs-on: ubuntu-latest + needs: deploy + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: multi-test-build + path: ./artifacts/ + + - name: Display downloaded artifacts + run: ls -R ./artifacts/ + + - name: Deploy artifacts to release + uses: AButler/upload-release-assets@v3.0 + with: + files: './artifacts/*' + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/buildroot/bin/buildFunctions b/buildroot/bin/buildFunctions index d1a78dd..e395fb4 100644 --- a/buildroot/bin/buildFunctions +++ b/buildroot/bin/buildFunctions @@ -84,23 +84,30 @@ buildEachRFModule() { } buildReleaseFiles(){ - if [[ "$BOARD" =~ ":avr:multixmega32d4" ]]; then + if [[ "$RELEASE" == "scripts" ]]; then + build_release_scripts; + elif [[ "$RELEASE" == "orangerx" ]]; then build_release_orx; - build_release_extras; - elif [[ "$BOARD" =~ ":avr:multiatmega328p:bootloader=none" ]]; then + elif [[ "$RELEASE" == "atmega328p" ]]; then build_release_avr_noboot; - elif [[ "$BOARD" =~ ":avr:multiatmega328p:bootloader=optiboot" ]]; then + elif [[ "$RELEASE" == "atmega328p-optiboot" ]]; then build_release_avr_optiboot; - elif [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=none" ]]; then - build_release_stm32f1_no_debug; - elif [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=native" ]]; then - build_release_stm32f1_native_debug; - elif [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=ftdi" ]]; then - build_release_stm32f1_serial_debug; - elif [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then + elif [[ "$RELEASE" == "stm32f103-128k-4in1" ]]; then + build_release_stm32f1_4in1_no_debug; + elif [[ "$RELEASE" == "stm32f103-128k-usb-debug" ]]; then + build_release_stm32f1_4in1_native_debug; + elif [[ "$RELEASE" == "stm32f103-128k-serial-debug" ]]; then + build_release_stm32f1_4in1_serial_debug; + elif [[ "$RELEASE" == "stm32f103-cc2500-64k" ]]; then + build_release_stm32f1_cc2500_64k; + elif [[ "$RELEASE" == "stm32f103-cc2500-128k" ]]; then + build_release_stm32f1_cc2500_128k; + elif [[ "$RELEASE" == "stm32f103-128k-5in1" ]]; then + build_release_stm32f1_5in1; + elif [[ "$RELEASE" == "tlite-5in1" ]]; then + build_release_stm32f1_tlite; + elif [[ "$RELEASE" == "t18-5in1" ]]; then build_release_stm32f1_t18int; - elif [[ "$BOARD" =~ ":STM32F1:multistm32f103c8:debug_option=none" ]]; then - build_release_stm32f1_64k; else printf "No release files for this board."; fi diff --git a/buildroot/bin/build_release_extras b/buildroot/bin/build_release_scripts similarity index 100% rename from buildroot/bin/build_release_extras rename to buildroot/bin/build_release_scripts diff --git a/buildroot/bin/build_release_stm32f1_native_debug b/buildroot/bin/build_release_stm32f1_4in1_native_debug similarity index 100% rename from buildroot/bin/build_release_stm32f1_native_debug rename to buildroot/bin/build_release_stm32f1_4in1_native_debug diff --git a/buildroot/bin/build_release_stm32f1_4in1_no_debug b/buildroot/bin/build_release_stm32f1_4in1_no_debug new file mode 100644 index 0000000..de46e0c --- /dev/null +++ b/buildroot/bin/build_release_stm32f1_4in1_no_debug @@ -0,0 +1,97 @@ +#!/usr/bin/env bash + +source ./buildroot/bin/buildFunctions; +exitcode=0; + +# Generic 4-in-1 AIR builds +printf "\e[33;1mBuilding mm-stm-serial-aetr-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_AIR +opt_disable ENABLE_PPM; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-aetr-air-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-serial-taer-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-taer-air-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-serial-reta-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-reta-air-v$MULTI_VERSION.bin; + +# Generic 4-in-1 SURFACE builds +printf "\e[33;1mBuilding mm-stm-serial-aetr-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace RETA AETR; +opt_remove MULTI_AIR; +opt_add MULTI_SURFACE; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-aetr-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-serial-taer-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-taer-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-serial-reta-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-reta-sfc-v$MULTI_VERSION.bin; + +# Generic 4-in-1 LBT/EU builds +printf "\e[33;1mBuilding mm-stm-serial-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace RETA AETR; +opt_remove MULTI_SURFACE; +opt_add MULTI_EU; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-aetr-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-serial-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-taer-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-serial-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-reta-lbt-v$MULTI_VERSION.bin; + +# 4-in-1 PPM builds +printf "\e[33;1mBuilding mm-stm-ppm-aetr-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_AIR; +opt_enable A7105_INSTALLED; +opt_enable CYRF6936_INSTALLED; +opt_enable NRF24L01_INSTALLED; +opt_remove MULTI_EU; +opt_enable ENABLE_PPM; +opt_disable ENABLE_SERIAL; +opt_replace RETA AETR; +opt_disable MULTI_STATUS; +opt_disable MULTI_TELEMETRY; +opt_set NBR_BANKS 5; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-ppm-aetr-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-ppm-taer-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-ppm-taer-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-ppm-reta-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-ppm-reta-v$MULTI_VERSION.bin; + +exit $exitcode; diff --git a/buildroot/bin/build_release_stm32f1_serial_debug b/buildroot/bin/build_release_stm32f1_4in1_serial_debug similarity index 100% rename from buildroot/bin/build_release_stm32f1_serial_debug rename to buildroot/bin/build_release_stm32f1_4in1_serial_debug diff --git a/buildroot/bin/build_release_stm32f1_5in1 b/buildroot/bin/build_release_stm32f1_5in1 new file mode 100644 index 0000000..0a13a3c --- /dev/null +++ b/buildroot/bin/build_release_stm32f1_5in1 @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +source ./buildroot/bin/buildFunctions; +exitcode=0; + +# DIY 5-in-1 AIR builds +printf "\e[33;1mBuilding mm-stm-5in1-aetr-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_AIR; +opt_disable ENABLE_PPM; +opt_disable CFLIE_NRF24L01_INO +opt_enable SX1276_INSTALLED; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-aetr-air-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-5in1-taer-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-taer-air-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-5in1-reta-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-reta-air-v$MULTI_VERSION.bin; + +# DIY 5-in-1 SURFACE builds +printf "\e[33;1mBuilding mm-stm-5in1-aetr-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_SURFACE; +opt_remove MULTI_AIR; +opt_enable CFLIE_NRF24L01_INO +opt_replace RETA AETR; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-aetr-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-5in1-taer-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-taer-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-5in1-reta-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-reta-sfc-v$MULTI_VERSION.bin; + +# DIY 5-in-1 LBT builds +printf "\e[33;1mBuilding mm-stm-5in1-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_remove MULTI_SURFACE; +opt_add MULTI_EU; +opt_replace RETA AETR; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-aetr-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-5in1-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-taer-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-5in1-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-reta-lbt-v$MULTI_VERSION.bin; + +exit $exitcode; diff --git a/buildroot/bin/build_release_stm32f1_cc2500_128k b/buildroot/bin/build_release_stm32f1_cc2500_128k new file mode 100644 index 0000000..2e8659a --- /dev/null +++ b/buildroot/bin/build_release_stm32f1_cc2500_128k @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +source ./buildroot/bin/buildFunctions; +exitcode=0; + +# CC2500-only FCC builds +printf "\e[33;1mBuilding mm-stm-cc2500-aetr-v$MULTI_VERSION.bin\e[0m\n"; +opt_disable A7105_INSTALLED; +opt_disable CYRF6936_INSTALLED; +opt_disable NRF24L01_INSTALLED; +opt_disable ENABLE_PPM; +opt_disable INVERT_TELEMETRY; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-aetr-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-cc2500-taer-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-taer-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-cc2500-reta-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-reta-v$MULTI_VERSION.bin; + +# CC2500-only LBT/EU builds +printf "\e[33;1mBuilding mm-stm-cc2500-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace RETA AETR; +opt_add MULTI_EU; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-aetr-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-cc2500-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-taer-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-stm-cc2500-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-reta-lbt-v$MULTI_VERSION.bin; + +exit $exitcode; diff --git a/buildroot/bin/build_release_stm32f1_64k b/buildroot/bin/build_release_stm32f1_cc2500_64k similarity index 96% rename from buildroot/bin/build_release_stm32f1_64k rename to buildroot/bin/build_release_stm32f1_cc2500_64k index 5cc7f3f..61b38e0 100644 --- a/buildroot/bin/build_release_stm32f1_64k +++ b/buildroot/bin/build_release_stm32f1_cc2500_64k @@ -5,8 +5,8 @@ exitcode=0; # CC2500-only 64Kb FCC builds printf "\e[33;1mBuilding mm-stm-cc2500-64-aetr-v$MULTI_VERSION.bin\e[0m\n"; -opt_enable $ALL_PROTOCOLS; -opt_disable IKEAANSLUTA_CC2500_INO; +#opt_enable $ALL_PROTOCOLS; +#opt_disable IKEAANSLUTA_CC2500_INO; opt_disable ENABLE_PPM; opt_disable A7105_INSTALLED; opt_disable CYRF6936_INSTALLED; diff --git a/buildroot/bin/build_release_stm32f1_no_debug b/buildroot/bin/build_release_stm32f1_no_debug deleted file mode 100644 index 43a1744..0000000 --- a/buildroot/bin/build_release_stm32f1_no_debug +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash - -source ./buildroot/bin/buildFunctions; -exitcode=0; - -# Generic 4-in-1 FCC builds -printf "\e[33;1mBuilding mm-stm-serial-aetr-v$MULTI_VERSION.bin\e[0m\n"; -opt_disable ENABLE_PPM; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-aetr-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-serial-taer-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-taer-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-serial-reta-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-reta-v$MULTI_VERSION.bin; - -# Generic 4-in-1 LBT/EU builds -printf "\e[33;1mBuilding mm-stm-serial-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace RETA AETR; -opt_add MULTI_EU; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-aetr-lbt-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-serial-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-taer-lbt-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-serial-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-serial-reta-lbt-v$MULTI_VERSION.bin; - -# DIY 5-in-1 builds -printf "\e[33;1mBuilding mm-stm-5in1-aetr-v$MULTI_VERSION.bin\e[0m\n"; -opt_remove MULTI_EU; -opt_replace RETA AETR; -opt_enable SX1276_INSTALLED; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-aetr-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-5in1-taer-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-taer-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-5in1-reta-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-5in1-reta-v$MULTI_VERSION.bin; - -# T-Lite 5-in-1 builds -printf "\e[33;1mBuilding mm-tlite5in1-aetr-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace RETA AETR; -opt_disable INVERT_TELEMETRY; -opt_disable SX1276_INSTALLED; -opt_enable "MULTI_5IN1_INTERNAL JP_TLite" -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-aetr-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-tlite5in1-taer-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-taer-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-tlite5in1-reta-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-reta-v$MULTI_VERSION.bin; - -# CC2500-only FCC builds -printf "\e[33;1mBuilding mm-stm-cc2500-aetr-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace RETA AETR; -opt_disable "MULTI_5IN1_INTERNAL JP_TLite" -opt_disable A7105_INSTALLED; -opt_disable CYRF6936_INSTALLED; -opt_disable NRF24L01_INSTALLED; -opt_disable INVERT_TELEMETRY; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-aetr-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-cc2500-taer-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-taer-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-cc2500-reta-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-reta-v$MULTI_VERSION.bin; - -# CC2500-only LBT/EU builds -printf "\e[33;1mBuilding mm-stm-cc2500-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace RETA AETR; -opt_add MULTI_EU; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-aetr-lbt-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-cc2500-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-taer-lbt-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-cc2500-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-cc2500-reta-lbt-v$MULTI_VERSION.bin; - -# 4-in-1 PPM builds -printf "\e[33;1mBuilding mm-stm-ppm-aetr-v$MULTI_VERSION.bin\e[0m\n"; -opt_enable A7105_INSTALLED; -opt_enable CYRF6936_INSTALLED; -opt_enable NRF24L01_INSTALLED; -opt_remove MULTI_EU; -opt_enable ENABLE_PPM; -opt_disable ENABLE_SERIAL; -opt_replace RETA AETR; -opt_disable MULTI_STATUS; -opt_disable MULTI_TELEMETRY; -opt_set NBR_BANKS 5; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-ppm-aetr-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-ppm-taer-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace AETR TAER; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-ppm-taer-v$MULTI_VERSION.bin; - -printf "\e[33;1mBuilding mm-stm-ppm-reta-v$MULTI_VERSION.bin\e[0m\n"; -opt_replace TAER RETA; -buildMulti; -exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-stm-ppm-reta-v$MULTI_VERSION.bin; - -exit $exitcode; diff --git a/buildroot/bin/build_release_stm32f1_t18int b/buildroot/bin/build_release_stm32f1_t18int index 196f5f8..a96d796 100644 --- a/buildroot/bin/build_release_stm32f1_t18int +++ b/buildroot/bin/build_release_stm32f1_t18int @@ -3,23 +3,65 @@ source ./buildroot/bin/buildFunctions; exitcode=0; -printf "\e[33;1mBuilding mm-t18int-aetr-v$MULTI_VERSION.bin\e[0m\n"; +# T18 5-in-1 AIR builds +printf "\e[33;1mBuilding mm-t18int-aetr-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_AIR opt_disable ENABLE_PPM; opt_disable INVERT_TELEMETRY; buildMulti; exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-aetr-v$MULTI_VERSION.bin; +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-aetr-air-v$MULTI_VERSION.bin; -printf "\e[33;1mBuilding mm-t18int-taer-v$MULTI_VERSION.bin\e[0m\n"; +printf "\e[33;1mBuilding mm-t18int-taer-air-v$MULTI_VERSION.bin\e[0m\n"; opt_replace AETR TAER; buildMulti; exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-taer-v$MULTI_VERSION.bin; +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-taer-air-v$MULTI_VERSION.bin; -printf "\e[33;1mBuilding mm-t18int-reta-v$MULTI_VERSION.bin\e[0m\n"; +printf "\e[33;1mBuilding mm-t18int-reta-air-v$MULTI_VERSION.bin\e[0m\n"; opt_replace TAER RETA; buildMulti; exitcode=$((exitcode+$?)); -mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-reta-v$MULTI_VERSION.bin; +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-reta-air-v$MULTI_VERSION.bin; + +# T18 5-in-1 SURFACE builds +printf "\e[33;1mBuilding mm-t18int-aetr-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_remove MULTI_AIR +opt_add MULTI_SURFACE +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-aetr-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-t18int-taer-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-taer-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-t18int-reta-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-reta-sfc-v$MULTI_VERSION.bin; + +# T18 5-in-1 LBT/EU builds +printf "\e[33;1mBuilding mm-t18int-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_remove MULTI_SURFACE +opt_add MULTI_EU +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-aetr-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-t18int-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-taer-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-t18int-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-t18int-reta-lbt-v$MULTI_VERSION.bin; exit $exitcode; diff --git a/buildroot/bin/build_release_stm32f1_tlite b/buildroot/bin/build_release_stm32f1_tlite new file mode 100644 index 0000000..003c35a --- /dev/null +++ b/buildroot/bin/build_release_stm32f1_tlite @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +source ./buildroot/bin/buildFunctions; +exitcode=0; + +# T-Lite 5-in-1 AIR builds +printf "\e[33;1mBuilding mm-tlite5in1-aetr-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_AIR; +opt_disable ENABLE_PPM; +opt_disable INVERT_TELEMETRY; +opt_enable "MULTI_5IN1_INTERNAL JP_TLite" +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-aetr-air-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-tlite5in1-taer-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-taer-air-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-tlite5in1-reta-air-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-reta-air-v$MULTI_VERSION.bin; + +# T-Lite 5-in-1 SURFACE builds +printf "\e[33;1mBuilding mm-tlite5in1-aetr-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_add MULTI_SURFACE; +opt_remove MULTI_AIR; +opt_replace RETA AETR; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-aetr-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-tlite5in1-taer-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-taer-sfc-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-tlite5in1-reta-sfc-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-reta-sfc-v$MULTI_VERSION.bin; + +# T-Lite 5-in-1 SURFACE builds +printf "\e[33;1mBuilding mm-tlite5in1-aetr-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_remove MULTI_SURFACE; +opt_add MULTI_EU; +opt_replace RETA AETR; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-aetr-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-tlite5in1-taer-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace AETR TAER; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-taer-lbt-v$MULTI_VERSION.bin; + +printf "\e[33;1mBuilding mm-tlite5in1-reta-lbt-v$MULTI_VERSION.bin\e[0m\n"; +opt_replace TAER RETA; +buildMulti; +exitcode=$((exitcode+$?)); +mv build/Multiprotocol.ino.bin ./binaries/mm-tlite5in1-reta-lbt-v$MULTI_VERSION.bin; + +exit $exitcode;