mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-11-27 15:09:41 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96263ed8a6 | ||
|
|
7bb1cb9ae3 | ||
|
|
20e32c4cb0 | ||
|
|
b4421306c0 | ||
|
|
e53f723fdb | ||
|
|
832a331437 | ||
|
|
12e66bd84f | ||
|
|
d290cc519f | ||
|
|
f4b19fe33e |
25
.travis.yml
25
.travis.yml
@@ -8,9 +8,10 @@ env:
|
|||||||
- BOARD="multi4in1:avr:multiatmega328p:bootloader=optiboot"
|
- BOARD="multi4in1:avr:multiatmega328p:bootloader=optiboot"
|
||||||
- BOARD="multi4in1:avr:multixmega32d4"
|
- BOARD="multi4in1:avr:multixmega32d4"
|
||||||
- BOARD="multi4in1:STM32F1:multi5in1t18int"
|
- BOARD="multi4in1:STM32F1:multi5in1t18int"
|
||||||
- BOARD="multi4in1:STM32F1:multistm32f103c:debug_option=none"
|
- BOARD="multi4in1:STM32F1:multistm32f103cb:debug_option=none"
|
||||||
- BOARD="multi4in1:STM32F1:multistm32f103c:debug_option=native"
|
- BOARD="multi4in1:STM32F1:multistm32f103cb:debug_option=native"
|
||||||
- BOARD="multi4in1:STM32F1:multistm32f103c:debug_option=ftdi"
|
- BOARD="multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi"
|
||||||
|
- BOARD="multi4in1:STM32F1:multistm32f103c8:debug_option=none"
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
@@ -48,15 +49,15 @@ before_install:
|
|||||||
buildReleaseFiles(){
|
buildReleaseFiles(){
|
||||||
build_release_avr_optiboot;
|
build_release_avr_optiboot;
|
||||||
};
|
};
|
||||||
elif [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103c:debug_option=none" ]]; then
|
elif [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103cb:debug_option=none" ]]; then
|
||||||
buildReleaseFiles(){
|
buildReleaseFiles(){
|
||||||
build_release_stm32f1_no_debug;
|
build_release_stm32f1_no_debug;
|
||||||
};
|
};
|
||||||
elif [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103c:debug_option=native" ]]; then
|
elif [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103cb:debug_option=native" ]]; then
|
||||||
buildReleaseFiles(){
|
buildReleaseFiles(){
|
||||||
build_release_stm32f1_native_debug;
|
build_release_stm32f1_native_debug;
|
||||||
};
|
};
|
||||||
elif [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103c:debug_option=ftdi" ]]; then
|
elif [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi" ]]; then
|
||||||
buildReleaseFiles(){
|
buildReleaseFiles(){
|
||||||
build_release_stm32f1_serial_debug;
|
build_release_stm32f1_serial_debug;
|
||||||
};
|
};
|
||||||
@@ -65,7 +66,7 @@ before_install:
|
|||||||
build_release_stm32f1_t18int;
|
build_release_stm32f1_t18int;
|
||||||
};
|
};
|
||||||
else
|
else
|
||||||
buildReleaseFiles() { echo "No release files for this board."; };
|
buildReleaseFiles() { printf "No release files for this board."; };
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@@ -143,8 +144,14 @@ before_script:
|
|||||||
opt_disable CHECK_FOR_BOOTLOADER;
|
opt_disable CHECK_FOR_BOOTLOADER;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Trim the enabled protocols down for the STM32 board with debugging
|
# Trim the enabled protocols down for the STM32F103CB board with debugging
|
||||||
- if [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103c:debug_option=ftdi" ]] || [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103c:debug_option=native" ]]; then
|
- if [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103cb:debug_option=ftdi" ]] || [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103cb:debug_option=native" ]]; then
|
||||||
|
opt_disable $ALL_PROTOCOLS;
|
||||||
|
opt_enable FRSKYX_CC2500_INO AFHDS2A_A7105_INO MJXQ_NRF24L01_INO DSM_CYRF6936_INO;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Trim the enabled protocols down for the STM32F103C8 board
|
||||||
|
- if [[ "$BOARD" == "multi4in1:STM32F1:multistm32f103c8:debug_option=none" ]]; then
|
||||||
opt_disable $ALL_PROTOCOLS;
|
opt_disable $ALL_PROTOCOLS;
|
||||||
opt_enable FRSKYX_CC2500_INO AFHDS2A_A7105_INO MJXQ_NRF24L01_INO DSM_CYRF6936_INO;
|
opt_enable FRSKYX_CC2500_INO AFHDS2A_A7105_INO MJXQ_NRF24L01_INO DSM_CYRF6936_INO;
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -466,21 +466,44 @@ local function DSM_Init()
|
|||||||
Text[0x0038]="Elevator"
|
Text[0x0038]="Elevator"
|
||||||
Text[0x0039]="Rudder"
|
Text[0x0039]="Rudder"
|
||||||
Text[0x003A]="Gear"
|
Text[0x003A]="Gear"
|
||||||
|
|
||||||
|
--******
|
||||||
|
--This part is strange since the AR637T needs
|
||||||
for i=1,7 do -- 3B..41
|
for i=1,7 do -- 3B..41
|
||||||
Text[0x003A+i]="Aux"..i
|
Text[0x003A+i]="Aux"..i
|
||||||
end
|
end
|
||||||
for i=1,8 do -- 41..49
|
for i=1,8 do -- 41..49
|
||||||
Text[0x0041+i]="XPlus-"..i
|
Text[0x0041+i]="XPlus-"..i
|
||||||
end
|
end
|
||||||
|
--But FOTO-PETE reports that it should be:
|
||||||
|
Text[0x0040]="Roll"
|
||||||
|
Text[0x0041]="Pitch"
|
||||||
|
Text[0x0042]="Yaw"
|
||||||
|
Text[0x0046]="Priority"
|
||||||
|
--******
|
||||||
|
|
||||||
Text[0x004A]="Failsafe"
|
Text[0x004A]="Failsafe"
|
||||||
Text[0x004B]="Main Menu"
|
Text[0x004B]="Main Menu"
|
||||||
Text[0x004E]="Position"
|
Text[0x004E]="Position"
|
||||||
Text[0x0050]="Outputs"
|
Text[0x0050]="Outputs"
|
||||||
|
Text[0x0051]="Output Channel 1"
|
||||||
|
Text[0x0052]="Output Channel 2"
|
||||||
|
Text[0x0053]="Output Channel 3"
|
||||||
|
Text[0x0054]="Output Channel 4"
|
||||||
|
Text[0x0055]="Output Channel 5"
|
||||||
|
Text[0x0056]="Output Channel 6"
|
||||||
--Text[0x005E]="Inhibit"
|
--Text[0x005E]="Inhibit"
|
||||||
Text[0x005F]="Hold Last"
|
Text[0x005F]="Hold Last"
|
||||||
Text[0x0060]="Preset"
|
Text[0x0060]="Preset"
|
||||||
--Text[0x0061]="Custom"
|
--Text[0x0061]="Custom"
|
||||||
--Messages--
|
--Messages--
|
||||||
|
Text[0x0078]="FM Channel"
|
||||||
|
Text[0x0080]="Orientation"
|
||||||
|
Text[0x0085]="Frame Rate"
|
||||||
|
Text[0x0086]="System Setup"
|
||||||
|
Text[0x0087]="F-Mode Setup"
|
||||||
|
Text[0x0088]="Enabled F-Modes"
|
||||||
|
Text[0x008A]="Gain Sensitivity"
|
||||||
Text[0x0090]="Apply"
|
Text[0x0090]="Apply"
|
||||||
Text[0x0093]="Complete"
|
Text[0x0093]="Complete"
|
||||||
Text[0x0094]="Done"
|
Text[0x0094]="Done"
|
||||||
@@ -488,28 +511,44 @@ local function DSM_Init()
|
|||||||
Text[0x009A]="Capture Failsafe Positions"
|
Text[0x009A]="Capture Failsafe Positions"
|
||||||
Text[0x009C]="Custom Failsafe"
|
Text[0x009C]="Custom Failsafe"
|
||||||
Text[0x00A5]="First Time Setup"
|
Text[0x00A5]="First Time Setup"
|
||||||
|
Text[0x00AD]="Gain Channel Select"
|
||||||
|
Text[0x00B6]="FM1"
|
||||||
|
Text[0x00B7]="FM2"
|
||||||
|
Text[0x00B8]="FM3"
|
||||||
|
Text[0x00B9]="FM4"
|
||||||
|
Text[0x00BA]="FM5"
|
||||||
|
Text[0x00BB]="FM6"
|
||||||
|
Text[0x00BC]="FM7"
|
||||||
|
Text[0x00BD]="FM8"
|
||||||
|
Text[0x00BE]="FM9"
|
||||||
|
Text[0x00BF]="FM10"
|
||||||
Text[0x00F9]="Gyro settings"
|
Text[0x00F9]="Gyro settings"
|
||||||
|
Text[0x00FE]="Stick Priority"
|
||||||
Text[0x0100]="Make sure the model has been"
|
Text[0x0100]="Make sure the model has been"
|
||||||
Text[0x0101]="configured, including wing type,"
|
Text[0x0101]="configured, including wing type,"
|
||||||
Text[0x0102]="reversing, travel, trimmed, etc."
|
Text[0x0102]="reversing, travel, trimmed, etc."
|
||||||
Text[0x0103]="before continuing setup."
|
Text[0x0103]="before continuing setup."
|
||||||
Text[0x0104]=""
|
Text[0x0104]="0104"
|
||||||
Text[0x0105]=""
|
Text[0x0105]="0105"
|
||||||
Text[0x0106]="Any wing type, channel assignment,"
|
Text[0x0106]="Any wing type, channel assignment,"
|
||||||
Text[0x0107]="subtrim, or servo reversing changes"
|
Text[0x0107]="subtrim, or servo reversing changes"
|
||||||
Text[0x0108]="require running through initial"
|
Text[0x0108]="require running through initial"
|
||||||
Text[0x0109]="setup again."
|
Text[0x0109]="setup again."
|
||||||
Text[0x010A]=""
|
Text[0x010A]="010A"
|
||||||
Text[0x010B]=""
|
Text[0x010B]="010B"
|
||||||
|
Text[0x0190]="Relearn Servo Settings"
|
||||||
Text[0x019C]="Enter Receiver Bind Mode"
|
Text[0x019C]="Enter Receiver Bind Mode"
|
||||||
|
Text[0x01DC]="AS3X"
|
||||||
|
Text[0x01DD]="AS3X Settings"
|
||||||
|
Text[0x01DE]="AS3X Gains"
|
||||||
|
Text[0x01E0]="Rate Gains"
|
||||||
Text[0x020A]="Restore from Backup"
|
Text[0x020A]="Restore from Backup"
|
||||||
Text[0x0209]="Save to Backup"
|
Text[0x0209]="Save to Backup"
|
||||||
|
Text[0x020D]="First Time SAFE Setup"
|
||||||
Text[0x021A]="Set the model level,"
|
Text[0x021A]="Set the model level,"
|
||||||
Text[0x021B]="and press Continue."
|
Text[0x021B]="and press Continue."
|
||||||
Text[0x021C]=""
|
Text[0x021C]="021C"
|
||||||
Text[0x021D]=""
|
Text[0x021D]="021D"
|
||||||
|
|
||||||
Text[0x021F]="Set the model on its nose,"
|
Text[0x021F]="Set the model on its nose,"
|
||||||
Text[0x0220]="and press Continue. If the"
|
Text[0x0220]="and press Continue. If the"
|
||||||
@@ -525,17 +564,22 @@ local function DSM_Init()
|
|||||||
Text[0x022D]="configuration to factory"
|
Text[0x022D]="configuration to factory"
|
||||||
Text[0x022E]="defaults. This does not"
|
Text[0x022E]="defaults. This does not"
|
||||||
Text[0x022F]="affect the backup config."
|
Text[0x022F]="affect the backup config."
|
||||||
Text[0x0230]=""
|
Text[0x0230]="0230"
|
||||||
Text[0x0231]="This will overwrite the"
|
Text[0x0231]="This will overwrite the"
|
||||||
Text[0x0232]="backup memory with your"
|
Text[0x0232]="backup memory with your"
|
||||||
Text[0x0233]="current configuartion."
|
Text[0x0233]="current configuartion."
|
||||||
Text[0x0234]=""
|
Text[0x0234]="0234"
|
||||||
Text[0x0235]=""
|
Text[0x0235]="0235"
|
||||||
Text[0x0236]="This will overwrite the"
|
Text[0x0236]="This will overwrite the"
|
||||||
Text[0x0237]="current config with"
|
Text[0x0237]="current config with"
|
||||||
Text[0x0238]="that which is in"
|
Text[0x0238]="that which is in"
|
||||||
Text[0x0239]="the backup memory."
|
Text[0x0239]="the backup memory."
|
||||||
Text[0x023A]=""
|
Text[0x023A]="023A"
|
||||||
|
Text[0x023D]="Copy Flight Mode Settings"
|
||||||
|
Text[0x0240]="Utilities"
|
||||||
|
Text[0x8001]="Flight Mode 1"
|
||||||
|
Text[0x8002]="Flight Mode 2"
|
||||||
|
Text[0x8003]="Flight Mode 3"
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Main
|
-- Main
|
||||||
|
|||||||
@@ -175,3 +175,4 @@
|
|||||||
8,3,YD717,XinXun,1,Flip,Light,Pict,Video,HLess
|
8,3,YD717,XinXun,1,Flip,Light,Pict,Video,HLess
|
||||||
8,4,YD717,NiHui,1,Flip,Light,Pict,Video,HLess
|
8,4,YD717,NiHui,1,Flip,Light,Pict,Video,HLess
|
||||||
52,0,ZSX,280,1,Light
|
52,0,ZSX,280,1,Light
|
||||||
|
78,0,M-Link,Std,0,CH5,CH6,CH7,CH8,CH9,CH10,CH11,CH12,CH13,CH14,CH15,CH16
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ Bit(s) Bitmask Option Comment
|
|||||||
11 0x400 MULTI_STATUS Indicates if MULTI_STATUS is defined
|
11 0x400 MULTI_STATUS Indicates if MULTI_STATUS is defined
|
||||||
12 0x800 MULTI_TELEMETRY Indicates if MULTI_TELEMETRY is defined
|
12 0x800 MULTI_TELEMETRY Indicates if MULTI_TELEMETRY is defined
|
||||||
13 0x1000 DEBUG_SERIAL Indicates if DEBUG_SERIAL is defined
|
13 0x1000 DEBUG_SERIAL Indicates if DEBUG_SERIAL is defined
|
||||||
|
14-16 0xE000 Module sub-type Reads as a three-bit value indicating a number from 0-7 which maps to a module sub-type (right-shift 13 bits to read)
|
||||||
|
|
||||||
The 8-byte version number is the version number zero-padded to a fixed width of two-bytes per segment and no separator.
|
The 8-byte version number is the version number zero-padded to a fixed width of two-bytes per segment and no separator.
|
||||||
E.g. 1.2.3.45 becomes 01020345.
|
E.g. 1.2.3.45 becomes 01020345.
|
||||||
@@ -60,9 +61,15 @@ OpenTX 2 10
|
|||||||
|
|
||||||
Module types are mapped to the following decimal / binary values:
|
Module types are mapped to the following decimal / binary values:
|
||||||
Module Type Decimal Value Binary Valsue
|
Module Type Decimal Value Binary Valsue
|
||||||
AVR 0 00
|
AVR (Atmega328p) 0 00
|
||||||
STM32 1 01
|
STM32 (F103) 1 01
|
||||||
OrangeRX 2 10
|
OrangeRX (Xmega) 2 10
|
||||||
|
|
||||||
|
Module sub-type is currently used for STM32F103 only and is mapped as follows:
|
||||||
|
Module Type Sub Type Decimal Value Binary Value
|
||||||
|
STM32 (F103) STM32F103CB 0 000
|
||||||
|
STM32 (F103) STM32F103C8 1 001
|
||||||
|
STM32 (F103) T18 5in1 2 010
|
||||||
|
|
||||||
Channel orders are mapped to the following decimal / binary values:
|
Channel orders are mapped to the following decimal / binary values:
|
||||||
Channel Order Decimal Value Binary Value
|
Channel Order Decimal Value Binary Value
|
||||||
@@ -109,6 +116,17 @@ RTEA 23 10111
|
|||||||
bool firmwareFlag_DEBUG_SERIAL = true;
|
bool firmwareFlag_DEBUG_SERIAL = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// STM32 Module sub-type flags
|
||||||
|
#if defined (MCU_STM32F103CB)
|
||||||
|
bool firmwareFlag_MCU_STM32F103CB = true;
|
||||||
|
#endif
|
||||||
|
#if defined (MCU_STM32F103C8)
|
||||||
|
bool firmwareFlag_MCU_STM32F103C8 = true;
|
||||||
|
#endif
|
||||||
|
#if defined (MULTI_5IN1_INTERNAL)
|
||||||
|
bool firmwareFlag_MULTI_5IN1_INTERNAL = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Channel order flags
|
// Channel order flags
|
||||||
#if defined (AETR)
|
#if defined (AETR)
|
||||||
bool firmwareFlag_ChannelOrder_AETR = true;
|
bool firmwareFlag_ChannelOrder_AETR = true;
|
||||||
|
|||||||
@@ -74,4 +74,5 @@
|
|||||||
74,RadioLink,Surface,Air
|
74,RadioLink,Surface,Air
|
||||||
75,---
|
75,---
|
||||||
76,Realacc,R11
|
76,Realacc,R11
|
||||||
77,OMP
|
77,OMP
|
||||||
|
78,M-Link
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ const char STR_KYOSHO[] ="Kyosho";
|
|||||||
const char STR_RLINK[] ="RadLink";
|
const char STR_RLINK[] ="RadLink";
|
||||||
const char STR_REALACC[] ="Realacc";
|
const char STR_REALACC[] ="Realacc";
|
||||||
const char STR_OMP[] ="OMP";
|
const char STR_OMP[] ="OMP";
|
||||||
|
const char STR_MLINK[] ="M-Link";
|
||||||
const char STR_TEST[] ="Test";
|
const char STR_TEST[] ="Test";
|
||||||
const char STR_NANORF[] ="NanoRF";
|
const char STR_NANORF[] ="NanoRF";
|
||||||
|
|
||||||
@@ -308,6 +309,9 @@ const mm_protocol_definition multi_protocols[] = {
|
|||||||
#if defined(MJXQ_NRF24L01_INO)
|
#if defined(MJXQ_NRF24L01_INO)
|
||||||
{PROTO_MJXQ, STR_MJXQ, 7, STR_SUBTYPE_MJXQ, OPTION_RFTUNE },
|
{PROTO_MJXQ, STR_MJXQ, 7, STR_SUBTYPE_MJXQ, OPTION_RFTUNE },
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MLINK_CYRF6936_INO)
|
||||||
|
{PROTO_MLINK, STR_MLINK, 0, NO_SUBTYPE, OPTION_NONE },
|
||||||
|
#endif
|
||||||
#if defined(MT99XX_NRF24L01_INO)
|
#if defined(MT99XX_NRF24L01_INO)
|
||||||
{PROTO_MT99XX, STR_MT99XX, 5, STR_SUBTYPE_MT99, OPTION_NONE },
|
{PROTO_MT99XX, STR_MT99XX, 5, STR_SUBTYPE_MT99, OPTION_NONE },
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_REVISION 1
|
#define VERSION_REVISION 1
|
||||||
#define VERSION_PATCH_LEVEL 77
|
#define VERSION_PATCH_LEVEL 78
|
||||||
|
|
||||||
//******************
|
//******************
|
||||||
// Protocols
|
// Protocols
|
||||||
@@ -103,6 +103,7 @@ enum PROTOCOLS
|
|||||||
PROTO_RLINK = 74, // =>CC2500
|
PROTO_RLINK = 74, // =>CC2500
|
||||||
PROTO_REALACC = 76, // =>NRF24L01
|
PROTO_REALACC = 76, // =>NRF24L01
|
||||||
PROTO_OMP = 77, // =>CC2500 & NRF24L01
|
PROTO_OMP = 77, // =>CC2500 & NRF24L01
|
||||||
|
PROTO_MLINK = 78, // =>CYRF6936
|
||||||
|
|
||||||
PROTO_NANORF = 126, // =>NRF24L01
|
PROTO_NANORF = 126, // =>NRF24L01
|
||||||
PROTO_TEST = 127, // =>CC2500
|
PROTO_TEST = 127, // =>CC2500
|
||||||
@@ -834,6 +835,7 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
|
|||||||
RLINK 74
|
RLINK 74
|
||||||
REALACC 76
|
REALACC 76
|
||||||
OMP 77
|
OMP 77
|
||||||
|
MLINK 78
|
||||||
BindBit=> 0x80 1=Bind/0=No
|
BindBit=> 0x80 1=Bind/0=No
|
||||||
AutoBindBit=> 0x40 1=Yes /0=No
|
AutoBindBit=> 0x40 1=Yes /0=No
|
||||||
RangeCheck=> 0x20 1=Yes /0=No
|
RangeCheck=> 0x20 1=Yes /0=No
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ uint16_t packet_period;
|
|||||||
uint8_t packet_count;
|
uint8_t packet_count;
|
||||||
uint8_t packet_sent;
|
uint8_t packet_sent;
|
||||||
uint8_t packet_length;
|
uint8_t packet_length;
|
||||||
#if defined(HOTT_CC2500_INO) || defined(ESKY150V2_CC2500_INO)
|
#if defined(HOTT_CC2500_INO) || defined(ESKY150V2_CC2500_INO) || defined(MLINK_CYRF6936_INO)
|
||||||
uint8_t hopping_frequency[75];
|
uint8_t hopping_frequency[78];
|
||||||
#else
|
#else
|
||||||
uint8_t hopping_frequency[50];
|
uint8_t hopping_frequency[50];
|
||||||
#endif
|
#endif
|
||||||
@@ -401,6 +401,17 @@ void setup()
|
|||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Initialize the EEPROM
|
||||||
|
uint16_t eepromStatus = EEPROM.init();
|
||||||
|
debugln("EEPROM initialized: %d",eepromStatus);
|
||||||
|
|
||||||
|
// If there was no valid EEPROM page the EEPROM is corrupt or uninitialized and should be formatted
|
||||||
|
if( eepromStatus == EEPROM_NO_VALID_PAGE )
|
||||||
|
{
|
||||||
|
EEPROM.format();
|
||||||
|
debugln("No valid EEPROM page, EEPROM formatted");
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
//ATMEGA328p
|
//ATMEGA328p
|
||||||
// all inputs
|
// all inputs
|
||||||
@@ -1327,6 +1338,13 @@ static void protocol_init()
|
|||||||
remote_callback = ReadWFLY;
|
remote_callback = ReadWFLY;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MLINK_CYRF6936_INO)
|
||||||
|
case PROTO_MLINK:
|
||||||
|
PE2_on; //antenna RF4
|
||||||
|
next_callback = initMLINK();
|
||||||
|
remote_callback = ReadMLINK;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#if defined(DEVO_CYRF6936_INO)
|
#if defined(DEVO_CYRF6936_INO)
|
||||||
case PROTO_DEVO:
|
case PROTO_DEVO:
|
||||||
#ifdef ENABLE_PPM
|
#ifdef ENABLE_PPM
|
||||||
|
|||||||
@@ -142,18 +142,20 @@ static void __attribute__((unused)) OMP_initialize_txid()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __attribute__((unused)) OMP_Send_Telemetry(uint8_t v)
|
#ifdef OMP_HUB_TELEMETRY
|
||||||
{
|
static void __attribute__((unused)) OMP_Send_Telemetry(uint8_t v)
|
||||||
v_lipo1=v;
|
|
||||||
telemetry_counter++; //LQI
|
|
||||||
telemetry_link=1;
|
|
||||||
if(telemetry_lost)
|
|
||||||
{
|
{
|
||||||
telemetry_lost = 0;
|
v_lipo1=v;
|
||||||
packet_count = 100;
|
telemetry_counter++; //LQI
|
||||||
telemetry_counter = 100;
|
telemetry_link=1;
|
||||||
|
if(telemetry_lost)
|
||||||
|
{
|
||||||
|
telemetry_lost = 0;
|
||||||
|
packet_count = 100;
|
||||||
|
telemetry_counter = 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
#endif
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
OMP_BIND = 0x00,
|
OMP_BIND = 0x00,
|
||||||
|
|||||||
@@ -233,6 +233,7 @@
|
|||||||
#undef DSM_CYRF6936_INO
|
#undef DSM_CYRF6936_INO
|
||||||
#undef DSM_RX_CYRF6936_INO
|
#undef DSM_RX_CYRF6936_INO
|
||||||
#undef J6PRO_CYRF6936_INO
|
#undef J6PRO_CYRF6936_INO
|
||||||
|
#undef MLINK_CYRF6936_INO
|
||||||
#undef TRAXXAS_CYRF6936_INO
|
#undef TRAXXAS_CYRF6936_INO
|
||||||
#undef WFLY_CYRF6936_INO
|
#undef WFLY_CYRF6936_INO
|
||||||
#undef WK2x01_CYRF6936_INO
|
#undef WK2x01_CYRF6936_INO
|
||||||
@@ -344,6 +345,7 @@
|
|||||||
#undef OMP_HUB_TELEMETRY
|
#undef OMP_HUB_TELEMETRY
|
||||||
#undef RLINK_HUB_TELEMETRY
|
#undef RLINK_HUB_TELEMETRY
|
||||||
#undef DSM_RX_CYRF6936_INO
|
#undef DSM_RX_CYRF6936_INO
|
||||||
|
#undef DSM_FWD_PGM
|
||||||
#else
|
#else
|
||||||
#if defined(MULTI_TELEMETRY) && defined(MULTI_STATUS)
|
#if defined(MULTI_TELEMETRY) && defined(MULTI_STATUS)
|
||||||
#error You should choose either MULTI_TELEMETRY or MULTI_STATUS but not both.
|
#error You should choose either MULTI_TELEMETRY or MULTI_STATUS but not both.
|
||||||
|
|||||||
@@ -29,7 +29,16 @@ Multiprotocol is distributed in the hope that it will be useful,
|
|||||||
|
|
||||||
static uint16_t __attribute__((unused)) XK_convert_channel(uint8_t num)
|
static uint16_t __attribute__((unused)) XK_convert_channel(uint8_t num)
|
||||||
{
|
{
|
||||||
uint16_t val=convert_channel_10b(num);
|
uint16_t val;
|
||||||
|
if(num==RUDDER)
|
||||||
|
{// introduce deadband on rudder to prevent twitching
|
||||||
|
//debug("RUD:%d",val);
|
||||||
|
val=convert_channel_8b_limit_deadband(RUDDER,0x00,0x80, 0xFF, 40)<<2;
|
||||||
|
//debugln(",%d",val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
val=convert_channel_10b(num);
|
||||||
|
|
||||||
// 1FF..01=left, 00=center, 200..3FF=right
|
// 1FF..01=left, 00=center, 200..3FF=right
|
||||||
if(val==0x200)
|
if(val==0x200)
|
||||||
val=0; // 0
|
val=0; // 0
|
||||||
@@ -58,16 +67,16 @@ static void __attribute__((unused)) XK_send_packet()
|
|||||||
{
|
{
|
||||||
uint16_t val=convert_channel_10b(THROTTLE);
|
uint16_t val=convert_channel_10b(THROTTLE);
|
||||||
packet[0] = val>>2; // 0..255
|
packet[0] = val>>2; // 0..255
|
||||||
//packet[12] |= val & 2;
|
packet[12] |= val & 2;
|
||||||
val=XK_convert_channel(RUDDER);
|
val=XK_convert_channel(RUDDER);
|
||||||
packet[1] = val>>2;
|
packet[1] = val>>2;
|
||||||
//packet[12] |= (val & 2)<<2;
|
packet[12] |= (val & 2)<<2;
|
||||||
val=XK_convert_channel(ELEVATOR);
|
val=XK_convert_channel(ELEVATOR);
|
||||||
packet[2] = val>>2;
|
packet[2] = val>>2;
|
||||||
//packet[13] |= val & 2;
|
packet[13] |= val & 2;
|
||||||
val=XK_convert_channel(AILERON);
|
val=XK_convert_channel(AILERON);
|
||||||
packet[3] = val>>2;
|
packet[3] = val>>2;
|
||||||
//packet[13] |= (val & 2)<<2;
|
packet[13] |= (val & 2)<<2;
|
||||||
|
|
||||||
memset(&packet[4],0x40,3); // Trims
|
memset(&packet[4],0x40,3); // Trims
|
||||||
|
|
||||||
@@ -84,6 +93,7 @@ static void __attribute__((unused)) XK_send_packet()
|
|||||||
|GET_FLAG(CH6_SW,0x40); // Take off momentary switch
|
|GET_FLAG(CH6_SW,0x40); // Take off momentary switch
|
||||||
packet[14] = GET_FLAG(CH9_SW,0x01) // Photo momentary switch
|
packet[14] = GET_FLAG(CH9_SW,0x01) // Photo momentary switch
|
||||||
|GET_FLAG(CH10_SW,0x2); // Video momentary switch
|
|GET_FLAG(CH10_SW,0x2); // Video momentary switch
|
||||||
|
//debugln("P1:%02X,P12:%02X",packet[1],packet[12]);
|
||||||
}
|
}
|
||||||
|
|
||||||
crc=packet[0];
|
crc=packet[0];
|
||||||
|
|||||||
@@ -850,7 +850,7 @@ Models: Eachine H8(C) mini, BayangToys X6/X7/X9, JJRC JJ850, Floureon H101 ...
|
|||||||
|
|
||||||
Option=0 -> normal Bayang protocol
|
Option=0 -> normal Bayang protocol
|
||||||
|
|
||||||
Option=1 -> enable telemetry with [Silverxxx firmware](https://github.com/silver13/H101-acro/tree/master). Value returned to the TX using FrSkyD Hub are RX RSSI, TX RSSI, A1=uncompensated battery voltage (set the ratio to 12.7 and adjust with offset), A2=compensated battery voltage (set the ratio to 12.7 and adjust with offset)
|
Option=1 -> enable telemetry with [Silverxxx firmware](https://github.com/silver13/H101-acro/tree/master). Value returned to the TX using FrSkyD Hub are RX RSSI, TX RSSI, A1=uncompensated battery voltage (set the ratio to 5.0 and adjust with offset), A2=compensated battery voltage (set the ratio to 5.0 and adjust with offset)
|
||||||
|
|
||||||
Option=2 -> enable analog aux channels with [NFE Silverware firmware](https://github.com/NotFastEnuf/NFE_Silverware). Two otherwise static bytes in the protocol overridden to add two 'analog' (non-binary) auxiliary channels.
|
Option=2 -> enable analog aux channels with [NFE Silverware firmware](https://github.com/NotFastEnuf/NFE_Silverware). Two otherwise static bytes in the protocol overridden to add two 'analog' (non-binary) auxiliary channels.
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ Original FrSky, Futaba, Corona Hitec and HoTT receivers have been frequency-tune
|
|||||||
The procedure can be performed in serial or PPM mode, but is easier with in serial mode where the effect of the change can be seen in real-time.
|
The procedure can be performed in serial or PPM mode, but is easier with in serial mode where the effect of the change can be seen in real-time.
|
||||||
|
|
||||||
### Preparation
|
### Preparation
|
||||||
The radio needs to be bound with the receiver.
|
The radio needs to be bound with the receiver in order to fine tune. If the receiver does not bind, use *coarse* tuning (varying the **Freq** value in steps of +/- 40) until the receiver binds.
|
||||||
|
|
||||||
1. Configure the radio with the appropriate protocol
|
1. Configure the radio with the appropriate protocol
|
||||||
1. Set the **Freq** value to 0
|
1. Set the **Freq** value to 0
|
||||||
1. Put the receiver into **Binding** mode
|
1. Put the receiver into **Binding** mode
|
||||||
|
|||||||
Reference in New Issue
Block a user