diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index f6d13faa5e8..e5a50ee499d 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -101,7 +101,7 @@ jobs:
- t12;t12max
- t15;t16;t18
- t8;zorro;pocket;mt12;commando8
- - tlite;tpro;tprov2;lr3pro
+ - tlite;tpro;tprov2;tpros;lr3pro
- t20;t20v2;t14
- tx12;tx12mk2;boxer
- tx16s
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index f3dbd881ede..58341b7159f 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -21,7 +21,7 @@ jobs:
- t12;t12max
- t15,t16;t18
- t8;zorro;pocket;mt12;commando8
- - tlite;tpro;tprov2;lr3pro
+ - tlite;tpro;tprov2;tpros;lr3pro
- t20;t20v2;t14
- tx12;tx12mk2;boxer
- tx16s
diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc
index 17c6a48cf64..96b96b0f0cc 100644
--- a/companion/src/companion.qrc
+++ b/companion/src/companion.qrc
@@ -212,6 +212,14 @@
images/simulator/JumperTPRO/left.png
images/simulator/JumperTPRO/right.png
images/simulator/JumperTPRO/top.png
+ images/simulator/JumperTPROS/bottom.png
+ images/simulator/JumperTPROS/left.png
+ images/simulator/JumperTPROS/right.png
+ images/simulator/JumperTPROS/right-ent.png
+ images/simulator/JumperTPROS/top.png
+ images/simulator/JumperTPROS/exit.png
+ images/simulator/JumperTPROS/menu.png
+ images/simulator/JumperTPROS/page.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 70b488efe2b..78da4f3e1fa 100644
--- a/companion/src/firmwares/boards.cpp
+++ b/companion/src/firmwares/boards.cpp
@@ -192,6 +192,7 @@ int Boards::getEEpromSize(Board::Type board)
case BOARD_JUMPER_TLITE_F4:
case BOARD_JUMPER_TPRO:
case BOARD_JUMPER_TPROV2:
+ case BOARD_JUMPER_TPROS:
case BOARD_RADIOMASTER_TX12:
case BOARD_RADIOMASTER_TX12_MK2:
case BOARD_RADIOMASTER_T8:
@@ -247,6 +248,7 @@ int Boards::getFlashSize(Type board)
case BOARD_JUMPER_TLITE_F4:
case BOARD_JUMPER_TPRO:
case BOARD_JUMPER_TPROV2:
+ case BOARD_JUMPER_TPROS:
case BOARD_RADIOMASTER_TX12:
case BOARD_RADIOMASTER_TX12_MK2:
case BOARD_RADIOMASTER_ZORRO:
@@ -537,6 +539,8 @@ QString Boards::getBoardName(Board::Type board)
return "Jumper T-Pro";
case BOARD_JUMPER_TPROV2:
return "Jumper T-Pro V2";
+ case BOARD_JUMPER_TPROS:
+ return "Jumper T-Pro S";
case BOARD_JUMPER_T12MAX:
return "Jumper T12 MAX";
case BOARD_JUMPER_T14:
@@ -687,6 +691,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
case BOARD_JUMPER_T14:
case BOARD_JUMPER_T20:
case BOARD_JUMPER_T20V2:
+ case BOARD_JUMPER_TPROS:
case BOARD_JUMPER_T15:
case BOARD_FATFISH_F16:
return (int)MODULE_TYPE_CROSSFIRE;
diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h
index 76efe82d36a..26e5d463f0c 100644
--- a/companion/src/firmwares/boards.h
+++ b/companion/src/firmwares/boards.h
@@ -82,6 +82,7 @@ namespace Board {
BOARD_IFLIGHT_COMMANDO8,
BOARD_FLYSKY_EL18,
BOARD_JUMPER_TPROV2,
+ BOARD_JUMPER_TPROS,
BOARD_RADIOMASTER_POCKET,
BOARD_JUMPER_T20V2,
BOARD_FATFISH_F16,
@@ -425,7 +426,7 @@ inline bool IS_JUMPER_TLITE(Board::Type board)
inline bool IS_JUMPER_TPRO(Board::Type board)
{
- return board == Board::BOARD_JUMPER_TPRO || board == Board::BOARD_JUMPER_TPROV2;
+ return board == Board::BOARD_JUMPER_TPRO || board == Board::BOARD_JUMPER_TPROV2 || board == Board::BOARD_JUMPER_TPROS;
}
inline bool IS_JUMPER_TPROV1(Board::Type board)
@@ -438,6 +439,11 @@ inline bool IS_JUMPER_TPROV2(Board::Type board)
return board == Board::BOARD_JUMPER_TPROV2;
}
+inline bool IS_JUMPER_TPROS(Board::Type board)
+{
+ return board == Board::BOARD_JUMPER_TPROS;
+}
+
inline bool IS_JUMPER_T15(Board::Type board)
{
return board == Board::BOARD_JUMPER_T15;
@@ -525,6 +531,7 @@ inline bool IS_FAMILY_T12(Board::Type board)
board == Board::BOARD_JUMPER_TLITE_F4 ||
board == Board::BOARD_JUMPER_TPRO ||
board == Board::BOARD_JUMPER_TPROV2 ||
+ board == Board::BOARD_JUMPER_TPROS ||
board == Board::BOARD_RADIOMASTER_TX12 ||
board == Board::BOARD_RADIOMASTER_TX12_MK2 ||
board == Board::BOARD_RADIOMASTER_ZORRO ||
diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp
index eaf718ebde7..99a88d331eb 100644
--- a/companion/src/firmwares/opentx/opentxinterface.cpp
+++ b/companion/src/firmwares/opentx/opentxinterface.cpp
@@ -68,6 +68,8 @@ const char * OpenTxEepromInterface::getName()
return "EdgeTX for Jumper T-Pro";
case BOARD_JUMPER_TPROV2:
return "EdgeTX for Jumper T-Pro V2";
+ case BOARD_JUMPER_TPROS:
+ return "EdgeTX for Jumper T-Pro S";
case BOARD_JUMPER_T12MAX:
return "EdgeTX for Jumper T12 MAX";
case BOARD_JUMPER_T14:
@@ -1439,6 +1441,16 @@ void registerOpenTxFirmwares()
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
+ /* Jumper T-Pro S board */
+ firmware = new OpenTxFirmware(FIRMWAREID("tpros"), QCoreApplication::translate("Firmware", "Jumper T-Pro S"), BOARD_JUMPER_TPROS);
+ 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);
+
/* Jumper T12 board */
firmware = new OpenTxFirmware(FIRMWAREID("t12"), QCoreApplication::translate("Firmware", "Jumper T12 / T12 Pro"), BOARD_JUMPER_T12);
addOpenTxCommonOptions(firmware);
diff --git a/companion/src/images/simulator/JumperTPROS/bottom.png b/companion/src/images/simulator/JumperTPROS/bottom.png
new file mode 100644
index 00000000000..5878810b867
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/bottom.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/exit.png b/companion/src/images/simulator/JumperTPROS/exit.png
new file mode 100644
index 00000000000..ac187242f6e
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/exit.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/left.png b/companion/src/images/simulator/JumperTPROS/left.png
new file mode 100644
index 00000000000..2ec9ade5b61
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/left.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/menu.png b/companion/src/images/simulator/JumperTPROS/menu.png
new file mode 100644
index 00000000000..18e807246b0
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/menu.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/page.png b/companion/src/images/simulator/JumperTPROS/page.png
new file mode 100644
index 00000000000..ee73613e613
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/page.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/right-ent.png b/companion/src/images/simulator/JumperTPROS/right-ent.png
new file mode 100644
index 00000000000..f2d9f077020
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/right-ent.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/right.png b/companion/src/images/simulator/JumperTPROS/right.png
new file mode 100644
index 00000000000..60eeaad79ea
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/right.png differ
diff --git a/companion/src/images/simulator/JumperTPROS/top.png b/companion/src/images/simulator/JumperTPROS/top.png
new file mode 100644
index 00000000000..eacf96a6546
Binary files /dev/null and b/companion/src/images/simulator/JumperTPROS/top.png differ
diff --git a/companion/src/simulation/CMakeLists.txt b/companion/src/simulation/CMakeLists.txt
index 3b7ddaacbb9..c53fff8813e 100644
--- a/companion/src/simulation/CMakeLists.txt
+++ b/companion/src/simulation/CMakeLists.txt
@@ -43,6 +43,7 @@ set(${PROJECT_NAME}_SRCS
simulateduiwidgetJumperT20.cpp
simulateduiwidgetJumperTLITE.cpp
simulateduiwidgetJumperTPRO.cpp
+ simulateduiwidgetJumperTPROS.cpp
simulateduiwidgetLR3PRO.cpp
simulateduiwidgetNV14.cpp
simulateduiwidgetPL18.cpp
diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h
index 6d5a00e8574..c4f67808d58 100644
--- a/companion/src/simulation/simulateduiwidget.h
+++ b/companion/src/simulation/simulateduiwidget.h
@@ -116,6 +116,7 @@ namespace Ui {
class SimulatedUIWidgetJumperT12;
class SimulatedUIWidgetJumperTLITE;
class SimulatedUIWidgetJumperTPRO;
+ class SimulatedUIWidgetJumperTPROS;
class SimulatedUIWidgetJumperT12max;
class SimulatedUIWidgetJumperT14;
class SimulatedUIWidgetJumperT15;
@@ -306,6 +307,18 @@ class SimulatedUIWidgetJumperTPRO: public SimulatedUIWidget
Ui::SimulatedUIWidgetJumperTPRO * ui;
};
+class SimulatedUIWidgetJumperTPROS: public SimulatedUIWidget
+{
+ Q_OBJECT
+
+public:
+ explicit SimulatedUIWidgetJumperTPROS(SimulatorInterface * simulator, QWidget * parent = NULL);
+ virtual ~SimulatedUIWidgetJumperTPROS();
+
+private:
+ Ui::SimulatedUIWidgetJumperTPROS * ui;
+};
+
class SimulatedUIWidgetJumperT15: public SimulatedUIWidget
{
Q_OBJECT
diff --git a/companion/src/simulation/simulateduiwidgetJumperTPROS.cpp b/companion/src/simulation/simulateduiwidgetJumperTPROS.cpp
new file mode 100644
index 00000000000..7851999f3de
--- /dev/null
+++ b/companion/src/simulation/simulateduiwidgetJumperTPROS.cpp
@@ -0,0 +1,57 @@
+#include "simulateduiwidget.h"
+#include "ui_simulateduiwidgetJumperTPROS.h"
+#include "eeprominterface.h"
+
+// NOTE: RadioUiAction(NUMBER,...): NUMBER relates to enum EnumKeys in the specific board.h
+
+SimulatedUIWidgetJumperTPROS::SimulatedUIWidgetJumperTPROS(SimulatorInterface *simulator, QWidget * parent):
+ SimulatedUIWidget(simulator, parent),
+ ui(new Ui::SimulatedUIWidgetJumperTPROS)
+{
+ RadioUiAction * act;
+
+ ui->setupUi(this);
+
+ act = new RadioUiAction(0, QList() << Qt::Key_PageUp << Qt::Key_Up, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_MENU_ICN);
+ addRadioWidget(ui->leftbuttons->addArea(QRect(85, 85, 70, 70), "JumperTPROS/menu.png", act));
+
+ act = new RadioUiAction(3, QList() << Qt::Key_PageDown << Qt::Key_Down, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_PAGE);
+ addRadioWidget(ui->leftbuttons->addArea(QRect(53, 160, 70, 70), "JumperTPROS/page.png", act));
+
+ act = new RadioUiAction(1, 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(20, 230, 70, 70), "JumperTPROS/exit.png", act));
+
+ m_mouseMidClickAction = new RadioUiAction(2, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ROT_DN);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(10, 96, 200, 220), "JumperTPROS/right-ent.png", m_mouseMidClickAction));
+
+ //addRadioWidget(ui->leftbuttons->addArea(QRect(10, 65, 70, 50), "JumperTPROS/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);
+
+ if (getCurrentBoard() == Board::BOARD_JUMPER_TPROV2) {
+ ui->lcd->setBgDefaultColor(QColor(0, 0, 0));
+ ui->lcd->setFgDefaultColor(QColor(255, 255, 255));
+ }
+
+ setLcd(ui->lcd);
+
+ QString css = "#radioUiWidget {"
+ "background-color: rgb(167, 167, 167);"
+ "}";
+
+ QTimer * tim = new QTimer(this);
+ tim->setSingleShot(true);
+ connect(tim, &QTimer::timeout, [this, css]() {
+ emit customStyleRequest(css);
+ });
+ tim->start(100);
+}
+
+SimulatedUIWidgetJumperTPROS::~SimulatedUIWidgetJumperTPROS()
+{
+ delete ui;
+}
diff --git a/companion/src/simulation/simulateduiwidgetJumperTPROS.ui b/companion/src/simulation/simulateduiwidgetJumperTPROS.ui
new file mode 100644
index 00000000000..1822ef1568c
--- /dev/null
+++ b/companion/src/simulation/simulateduiwidgetJumperTPROS.ui
@@ -0,0 +1,211 @@
+
+
+ SimulatedUIWidgetJumperTPROS
+
+
+
+ 0
+ 0
+ 716
+ 308
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 716
+ 308
+
+
+
+
+ 716
+ 308
+
+
+
+ Jumper TPro S 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
+ 230
+ 308
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 230
+ 308
+
+
+
+
+ 230
+ 308
+
+
+
+ background:url(:/images/simulator/JumperTPROS/left.png);
+
+
+
+
+
+ 230
+ 90
+ 256
+ 128
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 256
+ 128
+
+
+
+
+ 256
+ 128
+
+
+
+ background-color: rgb(215, 243, 255);
+
+
+
+
+
+ 485
+ 0
+ 230
+ 308
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 230
+ 308
+
+
+
+
+ 230
+ 308
+
+
+
+ background:url(:/images/simulator/JumperTPROS/right.png)
+
+
+
+
+
+ 230
+ 0
+ 256
+ 90
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 256
+ 90
+
+
+
+
+ 256
+ 90
+
+
+
+ background:url(:/images/simulator/JumperTPROS/top.png)
+
+
+
+
+
+ 230
+ 218
+ 256
+ 90
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 256
+ 90
+
+
+
+
+ 256
+ 90
+
+
+
+ background:url(:/images/simulator/JumperTPROS/bottom.png)
+
+
+
+
+
+ LcdWidget
+ QWidget
+
+ 1
+
+
+ ButtonsWidget
+ QWidget
+
+ 1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp
index cda17ac44f1..bdd308fc079 100644
--- a/companion/src/simulation/simulatorwidget.cpp
+++ b/companion/src/simulation/simulatorwidget.cpp
@@ -105,6 +105,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
case Board::BOARD_JUMPER_TPROV2:
radioUiWidget = new SimulatedUIWidgetJumperTPRO(simulator, this);
break;
+ case Board::BOARD_JUMPER_TPROS:
+ radioUiWidget = new SimulatedUIWidgetJumperTPROS(simulator, this);
+ break;
case Board::BOARD_JUMPER_T12MAX:
radioUiWidget = new SimulatedUIWidgetJumperT12max(simulator, this);
break;
diff --git a/fw.json b/fw.json
index 82b241863f7..75436a39067 100644
--- a/fw.json
+++ b/fw.json
@@ -28,6 +28,7 @@
["Jumper T-Lite", "tlite-"],
["Jumper T-Pro", "tpro-"],
["Jumper T-Pro V2", "tprov2-"],
+ ["Jumper T-Pro S", "tpros-"],
["Jumper T20", "t20-"],
["Jumper T14", "t14-"],
["Jumper T15", "t15-"],
diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h
index 063c3d628e7..0f4990ab84c 100644
--- a/radio/src/datastructs.h
+++ b/radio/src/datastructs.h
@@ -125,8 +125,6 @@ static inline void check_struct()
#elif defined(RADIO_TPRO)
CHKSIZE(RadioData, 869);
CHKSIZE(ModelData, 6290);
-#elif defined(RADIO_POCKET)
- CHKSIZE(RadioData, 869);
#elif defined(RADIO_TPROV2)
CHKSIZE(RadioData, 869);
CHKSIZE(ModelData, 6290);
diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp
index e06ab5936ed..bd70dbd6909 100644
--- a/radio/src/simu.cpp
+++ b/radio/src/simu.cpp
@@ -445,7 +445,7 @@ void OpenTxSim::updateKeysAndSwitches(bool start)
SWITCH_KEY(C, 2, 3);
SWITCH_KEY(D, 3, 3);
- #if defined(RADIO_TPRO) || defined(RADIO_TPROV2)
+ #if defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS)
SWITCH_KEY(1, 4, 2);
SWITCH_KEY(2, 5, 2);
SWITCH_KEY(3, 6, 2);
diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt
index 2508b2929a0..96e29f96470 100644
--- a/radio/src/targets/taranis/CMakeLists.txt
+++ b/radio/src/targets/taranis/CMakeLists.txt
@@ -147,6 +147,17 @@ elseif(PCB STREQUAL X7)
add_definitions(-DRADIO_TPROV2)
add_definitions(-DMANUFACTURER_JUMPER)
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
+ elseif(PCBREV STREQUAL TPROS)
+ set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
+ set(INTERNAL_MODULE_SERIAL YES)
+ set(MODULE_SIZE_SML YES)
+ set(FLAVOUR tpros)
+ set(NAVIGATION_TYPE x7)
+ set(CPU_TYPE_FULL STM32F407xG)
+ set(ROTARY_ENCODER YES)
+ add_definitions(-DRADIO_TPROS)
+ add_definitions(-DMANUFACTURER_JUMPER)
+ set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
elseif (PCBREV STREQUAL T14)
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
set(INTERNAL_MODULE_SERIAL YES)
diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h
index 423760b7850..7c5523cf384 100644
--- a/radio/src/targets/taranis/board.h
+++ b/radio/src/targets/taranis/board.h
@@ -418,7 +418,7 @@ void setTopBatteryValue(uint32_t volts);
#if defined(RADIO_ZORRO) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_POCKET)
#define VOLTAGE_DROP 45
-#elif defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20)
+#elif defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20)
#define VOLTAGE_DROP 60
#else
#define VOLTAGE_DROP 20
diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h
index 47cef2d9ad7..5b935072e1b 100644
--- a/radio/src/targets/taranis/hal.h
+++ b/radio/src/targets/taranis/hal.h
@@ -69,6 +69,15 @@
#define KEYS_GPIO_PIN_LEFT LL_GPIO_PIN_12 // PE.12
#define KEYS_GPIO_REG_RIGHT GPIOE
#define KEYS_GPIO_PIN_RIGHT LL_GPIO_PIN_13 // PE.13
+#elif defined(RADIO_TPROS)
+ #define KEYS_GPIO_REG_PAGE GPIOD
+ #define KEYS_GPIO_PIN_PAGE LL_GPIO_PIN_3 // PD.03
+ #define KEYS_GPIO_REG_MENU GPIOD
+ #define KEYS_GPIO_PIN_MENU LL_GPIO_PIN_7 // PD.07
+ #define KEYS_GPIO_REG_EXIT GPIOD
+ #define KEYS_GPIO_PIN_EXIT LL_GPIO_PIN_2 // PD.02
+ #define KEYS_GPIO_REG_ENTER GPIOA
+ #define KEYS_GPIO_PIN_ENTER LL_GPIO_PIN_13 // PA.13
#elif defined(RADIO_FAMILY_JUMPER_T12) && !defined(RADIO_TPRO) && !defined(RADIO_TPROV2)
#define KEYS_GPIO_REG_EXIT GPIOD
#define KEYS_GPIO_PIN_EXIT LL_GPIO_PIN_2 // PD.02
@@ -282,7 +291,7 @@
#define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 5
#endif
-#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_T12MAX)
+#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define ROTARY_ENCODER_NAVIGATION
#define ROTARY_ENCODER_GPIO GPIOE
#define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_9 // PE.09
@@ -303,7 +312,7 @@
#define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 5
#endif
- #if defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14)
+ #if defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_TPROS)
#define ROTARY_ENCODER_INVERTED
#endif
#endif
@@ -422,6 +431,23 @@
#define TRIMS_GPIO_PIN_T5R LL_GPIO_PIN_15 // PE.15
#define TRIMS_GPIO_REG_T5L GPIOE
#define TRIMS_GPIO_PIN_T5L LL_GPIO_PIN_14 // PE.14
+#elif defined(RADIO_TPROS)
+ #define TRIMS_GPIO_REG_LHL GPIOC
+ #define TRIMS_GPIO_PIN_LHL LL_GPIO_PIN_3 // PC.03
+ #define TRIMS_GPIO_REG_LHR GPIOC
+ #define TRIMS_GPIO_PIN_LHR LL_GPIO_PIN_2 // PC.02
+ #define TRIMS_GPIO_REG_LVD GPIOE
+ #define TRIMS_GPIO_PIN_LVD LL_GPIO_PIN_4 // PE.04
+ #define TRIMS_GPIO_REG_LVU GPIOE
+ #define TRIMS_GPIO_PIN_LVU LL_GPIO_PIN_3 // PE.03
+ #define TRIMS_GPIO_REG_RVD GPIOC
+ #define TRIMS_GPIO_PIN_RVD LL_GPIO_PIN_1 // PC.01
+ #define TRIMS_GPIO_REG_RHL GPIOE
+ #define TRIMS_GPIO_PIN_RHL LL_GPIO_PIN_6 // PE.06
+ #define TRIMS_GPIO_REG_RVU GPIOD
+ #define TRIMS_GPIO_PIN_RVU LL_GPIO_PIN_15 // PD.15
+ #define TRIMS_GPIO_REG_RHR GPIOE
+ #define TRIMS_GPIO_PIN_RHR LL_GPIO_PIN_5 // PE.05
#elif defined(RADIO_T14) || defined(RADIO_T12MAX)
#define TRIMS_GPIO_REG_LHL GPIOE
#define TRIMS_GPIO_PIN_LHL LL_GPIO_PIN_3 // PE.03
@@ -569,6 +595,13 @@
#define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_13 // PE.13
#define SWITCHES_GPIO_REG_A_H GPIOE
#define SWITCHES_GPIO_PIN_A_H LL_GPIO_PIN_7 // PE.07
+#elif defined(RADIO_TPROS)
+ #define STORAGE_SWITCH_A
+ #define HARDWARE_SWITCH_A
+ #define SWITCHES_GPIO_REG_A_H GPIOE
+ #define SWITCHES_GPIO_PIN_A_H LL_GPIO_PIN_0 // PE.00
+ #define SWITCHES_GPIO_REG_A_L GPIOD
+ #define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_11 // PD.11
#elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A
@@ -626,6 +659,13 @@
#define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_1 // PE.01
#define SWITCHES_GPIO_REG_B_H GPIOE
#define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_2 // PE.02
+#elif defined(RADIO_TPROS)
+ #define STORAGE_SWITCH_B
+ #define HARDWARE_SWITCH_B
+ #define SWITCHES_GPIO_REG_B_L GPIOA
+ #define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_5 // PA.05
+ #define SWITCHES_GPIO_REG_B_H GPIOE
+ #define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_15 // PE.15
#elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
@@ -740,6 +780,11 @@
#define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C GPIOE
#define SWITCHES_GPIO_PIN_C LL_GPIO_PIN_14 // PE.14
+#elif defined(RADIO_TPROS)
+ #define STORAGE_SWITCH_C
+ #define HARDWARE_SWITCH_C
+ #define SWITCHES_GPIO_REG_C GPIOE
+ #define SWITCHES_GPIO_PIN_C LL_GPIO_PIN_8 // PE.08
#elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C
@@ -814,6 +859,11 @@
#define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D GPIOD
#define SWITCHES_GPIO_PIN_D LL_GPIO_PIN_14 // PD.14
+#elif defined(RADIO_TPROS)
+ #define STORAGE_SWITCH_D
+ #define HARDWARE_SWITCH_D
+ #define SWITCHES_GPIO_REG_D GPIOC
+ #define SWITCHES_GPIO_PIN_D LL_GPIO_PIN_13// PC.13
#elif defined(RADIO_T14) || defined(RADIO_T12MAX)
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
@@ -905,6 +955,11 @@
#define SWITCHES_GPIO_PIN_E_H LL_GPIO_PIN_14 // PE.14
#define SWITCHES_GPIO_REG_E_L GPIOE
#define SWITCHES_GPIO_PIN_E_L LL_GPIO_PIN_7 // PE.07
+#elif defined(RADIO_TPROS)
+ #define STORAGE_SWITCH_E
+ #define HARDWARE_SWITCH_E
+ #define SWITCHES_GPIO_REG_E GPIOC
+ #define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_5 // PC.05
#elif defined(RADIO_TPROV2)
#define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E
@@ -977,6 +1032,11 @@
#define SWITCHES_GPIO_PIN_F_L LL_GPIO_PIN_14 // PD.14
#define SWITCHES_GPIO_REG_F_H GPIOE
#define SWITCHES_GPIO_PIN_F_H LL_GPIO_PIN_1 // PE.01
+#elif defined(RADIO_TPROS)
+ #define STORAGE_SWITCH_F
+ #define HARDWARE_SWITCH_F
+ #define SWITCHES_GPIO_REG_F GPIOE
+ #define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_7 // PE.07
#elif defined(RADIO_TPROV2)
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
@@ -999,7 +1059,7 @@
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_5 // PB.05
#elif defined(RADIO_MT12)
// ADC based switch/pot
-#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_TPROV2) || defined(RADIO_COMMANDO8) || defined(RADIO_LR3PRO) || defined(RADIO_POCKET)
+#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_COMMANDO8) || defined(RADIO_LR3PRO) || defined(RADIO_POCKET)
// no SWF
#define STORAGE_SWITCH_F
#elif defined(RADIO_T12)
@@ -1053,7 +1113,7 @@
#define HARDWARE_SWITCH_G
#define SWITCHES_GPIO_REG_G GPIOD
#define SWITCHES_GPIO_PIN_G LL_GPIO_PIN_15 // PD.15
-#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_T12MAX)
+#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
// no SWG
#else
#define STORAGE_SWITCH_G
@@ -1100,7 +1160,7 @@
#define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOF
#define SWITCHES_GPIO_PIN_H LL_GPIO_PIN_0 // PF.00
-#elif defined(RADIO_TLITE) || defined(RADIO_TPROV2) || defined(RADIO_LR3PRO)
+#elif defined(RADIO_TLITE) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_LR3PRO)
// no SWH
#define STORAGE_SWITCH_H
#elif defined(PCBX7)
@@ -1151,7 +1211,7 @@
#define STORAGE_SWITCH_I
// no SWJ
#define STORAGE_SWITCH_J
-#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_T12MAX)
+#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
// No I/J
#elif defined(RADIO_TPROV2)
// SW1
@@ -1539,6 +1599,27 @@
#define ADC_CHANNEL_POT2 LL_ADC_CHANNEL_9 // ADC12_IN9
#define ADC_CHANNEL_BATT LL_ADC_CHANNEL_10
#define ADC_VREF_PREC2 330
+#elif defined(RADIO_TPROS)
+ #define HARDWARE_POT1
+ #define HARDWARE_POT2
+ #define ADC_GPIO_PIN_STICK_LV LL_GPIO_PIN_1 // PA.01
+ #define ADC_GPIO_PIN_STICK_LH LL_GPIO_PIN_0 // PA.00
+ #define ADC_GPIO_PIN_STICK_RV LL_GPIO_PIN_3 // PA.03
+ #define ADC_GPIO_PIN_STICK_RH LL_GPIO_PIN_2 // PA.02
+ #define ADC_CHANNEL_STICK_LV LL_ADC_CHANNEL_1 // ADC1_IN1
+ #define ADC_CHANNEL_STICK_LH LL_ADC_CHANNEL_0 // ADC1_IN0
+ #define ADC_CHANNEL_STICK_RV LL_ADC_CHANNEL_3 // ADC1_IN3
+ #define ADC_CHANNEL_STICK_RH LL_ADC_CHANNEL_2 // ADC1_IN2
+ #define ADC_GPIO_PIN_POT1 LL_GPIO_PIN_0 // PB.00
+ #define ADC_GPIO_PIN_POT2 LL_GPIO_PIN_1 // PB.01
+ #define ADC_GPIO_PIN_BATT LL_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 (ADC_GPIO_PIN_POT1 | ADC_GPIO_PIN_POT2)
+ #define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT
+ #define ADC_CHANNEL_POT1 LL_ADC_CHANNEL_8 // ADC12_IN8
+ #define ADC_CHANNEL_POT2 LL_ADC_CHANNEL_9 // ADC12_IN9
+ #define ADC_CHANNEL_BATT LL_ADC_CHANNEL_10
+ #define ADC_VREF_PREC2 300
#elif defined(RADIO_T12MAX)
#define HARDWARE_POT1
#define HARDWARE_POT2
@@ -1734,9 +1815,9 @@
#define ADC_DIRECTION {-1, 1, 1, -1, -1, 1, 1, 1}
#elif defined(RADIO_POCKET)
#define ADC_DIRECTION {-1, 1, 1, -1, -1}
-#elif defined(RADIO_TPRO) || defined(RADIO_TPROV2)
+#elif defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS)
#define ADC_DIRECTION {1,-1,1,-1, 1,1, 1, 1}
-#elif defined(RADIO_T14)
+#elif defined(RADIO_T14) || defined(RADIO_TPROS)
#define ADC_DIRECTION {1, -1, 1, -1, 1, 1, 1}
#elif defined(RADIO_T12MAX)
#define ADC_DIRECTION {-1, 1, -1, 1, 1, 1, 1}
@@ -1844,7 +1925,7 @@
#define LED_RED_GPIO_PIN GPIO_Pin_13 // PE.13
#define LED_BLUE_GPIO GPIOA
#define LED_BLUE_GPIO_PIN GPIO_Pin_7 // PA.07
-#elif defined(RADIO_T14) || defined(RADIO_T12MAX)
+#elif defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON GPIO_SetBits
#define GPIO_LED_GPIO_OFF GPIO_ResetBits
@@ -1854,7 +1935,7 @@
#define LED_BLUE_GPIO_PIN GPIO_Pin_13 // PE.13
#define LED_GREEN_GPIO GPIOA
#define LED_GREEN_GPIO_PIN GPIO_Pin_7 // PA.07
-#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TX12)
+#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_TX12)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON GPIO_SetBits
#define GPIO_LED_GPIO_OFF GPIO_ResetBits
@@ -2029,7 +2110,7 @@
#define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream7_IRQHandler
#define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF7
#define INTMODULE_DMA_CHANNEL DMA_Channel_4
-#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14) || defined(RADIO_T12MAX)
+#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2)
#define INTMODULE_PWR_GPIO GPIOC
#if defined(RADIO_T20V2)
@@ -2039,7 +2120,7 @@
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
#else
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_4 // PC.04
-#if defined(RADIO_T14) || defined(RADIO_T12MAX)
+#if defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define INTMODULE_BOOTCMD_GPIO GPIOE
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_14 // PE.14
#else
@@ -2085,7 +2166,7 @@
#define INTMODULE_TIMER_DMA_STREAM_IRQn DMA2_Stream5_IRQn
#define INTMODULE_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
#define INTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
-#elif (defined(RADIO_FAMILY_JUMPER_T12) && defined(HARDWARE_INTERNAL_MODULE)) || defined(RADIO_TX12) || defined(RADIO_T8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_T20)
+#elif (defined(RADIO_FAMILY_JUMPER_T12) && defined(HARDWARE_INTERNAL_MODULE)) || defined(RADIO_TX12) || defined(RADIO_T8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_T20)
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_DMA1)
#define INTMODULE_PWR_GPIO GPIOC
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_6 // PC.06
@@ -2108,7 +2189,7 @@
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_5 // PA.05
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
#define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
- #elif defined(RADIO_TPRO) || defined(RADIO_TPROV2)
+ #elif defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS)
#define INTMODULE_BOOTCMD_GPIO GPIOF
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_11 // PF.11
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
@@ -2166,7 +2247,7 @@
// External Module
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_X9DP2019) || defined(PCBX7ACCESS) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T14) || defined(RADIO_T12MAX)
- #if defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS) || defined(RADIO_ZORRO)|| defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)|| defined(RADIO_T14) || defined(RADIO_T12MAX)
+ #if defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS) || defined(RADIO_ZORRO)|| defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)|| defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
#define EXTMODULE_PWR_GPIO GPIOD
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
@@ -2594,7 +2675,7 @@
#define BACKLIGHT_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 // Channel 1, PWM
#define BACKLIGHT_CCER TIM_CCER_CC1E
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR1
-#elif defined(RADIO_T8) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14)
+#elif defined(RADIO_T8) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14) || defined(RADIO_TPROS)
#define BACKLIGHT_RCC_AHB1Periph 0
#define BACKLIGHT_RCC_APB1Periph 0
#define BACKLIGHT_RCC_APB2Periph 0
@@ -2638,10 +2719,10 @@
#define KEYS_BACKLIGHT_RCC_AHB1Periph 0
// LCD driver
-#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20) || defined(RADIO_MT12) || defined(RADIO_T12MAX)
+#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_MT12) || defined(RADIO_T12MAX)
#define LCD_VERTICAL_INVERT
#endif
-#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14)
+#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14) || defined(RADIO_TPROS)
#define LCD_HORIZONTAL_INVERT
#define OLED_SCREEN
#endif
@@ -2798,7 +2879,7 @@
#endif
// SD - SPI2
-#if defined(RADIO_FAMILY_T20) || defined(RADIO_T14) || defined(RADIO_T12MAX)
+#if defined(RADIO_FAMILY_T20) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
// Using chip, so no detect
#else
#define SD_PRESENT_GPIO GPIOD
@@ -2872,7 +2953,7 @@
#endif
// Haptic
-#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14) || defined(RADIO_T12MAX)
+#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define HAPTIC_PWM
#define HAPTIC_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
#define HAPTIC_RCC_APB1Periph RCC_APB1Periph_TIM2
diff --git a/radio/src/targets/taranis/usb_descriptor.h b/radio/src/targets/taranis/usb_descriptor.h
index d55e07910e5..7fa24e07d1d 100644
--- a/radio/src/targets/taranis/usb_descriptor.h
+++ b/radio/src/targets/taranis/usb_descriptor.h
@@ -66,6 +66,10 @@
#define USB_NAME "Jumper T12 MAX"
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
#define USB_PRODUCT 'T', '1', '2', ' ', 'M', 'A', 'X', ' ' /* 8 Bytes */
+#elif defined(RADIO_TPROS)
+ #define USB_NAME "Jumper T-Pro S"
+ #define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
+ #define USB_PRODUCT 'T', '-', 'P', 'r', 'o', ' ', 'S', ' ' /* 8 Bytes */
#elif defined(RADIO_T14)
#define USB_NAME "Jumper T14"
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
diff --git a/radio/util/hw_defs/legacy_names.py b/radio/util/hw_defs/legacy_names.py
index 32712cf4f77..5d47b4f478b 100644
--- a/radio/util/hw_defs/legacy_names.py
+++ b/radio/util/hw_defs/legacy_names.py
@@ -379,7 +379,7 @@
}
},
{
- "targets": {"t14", "t12max"},
+ "targets": {"t14", "t12max","tpros"},
"inputs": {
"LH": {
"yaml": "Rud"
@@ -415,7 +415,7 @@
"lr3pro",
"nv14", "el18",
"t8", "t12",
- "tlite", "tlitef4", "tpro", "tprov2",
+ "tlite", "tlitef4", "tpro", "tprov2","tpros",
"tx12", "tx12mk2",
"x7", "x7access",
"xlite", "xlites",
diff --git a/radio/util/hw_defs/pot_config.py b/radio/util/hw_defs/pot_config.py
index f25bfb5b527..084e7b2cbe6 100644
--- a/radio/util/hw_defs/pot_config.py
+++ b/radio/util/hw_defs/pot_config.py
@@ -46,6 +46,10 @@
"P1": {"default": "POT_CENTER"},
"P2": {"default": "POT_CENTER"}
},
+ "tpros": {
+ "P1": {"default": "POT_CENTER"},
+ "P2": {"default": "POT_CENTER"}
+ },
"t20": {
"P1": {"default": "POT_CENTER"},
"P2": {"default": "POT_CENTER"},
diff --git a/radio/util/hw_defs/switch_config.py b/radio/util/hw_defs/switch_config.py
index f5635bcf7ec..3f91f36fe06 100644
--- a/radio/util/hw_defs/switch_config.py
+++ b/radio/util/hw_defs/switch_config.py
@@ -181,6 +181,16 @@
"SF": {"default": "2POS", "display": [1, 2]},
"SH": {"default": "NONE", "display": [1, 3]},
},
+ "tpros": {
+ # left side
+ "SA": {"default": "3POS", "display": [0, 0]},
+ "SC": {"default": "TOGGLE", "display": [0, 1]},
+ "SE": {"default": "2POS", "display": [0, 2]},
+ # right side
+ "SB": {"default": "3POS", "display": [1, 0]},
+ "SD": {"default": "TOGGLE", "display": [1, 1]},
+ "SF": {"default": "2POS", "display": [1, 2]},
+ },
"t20": {
# left side
"SA": {"default": "2POS", "display": [0, 0]},
diff --git a/tools/build-companion.sh b/tools/build-companion.sh
index dfea4c3b74d..54299572cf0 100755
--- a/tools/build-companion.sh
+++ b/tools/build-companion.sh
@@ -67,7 +67,7 @@ declare -a simulator_plugins=(x9lite x9lites
x7 x7-access
t8 t12 t12max tx12 tx12mk2
zorro commando8 boxer pocket
- tlite tpro tprov2 lr3pro t14
+ tlite tpro tprov2 tpros lr3pro t14
x9d x9dp x9dp2019 x9e
xlite xlites
nv14 el18 pl18 pl18ev
@@ -128,6 +128,9 @@ do
tprov2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TPROV2"
;;
+ tpros)
+ BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TPROS"
+ ;;
t20)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
;;
diff --git a/tools/build-gh.sh b/tools/build-gh.sh
index 5be3c4e883c..4c70606cfad 100755
--- a/tools/build-gh.sh
+++ b/tools/build-gh.sh
@@ -140,6 +140,9 @@ do
tprov2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TPROV2"
;;
+ tpros)
+ BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TPROS"
+ ;;
t20)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
;;
diff --git a/tools/generate-hw-defs.sh b/tools/generate-hw-defs.sh
index 1d21f9ba940..ae2c2d4b69e 100755
--- a/tools/generate-hw-defs.sh
+++ b/tools/generate-hw-defs.sh
@@ -6,7 +6,7 @@ set -e
: "${SRCDIR:=$(dirname "$(pwd)/$0")/..}"
-: ${FLAVOR:="nv14;t12;t12max;t15;t16;t18;t8;zorro;pocket;commando8;tlite;tpro;tprov2;t20;t20v2;t14;lr3pro;mt12;tx12;tx12mk2;boxer;tx16s;x10;x10-access;x12s;x7;x7-access;x9d;x9dp;x9dp2019;x9e;x9lite;x9lites;xlite;xlites"}
+: ${FLAVOR:="nv14;t12;t12max;t15;t16;t18;t8;zorro;pocket;commando8;tlite;tpro;tprov2;tpros;t20;t20v2;t14;lr3pro;mt12;tx12;tx12mk2;boxer;tx16s;x10;x10-access;x12s;x7;x7-access;x9d;x9dp;x9dp2019;x9e;x9lite;x9lites;xlite;xlites"}
: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -Wno-dev -DCMAKE_MESSAGE_LOG_LEVEL=WARNING"}
# wipe build directory clean
@@ -69,6 +69,9 @@ do
tprov2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TPROV2"
;;
+ tpros)
+ BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TPROS"
+ ;;
t20)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
;;