From 84c86f718be6f64b64fc0cbf7913974b9831a1f4 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 4 Jan 2021 12:14:40 +0100 Subject: [PATCH 01/16] Jumper TLite support --- companion/src/CMakeLists.txt | 2 + companion/src/companion.qrc | 10 + companion/src/firmwares/boards.cpp | 28 +- companion/src/firmwares/boards.h | 12 +- companion/src/firmwares/generalsettings.cpp | 10 + companion/src/firmwares/opentx/opentxeeprom.h | 1 + .../src/firmwares/opentx/opentxinterface.cpp | 26 +- companion/src/generaledit/hardware.cpp | 4 +- .../images/simulator/JumperTLITE/bottom.png | Bin 0 -> 27316 bytes .../simulator/JumperTLITE/center_LCD.png | Bin 0 -> 472 bytes .../src/images/simulator/JumperTLITE/left.png | Bin 0 -> 31718 bytes .../images/simulator/JumperTLITE/right.png | Bin 0 -> 29322 bytes .../src/images/simulator/JumperTLITE/top.png | Bin 0 -> 5947 bytes companion/src/simulation/CMakeLists.txt | 2 + companion/src/simulation/simulateduiwidget.h | 13 + .../simulateduiwidgetJumperTLITE.cpp | 60 ++++ .../simulateduiwidgetJumperTLITE.ui | 258 ++++++++++++++++++ companion/src/simulation/simulatorwidget.cpp | 3 + radio/src/gui/128x64/radio_setup.cpp | 4 +- .../src/gui/common/stdlcd/radio_hardware.cpp | 14 +- radio/src/gui/navigation/navigation_9x.cpp | 4 +- radio/src/gui/navigation/navigation_xlite.cpp | 10 - radio/src/lua/CMakeLists.txt | 1 + radio/src/lua/api_general.cpp | 2 + radio/src/pulses/pulses.cpp | 2 +- radio/src/sdcard.h | 2 + radio/src/simu.cpp | 2 +- .../targets/common/arm/stm32/adc_driver.cpp | 5 +- .../arm/stm32/bootloader/CMakeLists.txt | 2 +- radio/src/targets/horus/CMakeLists.txt | 1 + radio/src/targets/horus/hal.h | 2 + radio/src/targets/taranis/CMakeLists.txt | 13 + radio/src/targets/taranis/board.h | 27 +- radio/src/targets/taranis/hal.h | 67 ++++- radio/src/targets/taranis/keys_driver.cpp | 7 + radio/src/targets/taranis/lcd_driver_spi.cpp | 2 +- radio/src/translations/cz.h.txt | 2 +- radio/src/translations/de.h.txt | 2 +- radio/src/translations/en.h.txt | 2 +- radio/src/translations/es.h.txt | 2 +- radio/src/translations/fi.h.txt | 2 +- radio/src/translations/fr.h.txt | 2 +- radio/src/translations/it.h.txt | 2 +- radio/src/translations/nl.h.txt | 2 +- radio/src/translations/pl.h.txt | 2 +- radio/src/translations/pt.h.txt | 2 +- radio/src/translations/se.h.txt | 2 +- radio/src/translations/untranslated.h | 2 +- tools/build-jumper.py | 7 +- tools/commit-tests.sh | 18 ++ 50 files changed, 591 insertions(+), 54 deletions(-) create mode 100644 companion/src/images/simulator/JumperTLITE/bottom.png create mode 100644 companion/src/images/simulator/JumperTLITE/center_LCD.png create mode 100644 companion/src/images/simulator/JumperTLITE/left.png create mode 100644 companion/src/images/simulator/JumperTLITE/right.png create mode 100644 companion/src/images/simulator/JumperTLITE/top.png create mode 100644 companion/src/simulation/simulateduiwidgetJumperTLITE.cpp create mode 100644 companion/src/simulation/simulateduiwidgetJumperTLITE.ui diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 3d27550e6..2f05ab859 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -343,6 +343,8 @@ if(PCB STREQUAL X7 AND PCBREV STREQUAL ACCESS) set(FLAVOUR x7access) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T12) set(FLAVOUR t12) +elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TLITE) + set(FLAVOUR tlite) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12) set(FLAVOUR tx12) elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019) diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index fbbacdb48..e4d15c183 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -179,6 +179,16 @@ images/simulator/JumperT12/JumperT12-x.png images/simulator/JumperT12/JumperT12-center.png images/simulator/JumperT12/JumperT12-top.png + images/simulator/JumperTLITE/bottom.png + images/simulator/JumperTLITE/bottom_right.png + images/simulator/JumperTLITE/bottom_left.png + images/simulator/JumperTLITE/left.png + images/simulator/JumperTLITE/left_top.png + images/simulator/JumperTLITE/left_bottom.png + images/simulator/JumperTLITE/right.png + images/simulator/JumperTLITE/right_top.png + images/simulator/JumperTLITE/right_bottom.png + images/simulator/JumperTLITE/top.png images/simulator/TX12/left.png images/simulator/TX12/left-pageup.png images/simulator/TX12/left-pagedn.png diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 35f7a0bab..23179fd60 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -79,6 +79,8 @@ uint32_t Boards::getFourCC(Type board) return 0x3278746F; case BOARD_JUMPER_T12: return 0x3D78746F; + case BOARD_JUMPER_TLITE: + return 0x4278746F; case BOARD_JUMPER_T16: return 0x3F78746F; case BOARD_JUMPER_T18: @@ -113,6 +115,7 @@ int Boards::getEEpromSize(Board::Type board) case BOARD_TARANIS_X9DP_2019: case BOARD_TARANIS_X9E: case BOARD_JUMPER_T12: + case BOARD_JUMPER_TLITE: case BOARD_RADIOMASTER_TX12: return EESIZE_TARANIS; case BOARD_UNKNOWN: @@ -148,6 +151,7 @@ int Boards::getFlashSize(Type board) case BOARD_TARANIS_X9DP_2019: case BOARD_TARANIS_X9E: case BOARD_JUMPER_T12: + case BOARD_JUMPER_TLITE: case BOARD_RADIOMASTER_TX12: return FSIZE_TARANIS; case BOARD_HORUS_X12S: @@ -181,7 +185,7 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index) if (index < DIM(switches)) return switches[index]; } - else if (IS_TARANIS_XLITE(board)) { + else if (IS_TARANIS_XLITE(board) || IS_JUMPER_TLITE(board)) { const Board::SwitchInfo switches[] = { {SWITCH_3POS, "SA"}, {SWITCH_3POS, "SB"}, @@ -294,7 +298,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) case Sticks: return 4; - case Pots: + case Pots: // Storage pots if (IS_TARANIS_X9LITE(board)) return 1; else if (IS_TARANIS_SMALL(board)) @@ -308,6 +312,12 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) else return 3; + case AvailablePots: + if (IS_JUMPER_TLITE(board)) + return 0; + else + return getCapability(board, Pots); + case FactoryInstalledPots: if (IS_TARANIS_X9(board)) return 2; @@ -365,9 +375,17 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) else return 7; + case AvailableSwitches: + if (IS_JUMPER_TLITE(board)) + return 4; + else + return getCapability(board, Switches); + case FactoryInstalledSwitches: if (IS_TARANIS_X9E(board)) return 8; + else if (IS_JUMPER_TLITE(board)) + return 4; if (IS_FAMILY_T12(board)) return 6; if (IS_HORUS_X12S(board)) @@ -515,8 +533,6 @@ QString Boards::getBoardName(Board::Type board) return "Taranis X7/X7S"; case BOARD_TARANIS_X7_ACCESS: return "Taranis X7/X7S Access"; - case BOARD_JUMPER_T12: - return "Jumper T12"; case BOARD_TARANIS_XLITE: return "Taranis X-Lite"; case BOARD_TARANIS_XLITES: @@ -545,6 +561,10 @@ QString Boards::getBoardName(Board::Type board) return "Horus X10/X10S"; case BOARD_X10_EXPRESS: return "Horus X10/X10S Express"; + case BOARD_JUMPER_T12: + return "Jumper T12"; + case BOARD_JUMPER_TLITE: + return "Jumper T-Lite"; case BOARD_JUMPER_T16: return "Jumper T16"; case BOARD_JUMPER_T18: diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 1e1588485..a1ef1c629 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -53,9 +53,10 @@ namespace Board { BOARD_RADIOMASTER_TX16S, BOARD_JUMPER_T18, BOARD_RADIOMASTER_TX12, + BOARD_JUMPER_TLITE }; - constexpr int BOARD_TYPE_MAX = BOARD_RADIOMASTER_TX12; + constexpr int BOARD_TYPE_MAX = BOARD_JUMPER_TLITE; enum PotType { @@ -117,6 +118,7 @@ namespace Board { enum Capability { Sticks, Pots, + AvailablePots, FactoryInstalledPots, Sliders, MouseAnalogs, @@ -126,6 +128,7 @@ namespace Board { MultiposPotsPositions, Switches, SwitchPositions, + AvailableSwitches, FactoryInstalledSwitches, NumTrims, NumTrimSwitches @@ -204,6 +207,11 @@ inline bool IS_JUMPER_T12(Board::Type board) return board == Board::BOARD_JUMPER_T12; } +inline bool IS_JUMPER_TLITE(Board::Type board) +{ + return board == Board::BOARD_JUMPER_TLITE; +} + inline bool IS_JUMPER_T16(Board::Type board) { return board == Board::BOARD_JUMPER_T16; @@ -231,7 +239,7 @@ inline bool IS_FAMILY_T16(Board::Type board) inline bool IS_FAMILY_T12(Board::Type board) { - return board == Board::BOARD_JUMPER_T12 || board == Board::BOARD_RADIOMASTER_TX12; + return board == Board::BOARD_JUMPER_T12 || board == Board::BOARD_RADIOMASTER_TX12 || board == Board::BOARD_JUMPER_TLITE;; } inline bool IS_TARANIS_XLITE(Board::Type board) diff --git a/companion/src/firmwares/generalsettings.cpp b/companion/src/firmwares/generalsettings.cpp index 005900c93..f9df851b2 100644 --- a/companion/src/firmwares/generalsettings.cpp +++ b/companion/src/firmwares/generalsettings.cpp @@ -94,6 +94,12 @@ GeneralSettings::GeneralSettings() vBatMin = -23; // 6.7V vBatMax = -37; // 8.3V } + else if (IS_JUMPER_TLITE(board)) { + // 1S Li-Ion + vBatWarn = 32; + vBatMin = -60; //3V + vBatMax = -78; //4.2V + } else if (IS_TARANIS(board)) { // NI-MH 7.2V, X9D, X9D+ and X7 vBatWarn = 65; @@ -239,6 +245,10 @@ void GeneralSettings::setDefaultControlTypes(Board::Type board) switchConfig[i] = Boards::getSwitchInfo(board, i).config; } + // TLite does not have pots or sliders + if (IS_JUMPER_TLITE(board)) + return; + // TODO: move to Boards, like with switches if (IS_FAMILY_HORUS_OR_T16(board)) { potConfig[0] = Board::POT_WITH_DETENT; diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h index aabbe2284..115885474 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.h +++ b/companion/src/firmwares/opentx/opentxeeprom.h @@ -37,6 +37,7 @@ #define TARANIS_X9LITES_VARIANT 0x0801 #define JUMPER_T12_VARIANT 0x4001 #define RADIOMASTER_TX12_VARIANT 0x4002 +#define JUMPER_TLITE_VARIANT 0x4003 class OpenTxGeneralData: public TransformedField { public: diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 04f02eb29..0b22e4f37 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -60,6 +60,8 @@ const char * OpenTxEepromInterface::getName() switch (board) { case BOARD_JUMPER_T12: return "OpenTX for Jumper T12"; + case BOARD_JUMPER_TLITE: + return "OpenTX for Jumper T-Lite"; case BOARD_JUMPER_T16: return "OpenTX for Jumper T16"; case BOARD_JUMPER_T18: @@ -336,6 +338,9 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u else if (IS_JUMPER_T12(board)) { variant |= JUMPER_T12_VARIANT; } + else if (IS_JUMPER_TLITE(board)) { + variant |= JUMPER_TLITE_VARIANT; + } else if (IS_RADIOMASTER_TX12(board)) { variant |= RADIOMASTER_TX12_VARIANT; } @@ -683,6 +688,8 @@ int OpenTxFirmware::getCapability(::Capability capability) return TARANIS_XLITE_VARIANT; else if (IS_JUMPER_T12(board)) return JUMPER_T12_VARIANT; + else if (IS_JUMPER_TLITE(board)) + return JUMPER_TLITE_VARIANT; else if (IS_RADIOMASTER_TX12(board)) return RADIOMASTER_TX12_VARIANT; else @@ -746,7 +753,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port) case PULSES_ACCST_ISRM_D16: return IS_ACCESS_RADIO(board, id); case PULSES_MULTIMODULE: - return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board); + return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) || IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board); default: return false; } @@ -778,7 +785,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port) case PULSES_XJT_LITE_X16: case PULSES_XJT_LITE_D8: case PULSES_XJT_LITE_LR12: - return (IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board)); + return (IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board) || IS_JUMPER_TLITE(board)); default: return false; } @@ -949,6 +956,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari variantError = true; } } + else if (IS_JUMPER_TLITE(board)) { + if (variant != JUMPER_TLITE_VARIANT) { + variantError = true; + } + } else if (IS_RADIOMASTER_TX12(board)) { if (variant != RADIOMASTER_TX12_VARIANT) { variantError = true; @@ -1275,6 +1287,16 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); addOpenTxRfOptions(firmware, FLEX); + /* Jumper T-Lite board */ + firmware = new OpenTxFirmware("opentx-tlite", QCoreApplication::translate("Firmware", "Jumper T-Lite"), BOARD_JUMPER_TLITE); + addOpenTxCommonOptions(firmware); + firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support")); + firmware->addOption("nogvars", Firmware::tr("Disable Global variables")); + firmware->addOption("lua", Firmware::tr("Enable Lua custom scripts screen")); + addOpenTxFontOptions(firmware); + registerOpenTxFirmware(firmware); + addOpenTxRfOptions(firmware, FLEX + AFHDS3); + /* Jumper T16 board */ firmware = new OpenTxFirmware("opentx-t16", Firmware::tr("Jumper T16 / T16+ / T16 Pro"), BOARD_JUMPER_T16); addOpenTxFrskyOptions(firmware); diff --git a/companion/src/generaledit/hardware.cpp b/companion/src/generaledit/hardware.cpp index 9d2e8e452..1d211d280 100644 --- a/companion/src/generaledit/hardware.cpp +++ b/companion/src/generaledit/hardware.cpp @@ -24,7 +24,7 @@ void HardwarePanel::setupSwitchType(int index, QLabel * label, AutoLineEdit * name, AutoComboBox * type, bool threePos) { Board::Type board = getCurrentBoard(); - if (IS_STM32(board) && index < getBoardCapability(board, Board::Switches)) { + if (IS_STM32(board) && index < getBoardCapability(board, Board::AvailableSwitches)) { type->addItem(tr("None"), Board::SWITCH_NOT_AVAILABLE); type->addItem(tr("2 Positions Toggle"), Board::SWITCH_TOGGLE); type->addItem(tr("2 Positions"), Board::SWITCH_2POS); @@ -75,7 +75,7 @@ void HardwarePanel::setupPotType(int index, QLabel * label, AutoLineEdit * name, { Board::Type board = firmware->getBoard(); - if (IS_STM32(board) && index < getBoardCapability(board, Board::Pots)) { + if (IS_STM32(board) && index < getBoardCapability(board, Board::AvailablePots)) { label->setText(RawSource(SOURCE_TYPE_STICK, CPN_MAX_STICKS+index).toString()); type->addItem(tr("None"), Board::POT_NONE); type->addItem(tr("Pot with detent"), Board::POT_WITH_DETENT); diff --git a/companion/src/images/simulator/JumperTLITE/bottom.png b/companion/src/images/simulator/JumperTLITE/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e3f42fc8a247ef4f04200d0ddb2e81cff0eba9 GIT binary patch literal 27316 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 literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTLITE/center_LCD.png b/companion/src/images/simulator/JumperTLITE/center_LCD.png new file mode 100644 index 0000000000000000000000000000000000000000..f3249de1682f2581d5aa8f11fe6c948b8de2ba4c GIT binary patch literal 472 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58aUX1EZzkxv|GpM$51V@SoVw^s}W84NfWHU|CQbxYJeq1jr9)4pcUpVEe@ v>sS&P8WgP)$&)M; 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 N002ovPDHLkV1id*?8N{8 literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTLITE/right.png b/companion/src/images/simulator/JumperTLITE/right.png new file mode 100644 index 0000000000000000000000000000000000000000..6c455081f38e16955c7388b115e3fe12effd22c5 GIT binary patch literal 29322 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 z zUTg5d%&Li^txa-i3Zg!>^NW;-?X1Cz_Iu)ubiWRHG$m{NSsU%UA;87%VV939{^{aC)7luW2t{jXMr68MlM~s$^Lvke22k3G z*fMC4KJTd!xxVprUC*z1yR2$wM3Ye+I*(M5ksJM%4rU$Y$nE51u{G97J!2VfLmtV8 z9YG`nyxkguW6K)a@7OE<(O{Jz`Q6czz?(BP~>X>Hc^)Qn!ocFTC5 zpp0?E0KI6WhUixQ${2= z6n`fm25#--Rv@W^PXmLs^CghwFxtlQ5dqY=2c&H~QDY5dSOAzZ4E=5td6zQQ9u25l z6sZ$}HRA5}ZRZ6>HF(l=VDRWHV}N<^VJZ7sVvn-c#>+BvdKt17k?Uz~Iw4(Ly+&0! zXgBAl0;U{@=#hgPCs7+srH|S5g}=-G&P}rgt&M1N2m4O*ww+Uw)m}PU9zJTdK>l6N z{g}M}ODGL7__qmOzlz(}KgUV`1Xx|WGLJm3g@Daqx7gNk)?W+RIss(>MHwe;b#JTN z*>f&Uda|^*TThL>GQi{UCW?w5ibR&%SW18Eur@?nqO^lU(P>d=r8%_dyP;5G!fA^& zwm2L+66(a^t(0WXW4Ff4;i6*0V|MKbuP0TlQ}1A$*5-}NQ1pc(!|SQ%y-kp(MpKvG zIN2wDsUV6lnj2csG7IxMh;6(xp_&EORJ!+%J)~S3-<#?#c<*foFYySEz71M?RMo*q z>pwK*?d$Deur!&8&$n8~04^C)JGi-x@zzuOy{(=8<{3}BBW;S`z8AK5|O;_l5|yn6W} z9zJ;-%W~ZR6{i+S;Jsqxdbh7$#haHe;>r6T#qa;~5ApGDKZ(ar9_`BC!l^iiL1m!i zHo_U51}ob+#AG3{ZNuR0-%uM?unq5tXK1LrGkj}`wWD6t-R%^Z6}*5{_HYq{835Y^ z)$a|^KoC*KxVW(~cXY(9dl=UHN2S;n=TNY8uqy>m)6typXcBe7f$@kC z06a31!rX&bEh>bwrSnOav<)8bVM^tjrwZkgjyR{BjhJ&j)qXbmy8woIY{R1tqa8Ae z5lw>Xb?~`IAX?9<(K@sI!~Fa!!8~;hj$LuYdj&|M%Vh#6SM`@A1R)|Bt61{$@Xq zaNLV;>)Oyli2B)|{v2QY@yqz+cmENOpS~9l-Z@?f?VQ-&uW+B+lwJ8Oa@>n#=K@9= z^Q<|Sowzp{bC2I(v(t5ASFFF8R7;u*5#dS}>BQ2=+)^tJoOt3Y}HP4ggxK!{f{m!ho z#}~%MsetupUi(this); + + act = new RadioUiAction(3, QList() << Qt::Key_Up << Qt::Key_PageUp, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_UP); + addRadioWidget(ui->rightbuttons->addArea(QRect(40, 15, 70, 50), "JumperTLITE/right_top.png", act)); + + act = new RadioUiAction(2, QList() << Qt::Key_Down << Qt::Key_PageDown, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_DN); + addRadioWidget(ui->rightbuttons->addArea(QRect(47, 65, 70, 50), "JumperTLITE/right_bottom.png", act)); + + act = new RadioUiAction(4, QList() << Qt::Key_Right << Qt::Key_Plus, SIMU_STR_HLP_KEY_RGT % "|" % SIMU_STR_HLP_KEY_PLS, SIMU_STR_HLP_ACT_PLS); + addRadioWidget(ui->bottombuttons->addArea(QRect(150, 73, 80, 30), "JumperTLITE/bottom_right.png", act)); + + act = new RadioUiAction(5, QList() << Qt::Key_Left << Qt::Key_Minus, SIMU_STR_HLP_KEY_LFT % "|" % SIMU_STR_HLP_KEY_MIN, SIMU_STR_HLP_ACT_MIN); + addRadioWidget(ui->bottombuttons->addArea(QRect(24, 73, 80, 30), "JumperTLITE/bottom_left.png", act)); + + m_mouseMidClickAction = new RadioUiAction(1, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ENT); + addRadioWidget(ui->leftbuttons->addArea(QRect(5, 15, 70, 50), "JumperTLITE/left_top.png", m_mouseMidClickAction)); + + act = new RadioUiAction(0, QList() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT); + addRadioWidget(ui->leftbuttons->addArea(QRect(10, 65, 70, 50), "JumperTLITE/left_bottom.png", act)); + + //addRadioWidget(ui->leftbuttons->addArea(QRect(10, 65, 70, 50), "JumperTLITE/left_scrnshot.png", m_screenshotAction)); + + m_backlightColors << QColor(215, 243, 255); // X7 Blue + m_backlightColors << QColor(166,247,159); + m_backlightColors << QColor(247,159,166); + m_backlightColors << QColor(255,195,151); + m_backlightColors << QColor(247,242,159); + + setLcd(ui->lcd); + + QString css = "#radioUiWidget {" + "background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1," + "stop:0 rgba(255, 255, 255, 255)," + "stop:0.757062 rgba(241, 238, 238, 255)," + "stop:1 rgba(247, 245, 245, 255));" + "}"; + + QTimer * tim = new QTimer(this); + tim->setSingleShot(true); + connect(tim, &QTimer::timeout, [this, css]() { + emit customStyleRequest(css); + }); + tim->start(100); +} + +SimulatedUIWidgetJumperTLITE::~SimulatedUIWidgetJumperTLITE() +{ + delete ui; +} diff --git a/companion/src/simulation/simulateduiwidgetJumperTLITE.ui b/companion/src/simulation/simulateduiwidgetJumperTLITE.ui new file mode 100644 index 000000000..407b3954d --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetJumperTLITE.ui @@ -0,0 +1,258 @@ + + + SimulatedUIWidgetJumperTLITE + + + + 0 + 0 + 501 + 310 + + + + + 0 + 0 + + + + + 501 + 310 + + + + + 501 + 310 + + + + Jumper T-Lite Simulator + + + background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(255, 255, 255, 255), stop:0.757062 rgba(241, 238, 238, 255), stop:1 rgba(247, 245, 245, 255)); + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 122 + 287 + + + + + 122 + 287 + + + + background:url(:/images/simulator/JumperTLITE/left.png); + + + + + + + + 0 + 0 + + + + + 800 + 155 + + + + + 800 + 155 + + + + background-color: rgb(215, 243, 255); + + + + + + + + 0 + 0 + + + + + 122 + 287 + + + + + 122 + 287 + + + + background:url(:/images/simulator/JumperTLITE/right.png) + + + + + + + + 0 + 0 + + + + + 258 + 26 + + + + + 258 + 26 + + + + background:url(:/images/simulator/JumperTLITE/top.png) + + + + + + + + 0 + 0 + + + + + 258 + 106 + + + + + 258 + 106 + + + + background:url(:/images/simulator/JumperTLITE/bottom.png) + + + + + + + + 0 + 0 + + + + + 0 + 10 + + + + + 16777215 + 12 + + + + + 0 + 12 + + + + background-color: rgb(255, 255, 255); + + + + + + + + + + + 0 + 0 + + + + + 0 + 10 + + + + + 16777215 + 10 + + + + background-color: rgb(247, 245, 245); + + + + + + + + + + + LcdWidget + QWidget +
lcdwidget.h
+ 1 +
+ + ButtonsWidget + QWidget +
buttonswidget.h
+ 1 +
+
+ + +
diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp index cab7600d4..6692b0ebb 100644 --- a/companion/src/simulation/simulatorwidget.cpp +++ b/companion/src/simulation/simulatorwidget.cpp @@ -91,6 +91,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato case Board::BOARD_JUMPER_T12: radioUiWidget = new SimulatedUIWidgetJumperT12(simulator, this); break; + case Board::BOARD_JUMPER_TLITE: + radioUiWidget = new SimulatedUIWidgetJumperTLITE(simulator, this); + break; case Board::BOARD_JUMPER_T16: radioUiWidget = new SimulatedUIWidgetJumperT16(simulator, this); break; diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index e3fd06bb3..6579f1523 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -251,7 +251,7 @@ void menuRadioSetup(event_t event) putsVolts(lcdLastRightPos+FW, y, 120+g_eeGeneral.vBatMax, (menuHorizontalPosition>0 ? attr : 0)|LEFT|NO_UNIT); if (attr && s_editMode>0) { if (menuHorizontalPosition==0) - CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMin, -50, g_eeGeneral.vBatMax+29); // min=4.0V + CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMin, -60, g_eeGeneral.vBatMax+29); // min=3.0V else CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMax, g_eeGeneral.vBatMin-29, +40); // max=16.0V } @@ -411,7 +411,7 @@ void menuRadioSetup(event_t event) case ITEM_RADIO_SETUP_BATTERY_WARNING: lcdDrawTextAlignedLeft(y, STR_BATTERYWARNING); putsVolts(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.vBatWarn, attr|LEFT); - if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatWarn, 40, 120); //4-12V + if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatWarn, 30, 120); //3-12V break; case ITEM_RADIO_SETUP_MEMORY_WARNING: diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index fca6e047c..9cd46a377 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -195,19 +195,29 @@ enum { ITEM_RADIO_HARDWARE_MAX }; -#if (NUM_POTS + NUM_SLIDERS) == 1 +#if (NUM_POTS + NUM_SLIDERS) == 0 + #define POT_LABEL_ROW HIDDEN_ROW + #define POTS_ROWS HIDDEN_ROW +#elif (NUM_POTS + NUM_SLIDERS) == 1 + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 2 + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 3 + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif defined(PCBX9D) // TODO defined(STORAGE_POT3) && !defined(STORAGE_POT3) + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, HIDDEN_ROW, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 4 + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 5 + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 8 + #define POT_LABEL_ROW LABEL(Pots) #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #endif @@ -326,7 +336,7 @@ void menuRadioHardware(event_t event) 0 /* stick 2 */, 0 /* stick 3 */, 0 /* stick 4 */, - LABEL(Pots), + POT_LABEL_ROW, POTS_ROWS, LABEL(Switches), SWITCHES_ROWS, diff --git a/radio/src/gui/navigation/navigation_9x.cpp b/radio/src/gui/navigation/navigation_9x.cpp index bbc958c63..746dfdde8 100644 --- a/radio/src/gui/navigation/navigation_9x.cpp +++ b/radio/src/gui/navigation/navigation_9x.cpp @@ -82,7 +82,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, unsigned int i_fla } #endif - if (event==EVT_KEY_FIRST(KEY_RIGHT) || event==EVT_KEY_REPT(KEY_RIGHT) || (s_editMode>0 && (IS_ROTARY_RIGHT(event) || event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)))) { + if ((s_editMode>0 && (IS_ROTARY_RIGHT(event) || event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)))) { do { if (IS_KEY_REPT(event) && (i_flags & INCDEC_REP10)) { newval += min(10, i_max-val); @@ -98,7 +98,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, unsigned int i_fla AUDIO_KEY_ERROR(); } } - else if (event==EVT_KEY_FIRST(KEY_LEFT) || event==EVT_KEY_REPT(KEY_LEFT) || (s_editMode>0 && (IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN)))) { + else if ((s_editMode>0 && (IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN)))) { do { if (IS_KEY_REPT(event) && (i_flags & INCDEC_REP10)) { newval -= min(10, val-i_min); diff --git a/radio/src/gui/navigation/navigation_xlite.cpp b/radio/src/gui/navigation/navigation_xlite.cpp index 9cbafda8b..5484b9525 100644 --- a/radio/src/gui/navigation/navigation_xlite.cpp +++ b/radio/src/gui/navigation/navigation_xlite.cpp @@ -29,15 +29,6 @@ horzpos_t menuHorizontalPosition; int8_t checkIncDec_Ret; -#if defined(RADIO_T12) -#define DBLKEYS_PRESSED_RGT_LFT(in) ((in & (KEYS_GPIO_PIN_RIGHT + KEYS_GPIO_PIN_LEFT)) == (KEYS_GPIO_PIN_RIGHT + KEYS_GPIO_PIN_LEFT)) -// set to 0 -#define DBLKEYS_PRESSED_UP_DWN(in) ((in & (KEYS_GPIO_PIN_UP + KEYS_GPIO_PIN_DOWN)) == (KEYS_GPIO_PIN_UP + KEYS_GPIO_PIN_DOWN)) -// set to max -#define DBLKEYS_PRESSED_RGT_UP(in) ((in & (KEYS_GPIO_PIN_RIGHT + KEYS_GPIO_PIN_UP)) == (KEYS_GPIO_PIN_RIGHT + KEYS_GPIO_PIN_UP)) -// set to min -#define DBLKEYS_PRESSED_LFT_DWN(in) ((in & (KEYS_GPIO_PIN_LEFT + KEYS_GPIO_PIN_DOWN)) == (KEYS_GPIO_PIN_LEFT + KEYS_GPIO_PIN_DOWN)) -#else // invert the value #define DBLKEYS_PRESSED_RGT_LFT(in) ((in & ((1<SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vbat << 5); ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25); } +#elif defined(RADIO_TLITE) + ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vbat << 5); + ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15); #elif defined(PCBX7) ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vbat << 5); ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25); @@ -136,7 +139,7 @@ void adcInit() ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25); #endif - ADC_MAIN->SMPR1 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); + ADC_MAIN->SMPR1 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (VBAT_ADC_SAMPTIME << 24); ADC_MAIN->SMPR2 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); ADC->CCR = ADC_CCR_VBATE; // Enable vbat sensor diff --git a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt index 55bcdeb66..3f57a743a 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt @@ -89,7 +89,7 @@ set(BOOTLOADER_SRC bin_files.cpp ) -if(PCB STREQUAL X12S OR PCB STREQUAL X10 OR PCB STREQUAL X9E OR (PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019) OR (PCB STREQUAL X7 AND NOT (PCBREV STREQUAL T12)) OR PCB STREQUAL X9LITE OR PCB STREQUAL X9LITES) +if(ROTARY_ENCODER) set(BOOTLOADER_SRC ${BOOTLOADER_SRC} ../../../../../targets/common/arm/stm32/rotary_encoder_driver.cpp diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index fbf963b71..2a7f14ec5 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -20,6 +20,7 @@ set(LINKER_SCRIPT targets/horus/stm32f4_flash.ld) set(RTC_BACKUP_RAM YES) set(PPM_LIMITS_SYMETRICAL YES) set(USB_SERIAL ON CACHE BOOL "Enable USB serial (CDC)") +set(ROTARY_ENCODER YES) # for size report script set(CPU_TYPE_FULL STM32F429xI) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 479dd88c5..e63e13e14 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -275,6 +275,7 @@ #define ADC_DMA DMA2 #define ADC_DMA_Stream DMA2_Stream0 #define ADC_SAMPTIME 3 + #define VBAT_ADC_SAMPTIME ADC_SAMPTIME #define ADC_VREF_PREC2 300 #elif defined(PCBX10) #define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_DMA2) @@ -315,6 +316,7 @@ #define ADC_CHANNEL_EXT2 ADC_Channel_7 // ADC3_IN7 #define ADC_MAIN ADC3 #define ADC_SAMPTIME 3 + #define VBAT_ADC_SAMPTIME ADC_SAMPTIME #define ADC_DMA DMA2 #define ADC_DMA_SxCR_CHSEL DMA_SxCR_CHSEL_1 #define ADC_DMA_Stream DMA2_Stream0 diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index a287605df..e32f8c72c 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -128,8 +128,21 @@ elseif(PCB STREQUAL X7) set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld) set(LUA_EXPORT lua_export_t12) add_definitions(-DRADIO_T12) + add_definitions(-DRADIO_FAMILY_JUMPER_T12) add_definitions(-DEEPROM_VARIANT=0x4001) add_definitions(-DMANUFACTURER_JUMPER) + elseif(PCBREV STREQUAL TLITE) + option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) + set(FLAVOUR tlite) + set(NAVIGATION_TYPE 9x) + set(CPU_TYPE STM32F2) + set(CPU_TYPE_FULL STM32F205xE) # for size report + set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld) + set(LUA_EXPORT lua_export_tlite) + add_definitions(-DRADIO_TLITE) + add_definitions(-DRADIO_FAMILY_JUMPER_T12) + add_definitions(-DEEPROM_VARIANT=0x4003) + add_definitions(-DMANUFACTURER_JUMPER) elseif(PCBREV STREQUAL TX12) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) set(FLAVOUR tx12) diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 6ffff9df9..ca2acc903 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -117,7 +117,7 @@ uint32_t isBootloaderStart(const uint8_t * buffer); #define INTERNAL_MODULE_OFF() GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN) #endif -#if !defined(PCBX9LITE) || defined(PCBX9LITES) +#if (defined(INTERNAL_MODULE_PXX1) || defined(INTERNAL_MODULE_PXX2)) && (!defined(PCBX9LITE) || defined(PCBX9LITES)) #define HARDWARE_INTERNAL_RAS #endif @@ -432,7 +432,12 @@ enum EnumSwitchesPositions #define STORAGE_NUM_SWITCHES 6 #define DEFAULT_SWITCH_CONFIG (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); #define DEFAULT_POTS_CONFIG (POT_WITHOUT_DETENT << 2) + (POT_WITHOUT_DETENT << 0) -#elif defined(RADIO_T12) +#elif defined(RADIO_TLITE) + #define NUM_SWITCHES 4 + #define STORAGE_NUM_SWITCHES 8 + #define DEFAULT_SWITCH_CONFIG (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); + #define DEFAULT_POTS_CONFIG (0) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define NUM_SWITCHES 8 #define STORAGE_NUM_SWITCHES NUM_SWITCHES #define DEFAULT_SWITCH_CONFIG (SWITCH_2POS << 10) + (SWITCH_2POS << 8) + (SWITCH_3POS << 6) + (SWITCH_3POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0) @@ -544,6 +549,11 @@ enum Analogs { #define NUM_SLIDERS 0 #define STORAGE_NUM_POTS 1 #define STORAGE_NUM_SLIDERS 0 +#elif defined(RADIO_TLITE) + #define NUM_POTS 0 + #define NUM_SLIDERS 0 + #define STORAGE_NUM_POTS 2 + #define STORAGE_NUM_SLIDERS 0 #elif defined(PCBXLITE) || defined(PCBX7) #define NUM_POTS 2 #define NUM_SLIDERS 0 @@ -644,6 +654,11 @@ extern uint16_t adcValues[NUM_ANALOGS]; #define BATTERY_WARN 66 // 6.6V #define BATTERY_MIN 67 // 6.7V #define BATTERY_MAX 83 // 8.3V +#elif defined(RADIO_TLITE) + // 1S Li-ion / Lipo + #define BATTERY_WARN 33 // 3.3V + #define BATTERY_MIN 32 // 3.2V + #define BATTERY_MAX 42 // 4.2V #else // NI-MH 7.2V #define BATTERY_WARN 65 // 6.5V @@ -710,6 +725,10 @@ uint8_t isBacklightEnabled(); #define USB_NAME "Radiomaster TX12" #define USB_MANUFACTURER 'R', 'M', '_', 'T', 'X', ' ', ' ', ' ' /* 8 bytes */ #define USB_PRODUCT 'R', 'M', ' ', 'T', 'X', '1', '2', ' ' /* 8 Bytes */ +#elif defined(RADIO_TLITE) + #define USB_NAME "Jumper TLite" + #define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */ + #define USB_PRODUCT 'T', '-', 'L', 'I', 'T', 'E', ' ', ' ' /* 8 Bytes */ #else #define USB_NAME "FrSky Taranis" #define USB_MANUFACTURER 'F', 'r', 'S', 'k', 'y', ' ', ' ', ' ' /* 8 bytes */ @@ -889,8 +908,8 @@ void ledBlue(); #define IS_LCD_RESET_NEEDED() true #define LCD_CONTRAST_MIN 10 #define LCD_CONTRAST_MAX 30 -#if defined(RADIO_TX12) - #define LCD_CONTRAST_DEFAULT 21 +#if defined(RADIO_TX12) || defined(RADIO_FAMILY_JUMPER_T12) + #define LCD_CONTRAST_DEFAULT 25 #else #define LCD_CONTRAST_DEFAULT 15 #endif diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index f70e1e690..5cf8513fe 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -46,7 +46,7 @@ #define KEYS_GPIO_PIN_LEFT GPIO_Pin_12 // PE.12 #define KEYS_GPIO_REG_RIGHT GPIOE->IDR #define KEYS_GPIO_PIN_RIGHT GPIO_Pin_13 // PE.13 -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define KEYS_GPIO_REG_EXIT GPIOD->IDR #define KEYS_GPIO_PIN_EXIT GPIO_Pin_2 // PD.02 #define KEYS_GPIO_REG_ENTER GPIOE->IDR @@ -362,6 +362,13 @@ #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_6 // PA.06 #define SWITCHES_GPIO_REG_B_H GPIOA->IDR #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_5 // PA.05 +#elif defined(RADIO_TLITE) + #define STORAGE_SWITCH_B + #define HARDWARE_SWITCH_B + #define SWITCHES_GPIO_REG_B_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_1 // PE.01 + #define SWITCHES_GPIO_REG_B_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_2 // PE.02 #elif defined(PCBX7) #define STORAGE_SWITCH_B #define HARDWARE_SWITCH_B @@ -406,6 +413,11 @@ #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_11 // PD.11 #define SWITCHES_GPIO_REG_C_H GPIOE->IDR #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_0 // PE.00 +#elif defined(RADIO_TLITE) + #define STORAGE_SWITCH_C + #define HARDWARE_SWITCH_C + #define SWITCHES_GPIO_REG_C GPIOE->IDR + #define SWITCHES_GPIO_PIN_C GPIO_Pin_14 // PE.14 #elif defined(PCBX7) #define STORAGE_SWITCH_C #define HARDWARE_SWITCH_C @@ -453,6 +465,11 @@ #define HARDWARE_SWITCH_D #define SWITCHES_GPIO_REG_D GPIOE->IDR #define SWITCHES_GPIO_PIN_D GPIO_Pin_8 // PE.08 +#elif defined(RADIO_TLITE) + #define STORAGE_SWITCH_D + #define HARDWARE_SWITCH_D + #define SWITCHES_GPIO_REG_D GPIOD->IDR + #define SWITCHES_GPIO_PIN_D GPIO_Pin_14 // PD.14 #elif defined(PCBX7) #define STORAGE_SWITCH_D #define HARDWARE_SWITCH_D @@ -539,6 +556,9 @@ #define SWITCHES_GPIO_PIN_F_L GPIO_Pin_1 // PE.01 #define SWITCHES_GPIO_REG_F_H GPIOE->IDR #define SWITCHES_GPIO_PIN_F_H GPIO_Pin_2 // PE.02 +#elif defined(RADIO_TLITE) + // no SWF + #define STORAGE_SWITCH_F #elif defined(PCBX7) #define STORAGE_SWITCH_F #define HARDWARE_SWITCH_F @@ -587,6 +607,9 @@ #elif defined(PCBXLITE) || defined(PCBX9LITE) // no SWH #elif defined(RADIO_TX12) +#elif defined(RADIO_TLITE) + // no SWH + #define STORAGE_SWITCH_H #elif defined(PCBX7) #define STORAGE_SWITCH_H #define HARDWARE_SWITCH_H @@ -624,6 +647,11 @@ #define HARDWARE_SWITCH_J #define SWITCHES_GPIO_REG_J GPIOD->IDR #define SWITCHES_GPIO_PIN_J GPIO_Pin_14 // PD.14 +#elif defined(RADIO_TLITE) + // no SWI + #define STORAGE_SWITCH_I + // no SWJ + #define STORAGE_SWITCH_J #elif defined(PCBX7) #define STORAGE_SWITCH_I #define HARDWARE_SWITCH_I @@ -733,7 +761,7 @@ #define KEYS_GPIOB_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5) #define KEYS_GPIOC_PINS (GPIO_Pin_4 | GPIO_Pin_5) #define KEYS_GPIOE_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14) -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #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 #define KEYS_GPIOC_PINS (GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3) @@ -789,6 +817,11 @@ #define ADC_SET_DMA_FLAGS() ADC_DMA->HIFCR = (DMA_HIFCR_CTCIF4 | DMA_HIFCR_CHTIF4 | DMA_HIFCR_CTEIF4 | DMA_HIFCR_CDMEIF4 | DMA_HIFCR_CFEIF4) #define ADC_TRANSFER_COMPLETE() (ADC_DMA->HISR & DMA_HISR_TCIF4) #define ADC_SAMPTIME 2 // sample time = 28 cycles +#if defined(RADIO_TLITE) + #define VBAT_ADC_SAMPTIME (ADC_SAMPTIME + 1) +#else + #define VBAT_ADC_SAMPTIME ADC_SAMPTIME +#endif #if defined(PCBX9E) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -900,6 +933,24 @@ #define ADC_CHANNEL_POT2 ADC_Channel_12 // ADC1_IN12 #define ADC_CHANNEL_BATT ADC_Channel_10 // ADC1_IN10 #define ADC_VREF_PREC2 330 +#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 + #define ADC_RCC_APB2Periph RCC_APB2Periph_ADC1 + #define ADC_GPIO_PIN_STICK_RV GPIO_Pin_0 // PA.00 + #define ADC_GPIO_PIN_STICK_RH GPIO_Pin_1 // PA.01 + #define ADC_GPIO_PIN_STICK_LV GPIO_Pin_2 // PA.02 + #define ADC_GPIO_PIN_STICK_LH GPIO_Pin_3 // PA.03 + #define ADC_CHANNEL_STICK_RV ADC_Channel_0 // ADC1_IN0 + #define ADC_CHANNEL_STICK_RH ADC_Channel_1 // ADC1_IN1 + #define ADC_CHANNEL_STICK_LV ADC_Channel_2 // ADC1_IN2 + #define ADC_CHANNEL_STICK_LH ADC_Channel_3 // ADC1_IN3 + #define ADC_GPIO_PIN_BATT GPIO_Pin_0 // PC.00 + #define ADC_GPIOA_PINS (ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV) + #define ADC_GPIOB_PINS 0 + #define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT + #define ADC_CHANNEL_BATT ADC_Channel_10 + #define ADC_VREF_PREC2 330 #elif defined(PCBX7) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -1152,7 +1203,7 @@ #define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream5_IRQHandler #define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF5 #define INTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) -#elif defined(RADIO_T12) || defined(RADIO_TX12) +#elif defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) #define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1) #define INTMODULE_RCC_APB1Periph (RCC_APB1Periph_USART3 | RCC_APB1Periph_TIM2) #define INTMODULE_RCC_APB2Periph 0 @@ -1692,7 +1743,7 @@ #define KEYS_BACKLIGHT_RCC_AHB1Periph 0 // LCD driver -#if defined(RADIO_TX12) || defined(RADIO_T12) +#if defined(RADIO_TX12) || defined(RADIO_FAMILY_JUMPER_T12) #define LCD_VERTICAL_INVERT #endif #if defined(PCBX9E) @@ -1887,11 +1938,15 @@ #define AUDIO_SPEAKER_ENABLE_GPIO_PIN GPIO_Pin_14 // PD.14 #define HEADPHONE_TRAINER_SWITCH_GPIO GPIOD #define HEADPHONE_TRAINER_SWITCH_GPIO_PIN GPIO_Pin_9 // PD.09 -#elif defined(RADIO_TX12) +#elif defined(RADIO_TX12) || defined(RADIO_TLITE) #define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1) #define AUDIO_MUTE_GPIO GPIOE #define AUDIO_MUTE_GPIO_PIN GPIO_Pin_12 // PE.12 +#if defined(RADIO_TLITE) + #define AUDIO_UNMUTE_DELAY 250 // ms +#else #define AUDIO_UNMUTE_DELAY 150 // ms +#endif #define AUDIO_MUTE_DELAY 500 // ms #else #define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1) @@ -2013,7 +2068,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_T12) || defined(RADIO_TX12) +#elif defined(PCBX9D) || defined(PCBX9DP) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) #define STORAGE_BLUETOOTH #define BT_RCC_AHB1Periph 0 #define BT_RCC_APB1Periph 0 diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index 6883740c4..a7e7d794d 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -204,6 +204,11 @@ uint32_t switchState(uint8_t index) ADD_2POS_CASE(A); ADD_3POS_CASE(B, 1); ADD_3POS_CASE(C, 2); +#elif defined(RADIO_TLITE) + ADD_3POS_CASE(A, 0); + ADD_3POS_CASE(B, 1); + ADD_2POS_CASE(C); + ADD_2POS_CASE(D); #else ADD_3POS_CASE(A, 0); ADD_3POS_CASE(B, 1); @@ -235,6 +240,8 @@ uint32_t switchState(uint8_t index) ADD_2POS_CASE(D); ADD_3POS_CASE(E, 4); ADD_3POS_CASE(F, 5); +#elif defined(RADIO_TLITE) + // Only 4 switches #elif defined(PCBX7) ADD_3POS_CASE(D, 3); ADD_2POS_CASE(F); diff --git a/radio/src/targets/taranis/lcd_driver_spi.cpp b/radio/src/targets/taranis/lcd_driver_spi.cpp index e1efa8e15..556c250fb 100644 --- a/radio/src/targets/taranis/lcd_driver_spi.cpp +++ b/radio/src/targets/taranis/lcd_driver_spi.cpp @@ -20,7 +20,7 @@ #include "opentx.h" -#if defined(RADIO_T12) || defined(RADIO_TX12) +#if defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) #define LCD_CONTRAST_OFFSET -10 #else #define LCD_CONTRAST_OFFSET 160 diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 2f42f7edd..967f94c40 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -288,7 +288,7 @@ #if defined(PCBHORUS) #define LEN_VKEYS "\005" #define TR_VKEYS "PGUP\0""PGDN\0""ENTER""MDL\0 ""RTN\0 ""TELE\0""SYS\0 " -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Dolů\0""Nhoru""Vprvo""Vlevo" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 1e85008b0..c8d872ed0 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -294,7 +294,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index ad49d6997..dc4ae41ce 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -294,7 +294,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index e89998d7f..24bf15860 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -291,7 +291,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index e18b51102..ae5d03fb8 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -312,7 +312,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index ffaeb38c6..d124583e8 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -314,7 +314,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Bas\0 ""Haut\0""Droit""Gauch" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index c1e8c0be0..4034b6664 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -315,7 +315,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index fe5abbfe3..098a54af7 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -292,7 +292,7 @@ #if defined(PCBHORUS) #define LEN_VKEYS "\005" #define TR_VKEYS "PGUP\0""PGDN\0""ENTER""MDL\0 ""RTN\0 ""TELE\0""SYS\0 " -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 8212ce84d..96ae0b342 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -312,7 +312,7 @@ #elif defined(PCBXLITE) #define LEN_VKEYS "\005" #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 412e3698a..8fbe1a59e 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -305,7 +305,7 @@ #if defined(PCBHORUS) #define LEN_VKEYS "\005" #define TR_VKEYS "PGUP\0""PGDN\0""ENTER""MDL\0 ""RTN\0 ""TELE\0""SYS\0 " -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 57cf99ba6..3b45f2655 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -306,7 +306,7 @@ #if defined(PCBHORUS) #define LEN_VKEYS "\005" #define TR_VKEYS "PGUP\0""PGDN\0""ENTER""MDL\0 ""RTN\0 ""TELE\0""SYS\0 " -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define LEN_VKEYS "\005" #define TR_VKEYS "Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(RADIO_TX12) diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index fedc875c0..2702a0d69 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -41,7 +41,7 @@ #elif defined(PCBXLITE) #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0" -#elif defined(RADIO_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0" #elif defined(RADIO_TX12) diff --git a/tools/build-jumper.py b/tools/build-jumper.py index 6e7f3d733..2df2aa46d 100755 --- a/tools/build-jumper.py +++ b/tools/build-jumper.py @@ -9,6 +9,11 @@ import tempfile boards = { + "TLITE": { + "PCB": "X7", + "PCBREV": "TLITE", + "DEFAULT_MODE": "2", + }, "T12": { "PCB": "X7", "PCBREV": "T12", @@ -53,7 +58,7 @@ def build(board, translation, srcdir): command = "cmake %s -DTRANSLATIONS=%s -DJUMPER_RELEASE=YES %s" % (cmake_options, translation, srcdir) print(command) os.system(command) - os.system("make firmware -j6") + os.system("make firmware -j16") os.chdir(cwd) index = 0 while 1: diff --git a/tools/commit-tests.sh b/tools/commit-tests.sh index 6c5642ccd..4e2ca83ea 100755 --- a/tools/commit-tests.sh +++ b/tools/commit-tests.sh @@ -139,6 +139,24 @@ if [[ " TX12 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then make -j"${CORES}" tests-radio fi +if [[ " TLITE X7 ALL " =~ \ ${FLAVOR}\ ]] ; then + # OpenTX on TLITE + rm -rf ./* + cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=TLITE -DHELI=YES -DGVARS=YES "${SRCDIR}" + make -j"${CORES}" ${FIRMARE_TARGET} + make -j"${CORES}" libsimulator + make -j"${CORES}" tests-radio +fi + +if [[ " TX12 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then + # OpenTX on TX12 + rm -rf ./* + cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=TX12 -DHELI=YES -DGVARS=YES "${SRCDIR}" + make -j"${CORES}" ${FIRMARE_TARGET} + make -j"${CORES}" libsimulator + make -j"${CORES}" tests-radio +fi + if [[ " XLITE ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X-Lite rm -rf ./* From 5ed069a35400efe3ed76f5a74b72bd3cc9b0b720 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 14 Jan 2021 13:58:31 +0100 Subject: [PATCH 02/16] Add missing files --- .../simulator/JumperTLITE/bottom_left.png | Bin 0 -> 27753 bytes .../simulator/JumperTLITE/bottom_right.png | Bin 0 -> 27701 bytes .../simulator/JumperTLITE/left_bottom.png | Bin 0 -> 32145 bytes .../images/simulator/JumperTLITE/left_top.png | Bin 0 -> 32097 bytes .../simulator/JumperTLITE/right_bottom.png | Bin 0 -> 29857 bytes .../images/simulator/JumperTLITE/right_top.png | Bin 0 -> 29865 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 companion/src/images/simulator/JumperTLITE/bottom_left.png create mode 100644 companion/src/images/simulator/JumperTLITE/bottom_right.png create mode 100644 companion/src/images/simulator/JumperTLITE/left_bottom.png create mode 100644 companion/src/images/simulator/JumperTLITE/left_top.png create mode 100644 companion/src/images/simulator/JumperTLITE/right_bottom.png create mode 100644 companion/src/images/simulator/JumperTLITE/right_top.png diff --git a/companion/src/images/simulator/JumperTLITE/bottom_left.png b/companion/src/images/simulator/JumperTLITE/bottom_left.png new file mode 100644 index 0000000000000000000000000000000000000000..e6332207c7a1b4694362aac15df9dc3b2eb95761 GIT binary patch literal 27753 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 AEC2ui literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTLITE/bottom_right.png b/companion/src/images/simulator/JumperTLITE/bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..ee59125478ae72b3b874fe20f86c870cc5d60509 GIT binary patch literal 27701 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

5Vof*zrxEQAEbNv`4+FxPBlub87a5{#Gz%s38 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 AdjJ3c literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTLITE/left_bottom.png b/companion/src/images/simulator/JumperTLITE/left_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..60e4d30a71d55050b798c2e68955d744d89fdeb1 GIT binary patch literal 32145 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 Y2P!qJKvCt;761SM07*qoM6N<$f?0yWzW@LL literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTLITE/left_top.png b/companion/src/images/simulator/JumperTLITE/left_top.png new file mode 100644 index 0000000000000000000000000000000000000000..5ded766e054554aec26fabc8b9d2645b8e0bc7f4 GIT binary patch literal 32097 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 literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTLITE/right_bottom.png b/companion/src/images/simulator/JumperTLITE/right_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5f5f7d3c57cf8b2a3bb8e17cc696ef185f5 GIT binary patch literal 29857 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 YAMioMX+sfVi2wiq07*qoM6N<$g0Y@ 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 Date: Fri, 15 Jan 2021 18:01:16 +0100 Subject: [PATCH 03/16] Fixes (cherry picked from commit 17e272412e2392ea2c0978bc484bd603f282cf31) --- radio/src/targets/taranis/hal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index d2fba5d07..1d7791bf1 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -1289,7 +1289,7 @@ #define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream5_IRQHandler #define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF5 #define INTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) -#elif defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_T8) +#elif (defined(RADIO_FAMILY_JUMPER_T12) && defined(HARDWARE_INTERNAL_MODULE))|| defined(RADIO_TX12) || defined(RADIO_T8) #define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1) #define INTMODULE_RCC_APB1Periph (RCC_APB1Periph_USART3 | RCC_APB1Periph_TIM2) #define INTMODULE_RCC_APB2Periph 0 From 8fcc4f72471b57642504078deab222a7f48d8b1b Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 18 Jan 2021 17:37:50 +0100 Subject: [PATCH 04/16] Cosmetics --- .../src/gui/common/stdlcd/radio_hardware.cpp | 16 +++---- radio/src/targets/taranis/hal.h | 42 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 09d839676..207e7db04 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -251,14 +251,14 @@ enum { #define EXTERNAL_ANTENNA_ROW 0, void onHardwareAntennaSwitchConfirm(const char * result) { - if (result == STR_OK) { - // Switch to external antenna confirmation - g_eeGeneral.antennaMode = reusableBuffer.radioHardware.antennaMode; - storageDirty(EE_GENERAL); - } - else { - reusableBuffer.radioHardware.antennaMode = g_eeGeneral.antennaMode; - } + if (result == STR_OK) { + // Switch to external antenna confirmation + g_eeGeneral.antennaMode = reusableBuffer.radioHardware.antennaMode; + storageDirty(EE_GENERAL); + } + else { + reusableBuffer.radioHardware.antennaMode = g_eeGeneral.antennaMode; + } } #else #define EXTERNAL_ANTENNA_ROW diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 1d7791bf1..f369f85e2 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -1720,27 +1720,27 @@ #define TRAINER_MODULE_CPPM #define TRAINER_MODULE_SBUS #endif - #define TRAINER_MODULE_RCC_AHB1Periph RCC_AHB1Periph_GPIOC - #define TRAINER_MODULE_RCC_APB2Periph RCC_APB2Periph_USART6 - #define TRAINER_MODULE_RCC_APB1Periph RCC_APB1Periph_TIM3 - #define TRAINER_MODULE_CPPM_TIMER TRAINER_TIMER - #define TRAINER_MODULE_CPPM_GPIO INTMODULE_HEARTBEAT_GPIO - #define TRAINER_MODULE_CPPM_GPIO_PIN INTMODULE_HEARTBEAT_GPIO_PIN - #define TRAINER_MODULE_CPPM_GPIO_PinSource INTMODULE_HEARTBEAT_EXTI_PinSource - #define TRAINER_MODULE_CPPM_INTERRUPT_ENABLE TIM_DIER_CC2IE - #define TRAINER_MODULE_CPPM_INTERRUPT_FLAG TIM_SR_CC2IF - #define TRAINER_MODULE_CPPM_CCMR1 (TIM_CCMR1_IC2F_0 | TIM_CCMR1_IC2F_1 | TIM_CCMR1_CC2S_0) - #define TRAINER_MODULE_CPPM_CCER TIM_CCER_CC2E - #define TRAINER_MODULE_CPPM_COUNTER_REGISTER TRAINER_TIMER->CCR2 - #define TRAINER_MODULE_CPPM_TIMER_IRQn TRAINER_TIMER_IRQn - #define TRAINER_MODULE_CPPM_GPIO_AF GPIO_AF_TIM3 - #define TRAINER_MODULE_SBUS_GPIO_AF GPIO_AF_USART6 - #define TRAINER_MODULE_SBUS_USART USART6 - #define TRAINER_MODULE_SBUS_GPIO INTMODULE_HEARTBEAT_GPIO - #define TRAINER_MODULE_SBUS_GPIO_PIN INTMODULE_HEARTBEAT_GPIO_PIN - #define TRAINER_MODULE_SBUS_GPIO_PinSource INTMODULE_HEARTBEAT_EXTI_PinSource - #define TRAINER_MODULE_SBUS_DMA_STREAM DMA2_Stream1 - #define TRAINER_MODULE_SBUS_DMA_CHANNEL DMA_Channel_5 + #define TRAINER_MODULE_RCC_AHB1Periph RCC_AHB1Periph_GPIOC + #define TRAINER_MODULE_RCC_APB2Periph RCC_APB2Periph_USART6 + #define TRAINER_MODULE_RCC_APB1Periph RCC_APB1Periph_TIM3 + #define TRAINER_MODULE_CPPM_TIMER TRAINER_TIMER + #define TRAINER_MODULE_CPPM_GPIO INTMODULE_HEARTBEAT_GPIO + #define TRAINER_MODULE_CPPM_GPIO_PIN INTMODULE_HEARTBEAT_GPIO_PIN + #define TRAINER_MODULE_CPPM_GPIO_PinSource INTMODULE_HEARTBEAT_EXTI_PinSource + #define TRAINER_MODULE_CPPM_INTERRUPT_ENABLE TIM_DIER_CC2IE + #define TRAINER_MODULE_CPPM_INTERRUPT_FLAG TIM_SR_CC2IF + #define TRAINER_MODULE_CPPM_CCMR1 (TIM_CCMR1_IC2F_0 | TIM_CCMR1_IC2F_1 | TIM_CCMR1_CC2S_0) + #define TRAINER_MODULE_CPPM_CCER TIM_CCER_CC2E + #define TRAINER_MODULE_CPPM_COUNTER_REGISTER TRAINER_TIMER->CCR2 + #define TRAINER_MODULE_CPPM_TIMER_IRQn TRAINER_TIMER_IRQn + #define TRAINER_MODULE_CPPM_GPIO_AF GPIO_AF_TIM3 + #define TRAINER_MODULE_SBUS_GPIO_AF GPIO_AF_USART6 + #define TRAINER_MODULE_SBUS_USART USART6 + #define TRAINER_MODULE_SBUS_GPIO INTMODULE_HEARTBEAT_GPIO + #define TRAINER_MODULE_SBUS_GPIO_PIN INTMODULE_HEARTBEAT_GPIO_PIN + #define TRAINER_MODULE_SBUS_GPIO_PinSource INTMODULE_HEARTBEAT_EXTI_PinSource + #define TRAINER_MODULE_SBUS_DMA_STREAM DMA2_Stream1 + #define TRAINER_MODULE_SBUS_DMA_CHANNEL DMA_Channel_5 #endif // USB From b90cfb767506b9e85e0aeb7558047c767e86edbc Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 19 Jan 2021 16:14:46 +0100 Subject: [PATCH 05/16] Cosmetics --- companion/src/firmwares/boards.h | 7 ++--- .../src/gui/common/stdlcd/radio_hardware.cpp | 31 ++++++++----------- .../targets/common/arm/stm32/adc_driver.cpp | 4 +-- radio/src/targets/taranis/board.h | 2 +- radio/src/targets/taranis/hal.h | 10 +++--- 5 files changed, 25 insertions(+), 29 deletions(-) diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 4d2f03b9d..1f5fc0358 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -54,12 +54,11 @@ namespace Board { BOARD_JUMPER_T18, BOARD_RADIOMASTER_TX12, BOARD_RADIOMASTER_T8, - BOARD_JUMPER_TLITE + BOARD_JUMPER_TLITE, + BOARD_TYPE_COUNT, + BOARD_TYPE_MAX = BOARD_TYPE_COUNT-1 }; - - constexpr int BOARD_TYPE_MAX = BOARD_JUMPER_TLITE; - enum PotType { POT_NONE, diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 207e7db04..7c4d0c1e5 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -98,8 +98,10 @@ enum { ITEM_RADIO_HARDWARE_STICK2, ITEM_RADIO_HARDWARE_STICK3, ITEM_RADIO_HARDWARE_STICK4, +#if (NUM_POTS + NUM_SLIDERS) > 0 ITEM_RADIO_HARDWARE_LABEL_POTS, ITEM_RADIO_HARDWARE_POT1, +#endif #if defined(HARDWARE_POT2) ITEM_RADIO_HARDWARE_POT2, #endif @@ -196,29 +198,21 @@ enum { }; #if (NUM_POTS + NUM_SLIDERS) == 0 - #define POT_LABEL_ROW HIDDEN_ROW - #define POTS_ROWS HIDDEN_ROW + #define POTS_ROWS #elif (NUM_POTS + NUM_SLIDERS) == 1 - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 2 - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 3 - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif defined(PCBX9D) // TODO defined(STORAGE_POT3) && !defined(STORAGE_POT3) - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, HIDDEN_ROW, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, HIDDEN_ROW, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 4 - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 5 - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif (NUM_POTS + NUM_SLIDERS) == 8 - #define POT_LABEL_ROW LABEL(Pots) - #define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #endif #if defined(PCBX9E) @@ -336,8 +330,7 @@ void menuRadioHardware(event_t event) 0 /* stick 2 */, 0 /* stick 3 */, 0 /* stick 4 */, - POT_LABEL_ROW, - POTS_ROWS, + POTS_ROWS LABEL(Switches), SWITCHES_ROWS, 0 /* battery calib */, @@ -401,6 +394,7 @@ void menuRadioHardware(event_t event) editStickHardwareSettings(HW_SETTINGS_COLUMN1, y, k - ITEM_RADIO_HARDWARE_STICK1, event, attr); break; +#if (NUM_POTS + NUM_SLIDERS) > 0 case ITEM_RADIO_HARDWARE_LABEL_POTS: lcdDrawTextAlignedLeft(y, STR_POTS); break; @@ -452,6 +446,7 @@ void menuRadioHardware(event_t event) g_eeGeneral.slidersConfig |= (potType << idx); break; } +#endif #endif case ITEM_RADIO_HARDWARE_LABEL_SWITCHES: diff --git a/radio/src/targets/common/arm/stm32/adc_driver.cpp b/radio/src/targets/common/arm/stm32/adc_driver.cpp index 65879f44f..6a1214207 100644 --- a/radio/src/targets/common/arm/stm32/adc_driver.cpp +++ b/radio/src/targets/common/arm/stm32/adc_driver.cpp @@ -139,8 +139,8 @@ void adcInit() ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25); #endif - ADC_MAIN->SMPR1 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (VBAT_ADC_SAMPTIME << 24); - ADC_MAIN->SMPR2 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); + ADC_MAIN->SMPR1 = ADC_MAIN_SMPR1; + ADC_MAIN->SMPR2 = ADC_MAIN_SMPR2; ADC->CCR = ADC_CCR_VBATE; // Enable vbat sensor diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 24b709b3f..92df79717 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -28,7 +28,7 @@ #include "hal.h" #if defined(RADIO_TX12) || defined(RADIO_TX12) - #define NAVIGATION_X7_TX12 + #define NAVIGATION_X7_TX12 #endif #if defined(ROTARY_ENCODER_NAVIGATION) diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index f369f85e2..853100898 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -875,9 +875,11 @@ #define ADC_TRANSFER_COMPLETE() (ADC_DMA->HISR & DMA_HISR_TCIF4) #define ADC_SAMPTIME 2 // sample time = 28 cycles #if defined(RADIO_TLITE) - #define VBAT_ADC_SAMPTIME (ADC_SAMPTIME + 1) + #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + ((ADC_SAMPTIME + 1) << 24); + #define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); #else - #define VBAT_ADC_SAMPTIME ADC_SAMPTIME + #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + ((ADC_SAMPTIME + 1) << 24); + #define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); #endif #if defined(PCBX9E) #define HARDWARE_POT1 @@ -2032,16 +2034,16 @@ #define AUDIO_SPEAKER_ENABLE_GPIO_PIN GPIO_Pin_14 // PD.14 #define HEADPHONE_TRAINER_SWITCH_GPIO GPIOD #define HEADPHONE_TRAINER_SWITCH_GPIO_PIN GPIO_Pin_9 // PD.09 -#elif defined(RADIO_TX12) || defined(RADIO_T8) +#elif defined(AUDIO_MUTE_GPIO) #define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1) #define AUDIO_MUTE_GPIO GPIOE #define AUDIO_MUTE_GPIO_PIN GPIO_Pin_12 // PE.12 + #define AUDIO_MUTE_DELAY 500 // ms #if defined(RADIO_TLITE) #define AUDIO_UNMUTE_DELAY 250 // ms #else #define AUDIO_UNMUTE_DELAY 150 // ms #endif - #define AUDIO_MUTE_DELAY 500 // ms #else #define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1) #endif From 40506ac8583bf35867dd801a35f01612b2f26151 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 19 Jan 2021 16:24:39 +0100 Subject: [PATCH 06/16] Compilation fix --- radio/src/gui/common/stdlcd/radio_hardware.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 7c4d0c1e5..cd4cfb905 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -200,19 +200,19 @@ enum { #if (NUM_POTS + NUM_SLIDERS) == 0 #define POTS_ROWS #elif (NUM_POTS + NUM_SLIDERS) == 1 - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, #elif (NUM_POTS + NUM_SLIDERS) == 2 - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, #elif (NUM_POTS + NUM_SLIDERS) == 3 - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, #elif defined(PCBX9D) // TODO defined(STORAGE_POT3) && !defined(STORAGE_POT3) - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, HIDDEN_ROW, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, HIDDEN_ROW, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, #elif (NUM_POTS + NUM_SLIDERS) == 4 - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, #elif (NUM_POTS + NUM_SLIDERS) == 5 - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, #elif (NUM_POTS + NUM_SLIDERS) == 8 - #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 + #define POTS_ROWS LABEL(Pots), NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, #endif #if defined(PCBX9E) From be4c3c2824b1de16eab9eb0c822f86cf017567fc Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 19 Jan 2021 16:35:55 +0100 Subject: [PATCH 07/16] Compilation fix --- radio/src/targets/horus/hal.h | 3 +++ radio/src/targets/taranis/hal.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index e63e13e14..b810f81e2 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -331,6 +331,9 @@ #endif #endif +#define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); +#define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); + // Power #if defined(RADIO_T18) #define PWR_RCC_AHB1Periph RCC_AHB1Periph_GPIOJ | RCC_AHB1Periph_GPIOB diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 853100898..fb973a06b 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -878,7 +878,7 @@ #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + ((ADC_SAMPTIME + 1) << 24); #define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); #else - #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + ((ADC_SAMPTIME + 1) << 24); + #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); #define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); #endif #if defined(PCBX9E) From 274a7e96d4b5f31b03c22fa971ebb244279258fb Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 20 Jan 2021 08:12:15 +0100 Subject: [PATCH 08/16] Cosmetics --- radio/src/targets/horus/hal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index b810f81e2..61620cc60 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -331,8 +331,8 @@ #endif #endif -#define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); -#define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); +#define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); +#define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); // Power #if defined(RADIO_T18) From 9559f34630259d2217f405f24f39915ece44c4d3 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 21 Jan 2021 13:02:06 +0100 Subject: [PATCH 09/16] Cosmetics --- companion/src/simulation/simulateduiwidget.h | 2 +- radio/src/targets/horus/hal.h | 2 -- radio/src/targets/taranis/hal.h | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h index aee2c5f87..f9d92ecd7 100644 --- a/companion/src/simulation/simulateduiwidget.h +++ b/companion/src/simulation/simulateduiwidget.h @@ -112,7 +112,7 @@ namespace Ui { class SimulatedUIWidgetX10; class SimulatedUIWidgetX12; class SimulatedUIWidgetJumperT12; - class SimulatedUIWidgetJumperTLITE; + class SimulatedUIWidgetJumperTLITE; class SimulatedUIWidgetJumperT16; class SimulatedUIWidgetJumperT18; class SimulatedUIWidgetTX16S; diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 61620cc60..81639e73a 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -275,7 +275,6 @@ #define ADC_DMA DMA2 #define ADC_DMA_Stream DMA2_Stream0 #define ADC_SAMPTIME 3 - #define VBAT_ADC_SAMPTIME ADC_SAMPTIME #define ADC_VREF_PREC2 300 #elif defined(PCBX10) #define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_DMA2) @@ -316,7 +315,6 @@ #define ADC_CHANNEL_EXT2 ADC_Channel_7 // ADC3_IN7 #define ADC_MAIN ADC3 #define ADC_SAMPTIME 3 - #define VBAT_ADC_SAMPTIME ADC_SAMPTIME #define ADC_DMA DMA2 #define ADC_DMA_SxCR_CHSEL DMA_SxCR_CHSEL_1 #define ADC_DMA_Stream DMA2_Stream0 diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index fb973a06b..d80f9e197 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -875,7 +875,7 @@ #define ADC_TRANSFER_COMPLETE() (ADC_DMA->HISR & DMA_HISR_TCIF4) #define ADC_SAMPTIME 2 // sample time = 28 cycles #if defined(RADIO_TLITE) - #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + ((ADC_SAMPTIME + 1) << 24); + #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + ((ADC_SAMPTIME + 1) << 24); // TLite needs +1 for proper RTC Bat measurement. #define ADC_MAIN_SMPR2 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); #else #define ADC_MAIN_SMPR1 (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); From 14343ea37cb73a9df1805291f568931213b2834a Mon Sep 17 00:00:00 2001 From: Kilrah Date: Sun, 24 Jan 2021 10:06:12 +0100 Subject: [PATCH 10/16] Better battery settings for T-Lite/T8 based on design --- radio/src/targets/taranis/board.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 92df79717..e7d32f4bf 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -664,9 +664,9 @@ extern uint16_t adcValues[NUM_ANALOGS]; #define BATTERY_MIN 67 // 6.7V #define BATTERY_MAX 83 // 8.3V #elif defined(RADIO_T8) || defined(RADIO_TLITE) - // 1S Li-ion / Lipo - #define BATTERY_WARN 33 // 3.3V - #define BATTERY_MIN 32 // 3.2V + // 1S Li-ion / Lipo, LDO for 3.3V + #define BATTERY_WARN 35 // 3.5V + #define BATTERY_MIN 34 // 3.4V #define BATTERY_MAX 42 // 4.2V #else // NI-MH 7.2V From 6c25bce475169f963a24f7b73b2c46b5b8ecc983 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 25 Jan 2021 14:50:19 +0100 Subject: [PATCH 11/16] Remove uneeded capabilities --- companion/src/firmwares/boards.cpp | 20 ++++++-------------- companion/src/firmwares/boards.h | 3 +-- companion/src/generaledit/hardware.cpp | 4 ++-- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 779712b65..28137b3ba 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -339,15 +339,11 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) else return 3; - case AvailablePots: - if (IS_JUMPER_TLITE(board)) - return 0; - else - return getCapability(board, Pots); - case FactoryInstalledPots: if (IS_TARANIS_X9(board)) return 2; + else if (IS_JUMPER_TLITE(board)) + return 0; else return getCapability(board, Pots); @@ -391,6 +387,8 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) return 7; else if (board == BOARD_TARANIS_X7) return 8; + else if (board == BOARD_JUMPER_TLITE) + return 4; else if (IS_FAMILY_T12(board)) return 8; else if (IS_TARANIS_XLITE(board)) @@ -404,20 +402,14 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) else return 7; - case AvailableSwitches: - if (IS_JUMPER_TLITE(board)) - return 4; - else - return getCapability(board, Switches); - case FactoryInstalledSwitches: if (IS_TARANIS_X9E(board)) return 8; else if (IS_JUMPER_TLITE(board)) return 4; - if (IS_FAMILY_T12(board)) + else if (IS_FAMILY_T12(board)) return 6; - if (IS_HORUS_X12S(board)) + else if (IS_HORUS_X12S(board)) return 8; else return getCapability(board, Switches); diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 1f5fc0358..e871e323d 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -119,7 +119,6 @@ namespace Board { enum Capability { Sticks, Pots, - AvailablePots, FactoryInstalledPots, Sliders, MouseAnalogs, @@ -129,7 +128,7 @@ namespace Board { MultiposPotsPositions, Switches, SwitchPositions, - AvailableSwitches, + FactoryInstalledSwitches, NumTrims, NumTrimSwitches diff --git a/companion/src/generaledit/hardware.cpp b/companion/src/generaledit/hardware.cpp index 1d211d280..9d2e8e452 100644 --- a/companion/src/generaledit/hardware.cpp +++ b/companion/src/generaledit/hardware.cpp @@ -24,7 +24,7 @@ void HardwarePanel::setupSwitchType(int index, QLabel * label, AutoLineEdit * name, AutoComboBox * type, bool threePos) { Board::Type board = getCurrentBoard(); - if (IS_STM32(board) && index < getBoardCapability(board, Board::AvailableSwitches)) { + if (IS_STM32(board) && index < getBoardCapability(board, Board::Switches)) { type->addItem(tr("None"), Board::SWITCH_NOT_AVAILABLE); type->addItem(tr("2 Positions Toggle"), Board::SWITCH_TOGGLE); type->addItem(tr("2 Positions"), Board::SWITCH_2POS); @@ -75,7 +75,7 @@ void HardwarePanel::setupPotType(int index, QLabel * label, AutoLineEdit * name, { Board::Type board = firmware->getBoard(); - if (IS_STM32(board) && index < getBoardCapability(board, Board::AvailablePots)) { + if (IS_STM32(board) && index < getBoardCapability(board, Board::Pots)) { label->setText(RawSource(SOURCE_TYPE_STICK, CPN_MAX_STICKS+index).toString()); type->addItem(tr("None"), Board::POT_NONE); type->addItem(tr("Pot with detent"), Board::POT_WITH_DETENT); From 1d73c76dfbba243e6997c9bedacb9081bb653494 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 25 Jan 2021 14:52:53 +0100 Subject: [PATCH 12/16] Fix --- companion/src/firmwares/boards.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 28137b3ba..4a96cd601 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -325,9 +325,11 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) case Sticks: return 4; - case Pots: // Storage pots + case Pots: if (IS_TARANIS_X9LITE(board)) return 1; + else if (IS_JUMPER_TLITE(board)) + return 0; else if (IS_TARANIS_SMALL(board)) return 2; else if (IS_TARANIS_X9E(board)) From 4b9b2c730654e52b4cfa00ebf5f10a528dceecbc Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 25 Jan 2021 15:09:05 +0100 Subject: [PATCH 13/16] Fix --- companion/src/firmwares/boards.cpp | 2 -- companion/src/firmwares/opentx/opentxeeprom.cpp | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 4a96cd601..cfeabc918 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -344,8 +344,6 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) case FactoryInstalledPots: if (IS_TARANIS_X9(board)) return 2; - else if (IS_JUMPER_TLITE(board)) - return 0; else return getCapability(board, Pots); diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 264a3ad6a..bc658bfdf 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -76,6 +76,8 @@ inline int MAX_POTS(Board::Type board, int version) { if (version <= 218 && IS_FAMILY_HORUS_OR_T16(board)) return 3; + if (IS_FAMILY_T12(board)) + return 2; return Boards::getCapability(board, Board::Pots); } From 7333de5c8b3c6b6de3f2a8435c12ce4f6be192c5 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 25 Jan 2021 15:15:13 +0100 Subject: [PATCH 14/16] Fix switches --- companion/src/firmwares/opentx/opentxeeprom.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index bc658bfdf..2a07fc75a 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -94,6 +94,8 @@ inline int MAX_POTS_SOURCES(Board::Type board, int version) { if (version <= 218 && IS_FAMILY_HORUS_OR_T16(board)) return 5; + if (IS_FAMILY_T12(board)) + return 2; return Boards::getCapability(board, Board::Pots); } From ae83086cbaa58626b537689dd1db301616478c3b Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 25 Jan 2021 15:32:13 +0100 Subject: [PATCH 15/16] Fix switches --- companion/src/firmwares/opentx/opentxeeprom.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 2a07fc75a..111e3c391 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -87,6 +87,8 @@ inline int MAX_POTS_STORAGE(Board::Type board, int version) return 3; if (version >= 219 && IS_FAMILY_HORUS_OR_T16(board)) return 5; + if (IS_FAMILY_T12(board)) + return 2; return Boards::getCapability(board, Board::Pots); } From 96dc669336749c321fa1b46e62449c550a5cc193 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 25 Jan 2021 15:34:18 +0100 Subject: [PATCH 16/16] Cosmetics --- companion/src/firmwares/boards.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index e871e323d..e55aeae37 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -56,7 +56,7 @@ namespace Board { BOARD_RADIOMASTER_T8, BOARD_JUMPER_TLITE, BOARD_TYPE_COUNT, - BOARD_TYPE_MAX = BOARD_TYPE_COUNT-1 + BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1 }; enum PotType @@ -128,7 +128,6 @@ namespace Board { MultiposPotsPositions, Switches, SwitchPositions, - FactoryInstalledSwitches, NumTrims, NumTrimSwitches