mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-12-29 07:53:15 +00:00
Compare commits
18 Commits
390e5dd654
...
v1.3.4.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7513abad8 | ||
|
|
e6e13c0fdd | ||
|
|
9579a667fc | ||
|
|
cbedda2471 | ||
|
|
f8695befe2 | ||
|
|
e951e3146b | ||
|
|
4c0b46549f | ||
|
|
188f8ff9ce | ||
|
|
bee6e59582 | ||
|
|
af47462ba7 | ||
|
|
d6ccd4af54 | ||
|
|
0feedc6fa9 | ||
|
|
b5bc7c04fb | ||
|
|
a15371d989 | ||
|
|
3c82f37e2b | ||
|
|
4f914a18ae | ||
|
|
1cbce29970 | ||
|
|
e0c44ed5a8 |
216
.github/workflows/main.yml
vendored
216
.github/workflows/main.yml
vendored
@@ -1,6 +1,6 @@
|
|||||||
# Workflow for testing MULTI-Module firmware builds
|
# Workflow for testing MULTI-Module firmware builds
|
||||||
|
|
||||||
name: CI
|
name: MULTI Test, Build, Deploy, Release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# Trigger the workflow on pushes, except those that are tagged (avoids double-testing releases)
|
# Trigger the workflow on pushes, except those that are tagged (avoids double-testing releases)
|
||||||
@@ -32,7 +32,7 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
# Configure the board matrix
|
# Configure the board matrix
|
||||||
@@ -51,21 +51,21 @@ jobs:
|
|||||||
- board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none"
|
- board: "multi4in1:STM32F1:multistm32f103cb:debug_option=none"
|
||||||
name: "STM32F103 (128KB)"
|
name: "STM32F103 (128KB)"
|
||||||
- board: "multi4in1:STM32F1:multistm32f103cb:debug_option=native"
|
- board: "multi4in1:STM32F1:multistm32f103cb:debug_option=native"
|
||||||
name: "STM32F103 (128KB, USB Debugging)"
|
name: "STM32F103 (128KB, USB Debug)"
|
||||||
- board: "multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi"
|
- board: "multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi"
|
||||||
name: "STM32F103 (128KB, Serial Debugging)"
|
name: "STM32F103 (128KB, Serial Debug)"
|
||||||
- board: "multi4in1:STM32F1:multi5in1t18int"
|
- board: "multi4in1:STM32F1:multi5in1t18int"
|
||||||
name: "T18 5-in-1 (128KB)"
|
name: "T18 5-in-1 (128KB)"
|
||||||
|
|
||||||
# Set the build name using the friendly board name
|
# Set the build name using the friendly board name
|
||||||
name: ${{ matrix.name }}
|
name: "[Test] ${{ matrix.name }}"
|
||||||
|
|
||||||
# Set the environment variables
|
# Set the environment variables
|
||||||
env:
|
env:
|
||||||
BOARD: ${{ matrix.board }}
|
BOARD: ${{ matrix.board }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Arduino CLI
|
- name: Install Arduino CLI
|
||||||
uses: arduino/setup-arduino-cli@v1.1.2
|
uses: arduino/setup-arduino-cli@v1.1.2
|
||||||
@@ -161,23 +161,38 @@ jobs:
|
|||||||
|
|
||||||
- name: Build serial only
|
- name: Build serial only
|
||||||
run: |
|
run: |
|
||||||
source ./buildroot/bin/buildFunctions;
|
# Skip the serial-only build for boards where it's too large now
|
||||||
cp ./_Config.h.bak Multiprotocol/_Config.h
|
if [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=none" ]] || [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then
|
||||||
opt_disable ENABLE_PPM;
|
printf "Not testing serial-only build for $BOARD.";
|
||||||
buildMulti;
|
else
|
||||||
|
source ./buildroot/bin/buildFunctions;
|
||||||
|
cp ./_Config.h.bak Multiprotocol/_Config.h
|
||||||
|
opt_disable ENABLE_PPM;
|
||||||
|
buildMulti;
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Build PPM only
|
- name: Build PPM only
|
||||||
run: |
|
run: |
|
||||||
source ./buildroot/bin/buildFunctions;
|
# Skip the PPM-only build for boards where it's too large now
|
||||||
cp ./_Config.h.bak Multiprotocol/_Config.h
|
if [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=none" ]] || [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then
|
||||||
opt_disable ENABLE_SERIAL;
|
printf "Not testing PPM-only build for $BOARD.";
|
||||||
buildMulti;
|
else
|
||||||
|
source ./buildroot/bin/buildFunctions;
|
||||||
|
cp ./_Config.h.bak Multiprotocol/_Config.h
|
||||||
|
opt_disable ENABLE_SERIAL;
|
||||||
|
buildMulti;
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Build each RF module individually
|
- name: Build each RF module individually
|
||||||
run: |
|
run: |
|
||||||
source ./buildroot/bin/buildFunctions;
|
# Skip the per-RF module builds for boards which have fixed modules
|
||||||
cp ./_Config.h.bak Multiprotocol/_Config.h;
|
if [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then
|
||||||
buildEachRFModule;
|
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
|
- name: Build each protocol individually
|
||||||
run: |
|
run: |
|
||||||
@@ -185,6 +200,128 @@ jobs:
|
|||||||
cp ./_Config.h.bak Multiprotocol/_Config.h;
|
cp ./_Config.h.bak Multiprotocol/_Config.h;
|
||||||
buildEachProtocol;
|
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
|
- name: Build release files
|
||||||
run: |
|
run: |
|
||||||
source ./buildroot/bin/buildFunctions;
|
source ./buildroot/bin/buildFunctions;
|
||||||
@@ -199,16 +336,43 @@ jobs:
|
|||||||
echo "HAVE_FILES=false" >> $GITHUB_ENV
|
echo "HAVE_FILES=false" >> $GITHUB_ENV
|
||||||
fi
|
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'
|
- name: 'Upload Artifacts'
|
||||||
if: env.HAVE_FILES == 'true'
|
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:
|
with:
|
||||||
name: multi-test-build
|
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 }}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@
|
|||||||
74,1,RadioLink,Air,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
74,1,RadioLink,Air,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
||||||
74,2,RadioLink,DumboRC,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
74,2,RadioLink,DumboRC,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
||||||
74,3,RadioLink,RC4G,0,CH5,FS_CH1,FS_CH2,FS_CH3,FS_CH4
|
74,3,RadioLink,RC4G,0,CH5,FS_CH1,FS_CH2,FS_CH3,FS_CH4
|
||||||
76,0,Realacc,R11,1,Flip,Light,Calib,HLess,RTH,UNK
|
76,0,Realacc,Std,1,Flip,Light,Calib,HLess,RTH,UNK
|
||||||
50,0,Redpine,Fast,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
50,0,Redpine,Fast,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
||||||
50,1,Redpine,Slow,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
50,1,Redpine,Slow,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
||||||
21,0,Futaba,SFHSS,0,CH5,CH6,CH7,CH8
|
21,0,Futaba,SFHSS,0,CH5,CH6,CH7,CH8
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
11,4,SLT,MR100,0,Rates,n-a,CH7,CH8,Mode,Flip,Video,Pict
|
11,4,SLT,MR100,0,Rates,n-a,CH7,CH8,Mode,Flip,Video,Pict
|
||||||
10,0,Symax,Std,1,Flip,Rates,Pict,Video,HLess
|
10,0,Symax,Std,1,Flip,Rates,Pict,Video,HLess
|
||||||
10,1,Symax,X5C,1,Flip,Rates,Pict,Video,HLess
|
10,1,Symax,X5C,1,Flip,Rates,Pict,Video,HLess
|
||||||
43,0,Traxxas,6519,0
|
43,0,Traxxas,TQ,0
|
||||||
5,0,V2x2,Std,1,Flip,Light,Pict,Video,HLess,CalX,CalY
|
5,0,V2x2,Std,1,Flip,Light,Pict,Video,HLess,CalX,CalY
|
||||||
5,1,V2x2,JXD506,1,Flip,Light,Pict,Video,HLess,StaSto,Emerg,Cam_UD
|
5,1,V2x2,JXD506,1,Flip,Light,Pict,Video,HLess,StaSto,Emerg,Cam_UD
|
||||||
48,0,V761,3CH,0,Gyro,Calib,Flip,RtnAct,Rtn
|
48,0,V761,3CH,0,Gyro,Calib,Flip,RtnAct,Rtn
|
||||||
@@ -214,3 +214,4 @@
|
|||||||
95,0,Bluefly,HP100,0,CH5,CH6,CH7,CH8
|
95,0,Bluefly,HP100,0,CH5,CH6,CH7,CH8
|
||||||
96,0,BumbleB
|
96,0,BumbleB
|
||||||
97,0,SGF22,Std,1,Mode,Flip,LED,Pict,Video
|
97,0,SGF22,Std,1,Mode,Flip,LED,Pict,Video
|
||||||
|
61,1,EazyRC
|
||||||
|
|||||||
@@ -174,19 +174,21 @@ static void __attribute__((unused)) DSM_build_data_packet(uint8_t upper)
|
|||||||
bits=10; // Only DSM2_1F is using a resolution of 1024
|
bits=10; // Only DSM2_1F is using a resolution of 1024
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sub_protocol == DSMR)
|
#ifndef MULTI_AIR
|
||||||
{
|
if(sub_protocol == DSMR)
|
||||||
for (uint8_t i = 0; i < 7; i++)
|
|
||||||
{
|
{
|
||||||
uint16_t value = 0x0000;
|
for (uint8_t i = 0; i < 7; i++)
|
||||||
if(i < num_ch)
|
{
|
||||||
value=Channel_data[i]<<1;
|
uint16_t value = 0x0000;
|
||||||
packet[i*2+2] = (value >> 8) & 0xff;
|
if(i < num_ch)
|
||||||
packet[i*2+3] = (value >> 0) & 0xff;
|
value=Channel_data[i]<<1;
|
||||||
|
packet[i*2+2] = (value >> 8) & 0xff;
|
||||||
|
packet[i*2+3] = (value >> 0) & 0xff;
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
return;
|
#endif
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DSM_THROTTLE_KILL_CH
|
#ifdef DSM_THROTTLE_KILL_CH
|
||||||
uint16_t kill_ch=Channel_data[DSM_THROTTLE_KILL_CH-1];
|
uint16_t kill_ch=Channel_data[DSM_THROTTLE_KILL_CH-1];
|
||||||
#endif
|
#endif
|
||||||
@@ -267,6 +269,10 @@ uint16_t DSM_callback()
|
|||||||
if(sub_protocol == DSM2_1F || sub_protocol == DSM2_2F)
|
if(sub_protocol == DSM2_1F || sub_protocol == DSM2_2F)
|
||||||
return 11000;
|
return 11000;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined MULTI_AIR
|
||||||
|
if(sub_protocol == DSMR)
|
||||||
|
return 11000;
|
||||||
|
#endif
|
||||||
#define DSM_CH1_CH2_DELAY 4010 // Time between write of channel 1 and channel 2
|
#define DSM_CH1_CH2_DELAY 4010 // Time between write of channel 1 and channel 2
|
||||||
#ifdef STM32_BOARD
|
#ifdef STM32_BOARD
|
||||||
#define DSM_WRITE_DELAY 1600 // Time after write to verify write complete
|
#define DSM_WRITE_DELAY 1600 // Time after write to verify write complete
|
||||||
@@ -506,6 +512,7 @@ uint16_t DSM_callback()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef MULTI_AIR
|
||||||
const uint8_t PROGMEM DSMR_ID_FREQ[][4 + 23] = {
|
const uint8_t PROGMEM DSMR_ID_FREQ[][4 + 23] = {
|
||||||
{ 0x71, 0x74, 0x1c, 0xe4, 0x11, 0x2f, 0x17, 0x3d, 0x23, 0x3b, 0x0f, 0x21, 0x25, 0x49, 0x1d, 0x13, 0x4d, 0x1f, 0x41, 0x4b, 0x47, 0x05, 0x27, 0x15, 0x19, 0x3f, 0x07 },
|
{ 0x71, 0x74, 0x1c, 0xe4, 0x11, 0x2f, 0x17, 0x3d, 0x23, 0x3b, 0x0f, 0x21, 0x25, 0x49, 0x1d, 0x13, 0x4d, 0x1f, 0x41, 0x4b, 0x47, 0x05, 0x27, 0x15, 0x19, 0x3f, 0x07 },
|
||||||
{ 0xfe, 0xfe, 0xfe, 0xfe, 0x45, 0x31, 0x33, 0x4b, 0x11, 0x29, 0x49, 0x3f, 0x09, 0x13, 0x47, 0x21, 0x1d, 0x43, 0x1f, 0x05, 0x41, 0x19, 0x1b, 0x2d, 0x15, 0x4d, 0x0f },
|
{ 0xfe, 0xfe, 0xfe, 0xfe, 0x45, 0x31, 0x33, 0x4b, 0x11, 0x29, 0x49, 0x3f, 0x09, 0x13, 0x47, 0x21, 0x1d, 0x43, 0x1f, 0x05, 0x41, 0x19, 0x1b, 0x2d, 0x15, 0x4d, 0x0f },
|
||||||
@@ -529,22 +536,27 @@ const uint8_t PROGMEM DSMR_ID_FREQ[][4 + 23] = {
|
|||||||
{ 0xff, 0xff, 0x00, 0x00, 0x2b, 0x35, 0x1b, 0x1d, 0x0f, 0x47, 0x09, 0x0d, 0x45, 0x41, 0x21, 0x11, 0x2f, 0x43, 0x27, 0x33, 0x4b, 0x37, 0x13, 0x19, 0x4d, 0x23, 0x17 },
|
{ 0xff, 0xff, 0x00, 0x00, 0x2b, 0x35, 0x1b, 0x1d, 0x0f, 0x47, 0x09, 0x0d, 0x45, 0x41, 0x21, 0x11, 0x2f, 0x43, 0x27, 0x33, 0x4b, 0x37, 0x13, 0x19, 0x4d, 0x23, 0x17 },
|
||||||
{ 0x00, 0xff, 0x00, 0x00, 0x1b, 0x1d, 0x33, 0x13, 0x2b, 0x27, 0x09, 0x41, 0x25, 0x17, 0x19, 0x2d, 0x4b, 0x37, 0x45, 0x11, 0x21, 0x0d, 0x3d, 0x4d, 0x07, 0x39, 0x43 },
|
{ 0x00, 0xff, 0x00, 0x00, 0x1b, 0x1d, 0x33, 0x13, 0x2b, 0x27, 0x09, 0x41, 0x25, 0x17, 0x19, 0x2d, 0x4b, 0x37, 0x45, 0x11, 0x21, 0x0d, 0x3d, 0x4d, 0x07, 0x39, 0x43 },
|
||||||
{ 0xff, 0x00, 0x00, 0x00, 0x37, 0x27, 0x43, 0x4b, 0x39, 0x13, 0x07, 0x0d, 0x25, 0x17, 0x29, 0x1b, 0x1d, 0x45, 0x19, 0x2d, 0x0b, 0x3d, 0x15, 0x47, 0x1f, 0x21, 0x4d } };
|
{ 0xff, 0x00, 0x00, 0x00, 0x37, 0x27, 0x43, 0x4b, 0x39, 0x13, 0x07, 0x0d, 0x25, 0x17, 0x29, 0x1b, 0x1d, 0x45, 0x19, 0x2d, 0x0b, 0x3d, 0x15, 0x47, 0x1f, 0x21, 0x4d } };
|
||||||
|
#endif
|
||||||
|
|
||||||
void DSM_init()
|
void DSM_init()
|
||||||
{
|
{
|
||||||
if(sub_protocol == DSMR)
|
if(sub_protocol == DSMR)
|
||||||
{
|
{
|
||||||
if(option&CLONE_BIT_MASK)
|
#ifndef MULTI_AIR
|
||||||
|
if(option&CLONE_BIT_MASK)
|
||||||
|
SUB_PROTO_INVALID;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SUB_PROTO_VALID;
|
||||||
|
uint8_t row = rx_tx_addr[3]%22;
|
||||||
|
for(uint8_t i=0; i< 4; i++)
|
||||||
|
cyrfmfg_id[i] = pgm_read_byte_near(&DSMR_ID_FREQ[row][i]);
|
||||||
|
for(uint8_t i=0; i< 23; i++)
|
||||||
|
hopping_frequency[i] = pgm_read_byte_near(&DSMR_ID_FREQ[row][i+4]);
|
||||||
|
}
|
||||||
|
#else
|
||||||
SUB_PROTO_INVALID;
|
SUB_PROTO_INVALID;
|
||||||
else
|
#endif
|
||||||
{
|
|
||||||
SUB_PROTO_VALID;
|
|
||||||
uint8_t row = rx_tx_addr[3]%22;
|
|
||||||
for(uint8_t i=0; i< 4; i++)
|
|
||||||
cyrfmfg_id[i] = pgm_read_byte_near(&DSMR_ID_FREQ[row][i]);
|
|
||||||
for(uint8_t i=0; i< 23; i++)
|
|
||||||
hopping_frequency[i] = pgm_read_byte_near(&DSMR_ID_FREQ[row][i+4]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
166
Multiprotocol/EazyRC_nrf24l01.ino
Normal file
166
Multiprotocol/EazyRC_nrf24l01.ino
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
/*
|
||||||
|
This project is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Multiprotocol is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Multiprotocol. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#if defined(EAZYRC_NRF24L01_INO)
|
||||||
|
|
||||||
|
#include "iface_xn297.h"
|
||||||
|
|
||||||
|
//#define FORCE_EAZYRC_ORIGINAL_ID
|
||||||
|
|
||||||
|
#define EAZYRC_PAYLOAD_SIZE 10
|
||||||
|
#define EAZYRC_RF_NUM_CHANNELS 4
|
||||||
|
#define EAZYRC_BIND_CHANNEL 18
|
||||||
|
#define EAZYRC_PACKET_PERIOD 5000
|
||||||
|
|
||||||
|
enum {
|
||||||
|
EAZYRC_BINDTX=0,
|
||||||
|
EAZYRC_BINDRX,
|
||||||
|
EAZYRC_DATA,
|
||||||
|
};
|
||||||
|
|
||||||
|
static void __attribute__((unused)) EAZYRC_send_packet()
|
||||||
|
{
|
||||||
|
//Bind:
|
||||||
|
// TX: C=18 S=Y A= AA BB CC DD EE P(10)= 1A A0 01 00 00 00 1E 00 78 51
|
||||||
|
// packet[0..2]=tx_addr, packet[6]=first rf channel, packet[8]=unk, packet[9]=sum(packet[0..8])
|
||||||
|
// RX: C=18 S=Y A= AA BB CC DD EE P(10)= 41 AD 01 1A A0 01 1E 00 87 4F
|
||||||
|
// packet[0..2]=rx_addr, packet[3..5]=tx_addr, packet[6]=first rf channel, packet[8]=unk but swapped, packet[9]=sum(packet[0..8])
|
||||||
|
//Normal: C=30 S=Y A= 1A A0 41 AD 02 P(10)= 7F 7F 1F 19 00 00 1E 00 AB FF
|
||||||
|
// packet[0]=THR, packet[1]=ST, packet[2]=unk, packet[3]=unk, packet[6]=first rf channel, packet[8]=unk, packet[9]=sum(packet[0..8])
|
||||||
|
//Bound : C=18 S=Y A= AA BB CC DD EE P(10)= 1A A0 01 41 AD 01 1E 00 79 41
|
||||||
|
// packet[0..2]=tx_addr, packet[3..5]=rx_addr, packet[6]=first rf channel, packet[8]=unk, packet[9]=sum(packet[0..8])
|
||||||
|
// sent every 12 packets in normal mode, but is it really needed if the car loose power then you need to rebind...
|
||||||
|
//Packet period around 5ms with a large jitter
|
||||||
|
|
||||||
|
memset(&packet[3], 0x00, 7);
|
||||||
|
if(IS_BIND_IN_PROGRESS)
|
||||||
|
{
|
||||||
|
memcpy(&packet,rx_tx_addr,3);
|
||||||
|
packet[6] = hopping_frequency[0];
|
||||||
|
packet[8] = 0x78; //??? packet type?
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
XN297_Hopping(hopping_frequency_no);
|
||||||
|
hopping_frequency_no++;
|
||||||
|
hopping_frequency_no &= 3;
|
||||||
|
|
||||||
|
packet[0] = convert_channel_8b(THROTTLE);
|
||||||
|
packet[1] = convert_channel_8b(AILERON);
|
||||||
|
packet[2] = 0x1F; //??? additional channel?
|
||||||
|
packet[3] = 0x19; //??? additional channel?
|
||||||
|
packet[6] = hopping_frequency[0];
|
||||||
|
packet[8] = 0xAB; //??? packet type?
|
||||||
|
}
|
||||||
|
for(uint8_t i=0;i<EAZYRC_PAYLOAD_SIZE-1;i++)
|
||||||
|
packet[9] += packet[i];
|
||||||
|
// Send
|
||||||
|
XN297_SetPower();
|
||||||
|
XN297_SetTxRxMode(TX_EN);
|
||||||
|
XN297_WritePayload(packet, EAZYRC_PAYLOAD_SIZE);
|
||||||
|
#ifdef DEBUG_SERIAL
|
||||||
|
for(uint8_t i=0; i < len; i++)
|
||||||
|
debug("%02X ", packet[i]);
|
||||||
|
debugln();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __attribute__((unused)) EAZYRC_initialize_txid()
|
||||||
|
{
|
||||||
|
rx_tx_addr[1] = rx_tx_addr[3];
|
||||||
|
hopping_frequency[0] = (rx_tx_addr[3]%20) + 0x1E; // Wild guess... First channel between 30 and 49so a full range of 30 to 79
|
||||||
|
#ifdef FORCE_EAZYRC_ORIGINAL_ID
|
||||||
|
rx_tx_addr[0] = 0x1A;
|
||||||
|
rx_tx_addr[1] = 0xA0;
|
||||||
|
rx_tx_addr[2] = 0x01;
|
||||||
|
hopping_frequency[0] = 0x1E;
|
||||||
|
#endif
|
||||||
|
rx_tx_addr[2] = 0x01; // Not sure if this is needed...
|
||||||
|
for(uint8_t i=1; i<EAZYRC_RF_NUM_CHANNELS; i++)
|
||||||
|
hopping_frequency[i] = hopping_frequency[0] + 10*i;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __attribute__((unused)) EAZYRC_RF_init()
|
||||||
|
{
|
||||||
|
XN297_Configure(XN297_CRCEN, XN297_SCRAMBLED, XN297_1M);
|
||||||
|
XN297_SetTXAddr((uint8_t*)"\xAA\xBB\xCC\xDD\xEE", 5);
|
||||||
|
XN297_SetRXAddr((uint8_t*)"\xAA\xBB\xCC\xDD\xEE", EAZYRC_PAYLOAD_SIZE);
|
||||||
|
XN297_RFChannel(EAZYRC_BIND_CHANNEL);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t EAZYRC_callback()
|
||||||
|
{
|
||||||
|
uint8_t rf,n;
|
||||||
|
uint16_t addr;
|
||||||
|
switch(phase)
|
||||||
|
{
|
||||||
|
case EAZYRC_BINDTX:
|
||||||
|
if(XN297_IsRX())
|
||||||
|
{
|
||||||
|
//Example: TX: C=18 S=Y A= AA BB CC DD EE P(10)= 1A A0 01 00 00 00 1E 00 78 51
|
||||||
|
// packet[0..2]=tx_addr, packet[6]=first rf channel, packet[8]=unk, packet[9]=sum(packet[0..8])
|
||||||
|
// RX: C=18 S=Y A= AA BB CC DD EE P(10)= 41 AD 01 1A A0 01 1E 00 87 4F
|
||||||
|
// packet[0..2]=rx_addr, packet[3..5]=tx_addr, packet[6]=first rf channel, packet[8]=unk but swapped, packet[9]=sum(packet[0..8])
|
||||||
|
XN297_ReadPayload(packet_in, EAZYRC_PAYLOAD_SIZE);
|
||||||
|
#ifdef DEBUG_SERIAL
|
||||||
|
for(uint8_t i=0; i < EAZYRC_PAYLOAD_SIZE; i++)
|
||||||
|
debug("%02X ", packet_in[i]);
|
||||||
|
debugln();
|
||||||
|
#endif
|
||||||
|
//could check the validity of the packet by looking at the sum...
|
||||||
|
if(memcmp(&packet_in[3],&rx_tx_addr,3)==0)
|
||||||
|
{//TX ID match, TX addr to use: 1A A0 41 AD 02
|
||||||
|
rx_tx_addr[4] = rx_tx_addr[2] + packet_in[2]; //wild guess
|
||||||
|
rx_tx_addr[2] = packet_in[0];
|
||||||
|
rx_tx_addr[3] = packet_in[1];
|
||||||
|
BIND_DONE;
|
||||||
|
XN297_SetTxRxMode(TXRX_OFF);
|
||||||
|
XN297_SetTXAddr(rx_tx_addr, 5);
|
||||||
|
phase = EAZYRC_DATA;
|
||||||
|
return 5000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XN297_SetTxRxMode(TXRX_OFF);
|
||||||
|
EAZYRC_send_packet();
|
||||||
|
phase++;
|
||||||
|
return 1000;
|
||||||
|
case EAZYRC_BINDRX:
|
||||||
|
//Wait for the packet transmission to finish
|
||||||
|
while(XN297_IsPacketSent()==false);
|
||||||
|
//Switch to RX
|
||||||
|
XN297_SetTxRxMode(TXRX_OFF);
|
||||||
|
XN297_SetTxRxMode(RX_EN);
|
||||||
|
phase = EAZYRC_BINDTX;
|
||||||
|
return 10000;
|
||||||
|
case EAZYRC_DATA:
|
||||||
|
#ifdef MULTI_SYNC
|
||||||
|
telemetry_set_input_sync(EAZYRC_PACKET_PERIOD);
|
||||||
|
#endif
|
||||||
|
EAZYRC_send_packet();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return EAZYRC_PACKET_PERIOD;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EAZYRC_init()
|
||||||
|
{
|
||||||
|
BIND_IN_PROGRESS;
|
||||||
|
EAZYRC_initialize_txid();
|
||||||
|
EAZYRC_RF_init();
|
||||||
|
phase = EAZYRC_BINDTX;
|
||||||
|
packet_count = 0;
|
||||||
|
hopping_frequency_no = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
40,WFLY,WFR0x
|
40,WFLY,WFR0x
|
||||||
41,BUGS
|
41,BUGS
|
||||||
42,BUGSMINI,BUGSMINI,BUGS3H
|
42,BUGSMINI,BUGSMINI,BUGS3H
|
||||||
43,Traxxas,RX6519
|
43,Traxxas,TQ
|
||||||
44,NCC1701
|
44,NCC1701
|
||||||
45,E01X,E012,E015
|
45,E01X,E012,E015
|
||||||
46,V911S,V911S,E119
|
46,V911S,V911S,E119
|
||||||
@@ -58,6 +58,7 @@
|
|||||||
58,FX,816,620,9630
|
58,FX,816,620,9630
|
||||||
59,Bayang_RX,Multi,CPPM
|
59,Bayang_RX,Multi,CPPM
|
||||||
60,Pelikan,Pro,Lite,SCX24
|
60,Pelikan,Pro,Lite,SCX24
|
||||||
|
61,EazyRC
|
||||||
62,XK,X450,X420,Cars
|
62,XK,X450,X420,Cars
|
||||||
63,XN_DUMP,250K,1M,2M,AUTO
|
63,XN_DUMP,250K,1M,2M,AUTO
|
||||||
64,FrskyX2,CH_16,CH_8,EU_16,EU_8,Cloned
|
64,FrskyX2,CH_16,CH_8,EU_16,EU_8,Cloned
|
||||||
@@ -72,7 +73,7 @@
|
|||||||
73,Kyosho,FHSS,Hype
|
73,Kyosho,FHSS,Hype
|
||||||
74,RadioLink,Surface,Air,DumboRC,RC4G
|
74,RadioLink,Surface,Air,DumboRC,RC4G
|
||||||
75,---
|
75,---
|
||||||
76,Realacc,R11
|
76,Realacc
|
||||||
77,OMP
|
77,OMP
|
||||||
78,M-Link
|
78,M-Link
|
||||||
79,WFLY,RF20x
|
79,WFLY,RF20x
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ const char STR_SCORPIO[] ="Scorpio";
|
|||||||
const char STR_BLUEFLY[] ="BlueFly";
|
const char STR_BLUEFLY[] ="BlueFly";
|
||||||
const char STR_BUMBLEB[] ="BumbleB";
|
const char STR_BUMBLEB[] ="BumbleB";
|
||||||
const char STR_SGF22[] ="SGF22";
|
const char STR_SGF22[] ="SGF22";
|
||||||
|
const char STR_EAZYRC[] ="EazyRC";
|
||||||
|
|
||||||
const char STR_SUBTYPE_FLYSKY[] = "\x04""Std\0""V9x9""V6x6""V912""CX20";
|
const char STR_SUBTYPE_FLYSKY[] = "\x04""Std\0""V9x9""V6x6""V912""CX20";
|
||||||
const char STR_SUBTYPE_HUBSAN[] = "\x04""H107""H301""H501";
|
const char STR_SUBTYPE_HUBSAN[] = "\x04""H107""H301""H501";
|
||||||
@@ -146,7 +147,7 @@ const char STR_SUBTYPE_H83D[] = "\x07""Std\0 ""H20H\0 ""H20Mini""H30Min
|
|||||||
const char STR_SUBTYPE_CORONA[] = "\x05""V1\0 ""V2\0 ""FD V3";
|
const char STR_SUBTYPE_CORONA[] = "\x05""V1\0 ""V2\0 ""FD V3";
|
||||||
const char STR_SUBTYPE_HITEC[] = "\x07""Optima\0""Opt Hub""Minima\0";
|
const char STR_SUBTYPE_HITEC[] = "\x07""Optima\0""Opt Hub""Minima\0";
|
||||||
const char STR_SUBTYPE_BUGS_MINI[] = "\x06""Std\0 ""Bugs3H";
|
const char STR_SUBTYPE_BUGS_MINI[] = "\x06""Std\0 ""Bugs3H";
|
||||||
const char STR_SUBTYPE_TRAXXAS[] = "\x04""6519";
|
const char STR_SUBTYPE_TRAXXAS[] = "\x02""TQ";
|
||||||
const char STR_SUBTYPE_E01X[] = "\x05""E012\0""E015\0";
|
const char STR_SUBTYPE_E01X[] = "\x05""E012\0""E015\0";
|
||||||
const char STR_SUBTYPE_GD00X[] = "\x05""GD_V1""GD_V2";
|
const char STR_SUBTYPE_GD00X[] = "\x05""GD_V1""GD_V2";
|
||||||
const char STR_SUBTYPE_REDPINE[] = "\x04""Fast""Slow";
|
const char STR_SUBTYPE_REDPINE[] = "\x04""Fast""Slow";
|
||||||
@@ -168,7 +169,6 @@ const char STR_SUBTYPE_HOTT[] = "\x07""Sync\0 ""No_Sync";
|
|||||||
const char STR_SUBTYPE_PELIKAN[] = "\x05""Pro\0 ""Lite\0""SCX24";
|
const char STR_SUBTYPE_PELIKAN[] = "\x05""Pro\0 ""Lite\0""SCX24";
|
||||||
const char STR_SUBTYPE_V761[] = "\x05""3ch\0 ""4ch\0 ""TOPRC";
|
const char STR_SUBTYPE_V761[] = "\x05""3ch\0 ""4ch\0 ""TOPRC";
|
||||||
const char STR_SUBTYPE_RLINK[] = "\x07""Surface""Air\0 ""DumboRC""RC4G\0 ";
|
const char STR_SUBTYPE_RLINK[] = "\x07""Surface""Air\0 ""DumboRC""RC4G\0 ";
|
||||||
const char STR_SUBTYPE_REALACC[] = "\x03""R11";
|
|
||||||
const char STR_SUBTYPE_KYOSHO[] = "\x04""FHSS""Hype";
|
const char STR_SUBTYPE_KYOSHO[] = "\x04""FHSS""Hype";
|
||||||
const char STR_SUBTYPE_KYOSHO2[] = "\x05""KT-17";
|
const char STR_SUBTYPE_KYOSHO2[] = "\x05""KT-17";
|
||||||
const char STR_SUBTYPE_FUTABA[] = "\x05""SFHSS";
|
const char STR_SUBTYPE_FUTABA[] = "\x05""SFHSS";
|
||||||
@@ -278,6 +278,9 @@ const mm_protocol_definition multi_protocols[] = {
|
|||||||
#if defined(E129_CYRF6936_INO)
|
#if defined(E129_CYRF6936_INO)
|
||||||
{PROTO_E129, STR_E129, STR_SUBTYPE_E129, 2, OPTION_NONE, 0, 0, SW_CYRF, E129_init, E129_callback },
|
{PROTO_E129, STR_E129, STR_SUBTYPE_E129, 2, OPTION_NONE, 0, 0, SW_CYRF, E129_init, E129_callback },
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(EAZYRC_NRF24L01_INO)
|
||||||
|
{PROTO_EAZYRC, STR_EAZYRC, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_NRF, EAZYRC_init, EAZYRC_callback },
|
||||||
|
#endif
|
||||||
#if defined(ESKY_NRF24L01_INO)
|
#if defined(ESKY_NRF24L01_INO)
|
||||||
{PROTO_ESKY, STR_ESKY, STR_SUBTYPE_ESKY, 2, OPTION_NONE, 0, 1, SW_NRF, ESKY_init, ESKY_callback },
|
{PROTO_ESKY, STR_ESKY, STR_SUBTYPE_ESKY, 2, OPTION_NONE, 0, 1, SW_NRF, ESKY_init, ESKY_callback },
|
||||||
#endif
|
#endif
|
||||||
@@ -433,7 +436,7 @@ const mm_protocol_definition multi_protocols[] = {
|
|||||||
{PROTO_RLINK, STR_RLINK, STR_SUBTYPE_RLINK, 4, OPTION_RFTUNE, 0, 0, SW_CC2500, RLINK_init, RLINK_callback },
|
{PROTO_RLINK, STR_RLINK, STR_SUBTYPE_RLINK, 4, OPTION_RFTUNE, 0, 0, SW_CC2500, RLINK_init, RLINK_callback },
|
||||||
#endif
|
#endif
|
||||||
#if defined(REALACC_NRF24L01_INO)
|
#if defined(REALACC_NRF24L01_INO)
|
||||||
{PROTO_REALACC, STR_REALACC, STR_SUBTYPE_REALACC, 1, OPTION_NONE, 0, 0, SW_NRF, REALACC_init, REALACC_callback },
|
{PROTO_REALACC, STR_REALACC, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_NRF, REALACC_init, REALACC_callback },
|
||||||
#endif
|
#endif
|
||||||
#if defined(REDPINE_CC2500_INO)
|
#if defined(REDPINE_CC2500_INO)
|
||||||
{PROTO_REDPINE, STR_REDPINE, STR_SUBTYPE_REDPINE, 2, OPTION_RFTUNE, 0, 0, SW_CC2500, REDPINE_init, REDPINE_callback },
|
{PROTO_REDPINE, STR_REDPINE, STR_SUBTYPE_REDPINE, 2, OPTION_RFTUNE, 0, 0, SW_CC2500, REDPINE_init, REDPINE_callback },
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
//******************
|
//******************
|
||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_REVISION 3
|
#define VERSION_REVISION 4
|
||||||
#define VERSION_PATCH_LEVEL 49
|
#define VERSION_PATCH_LEVEL 0
|
||||||
|
|
||||||
#define MODE_SERIAL 0
|
#define MODE_SERIAL 0
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ enum PROTOCOLS
|
|||||||
PROTO_FX = 58, // =>NRF24L01
|
PROTO_FX = 58, // =>NRF24L01
|
||||||
PROTO_BAYANG_RX = 59, // =>NRF24L01
|
PROTO_BAYANG_RX = 59, // =>NRF24L01
|
||||||
PROTO_PELIKAN = 60, // =>A7105
|
PROTO_PELIKAN = 60, // =>A7105
|
||||||
|
PROTO_EAZYRC = 61, // =>NRF24L01
|
||||||
PROTO_XK = 62, // =>NRF24L01
|
PROTO_XK = 62, // =>NRF24L01
|
||||||
PROTO_XN297DUMP = 63, // =>NRF24L01
|
PROTO_XN297DUMP = 63, // =>NRF24L01
|
||||||
PROTO_FRSKYX2 = 64, // =>CC2500
|
PROTO_FRSKYX2 = 64, // =>CC2500
|
||||||
@@ -360,7 +360,7 @@ enum REDPINE
|
|||||||
};
|
};
|
||||||
enum TRAXXAS
|
enum TRAXXAS
|
||||||
{
|
{
|
||||||
RX6519 = 0,
|
TRAXXAS_TQ = 0,
|
||||||
};
|
};
|
||||||
enum ESKY150
|
enum ESKY150
|
||||||
{
|
{
|
||||||
@@ -1106,7 +1106,7 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
|
|||||||
RED_FAST 0
|
RED_FAST 0
|
||||||
RED_SLOW 1
|
RED_SLOW 1
|
||||||
sub_protocol==TRAXXAS
|
sub_protocol==TRAXXAS
|
||||||
RX6519 0
|
TQ 0
|
||||||
sub_protocol==ESKY150
|
sub_protocol==ESKY150
|
||||||
ESKY150_4CH 0
|
ESKY150_4CH 0
|
||||||
ESKY150_7CH 1
|
ESKY150_7CH 1
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
//#define RLINK_DEBUG_TELEM
|
//#define RLINK_DEBUG_TELEM
|
||||||
|
|
||||||
//#define RLINK_FORCE_ID
|
//#define RLINK_FORCE_ID
|
||||||
#define RLINK_RC4G_FORCE_ID
|
//#define RLINK_RC4G_FORCE_ID
|
||||||
|
|
||||||
#define RLINK_TX_PACKET_LEN 33
|
#define RLINK_TX_PACKET_LEN 33
|
||||||
#define RLINK_RX_PACKET_LEN 15
|
#define RLINK_RX_PACKET_LEN 15
|
||||||
@@ -120,11 +120,44 @@ static void __attribute__((unused)) RLINK_TXID_init()
|
|||||||
if(sub_protocol!=RLINK_RC4G)
|
if(sub_protocol!=RLINK_RC4G)
|
||||||
RLINK_hop();
|
RLINK_hop();
|
||||||
else
|
else
|
||||||
{
|
{//RLINK_RC4G
|
||||||
// Find 2 unused channels
|
// Find 2 unused channels
|
||||||
// first channel is a multiple of 3 between 00 and 5D
|
// first channel is a multiple of 3 between 00 and 5D
|
||||||
// second channel is a multiple of 3 between 63 and BD
|
// second channel is a multiple of 3 between 63 and BD
|
||||||
//TODO: find 2 unused channels
|
CC2500_Strobe(CC2500_SIDLE);
|
||||||
|
CC2500_WriteReg(CC2500_17_MCSM1,0x3C);
|
||||||
|
CC2500_Strobe(CC2500_SFRX);
|
||||||
|
CC2500_SetTxRxMode(RX_EN);
|
||||||
|
CC2500_Strobe(CC2500_SRX);
|
||||||
|
delayMilliseconds(1); //wait for RX mode
|
||||||
|
uint16_t val;
|
||||||
|
uint8_t val_low = 0xFF;
|
||||||
|
hopping_frequency[0] = 0x00;
|
||||||
|
hopping_frequency[1] = 0x63;
|
||||||
|
for(uint8_t ch=0; ch<=0xBD; ch+=3)
|
||||||
|
{
|
||||||
|
if(ch==0x63)
|
||||||
|
val_low = 0xFF; //init for second block
|
||||||
|
if(ch==0x60)
|
||||||
|
continue; //skip channel
|
||||||
|
CC2500_WriteReg(CC2500_0A_CHANNR, ch); //switch channel
|
||||||
|
delayMicroseconds(370); //wait to read
|
||||||
|
val = 0;
|
||||||
|
for(uint8_t i=0;i<16;i++)
|
||||||
|
val += CC2500_ReadReg(CC2500_34_RSSI | CC2500_READ_BURST);
|
||||||
|
val >>= 4;
|
||||||
|
debug("C:%02X RSSI:%02X",ch,val);
|
||||||
|
if(val_low > val)
|
||||||
|
{
|
||||||
|
debug(" OK");
|
||||||
|
val_low = val;
|
||||||
|
hopping_frequency[ch<0x63?0:1]=ch; //save best channel
|
||||||
|
}
|
||||||
|
debugln("");
|
||||||
|
}
|
||||||
|
CC2500_WriteReg(CC2500_17_MCSM1,0x30);
|
||||||
|
CC2500_Strobe(CC2500_SIDLE);
|
||||||
|
CC2500_SetTxRxMode(TX_EN);
|
||||||
#ifdef RLINK_RC4G_FORCE_ID
|
#ifdef RLINK_RC4G_FORCE_ID
|
||||||
hopping_frequency[0] = 0x03;
|
hopping_frequency[0] = 0x03;
|
||||||
hopping_frequency[1] = 0x6F;
|
hopping_frequency[1] = 0x6F;
|
||||||
@@ -255,6 +288,7 @@ static void __attribute__((unused)) RLINK_send_packet()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MULTI_AIR
|
||||||
static void __attribute__((unused)) RLINK_RC4G_send_packet()
|
static void __attribute__((unused)) RLINK_RC4G_send_packet()
|
||||||
{
|
{
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
@@ -292,10 +326,11 @@ static void __attribute__((unused)) RLINK_RC4G_send_packet()
|
|||||||
#ifdef RLINK_DEBUG
|
#ifdef RLINK_DEBUG
|
||||||
debug("P=");
|
debug("P=");
|
||||||
for(uint8_t i=1;i<16;i++)
|
for(uint8_t i=1;i<16;i++)
|
||||||
debug(" 0x%02X",packet[i]);
|
debug(" 0x%02X",packet[i]);
|
||||||
debugln("");
|
debugln("");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define RLINK_TIMING_PROTO 20000-100 // -100 for compatibility with R8EF
|
#define RLINK_TIMING_PROTO 20000-100 // -100 for compatibility with R8EF
|
||||||
#define RLINK_TIMING_RFSEND 10500
|
#define RLINK_TIMING_RFSEND 10500
|
||||||
@@ -305,10 +340,16 @@ uint16_t RLINK_callback()
|
|||||||
{
|
{
|
||||||
if(sub_protocol == RLINK_RC4G)
|
if(sub_protocol == RLINK_RC4G)
|
||||||
{
|
{
|
||||||
#ifdef MULTI_SYNC
|
#ifndef MULTI_AIR
|
||||||
telemetry_set_input_sync(RLINK_RC4G_TIMING_PROTO);
|
#ifdef MULTI_SYNC
|
||||||
|
telemetry_set_input_sync(RLINK_RC4G_TIMING_PROTO);
|
||||||
|
#endif
|
||||||
|
CC2500_SetPower();
|
||||||
|
CC2500_SetFreqOffset();
|
||||||
|
RLINK_RC4G_send_packet();
|
||||||
|
#else
|
||||||
|
SUB_PROTO_INVALID;
|
||||||
#endif
|
#endif
|
||||||
RLINK_RC4G_send_packet();
|
|
||||||
return RLINK_RC4G_TIMING_PROTO;
|
return RLINK_RC4G_TIMING_PROTO;
|
||||||
}
|
}
|
||||||
switch(phase)
|
switch(phase)
|
||||||
|
|||||||
@@ -312,6 +312,7 @@
|
|||||||
#undef CX10_NRF24L01_INO
|
#undef CX10_NRF24L01_INO
|
||||||
#undef DM002_NRF24L01_INO
|
#undef DM002_NRF24L01_INO
|
||||||
#undef E016H_NRF24L01_INO
|
#undef E016H_NRF24L01_INO
|
||||||
|
#undef EAZYRC_NRF24L01_INO
|
||||||
#undef ESKY_NRF24L01_INO
|
#undef ESKY_NRF24L01_INO
|
||||||
#undef ESKY150_NRF24L01_INO
|
#undef ESKY150_NRF24L01_INO
|
||||||
#undef FQ777_NRF24L01_INO
|
#undef FQ777_NRF24L01_INO
|
||||||
@@ -374,6 +375,7 @@
|
|||||||
//#undef PELIKAN_A7105_INO
|
//#undef PELIKAN_A7105_INO
|
||||||
#undef LOSI_CYRF6936_INO //Need DSM to be enabled
|
#undef LOSI_CYRF6936_INO //Need DSM to be enabled
|
||||||
#undef TRAXXAS_CYRF6936_INO
|
#undef TRAXXAS_CYRF6936_INO
|
||||||
|
#undef EAZYRC_NRF24L01_INO
|
||||||
#undef KYOSHO2_NRF24L01_INO
|
#undef KYOSHO2_NRF24L01_INO
|
||||||
#undef MOULDKG_NRF24L01_INO
|
#undef MOULDKG_NRF24L01_INO
|
||||||
#undef SHENQI_NRF24L01_INO
|
#undef SHENQI_NRF24L01_INO
|
||||||
|
|||||||
@@ -227,6 +227,7 @@
|
|||||||
#define CX10_NRF24L01_INO //Include Q2X2 protocol
|
#define CX10_NRF24L01_INO //Include Q2X2 protocol
|
||||||
#define DM002_NRF24L01_INO
|
#define DM002_NRF24L01_INO
|
||||||
#define E016H_NRF24L01_INO
|
#define E016H_NRF24L01_INO
|
||||||
|
#define EAZYRC_NRF24L01_INO
|
||||||
#define ESKY_NRF24L01_INO
|
#define ESKY_NRF24L01_INO
|
||||||
#define ESKY150_NRF24L01_INO
|
#define ESKY150_NRF24L01_INO
|
||||||
#define FQ777_NRF24L01_INO
|
#define FQ777_NRF24L01_INO
|
||||||
@@ -621,6 +622,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
|
|||||||
PROTO_E129
|
PROTO_E129
|
||||||
E129_E129
|
E129_E129
|
||||||
E129_C186
|
E129_C186
|
||||||
|
PROTO_EAZYRC
|
||||||
|
NONE
|
||||||
PROTO_ESKY
|
PROTO_ESKY
|
||||||
ESKY_STD
|
ESKY_STD
|
||||||
ESKY_ET4
|
ESKY_ET4
|
||||||
@@ -816,7 +819,7 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
|
|||||||
SYMAX
|
SYMAX
|
||||||
SYMAX5C
|
SYMAX5C
|
||||||
PROTO_TRAXXAS
|
PROTO_TRAXXAS
|
||||||
RX6519
|
NONE
|
||||||
PROTO_V2X2
|
PROTO_V2X2
|
||||||
V2X2
|
V2X2
|
||||||
JXD506
|
JXD506
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ CFlie|38|CFlie||||||||NRF24L01|
|
|||||||
[E016HV2](Protocols_Details.md#E016HV2---80)|80|||||||||CC2500/NRF24L01|unknown
|
[E016HV2](Protocols_Details.md#E016HV2---80)|80|||||||||CC2500/NRF24L01|unknown
|
||||||
[E01X](Protocols_Details.md#E01X---45)|45|E012|E015|||||||CYRF6936|HS6200
|
[E01X](Protocols_Details.md#E01X---45)|45|E012|E015|||||||CYRF6936|HS6200
|
||||||
[E129](Protocols_Details.md#E129---83)|83|E129|C186|||||||CYRF6936|RF2500
|
[E129](Protocols_Details.md#E129---83)|83|E129|C186|||||||CYRF6936|RF2500
|
||||||
|
[EazyRC](Protocols_Details.md#EazyRC---61)|61|||||||||NRF24L01|XN297L
|
||||||
[ESky](Protocols_Details.md#ESKY---16)|16|ESky|ET4|||||||NRF24L01|
|
[ESky](Protocols_Details.md#ESKY---16)|16|ESky|ET4|||||||NRF24L01|
|
||||||
[ESky150](Protocols_Details.md#ESKY150---35)|35|||||||||NRF24L01|
|
[ESky150](Protocols_Details.md#ESKY150---35)|35|||||||||NRF24L01|
|
||||||
[ESky150V2](Protocols_Details.md#ESKY150V2---69)|69|||||||||CC2500|NRF51822
|
[ESky150V2](Protocols_Details.md#ESKY150V2---69)|69|||||||||CC2500|NRF51822
|
||||||
@@ -141,7 +142,7 @@ CFlie|38|CFlie||||||||NRF24L01|
|
|||||||
[Skyartec](Protocols_Details.md#Skyartec---68)|68|||||||||CC2500|CC2500
|
[Skyartec](Protocols_Details.md#Skyartec---68)|68|||||||||CC2500|CC2500
|
||||||
[SLT](Protocols_Details.md#SLT---11)|11|SLT_V1|SLT_V2|Q100|Q200|MR100||||NRF24L01|CC2500
|
[SLT](Protocols_Details.md#SLT---11)|11|SLT_V1|SLT_V2|Q100|Q200|MR100||||NRF24L01|CC2500
|
||||||
[SymaX](Protocols_Details.md#Symax---10)|10|SYMAX|SYMAX5C|||||||NRF24L01|
|
[SymaX](Protocols_Details.md#Symax---10)|10|SYMAX|SYMAX5C|||||||NRF24L01|
|
||||||
[Traxxas](Protocols_Details.md#Traxxas---43)|43|6519 RX||||||||CYRF6936|
|
[Traxxas](Protocols_Details.md#Traxxas---43)|43|TQ||||||||CYRF6936|
|
||||||
[V2x2](Protocols_Details.md#V2X2---5)|5|V2x2|JXD506|MR101||||||NRF24L01|
|
[V2x2](Protocols_Details.md#V2X2---5)|5|V2x2|JXD506|MR101||||||NRF24L01|
|
||||||
[V761](Protocols_Details.md#V761---48)|48|3CH|4CH|TOPRC||||||NRF24L01|XN297
|
[V761](Protocols_Details.md#V761---48)|48|3CH|4CH|TOPRC||||||NRF24L01|XN297
|
||||||
[V911S](Protocols_Details.md#V911S---46)|46|V911S*|E119*|||||||NRF24L01|XN297
|
[V911S](Protocols_Details.md#V911S---46)|46|V911S*|E119*|||||||NRF24L01|XN297
|
||||||
@@ -367,8 +368,6 @@ TX: Axial AX-4 2.4GHz transmitter, HPI TF-41 and Panda Hobby 3CH Smart Radio 2.4
|
|||||||
|
|
||||||
Models: Axial SCX24: Deadbolt, Jeep Wranger Rubicon, Chevrolet 1967 C10, B-17 Betty, HPI RF-50 and Panda Hobby: Tetra K1, X1, X2
|
Models: Axial SCX24: Deadbolt, Jeep Wranger Rubicon, Chevrolet 1967 C10, B-17 Betty, HPI RF-50 and Panda Hobby: Tetra K1, X1, X2
|
||||||
|
|
||||||
**Only 4 frequency hopping tables**
|
|
||||||
|
|
||||||
Extended limits supported
|
Extended limits supported
|
||||||
|
|
||||||
CH1|CH2|CH3
|
CH1|CH2|CH3
|
||||||
@@ -621,7 +620,7 @@ Calib is the same as the original radio with both sticks down and to the left in
|
|||||||
Models: Eachine E129/E130 and Twister Ninja 250
|
Models: Eachine E129/E130 and Twister Ninja 250
|
||||||
|
|
||||||
### Sub_protocol C186 - *1*
|
### Sub_protocol C186 - *1*
|
||||||
Models: C186/E120, C127/E110, K127, C159, C189, C129v2
|
Models: RC ERA C186/E120, C127/E110, K127, C159, C189, C129v2
|
||||||
|
|
||||||
The FC of the heli seems to store the trims Trim A/E/R=CH7..9. If you use these trims, make sure to center them after powering off the heli or they will be added to the previous trims and over correct.
|
The FC of the heli seems to store the trims Trim A/E/R=CH7..9. If you use these trims, make sure to center them after powering off the heli or they will be added to the previous trims and over correct.
|
||||||
|
|
||||||
@@ -671,7 +670,7 @@ CH1|CH2|CH3|CH4
|
|||||||
A|E|T|R
|
A|E|T|R
|
||||||
|
|
||||||
## Traxxas - *43*
|
## Traxxas - *43*
|
||||||
Receiver 6519
|
Transmitter TQ, Receivers: 6519, ECM-2.5
|
||||||
|
|
||||||
Extended limits supported
|
Extended limits supported
|
||||||
|
|
||||||
@@ -1009,7 +1008,7 @@ CH1|CH2|CH3|CH4|CH5|FS_CH1|FS_CH2|FS_CH3|FS_CH4
|
|||||||
|
|
||||||
FS=FailSafe
|
FS=FailSafe
|
||||||
|
|
||||||
CH5 is driven by CH3 on the original TX, gyro sensibility?
|
CH5 is driven by CH3 on the original TX, gyro sensitivity?
|
||||||
|
|
||||||
## Futaba - *21*
|
## Futaba - *21*
|
||||||
Also called SFHSS depending on radio version.
|
Also called SFHSS depending on radio version.
|
||||||
@@ -1653,6 +1652,13 @@ CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9
|
|||||||
---|---|---|---|---|---|---|---|---
|
---|---|---|---|---|---|---|---|---
|
||||||
A|E|T|R|STOP|FLIP|-|HEADLESS|RTH
|
A|E|T|R|STOP|FLIP|-|HEADLESS|RTH
|
||||||
|
|
||||||
|
## EazyRC - *61*
|
||||||
|
Autobind protocol
|
||||||
|
|
||||||
|
CH1|CH2|CH3|CH4
|
||||||
|
---|---|---|---
|
||||||
|
STEERING||THROTTLE|
|
||||||
|
|
||||||
## ESKY - *16*
|
## ESKY - *16*
|
||||||
|
|
||||||
CH1|CH2|CH3|CH4|CH5|CH6
|
CH1|CH2|CH3|CH4|CH5|CH6
|
||||||
@@ -1943,14 +1949,10 @@ A|E|T|R|FLIP|LED|PICTURE|VIDEO|HEADLESS|RTH|XCAL|YCAL
|
|||||||
Model: JXD 509 is using Q282 with CH12=Start/Stop motors
|
Model: JXD 509 is using Q282 with CH12=Start/Stop motors
|
||||||
|
|
||||||
## Realacc - *76*
|
## Realacc - *76*
|
||||||
Model: Realacc R11
|
Model: Realacc R11, Eachine E017
|
||||||
|
|
||||||
Untested protocol, let me know if it works.
|
|
||||||
|
|
||||||
Autobind protocol
|
Autobind protocol
|
||||||
|
|
||||||
### Sub_protocol R11 - *0*
|
|
||||||
|
|
||||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10
|
||||||
---|---|---|---|---|---|---|---|---|----
|
---|---|---|---|---|---|---|---|---|----
|
||||||
A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|UNK
|
A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|UNK
|
||||||
|
|||||||
@@ -84,23 +84,30 @@ buildEachRFModule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
buildReleaseFiles(){
|
buildReleaseFiles(){
|
||||||
if [[ "$BOARD" =~ ":avr:multixmega32d4" ]]; then
|
if [[ "$RELEASE" == "scripts" ]]; then
|
||||||
|
build_release_scripts;
|
||||||
|
elif [[ "$RELEASE" == "orangerx" ]]; then
|
||||||
build_release_orx;
|
build_release_orx;
|
||||||
build_release_extras;
|
elif [[ "$RELEASE" == "atmega328p" ]]; then
|
||||||
elif [[ "$BOARD" =~ ":avr:multiatmega328p:bootloader=none" ]]; then
|
|
||||||
build_release_avr_noboot;
|
build_release_avr_noboot;
|
||||||
elif [[ "$BOARD" =~ ":avr:multiatmega328p:bootloader=optiboot" ]]; then
|
elif [[ "$RELEASE" == "atmega328p-optiboot" ]]; then
|
||||||
build_release_avr_optiboot;
|
build_release_avr_optiboot;
|
||||||
elif [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=none" ]]; then
|
elif [[ "$RELEASE" == "stm32f103-128k-4in1" ]]; then
|
||||||
build_release_stm32f1_no_debug;
|
build_release_stm32f1_4in1_no_debug;
|
||||||
elif [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=native" ]]; then
|
elif [[ "$RELEASE" == "stm32f103-128k-usb-debug" ]]; then
|
||||||
build_release_stm32f1_native_debug;
|
build_release_stm32f1_4in1_native_debug;
|
||||||
elif [[ "$BOARD" =~ ":STM32F1:multistm32f103cb:debug_option=ftdi" ]]; then
|
elif [[ "$RELEASE" == "stm32f103-128k-serial-debug" ]]; then
|
||||||
build_release_stm32f1_serial_debug;
|
build_release_stm32f1_4in1_serial_debug;
|
||||||
elif [[ "$BOARD" =~ ":STM32F1:multi5in1t18int" ]]; then
|
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;
|
build_release_stm32f1_t18int;
|
||||||
elif [[ "$BOARD" =~ ":STM32F1:multistm32f103c8:debug_option=none" ]]; then
|
|
||||||
build_release_stm32f1_64k;
|
|
||||||
else
|
else
|
||||||
printf "No release files for this board.";
|
printf "No release files for this board.";
|
||||||
fi
|
fi
|
||||||
|
|||||||
97
buildroot/bin/build_release_stm32f1_4in1_no_debug
Normal file
97
buildroot/bin/build_release_stm32f1_4in1_no_debug
Normal file
@@ -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;
|
||||||
71
buildroot/bin/build_release_stm32f1_5in1
Normal file
71
buildroot/bin/build_release_stm32f1_5in1
Normal file
@@ -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;
|
||||||
49
buildroot/bin/build_release_stm32f1_cc2500_128k
Normal file
49
buildroot/bin/build_release_stm32f1_cc2500_128k
Normal file
@@ -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;
|
||||||
@@ -5,8 +5,8 @@ exitcode=0;
|
|||||||
|
|
||||||
# CC2500-only 64Kb FCC builds
|
# CC2500-only 64Kb FCC builds
|
||||||
printf "\e[33;1mBuilding mm-stm-cc2500-64-aetr-v$MULTI_VERSION.bin\e[0m\n";
|
printf "\e[33;1mBuilding mm-stm-cc2500-64-aetr-v$MULTI_VERSION.bin\e[0m\n";
|
||||||
opt_enable $ALL_PROTOCOLS;
|
#opt_enable $ALL_PROTOCOLS;
|
||||||
opt_disable IKEAANSLUTA_CC2500_INO;
|
#opt_disable IKEAANSLUTA_CC2500_INO;
|
||||||
opt_disable ENABLE_PPM;
|
opt_disable ENABLE_PPM;
|
||||||
opt_disable A7105_INSTALLED;
|
opt_disable A7105_INSTALLED;
|
||||||
opt_disable CYRF6936_INSTALLED;
|
opt_disable CYRF6936_INSTALLED;
|
||||||
@@ -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;
|
|
||||||
@@ -3,23 +3,65 @@
|
|||||||
source ./buildroot/bin/buildFunctions;
|
source ./buildroot/bin/buildFunctions;
|
||||||
exitcode=0;
|
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 ENABLE_PPM;
|
||||||
opt_disable INVERT_TELEMETRY;
|
opt_disable INVERT_TELEMETRY;
|
||||||
buildMulti;
|
buildMulti;
|
||||||
exitcode=$((exitcode+$?));
|
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;
|
opt_replace AETR TAER;
|
||||||
buildMulti;
|
buildMulti;
|
||||||
exitcode=$((exitcode+$?));
|
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;
|
opt_replace TAER RETA;
|
||||||
buildMulti;
|
buildMulti;
|
||||||
exitcode=$((exitcode+$?));
|
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;
|
exit $exitcode;
|
||||||
|
|||||||
70
buildroot/bin/build_release_stm32f1_tlite
Normal file
70
buildroot/bin/build_release_stm32f1_tlite
Normal file
@@ -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;
|
||||||
Reference in New Issue
Block a user