mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-26 01:35:16 +03:00
Add iFlight Commando8
Add iFlight Commando8 ELRS radio
This commit is contained in:
parent
7800a6de42
commit
299991bc11
50 changed files with 484 additions and 55 deletions
2
.github/workflows/actions.yml
vendored
2
.github/workflows/actions.yml
vendored
|
@ -53,6 +53,7 @@ jobs:
|
|||
- x9lites
|
||||
- xlite
|
||||
- xlites
|
||||
- commando8
|
||||
container:
|
||||
image: ghcr.io/edgetx/edgetx-dev:latest
|
||||
volumes:
|
||||
|
@ -94,6 +95,7 @@ jobs:
|
|||
- x9e;x9e-hall
|
||||
- x9lite;x9lites
|
||||
- xlite;xlites
|
||||
- commando8
|
||||
container:
|
||||
image: ghcr.io/edgetx/edgetx-dev:latest
|
||||
volumes:
|
||||
|
|
1
.github/workflows/nightly.yml
vendored
1
.github/workflows/nightly.yml
vendored
|
@ -32,6 +32,7 @@ jobs:
|
|||
- x9d;x9dp;x9dp2019
|
||||
- x9lite;x9lites
|
||||
- xlite;xlites
|
||||
- commando8
|
||||
container:
|
||||
image: ghcr.io/edgetx/edgetx-dev:latest
|
||||
volumes:
|
||||
|
|
|
@ -446,6 +446,11 @@ if(FRSKY_RELEASE)
|
|||
set(POPUP_LEVEL 3)
|
||||
endif()
|
||||
|
||||
if(IFLIGHT_RELEASE)
|
||||
add_definitions(-DIFLIGHT_RELEASE)
|
||||
endif()
|
||||
|
||||
|
||||
if(HARDWARE_TRAINER_MULTI)
|
||||
add_definitions(-DHARDWARE_TRAINER_MULTI)
|
||||
endif()
|
||||
|
|
|
@ -27,7 +27,7 @@ constexpr coord_t CHANNEL_GAUGE_OFFSET = CHANNEL_VALUE_OFFSET;
|
|||
constexpr coord_t CHANNEL_BAR_WIDTH = 70;
|
||||
constexpr coord_t CHANNEL_PROPERTIES_OFFSET = CHANNEL_GAUGE_OFFSET + CHANNEL_BAR_WIDTH + 2;
|
||||
|
||||
#if defined(RADIO_T8)
|
||||
#if defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
|
||||
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
|
||||
#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_PLUS)
|
||||
|
|
|
@ -279,7 +279,7 @@ void displayBattVoltage()
|
|||
|
||||
#define displayVoltageOrAlarm() displayBattVoltage()
|
||||
|
||||
#if defined(RADIO_T8)
|
||||
#if defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define EVT_KEY_CONTEXT_MENU EVT_KEY_LONG(KEY_ENTER)
|
||||
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
|
||||
#define EVT_KEY_NEXT_VIEW EVT_KEY_FIRST(KEY_PAGEDN)
|
||||
|
|
|
@ -213,7 +213,7 @@ enum {
|
|||
#define SWITCH_TYPE_MAX(sw) ((MIXSRC_SF - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SH - MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS)
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define SWITCH_TYPE_MAX(sw) ((MIXSRC_SB - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SC - MIXSRC_FIRST_SWITCH == sw) ? SWITCH_3POS : SWITCH_2POS)
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define SWITCH_TYPE_MAX(sw) ((MIXSRC_SA - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SD - MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS)
|
||||
#elif defined(RADIO_TX12)
|
||||
#define SWITCH_TYPE_MAX(sw) (((MIXSRC_SA - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SD - MIXSRC_FIRST_SWITCH == sw) || \
|
||||
|
|
|
@ -643,6 +643,11 @@ bool isInternalModuleSupported(int moduleType)
|
|||
|
||||
bool isInternalModuleAvailable(int moduleType)
|
||||
{
|
||||
#if defined(MUTUALLY_EXCLUSIVE_MODULES)
|
||||
if (!isModuleNone(EXTERNAL_MODULE))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
if (moduleType == MODULE_TYPE_NONE)
|
||||
return true;
|
||||
|
||||
|
@ -681,6 +686,12 @@ bool isInternalModuleAvailable(int moduleType)
|
|||
|
||||
bool isExternalModuleAvailable(int moduleType)
|
||||
{
|
||||
|
||||
#if defined(MUTUALLY_EXCLUSIVE_MODULES)
|
||||
if (!isModuleNone(INTERNAL_MODULE))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
#if !defined(HARDWARE_EXTERNAL_MODULE_SIZE_SML)
|
||||
if (isModuleTypeR9MLite(moduleType) || moduleType == MODULE_TYPE_XJT_LITE_PXX2)
|
||||
return false;
|
||||
|
|
|
@ -63,9 +63,11 @@ const char * writeScreenshot()
|
|||
return error;
|
||||
}
|
||||
|
||||
#if defined(RTCLOCK)
|
||||
char * tmp = strAppend(&filename[sizeof(SCREENSHOTS_PATH)-1], "/screen");
|
||||
tmp = strAppendDate(tmp, true);
|
||||
strcpy(tmp, BMP_EXT);
|
||||
#endif
|
||||
|
||||
FRESULT result = f_open(&bmpFile, filename, FA_CREATE_ALWAYS | FA_WRITE);
|
||||
if (result != FR_OK) {
|
||||
|
|
|
@ -151,7 +151,7 @@ inline bool IS_KEY_EVT(event_t evt, uint8_t key)
|
|||
#define EVT_ROTARY_LONG EVT_KEY_LONG(KEY_ENTER)
|
||||
#define IS_NEXT_EVENT(event) (event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN))
|
||||
#define IS_PREVIOUS_EVENT(event) (event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP))
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define EVT_ROTARY_BREAK EVT_KEY_BREAK(KEY_ENTER)
|
||||
#define EVT_ROTARY_LONG EVT_KEY_LONG(KEY_ENTER)
|
||||
#define IS_NEXT_EVENT(event) (event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN))
|
||||
|
|
|
@ -35,6 +35,7 @@ if(PYTHONINTERP_FOUND)
|
|||
add_lua_export_target(tx12mk2 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_TX12MK2)
|
||||
add_lua_export_target(zorro ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_ZORRO)
|
||||
add_lua_export_target(t8 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_T8)
|
||||
add_lua_export_target(commando8 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_COMMANDO8)
|
||||
add_lua_export_target(t16 ${LUA_INCLUDES} -DPCBHORUS -DPCBX10 -DRADIO_T16)
|
||||
add_lua_export_target(nv14 ${LUA_INCLUDES} -I${RADIO_SRC_DIR}/targets/nv14 -DPCBNV14)
|
||||
endif()
|
||||
|
|
|
@ -59,6 +59,8 @@
|
|||
#include "lua/lua_exports_zorro.inc"
|
||||
#elif defined(RADIO_T8)
|
||||
#include "lua/lua_exports_t8.inc"
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#include "lua/lua_exports_commando8.inc"
|
||||
#elif defined(PCBX9LITES)
|
||||
#include "lua/lua_exports_x9lites.inc"
|
||||
#elif defined(PCBX9LITE)
|
||||
|
@ -2704,7 +2706,7 @@ const luaR_value_entry opentxConstants[] = {
|
|||
{ "ROTENC_LOWSPEED", ROTENC_LOWSPEED },
|
||||
{ "ROTENC_MIDSPEED", ROTENC_MIDSPEED },
|
||||
{ "ROTENC_HIGHSPEED", ROTENC_HIGHSPEED },
|
||||
#elif defined(PCBX9D) || defined(PCBX9DP) || defined(RADIO_T8) // key reverted between field nav and value change
|
||||
#elif defined(PCBX9D) || defined(PCBX9DP) || defined(RADIO_T8) || defined(RADIO_COMMANDO8)// key reverted between field nav and value change
|
||||
{ "EVT_VIRTUAL_PREV", EVT_KEY_FIRST(KEY_PLUS) },
|
||||
{ "EVT_VIRTUAL_PREV_REPT", EVT_KEY_REPT(KEY_PLUS) },
|
||||
{ "EVT_VIRTUAL_NEXT", EVT_KEY_FIRST(KEY_MINUS) },
|
||||
|
@ -2741,7 +2743,7 @@ const luaR_value_entry opentxConstants[] = {
|
|||
{ "EVT_VIRTUAL_ENTER_LONG", EVT_KEY_LONG(KEY_ENTER) },
|
||||
{ "EVT_VIRTUAL_EXIT", EVT_KEY_BREAK(KEY_EXIT) },
|
||||
#elif defined(NAVIGATION_X7) || defined(NAVIGATION_X9D)
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8)
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
{ "EVT_VIRTUAL_PREV_PAGE", EVT_KEY_BREAK(KEY_PAGEUP) },
|
||||
{ "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_BREAK(KEY_PAGEDN) },
|
||||
{ "EVT_VIRTUAL_MENU", EVT_KEY_BREAK(KEY_MODEL) },
|
||||
|
|
|
@ -380,6 +380,12 @@ void generalDefault()
|
|||
g_eeGeneral.pwrOnSpeed = 1; // 1 second
|
||||
#endif
|
||||
|
||||
#if defined(IFLIGHT_RELEASE)
|
||||
g_eeGeneral.splashMode = 3;
|
||||
g_eeGeneral.pwrOnSpeed = 2;
|
||||
g_eeGeneral.pwrOffSpeed = 2;
|
||||
#endif
|
||||
|
||||
g_eeGeneral.chkSum = 0xFFFF;
|
||||
}
|
||||
|
||||
|
|
|
@ -888,7 +888,7 @@ constexpr uint8_t OPENTX_START_NO_CHECKS = 0x04;
|
|||
|
||||
#if defined(STATUS_LEDS)
|
||||
#define LED_ERROR_BEGIN() ledRed()
|
||||
#if defined(RADIO_T8)
|
||||
#if defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
// Because of green backlit logo, green is preferred on this radio
|
||||
#define LED_ERROR_END() ledGreen()
|
||||
#define LED_BIND() ledBlue()
|
||||
|
|
|
@ -368,7 +368,7 @@ void OpenTxSim::updateKeysAndSwitches(bool start)
|
|||
KEY_Down, KEY_EXIT,
|
||||
KEY_Right, KEY_TELE,
|
||||
KEY_Left, KEY_SYS,
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
KEY_Page_Up, KEY_PAGEUP,
|
||||
KEY_Page_Down, KEY_PAGEDN,
|
||||
KEY_Return, KEY_ENTER,
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
#define DISPLAY_VERSION "-jumper"
|
||||
#elif defined(RADIOMASTER_RELEASE)
|
||||
#define DISPLAY_VERSION "-RM"
|
||||
#elif defined(IFLIGHT_RELEASE)
|
||||
#define DISPLAY_VERSION "-IF"
|
||||
#elif defined(TBS_RELEASE)
|
||||
#define DISPLAY_VERSION "-tbs"
|
||||
#elif defined(IMRC_RELEASE)
|
||||
|
@ -61,7 +63,7 @@
|
|||
const char vers_stamp[] = "FW" TAB ": edgetx-" BOARD_NAME "\036VERS" TAB ": " VERSION DISPLAY_VERSION " (" GIT_STR ")" "\036DATE" TAB ": " DATE " " TIME;
|
||||
#elif defined(RADIOMASTER_RELEASE)
|
||||
const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": RM Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME;
|
||||
#elif defined(JUMPER_RELEASE)
|
||||
#elif defined(JUMPER_RELEASE) || defined(IFLIGHT_RELEASE)
|
||||
const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME;
|
||||
#else
|
||||
#if defined(VERSION_TAG)
|
||||
|
|
|
@ -444,7 +444,7 @@ char getRawSwitchFromIdx(int idx)
|
|||
#endif
|
||||
else
|
||||
return 'A' + idx;
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_T8)
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
if (idx < 6)
|
||||
return 'A' + idx;
|
||||
else
|
||||
|
|
|
@ -44,6 +44,34 @@ void dacTimerInit()
|
|||
AUDIO_TIMER->CR1 = TIM_CR1_CEN ;
|
||||
}
|
||||
|
||||
#if defined(AUDIO_MUTE_GPIO_PIN)
|
||||
static inline void setMutePin(bool enabled)
|
||||
{
|
||||
if (enabled) {
|
||||
#if defined(INVERTED_MUTE_PIN)
|
||||
GPIO_ResetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
#else
|
||||
GPIO_SetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
#endif
|
||||
} else {
|
||||
#if defined(INVERTED_MUTE_PIN)
|
||||
GPIO_SetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
#else
|
||||
GPIO_ResetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool getMutePin(void)
|
||||
{
|
||||
#if defined(INVERTED_MUTE_PIN)
|
||||
return !GPIO_ReadOutputDataBit(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
#else
|
||||
return GPIO_ReadOutputDataBit(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
// Configure DAC0
|
||||
// Not sure why PB14 has not be allocated to the DAC, although it is an EXTRA function
|
||||
// So maybe it is automatically done
|
||||
|
@ -60,7 +88,7 @@ void dacInit()
|
|||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(AUDIO_MUTE_GPIO, &GPIO_InitStructure);
|
||||
GPIO_SetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
setMutePin(true);
|
||||
#endif
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = AUDIO_OUTPUT_GPIO_PIN;
|
||||
|
@ -100,11 +128,11 @@ void audioMute()
|
|||
}
|
||||
else if (now - audioQueue.lastAudioPlayTime > AUDIO_MUTE_DELAY / 10) {
|
||||
// delay expired, we may mute
|
||||
GPIO_SetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
setMutePin(true);
|
||||
}
|
||||
#else
|
||||
// mute
|
||||
GPIO_SetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
setMutePin(true);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -112,15 +140,15 @@ void audioUnmute()
|
|||
{
|
||||
#if defined(AUDIO_UNMUTE_DELAY)
|
||||
// if muted
|
||||
if (GPIO_ReadOutputDataBit(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN)) {
|
||||
if (getMutePin()) {
|
||||
// ..un-mute
|
||||
GPIO_ResetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
setMutePin(false);
|
||||
RTOS_WAIT_MS(AUDIO_UNMUTE_DELAY);
|
||||
}
|
||||
// reset the mute delay
|
||||
audioQueue.lastAudioPlayTime = 0;
|
||||
#else
|
||||
GPIO_ResetBits(AUDIO_MUTE_GPIO, AUDIO_MUTE_GPIO_PIN);
|
||||
setMutePin(false);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -146,7 +146,7 @@ static inline uint32_t ticksNow()
|
|||
#define ROTENC_HIGHSPEED 50
|
||||
#define ROTENC_DELAY_MIDSPEED 32
|
||||
#define ROTENC_DELAY_HIGHSPEED 16
|
||||
#elif defined(RADIO_T8) && defined(__cplusplus)
|
||||
#elif (defined(RADIO_T8) || defined(RADIO_COMMANDO8)) && defined(__cplusplus)
|
||||
constexpr uint8_t rotencSpeed = 1;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -248,7 +248,7 @@ void bootloaderInitApp()
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(RADIO_T8) && !defined(RADIOMASTER_RELEASE)
|
||||
#if (defined(RADIO_T8) || defined(RADIO_COMMANDO8)) && !defined(RADIOMASTER_RELEASE)
|
||||
// Bind button not pressed
|
||||
if ((~KEYS_GPIO_REG_BIND & KEYS_GPIO_PIN_BIND) == false) {
|
||||
#else
|
||||
|
@ -551,16 +551,12 @@ int bootloaderMain()
|
|||
}
|
||||
|
||||
if (state == ST_REBOOT) {
|
||||
lcdClear();
|
||||
lcdRefresh();
|
||||
lcdRefreshWait();
|
||||
|
||||
#if !defined(SIMU)
|
||||
#if defined(RTC_BACKUP_RAM)
|
||||
rtcInit();
|
||||
RTC->BKP0R = SOFTRESET_REQUEST;
|
||||
#endif
|
||||
|
||||
blExit();
|
||||
NVIC_SystemReset();
|
||||
#else
|
||||
exit(1);
|
||||
|
|
|
@ -92,4 +92,6 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char* str = nullptr
|
|||
// Once for each file in a filename list on screen
|
||||
void bootloaderDrawFilename(const char* str, uint8_t line, bool selected);
|
||||
|
||||
void blExit();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -118,6 +118,15 @@ extern "C" void PWM_IRQHandler(void)
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(STICK_CHANNEL_CHANGE)
|
||||
void sticksPwmRead(uint16_t * values)
|
||||
{
|
||||
values[0] = timer_capture_values[STICK_PWM_CHANNEL_0];
|
||||
values[1] = timer_capture_values[STICK_PWM_CHANNEL_1];
|
||||
values[2] = timer_capture_values[STICK_PWM_CHANNEL_2];
|
||||
values[3] = timer_capture_values[STICK_PWM_CHANNEL_3];
|
||||
}
|
||||
#else
|
||||
void sticksPwmRead(uint16_t * values)
|
||||
{
|
||||
values[0] = timer_capture_values[0];
|
||||
|
@ -125,3 +134,4 @@ void sticksPwmRead(uint16_t * values)
|
|||
values[2] = timer_capture_values[3];
|
||||
values[3] = timer_capture_values[2];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -99,7 +99,7 @@ stm32_hal_adc_channel ADC_MAIN_channels[] = {
|
|||
{ ADC_CHANNEL_SLIDER2, ADC_SAMPTIME },
|
||||
{ ADC_CHANNEL_BATT, ADC_SAMPTIME }
|
||||
#else
|
||||
#if defined(RADIO_T8) || defined(RADIO_TLITE)
|
||||
#if defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_COMMANDO8)
|
||||
// fake channels to fill unsused POT1/POT2
|
||||
{0, 0},
|
||||
{0, 0},
|
||||
|
|
|
@ -215,3 +215,10 @@ void bootloaderDrawFilename(const char* str, uint8_t line, bool selected)
|
|||
lcd->drawSolidRect(119, 72 + (line * 25), 278, 26, 2, BL_SELECTED);
|
||||
}
|
||||
}
|
||||
|
||||
void blExit(void)
|
||||
{
|
||||
lcdClear();
|
||||
lcdRefresh();
|
||||
lcdRefreshWait();
|
||||
}
|
||||
|
|
|
@ -237,3 +237,10 @@ void bootloaderDrawFilename(const char* str, uint8_t line, bool selected)
|
|||
BL_SELECTED);
|
||||
}
|
||||
}
|
||||
|
||||
void blExit(void)
|
||||
{
|
||||
lcdClear();
|
||||
lcdRefresh();
|
||||
lcdRefreshWait();
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ option(INTERNAL_MODULE_PPM "Support for PPM internal module" OFF)
|
|||
option(AUTOUPDATE "Auto update internal chips from SD" OFF)
|
||||
option(BIND_KEY "Enable bind button" OFF)
|
||||
|
||||
set(USE_RTC_CLOCK YES)
|
||||
set(HARDWARE_EXTERNAL_MODULE YES)
|
||||
|
||||
add_definitions(-DPCBFRSKY)
|
||||
|
@ -261,6 +262,31 @@ elseif(PCB STREQUAL X7)
|
|||
add_definitions(-DRADIO_T8)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4004)
|
||||
add_definitions(-DMANUFACTURER_RADIOMASTER)
|
||||
elseif(PCBREV STREQUAL COMMANDO8)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(HARDWARE_EXTERNAL_MODULE YES)
|
||||
set(FLAVOUR commando8)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE STM32F4)
|
||||
set(CPU_TYPE_FULL STM32F407xE) # for size report
|
||||
add_definitions(-DSTM32F407xx)
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f4_flash.ld)
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
startup_stm32f40_41xxx.s
|
||||
../../thirdparty/STM32F4xx_DSP_StdPeriph_Lib_V1.8.0/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_flash.c
|
||||
)
|
||||
add_definitions(-DSTM32F407xx -DSTM32F40_41xxx)
|
||||
set(ROTARY_ENCODER NO)
|
||||
set(LUA_EXPORT lua_export_commando8)
|
||||
set(BLUETOOTH NO)
|
||||
set(USE_RTC_CLOCK NO)
|
||||
add_definitions(-DRADIO_COMMANDO8)
|
||||
add_definitions(-DSTICKS_PWM)
|
||||
add_definitions(-DMUTUALLY_EXCLUSIVE_MODULES)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4008)
|
||||
add_definitions(-DMANUFACTURER_IFLIGHT)
|
||||
elseif(PCBREV STREQUAL ACCESS)
|
||||
set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
|
@ -521,7 +547,12 @@ if(SPLASH STREQUAL OFF)
|
|||
endif()
|
||||
|
||||
add_definitions(-DPCBTARANIS)
|
||||
add_definitions(-DAUDIO -DVOICE -DRTCLOCK)
|
||||
add_definitions(-DAUDIO -DVOICE )
|
||||
|
||||
if(USE_RTC_CLOCK)
|
||||
add_definitions(-DRTCLOCK)
|
||||
endif()
|
||||
|
||||
|
||||
set(SRC
|
||||
${SRC}
|
||||
|
@ -557,7 +588,7 @@ set(FIRMWARE_TARGET_SRC
|
|||
trainer_driver.cpp
|
||||
)
|
||||
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCBREV STREQUAL COMMANDO8)
|
||||
set(FIRMWARE_SRC
|
||||
${FIRMWARE_SRC}
|
||||
targets/common/arm/stm32/sticks_pwm_driver.cpp)
|
||||
|
|
|
@ -428,3 +428,30 @@ const etx_serial_port_t* auxSerialGetPort(int port_nr)
|
|||
if (port_nr >= MAX_AUX_SERIAL) return nullptr;
|
||||
return serialPorts[port_nr];
|
||||
}
|
||||
|
||||
void setMutePin(GPIO_TypeDef* GPIOx,uint16_t Pinx)
|
||||
{
|
||||
#if defined(AUDIO_MUTE_PIN_INVERT)
|
||||
GPIO_ResetBits(GPIOx, Pinx);
|
||||
#else
|
||||
GPIO_SetBits(GPIOx, Pinx);
|
||||
#endif
|
||||
}
|
||||
|
||||
void resetMutePin(GPIO_TypeDef* GPIOx,uint16_t Pinx)
|
||||
{
|
||||
#if defined(AUDIO_MUTE_PIN_INVERT)
|
||||
GPIO_SetBits(GPIOx, Pinx);
|
||||
#else
|
||||
GPIO_ResetBits(GPIOx, Pinx);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t readMutePinLevel(GPIO_TypeDef* GPIOx,uint16_t Pinx)
|
||||
{
|
||||
#if defined(AUDIO_MUTE_PIN_INVERT)
|
||||
return !GPIO_ReadOutputDataBit(GPIOx, Pinx);
|
||||
#else
|
||||
return GPIO_ReadOutputDataBit(GPIOx, Pinx);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -432,7 +432,7 @@ enum EnumSwitchesPositions
|
|||
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
|
||||
#define DEFAULT_SWITCH_CONFIG (SWITCH_TOGGLE << 14) + (SWITCH_TOGGLE << 12) + (SWITCH_2POS << 10) + (SWITCH_2POS << 8) + (SWITCH_TOGGLE << 6) + (SWITCH_3POS << 4) + (SWITCH_3POS << 2) + (SWITCH_TOGGLE << 0)
|
||||
#define DEFAULT_POTS_CONFIG (POT_WITHOUT_DETENT << 0) + (POT_WITHOUT_DETENT << 2);
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define NUM_SWITCHES 4
|
||||
#define STORAGE_NUM_SWITCHES 8
|
||||
#define DEFAULT_SWITCH_CONFIG (SWITCH_2POS << 6) + (SWITCH_3POS << 4) + (SWITCH_3POS << 2) + (SWITCH_2POS << 0);
|
||||
|
@ -539,7 +539,7 @@ enum Analogs {
|
|||
#define NUM_SLIDERS 0
|
||||
#define STORAGE_NUM_POTS 1
|
||||
#define STORAGE_NUM_SLIDERS 0
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TLITE)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_COMMANDO8)
|
||||
#define NUM_POTS 0
|
||||
#define NUM_SLIDERS 0
|
||||
#define STORAGE_NUM_POTS 2
|
||||
|
@ -649,6 +649,10 @@ extern uint16_t adcValues[NUM_ANALOGS];
|
|||
#define BATTERY_WARN 35 // 3.5V
|
||||
#define BATTERY_MIN 34 // 3.4V
|
||||
#define BATTERY_MAX 42 // 4.2V
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define BATTERY_WARN 32 // 3.5V
|
||||
#define BATTERY_MIN 30 // 3.0V
|
||||
#define BATTERY_MAX 42 // 4.2V
|
||||
#else
|
||||
// NI-MH 7.2V
|
||||
#define BATTERY_WARN 65 // 6.5V
|
||||
|
@ -733,6 +737,10 @@ uint8_t isBacklightEnabled();
|
|||
#define USB_NAME "Jumper TPro"
|
||||
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
|
||||
#define USB_PRODUCT 'T', '-', 'P', 'R', 'O', ' ', ' ', ' ' /* 8 Bytes */
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define USB_NAME "iFlight Commando 8"
|
||||
#define USB_MANUFACTURER 'i', 'F', 'l', 'i', 'g', 'h', 't', '-' /* 8 bytes */
|
||||
#define USB_PRODUCT 'C', 'o', 'm', 'm', 'a', 'n', 'd', 'o' /* 8 Bytes */
|
||||
#else
|
||||
#define USB_NAME "FrSky Taranis"
|
||||
#define USB_MANUFACTURER 'F', 'r', 'S', 'k', 'y', ' ', ' ', ' ' /* 8 bytes */
|
||||
|
@ -903,7 +911,7 @@ void fsLedOn(uint8_t);
|
|||
#define LCD_CONTRAST_MAX 30
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define LCD_CONTRAST_DEFAULT 20
|
||||
#elif defined(RADIO_TPRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TPRO)
|
||||
#elif defined(RADIO_TPRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TPRO) || defined(RADIO_COMMANDO8)
|
||||
#define LCD_CONTRAST_DEFAULT 25
|
||||
#else
|
||||
#define LCD_CONTRAST_DEFAULT 15
|
||||
|
|
|
@ -119,3 +119,20 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char *str)
|
|||
lcdDrawTextAlignedLeft(4 * FH, CENTER "\007Writing complete");
|
||||
}
|
||||
}
|
||||
|
||||
void blExit(void)
|
||||
{
|
||||
#if defined(RADIO_COMMANDO8)
|
||||
lcdClear();
|
||||
lcdDrawText(2, 22,"Press the power button.");
|
||||
lcdDrawText(2, 33,"Exit the flashing mode.");
|
||||
lcdRefresh();
|
||||
lcdRefreshWait();
|
||||
while(1);
|
||||
#else
|
||||
lcdClear();
|
||||
lcdRefresh();
|
||||
lcdRefreshWait();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -118,6 +118,25 @@
|
|||
#define KEYS_GPIO_PIN_MINUS GPIO_Pin_10 // PE.10
|
||||
#define KEYS_GPIO_REG_BIND GPIOA->IDR
|
||||
#define KEYS_GPIO_PIN_BIND GPIO_Pin_10 // PA.10
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define KEYS_GPIO_REG_PAGEUP GPIOE->IDR
|
||||
#define KEYS_GPIO_PIN_PAGEUP GPIO_Pin_11 // PE.11
|
||||
#define KEYS_GPIO_REG_PAGEDN GPIOE->IDR
|
||||
#define KEYS_GPIO_PIN_PAGEDN GPIO_Pin_13 // PE.13
|
||||
#define KEYS_GPIO_REG_EXIT GPIOD->IDR
|
||||
#define KEYS_GPIO_PIN_EXIT GPIO_Pin_2 // PD.02
|
||||
#define KEYS_GPIO_REG_ENTER GPIOE->IDR
|
||||
#define KEYS_GPIO_PIN_ENTER GPIO_Pin_10 // PE.10
|
||||
#define KEYS_GPIO_REG_SYS GPIOD->IDR
|
||||
#define KEYS_GPIO_PIN_SYS GPIO_Pin_1 // PD.01
|
||||
#define KEYS_GPIO_REG_MDL GPIOD->IDR
|
||||
#define KEYS_GPIO_PIN_MDL GPIO_Pin_0 // PD.00
|
||||
#define KEYS_GPIO_REG_PLUS GPIOE->IDR
|
||||
#define KEYS_GPIO_PIN_PLUS GPIO_Pin_12 // PE.12
|
||||
#define KEYS_GPIO_REG_MINUS GPIOE->IDR
|
||||
#define KEYS_GPIO_PIN_MINUS GPIO_Pin_14 // PE.14
|
||||
#define KEYS_GPIO_REG_BIND GPIOD->IDR
|
||||
#define KEYS_GPIO_PIN_BIND GPIO_Pin_9 // PD.09
|
||||
#elif defined(PCBX7)
|
||||
#define KEYS_GPIO_REG_PAGE GPIOD->IDR
|
||||
#define KEYS_GPIO_PIN_PAGE GPIO_Pin_3 // PD.03
|
||||
|
@ -285,7 +304,7 @@
|
|||
#define TRIMS_GPIO_PIN_RVU GPIO_Pin_2 // PC.02
|
||||
#define TRIMS_GPIO_REG_RHL GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_RHL GPIO_Pin_4 // PE.04
|
||||
#elif defined(PCBX7)
|
||||
#elif defined(PCBX7) && !defined(RADIO_COMMANDO8)
|
||||
#define TRIMS_GPIO_REG_LHL GPIOD->IDR
|
||||
#define TRIMS_GPIO_PIN_LHL GPIO_Pin_15 // PD.15
|
||||
#define TRIMS_GPIO_REG_LHR GPIOC->IDR
|
||||
|
@ -302,6 +321,23 @@
|
|||
#define TRIMS_GPIO_PIN_RVU GPIO_Pin_2 // PC.02
|
||||
#define TRIMS_GPIO_REG_RHR GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_RHR GPIO_Pin_4 // PE.04
|
||||
#elif defined(PCBX7) && defined(RADIO_COMMANDO8)
|
||||
#define TRIMS_GPIO_REG_LHL GPIOD->IDR
|
||||
#define TRIMS_GPIO_PIN_LHL GPIO_Pin_15 // PD.15
|
||||
#define TRIMS_GPIO_REG_LHR GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_LHR GPIO_Pin_6 // PC.06
|
||||
#define TRIMS_GPIO_REG_LVD GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_LVD GPIO_Pin_6 // PE.06
|
||||
#define TRIMS_GPIO_REG_LVU GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_LVU GPIO_Pin_1 // PE.01
|
||||
#define TRIMS_GPIO_REG_RVD GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_RVD GPIO_Pin_3 // PC.03
|
||||
#define TRIMS_GPIO_REG_RHL GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_RHL GPIO_Pin_0 // PE.00
|
||||
#define TRIMS_GPIO_REG_RVU GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_RVU GPIO_Pin_7 // PC.07
|
||||
#define TRIMS_GPIO_REG_RHR GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_RHR GPIO_Pin_15 // PE.15
|
||||
#elif defined(PCBX9LITE)
|
||||
#define TRIMS_GPIO_REG_LHR GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_LHR GPIO_Pin_4 // PC.04
|
||||
|
@ -381,6 +417,11 @@
|
|||
#define HARDWARE_SWITCH_A
|
||||
#define SWITCHES_GPIO_REG_A GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_A GPIO_Pin_14 // PE.14
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_A
|
||||
#define HARDWARE_SWITCH_A
|
||||
#define SWITCHES_GPIO_REG_A GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_A GPIO_Pin_3 // PE.03
|
||||
#elif defined(RADIO_TPRO)
|
||||
#define STORAGE_SWITCH_A
|
||||
#define HARDWARE_SWITCH_A
|
||||
|
@ -425,6 +466,13 @@
|
|||
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_7 // PE.07
|
||||
#define SWITCHES_GPIO_REG_B_H GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_13 // PE.13
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_B
|
||||
#define HARDWARE_SWITCH_B
|
||||
#define SWITCHES_GPIO_REG_B_L GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_5 // PE.05
|
||||
#define SWITCHES_GPIO_REG_B_H GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_4 // PE.04
|
||||
#elif defined(RADIO_TLITE) || defined(RADIO_TPRO)
|
||||
#define STORAGE_SWITCH_B
|
||||
#define HARDWARE_SWITCH_B
|
||||
|
@ -497,6 +545,13 @@
|
|||
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_2 // PE.02
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_1 // PE.01
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_C
|
||||
#define HARDWARE_SWITCH_C
|
||||
#define SWITCHES_GPIO_REG_C_L GPIOC->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_4 // PC.04
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOA->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_6 // PA.06
|
||||
#elif defined(RADIO_TLITE) || defined(RADIO_TPRO)
|
||||
#define STORAGE_SWITCH_C
|
||||
#define HARDWARE_SWITCH_C
|
||||
|
@ -549,6 +604,11 @@
|
|||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D GPIOD->IDR
|
||||
#define SWITCHES_GPIO_PIN_D GPIO_Pin_14 // PD.14
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D GPIOA->IDR
|
||||
#define SWITCHES_GPIO_PIN_D GPIO_Pin_5 // PA.05
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO)
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
|
@ -559,7 +619,14 @@
|
|||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D GPIOD->IDR
|
||||
#define SWITCHES_GPIO_PIN_D GPIO_Pin_14 // PD.14
|
||||
#elif defined(PCBX7)
|
||||
#elif defined(PCBX7) && !defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D_L GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_1 // PE.01
|
||||
#define SWITCHES_GPIO_REG_D_H GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_D_H GPIO_Pin_2 // PE.02
|
||||
#elif defined(PCBX7) && defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D_L GPIOE->IDR
|
||||
|
@ -681,7 +748,7 @@
|
|||
#define HARDWARE_SWITCH_F
|
||||
#define SWITCHES_GPIO_REG_F GPIOG->IDR
|
||||
#define SWITCHES_GPIO_PIN_F GPIO_Pin_6 // PG.06
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_TPRO)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_TPRO) || defined(RADIO_COMMANDO8)
|
||||
// no SWF
|
||||
#define STORAGE_SWITCH_F
|
||||
#elif defined(RADIO_T12)
|
||||
|
@ -723,7 +790,7 @@
|
|||
#define HARDWARE_SWITCH_G
|
||||
#define SWITCHES_GPIO_REG_G GPIOG->IDR
|
||||
#define SWITCHES_GPIO_PIN_G GPIO_Pin_5 // PG.05
|
||||
#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8)
|
||||
#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
// no SWG
|
||||
#else
|
||||
#define STORAGE_SWITCH_G
|
||||
|
@ -746,7 +813,7 @@
|
|||
#define SWITCHES_GPIO_PIN_H GPIO_Pin_14 // PD.14
|
||||
#elif defined(PCBXLITE) || defined(PCBX9LITE)
|
||||
// no SWH
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_H
|
||||
// no SWH
|
||||
#elif defined(RADIO_TX12)
|
||||
|
@ -789,7 +856,7 @@
|
|||
#define SWITCHES_GPIO_REG_I GPIOC->IDR
|
||||
#define SWITCHES_GPIO_PIN_I GPIO_Pin_13 // PC.13
|
||||
#define STORAGE_SWITCH_J
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define STORAGE_SWITCH_I
|
||||
#define STORAGE_SWITCH_J
|
||||
// no SWI/J
|
||||
|
@ -974,6 +1041,13 @@
|
|||
#define KEYS_GPIOC_PINS (TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_RVD)
|
||||
#define KEYS_GPIOD_PINS (KEYS_GPIO_PIN_PAGEUP | KEYS_GPIO_PIN_PAGEDN | SWITCHES_GPIO_PIN_D | TRIMS_GPIO_PIN_LHL)
|
||||
#define KEYS_GPIOE_PINS (SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_C_L | TRIMS_GPIO_PIN_RHL | TRIMS_GPIO_PIN_RHR | TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_LVD | SWITCHES_GPIO_PIN_B_L | KEYS_GPIO_PIN_PLUS | KEYS_GPIO_PIN_MINUS | KEYS_GPIO_PIN_MDL | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_A)
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE)
|
||||
#define KEYS_GPIOA_PINS (SWITCHES_GPIO_PIN_D |SWITCHES_GPIO_PIN_C_H)
|
||||
#define KEYS_GPIOB_PINS (0)
|
||||
#define KEYS_GPIOC_PINS (SWITCHES_GPIO_PIN_C_L | TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_RVD)
|
||||
#define KEYS_GPIOD_PINS (KEYS_GPIO_PIN_EXIT | KEYS_GPIO_PIN_MDL |KEYS_GPIO_PIN_SYS| TRIMS_GPIO_PIN_LHL|KEYS_GPIO_PIN_BIND)
|
||||
#define KEYS_GPIOE_PINS (KEYS_GPIO_PIN_ENTER | KEYS_GPIO_PIN_PAGEUP | KEYS_GPIO_PIN_PAGEDN | TRIMS_GPIO_PIN_RHL | TRIMS_GPIO_PIN_RHR | TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_LVD | SWITCHES_GPIO_PIN_B_L | KEYS_GPIO_PIN_PLUS | KEYS_GPIO_PIN_MINUS | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_A)
|
||||
#elif defined(RADIO_X7ACCESS)
|
||||
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE)
|
||||
#define KEYS_GPIOA_PINS GPIO_Pin_5
|
||||
|
@ -1147,6 +1221,35 @@
|
|||
#define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT
|
||||
#define ADC_CHANNEL_BATT ADC_Channel_10
|
||||
#define ADC_VREF_PREC2 300
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2)
|
||||
#define ADC_RCC_APB1Periph RCC_APB1Periph_TIM5
|
||||
#define ADC_RCC_APB2Periph RCC_APB2Periph_ADC1
|
||||
#define ADC_GPIO_PIN_STICK_RV GPIO_Pin_2 // PA.02
|
||||
#define ADC_GPIO_PIN_STICK_RH GPIO_Pin_3 // PA.03
|
||||
#define ADC_GPIO_PIN_STICK_LV GPIO_Pin_0 // PA.00
|
||||
#define ADC_GPIO_PIN_STICK_LH GPIO_Pin_1 // PA.01
|
||||
#define ADC_CHANNEL_STICK_RV ADC_Channel_2 // ADC1_IN2
|
||||
#define ADC_CHANNEL_STICK_RH ADC_Channel_3 // ADC1_IN3
|
||||
#define ADC_CHANNEL_STICK_LV ADC_Channel_0 // ADC1_IN0
|
||||
#define ADC_CHANNEL_STICK_LH ADC_Channel_1 // ADC1_IN1
|
||||
#define ADC_GPIO_PIN_BATT GPIO_Pin_5 // PC.05
|
||||
#define ADC_GPIOB_PINS 0
|
||||
#define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT
|
||||
#define ADC_CHANNEL_BATT ADC_Channel_15
|
||||
#define ADC_VREF_PREC2 320
|
||||
#define ADC_GPIOA_PINS (STICKS_PWM_ENABLED() ? 0 : (ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV))
|
||||
#define PWM_IRQHandler TIM5_IRQHandler
|
||||
#define PWM_TIMER TIM5
|
||||
#define PWM_GPIO GPIOA
|
||||
#define PWM_GPIO_AF GPIO_AF_TIM5
|
||||
#define PWM_IRQn TIM5_IRQn
|
||||
#define PWM_GPIOA_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
|
||||
#define STICK_CHANNEL_CHANGE
|
||||
#define STICK_PWM_CHANNEL_0 1
|
||||
#define STICK_PWM_CHANNEL_1 0
|
||||
#define STICK_PWM_CHANNEL_2 2
|
||||
#define STICK_PWM_CHANNEL_3 3
|
||||
#elif defined(RADIO_TLITE)
|
||||
#define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2)
|
||||
#define ADC_RCC_APB1Periph 0
|
||||
|
@ -1277,6 +1380,11 @@
|
|||
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_7 // PA.07
|
||||
#define PWR_ON_GPIO GPIOE
|
||||
#define PWR_ON_GPIO_PIN GPIO_Pin_9 // PE.09
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define PWR_SWITCH_GPIO GPIOD
|
||||
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_11 // PD.11
|
||||
#define PWR_ON_GPIO GPIOD
|
||||
#define PWR_ON_GPIO_PIN GPIO_Pin_10 // PD.10
|
||||
#else
|
||||
#define PWR_SWITCH_GPIO GPIOD
|
||||
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_1 // PD.01
|
||||
|
@ -1326,6 +1434,16 @@
|
|||
#define LED_BLUE_GPIO_PIN GPIO_Pin_5 // PC.05
|
||||
#define LED_GREEN_GPIO GPIOB
|
||||
#define LED_GREEN_GPIO_PIN GPIO_Pin_1 // PB.01
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON GPIO_SetBits
|
||||
#define GPIO_LED_GPIO_OFF GPIO_ResetBits
|
||||
#define LED_RED_GPIO GPIOC
|
||||
#define LED_RED_GPIO_PIN GPIO_Pin_2 // PC.02
|
||||
#define LED_BLUE_GPIO GPIOC
|
||||
#define LED_BLUE_GPIO_PIN GPIO_Pin_1 // PC.01
|
||||
#define LED_GREEN_GPIO GPIOC
|
||||
#define LED_GREEN_GPIO_PIN GPIO_Pin_0 // PC.00
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON GPIO_SetBits
|
||||
|
@ -1544,6 +1662,26 @@
|
|||
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_11 // PF.11
|
||||
#define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
|
||||
#endif
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_DMA1)
|
||||
#define INTMODULE_RCC_APB1Periph (RCC_APB1Periph_USART3 | RCC_APB1Periph_TIM2)
|
||||
#define INTMODULE_RCC_APB2Periph 0
|
||||
#define INTMODULE_PWR_GPIO GPIOE
|
||||
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PE.08
|
||||
#define INTMODULE_GPIO GPIOB
|
||||
#define INTMODULE_TX_GPIO_PIN GPIO_Pin_10 // PB.10
|
||||
#define INTMODULE_RX_GPIO_PIN GPIO_Pin_11 // PB.11
|
||||
#define INTMODULE_GPIO_PinSource_TX GPIO_PinSource10
|
||||
#define INTMODULE_GPIO_PinSource_RX GPIO_PinSource11
|
||||
#define INTMODULE_USART USART3
|
||||
#define INTMODULE_GPIO_AF GPIO_AF_USART3
|
||||
#define INTMODULE_GPIO_AF_LL LL_GPIO_AF_7
|
||||
#define INTMODULE_USART_IRQn USART3_IRQn
|
||||
#define INTMODULE_USART_IRQHandler USART3_IRQHandler
|
||||
// DMA1_Stream3 is already used by SDIO
|
||||
#define INTMODULE_DMA NULL
|
||||
#define INTMODULE_DMA_CHANNEL 0
|
||||
#define INTMODULE_DMA_STREAM 0
|
||||
#else
|
||||
#define INTMODULE_PULSES
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
|
@ -1621,10 +1759,19 @@
|
|||
#else
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define EXTMODULE_RCC_APB2Periph RCC_APB2Periph_TIM8
|
||||
#if defined(RADIO_COMMANDO8)
|
||||
#define EXTMODULE_RF_SWITCH_GPIO GPIOE //Antenna switching port
|
||||
#define EXTMODULE_RF_SWITCH_GPIO_PIN GPIO_Pin_7 //Antenna switching pin //PE.07
|
||||
#define EXTMODULE_PWR_GPIO GPIOE //External tuner power port //PE.02
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_2 //External tuner power pin
|
||||
#define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN|EXTMODULE_RF_SWITCH_GPIO_PIN)
|
||||
#define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN|EXTMODULE_RF_SWITCH_GPIO_PIN)
|
||||
#else
|
||||
#define EXTMODULE_PWR_GPIO GPIOD
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
#define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
|
||||
#define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
|
||||
#endif
|
||||
#define IS_EXTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN) == Bit_SET)
|
||||
#define EXTMODULE_TX_GPIO GPIOA
|
||||
#define EXTMODULE_TX_GPIO_PIN GPIO_Pin_7
|
||||
|
@ -1787,7 +1934,7 @@
|
|||
#define TELEMETRY_EXTI_IRQn EXTI9_5_IRQn
|
||||
#define TELEMETRY_EXTI_TRIGGER EXTI_Trigger_Rising
|
||||
|
||||
#if defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TPRO)
|
||||
#if defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO)
|
||||
#define TELEMETRY_EXTI_REUSE_INTERRUPT_ROTARY_ENCODER
|
||||
#elif defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_X9DP2019)
|
||||
#define TELEMETRY_EXTI_IRQHandler EXTI9_5_IRQHandler
|
||||
|
@ -2056,6 +2203,19 @@
|
|||
#define BACKLIGHT_RCC_AHB1Periph 0
|
||||
#define BACKLIGHT_RCC_APB1Periph 0
|
||||
#define BACKLIGHT_RCC_APB2Periph 0
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define BACKLIGHT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD
|
||||
#define BACKLIGHT_RCC_APB1Periph RCC_APB1Periph_TIM4
|
||||
#define BACKLIGHT_RCC_APB2Periph 0
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define BACKLIGHT_TIMER TIM4
|
||||
#define BACKLIGHT_GPIO GPIOD
|
||||
#define BACKLIGHT_GPIO_PIN GPIO_Pin_13 // PD.13
|
||||
#define BACKLIGHT_GPIO_PinSource GPIO_PinSource13
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF_TIM4
|
||||
#define BACKLIGHT_CCMR1 TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 // Channel2, PWM
|
||||
#define BACKLIGHT_CCER TIM_CCER_CC2E
|
||||
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR2
|
||||
#elif defined(PCBX7)
|
||||
#define BACKLIGHT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD
|
||||
#define BACKLIGHT_RCC_APB1Periph RCC_APB1Periph_TIM4
|
||||
|
@ -2083,7 +2243,7 @@
|
|||
#define KEYS_BACKLIGHT_RCC_AHB1Periph 0
|
||||
|
||||
// LCD driver
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_TPRO)
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO)
|
||||
#define LCD_VERTICAL_INVERT
|
||||
#endif
|
||||
#if defined(PCBX9E)
|
||||
|
@ -2231,6 +2391,8 @@
|
|||
#define SD_GPIO_PRESENT_GPIO GPIOD
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE)
|
||||
#define SD_GPIO_PRESENT_GPIO_PIN GPIO_Pin_10 // PD.10
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define SD_GPIO_PRESENT_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
#else
|
||||
#define SD_GPIO_PRESENT_GPIO_PIN GPIO_Pin_9 // PD.09
|
||||
#endif
|
||||
|
@ -2286,6 +2448,12 @@
|
|||
#else
|
||||
#define AUDIO_UNMUTE_DELAY 150 // ms
|
||||
#endif
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1)
|
||||
#define AUDIO_MUTE_GPIO GPIOB
|
||||
#define AUDIO_MUTE_GPIO_PIN GPIO_Pin_1 // PB.01
|
||||
#define AUDIO_MUTE_DELAY 500 // ms
|
||||
#define INVERTED_MUTE_PIN
|
||||
#else
|
||||
#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1)
|
||||
#endif
|
||||
|
@ -2406,7 +2574,7 @@
|
|||
#define BT_USART_IRQn USART3_IRQn
|
||||
// #define BT_DMA_Stream_RX DMA1_Stream1
|
||||
// #define BT_DMA_Channel_RX DMA_Channel_4
|
||||
#elif defined(PCBX9D) || defined(PCBX9DP) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_T8) || defined(RADIO_ZORRO)
|
||||
#elif defined(PCBX9D) || defined(PCBX9DP) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_ZORRO)
|
||||
#define STORAGE_BLUETOOTH
|
||||
#define BT_RCC_AHB1Periph 0
|
||||
#define BT_RCC_APB1Periph 0
|
||||
|
|
|
@ -184,7 +184,7 @@ uint32_t switchState(uint8_t index)
|
|||
|
||||
switch (index) {
|
||||
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8)
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
ADD_2POS_CASE(A);
|
||||
ADD_3POS_CASE(B, 1);
|
||||
ADD_3POS_CASE(C, 2);
|
||||
|
@ -236,7 +236,7 @@ uint32_t switchState(uint8_t index)
|
|||
ADD_3POS_CASE(F, 5);
|
||||
ADD_2POS_CASE(I);
|
||||
ADD_2POS_CASE(J);
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
ADD_2POS_CASE(D);
|
||||
#elif defined(RADIO_TLITE)
|
||||
// Only 4 switches
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "opentx.h"
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TPRO)
|
||||
#if defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO)
|
||||
#define LCD_CONTRAST_OFFSET -10
|
||||
#else
|
||||
#define LCD_CONTRAST_OFFSET 160
|
||||
|
|
|
@ -224,7 +224,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -242,7 +242,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -226,7 +226,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Ned","Op","Højre","Venstre"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -227,7 +227,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -224,7 +224,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -224,7 +224,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -242,7 +242,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -245,7 +245,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -228,7 +228,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -227,7 +227,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -224,7 +224,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -221,7 +221,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -244,7 +244,7 @@
|
|||
#define TR_VKEYS "Exit","Enter","Down","Up","Right","Left"
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2)
|
||||
#define TR_VKEYS "Exit","Enter","PGUP","PGDN","SYS","MDL","TELE"
|
||||
#elif defined(RADIO_T8)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_COMMANDO8)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","UP","DOWN"
|
||||
#elif defined(RADIO_ZORRO)
|
||||
#define TR_VKEYS "RTN","ENTER","PGUP","PGDN","SYS","MDL","TELE"
|
||||
|
|
|
@ -321,3 +321,13 @@ options_radiomaster_tx16s = {
|
|||
"internalgps": ("INTERNAL_GPS", "YES", "NO"),
|
||||
"externalaccessmod": ("HARDWARE_EXTERNAL_ACCESS_MOD", "YES", "NO"),
|
||||
}
|
||||
|
||||
options_commando8_t8 = {
|
||||
"noheli": ("HELI", "NO", "YES"),
|
||||
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
|
||||
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
|
||||
"nogvars": ("GVARS", "NO", "YES"),
|
||||
"faimode": ("FAI", "YES", None),
|
||||
"faichoice": ("FAI", "CHOICE", None),
|
||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||
}
|
||||
|
|
|
@ -66,4 +66,8 @@ boards = {
|
|||
"PCB": "X7",
|
||||
"PCBREV": "TX12",
|
||||
},
|
||||
"COMMANDO8": {
|
||||
"PCB": "X7",
|
||||
"PCBREV": "COMMANDO8",
|
||||
},
|
||||
}
|
||||
|
|
|
@ -167,6 +167,9 @@ do
|
|||
nv14)
|
||||
BUILD_OPTIONS+="-DPCB=NV14"
|
||||
;;
|
||||
commando8)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=COMMANDO8"
|
||||
;;
|
||||
esac
|
||||
|
||||
cmake ${BUILD_OPTIONS} "${SRCDIR}"
|
||||
|
|
73
tools/build-iflight.py
Normal file
73
tools/build-iflight.py
Normal file
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import argparse
|
||||
import datetime
|
||||
import os
|
||||
from builtins import NotADirectoryError
|
||||
import shutil
|
||||
import tempfile
|
||||
|
||||
boards = {
|
||||
"COMMANDO8": {
|
||||
"PCB": "X7",
|
||||
"PCBREV": "COMMANDO8",
|
||||
"DEFAULT_MODE": "1",
|
||||
"IFLIGHT_RELEASE": "YES",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
translations = [
|
||||
"EN",
|
||||
]
|
||||
|
||||
|
||||
def timestamp():
|
||||
return datetime.datetime.now().strftime("%y%m%d")
|
||||
|
||||
|
||||
def build(board, translation, srcdir):
|
||||
cmake_options = " ".join(["-D%s=%s" % (key, value) for key, value in boards[board].items()])
|
||||
cwd = os.getcwd()
|
||||
if not os.path.exists("output"):
|
||||
os.mkdir("output")
|
||||
path = tempfile.mkdtemp()
|
||||
os.chdir(path)
|
||||
command = "cmake %s -DTRANSLATIONS=%s -DIFLIGHT_RELEASE=YES %s" % (cmake_options, translation, srcdir)
|
||||
print(command)
|
||||
os.system(command)
|
||||
os.system("make firmware -j6")
|
||||
os.chdir(cwd)
|
||||
index = 0
|
||||
while 1:
|
||||
suffix = "" if index == 0 else "_%d" % index
|
||||
filename = "output/firmware_%s_%s_%s%s.bin" % (board.lower(), translation.lower(), timestamp(), suffix)
|
||||
if not os.path.exists(filename):
|
||||
shutil.copy("%s/firmware.bin" % path, filename)
|
||||
break
|
||||
index += 1
|
||||
shutil.rmtree(path)
|
||||
|
||||
|
||||
def dir_path(string):
|
||||
if os.path.isdir(string):
|
||||
return string
|
||||
else:
|
||||
raise NotADirectoryError(string)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Build iFlight firmware")
|
||||
parser.add_argument("-b", "--boards", action="append", help="Destination boards", required=True)
|
||||
parser.add_argument("-t", "--translations", action="append", help="Translations", required=True)
|
||||
parser.add_argument("srcdir", type=dir_path)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
for board in (boards.keys() if "ALL" in args.boards else args.boards):
|
||||
for translation in (translations if "ALL" in args.translations else args.translations):
|
||||
build(board, translation, args.srcdir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -136,6 +136,9 @@ do
|
|||
nv14)
|
||||
BUILD_OPTIONS+="-DPCB=NV14"
|
||||
;;
|
||||
commando8)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=COMMANDO8"
|
||||
;;
|
||||
esac
|
||||
|
||||
cmake ${BUILD_OPTIONS} "${SRCDIR}"
|
||||
|
|
|
@ -98,6 +98,9 @@ do
|
|||
nv14)
|
||||
BUILD_OPTIONS+="-DPCB=NV14"
|
||||
;;
|
||||
commando8)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=COMMANDO8"
|
||||
;;
|
||||
esac
|
||||
|
||||
cmake ${BUILD_OPTIONS} "${SRCDIR}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue