Skip to content

feat: Support of new radio DRO1 by DumboRC #6076

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ body:
- RadioMaster TX12 / TX12MK2
- RadioMaster TX16S / TX16SMK2
- RadioMaster Zorro
- DumboRC DRO1
- Other (Please specify below)
validations:
required: true
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ jobs:
- mt12
- gx12
- nb4p
- dro1
container:
image: ghcr.io/edgetx/edgetx-dev:latest
volumes:
Expand Down Expand Up @@ -118,6 +119,7 @@ jobs:
- xlite;xlites
- mt12;gx12
- nb4p
- dro1
container:
image: ghcr.io/edgetx/edgetx-dev:latest
volumes:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ jobs:
- xlite;xlites
- mt12
- nb4p
- dro1
container:
image: ghcr.io/edgetx/edgetx-dev:latest
volumes:
Expand Down
2 changes: 2 additions & 0 deletions companion/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,8 @@ elseif(PCB STREQUAL PL18 AND PCBREV STREQUAL PL18EV)
set(FLAVOUR pl18ev)
elseif(PCB STREQUAL PL18)
set(FLAVOUR pl18)
elseif(PCB STREQUAL X10 AND PCBREV STREQUAL DRO1)
set(FLAVOUR dro1)
else()
string(TOLOWER ${PCB} FLAVOUR)
endif()
Expand Down
2 changes: 1 addition & 1 deletion companion/src/firmwares/boardjson.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ void BoardJson::afterLoadFixups(Board::Type board, InputsTable * inputs, Switche
}

// Flex switches are not listed in json file for these radios
int count = IS_RADIOMASTER_TX16S(board) || IS_RADIOMASTER_MT12(board) ? 2 : 0;
int count = IS_RADIOMASTER_TX16S(board) || IS_RADIOMASTER_MT12(board) || IS_DUMBORC_DRO1(board) ? 2 : 0;

for (int i = 1; i <= count; i++) {
QString tag = QString("FL%1").arg(i);
Expand Down
8 changes: 8 additions & 0 deletions companion/src/firmwares/boards.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ uint32_t Boards::getFourCC(Type board)
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
return 0x4878746F;
case BOARD_DUMBORC_DRO1:
return 0x4A78746F;
default:
return 0;
}
Expand Down Expand Up @@ -218,6 +220,7 @@ int Boards::getEEpromSize(Board::Type board)
case BOARD_FLYSKY_PL18EV:
case BOARD_FATFISH_F16:
case BOARD_HELLORADIOSKY_V16:
case BOARD_DUMBORC_DRO1:
return 0;
default:
return 0;
Expand Down Expand Up @@ -277,6 +280,7 @@ int Boards::getFlashSize(Type board)
case BOARD_FLYSKY_PL18EV:
case BOARD_FATFISH_F16:
case BOARD_HELLORADIOSKY_V16:
case BOARD_DUMBORC_DRO1:
return FSIZE_HORUS;
case BOARD_UNKNOWN:
return FSIZE_MAX;
Expand Down Expand Up @@ -665,6 +669,8 @@ QString Boards::getBoardName(Board::Type board)
return "Fatfish F16";
case BOARD_HELLORADIOSKY_V16:
return "HelloRadioSky V16";
case BOARD_DUMBORC_DRO1:
return "DumboRC DRO1";
default:
return CPN_STR_UNKNOWN_ITEM;
}
Expand Down Expand Up @@ -769,6 +775,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
case BOARD_JUMPER_TPROV2:
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
case BOARD_DUMBORC_DRO1:
return (int)MODULE_TYPE_MULTIMODULE;

case BOARD_BETAFPV_LR3PRO:
Expand Down Expand Up @@ -840,6 +847,7 @@ void Boards::getBattRange(Board::Type board, int& vmin, int& vmax, unsigned int&
case BOARD_JUMPER_T18:
case BOARD_JUMPER_T20:
case BOARD_JUMPER_T20V2:
case BOARD_DUMBORC_DRO1:
BR(67, 83, 66)
break;
case BOARD_JUMPER_TLITE:
Expand Down
14 changes: 13 additions & 1 deletion companion/src/firmwares/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ namespace Board {
BOARD_FATFISH_F16,
BOARD_HELLORADIOSKY_V16,
BOARD_RADIOMASTER_MT12,
BOARD_DUMBORC_DRO1,
BOARD_TYPE_COUNT,
BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1
};
Expand Down Expand Up @@ -616,9 +617,20 @@ inline bool IS_HELLORADIOSKY_V16(Board::Type board)
return board == Board::BOARD_HELLORADIOSKY_V16;
}

inline bool IS_DUMBORC_DRO1(Board::Type board)
{
return board == Board::BOARD_DUMBORC_DRO1;
}

inline bool IS_FAMILY_T16(Board::Type board)
{
return board == Board::BOARD_JUMPER_T15 || board == Board::BOARD_JUMPER_T16 || board == Board::BOARD_RADIOMASTER_TX16S || board == Board::BOARD_JUMPER_T18 || board == Board::BOARD_FATFISH_F16 || board == Board::BOARD_HELLORADIOSKY_V16;
return board == Board::BOARD_JUMPER_T15 ||
board == Board::BOARD_JUMPER_T16 ||
board == Board::BOARD_RADIOMASTER_TX16S ||
board == Board::BOARD_JUMPER_T18 ||
board == Board::BOARD_FATFISH_F16 ||
board == Board::BOARD_HELLORADIOSKY_V16 ||
board == Board::BOARD_DUMBORC_DRO1;
}

inline bool IS_FAMILY_T12(Board::Type board)
Expand Down
12 changes: 10 additions & 2 deletions companion/src/firmwares/opentx/opentxinterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,9 +330,9 @@ int OpenTxFirmware::getCapability(::Capability capability)
IS_JUMPER_T15(board) || IS_JUMPER_T18(board) || IS_JUMPER_T20(board) || IS_JUMPER_TPRO(board) ||
IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_GX12(board) || IS_RADIOMASTER_MT12(board) ||
IS_RADIOMASTER_POCKET(board) || IS_RADIOMASTER_TX12(board) || IS_RADIOMASTER_TX12_MK2(board) ||
IS_RADIOMASTER_TX16S(board) || IS_RADIOMASTER_ZORRO(board));
IS_RADIOMASTER_TX16S(board) || IS_RADIOMASTER_ZORRO(board) || IS_DUMBORC_DRO1(board));
case HasSoftwareSerialPower:
return IS_RADIOMASTER_TX16S(board);
return IS_RADIOMASTER_TX16S(board) || IS_DUMBORC_DRO1(board);
case HasIntModuleMulti:
return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) ||
IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board) ||
Expand Down Expand Up @@ -812,6 +812,14 @@ void registerOpenTxFirmwares()
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX + AFHDS2A + AFHDS3);

/* DumboRC DRO1 board */
firmware = new OpenTxFirmware(FIRMWAREID("dro1"), QCoreApplication::translate("Firmware", "DumboRC DRO1"), Board::BOARD_DUMBORC_DRO1);
addOpenTxCommonOptions(firmware);
firmware->addOption("lua", Firmware::tr("Enable Lua custom scripts screen"));
addOpenTxFontOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);

Firmware::sortRegisteredFirmwares();
Firmware::setDefaultVariant(Firmware::getFirmwareForFlavour("tx16s"));
Firmware::setCurrentVariant(Firmware::getDefaultVariant());
Expand Down
3 changes: 2 additions & 1 deletion fw.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@
["RadioMaster TX12MK2", "tx12mk2-"],
["RadioMaster TX16S", "tx16s-"],
["RadioMaster Zorro","zorro-"],
["RadioMaster GX12", "gx12-"]
["RadioMaster GX12", "gx12-"],
["DumboRC DRO1", "dro1-"]
],
"changelog": "- Major initial bug fixes"
}
4 changes: 4 additions & 0 deletions radio/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,10 @@ if(IFLIGHT_RELEASE)
add_definitions(-DIFLIGHT_RELEASE)
endif()

if(DUMBORC_RELEASE)
add_definitions(-DDUMBORC_RELEASE)
endif()

if(HARDWARE_TRAINER_MULTI)
add_definitions(-DHARDWARE_TRAINER_MULTI)
endif()
Expand Down
2 changes: 1 addition & 1 deletion radio/src/audio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ void audioTask(void * pdata)
RTOS_WAIT_TICKS(1);
}

#if defined(PCBX12S) || defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_V16)
#if defined(PCBX12S) || defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_V16) || defined(RADIO_DRO1)
// The audio amp needs ~2s to start
RTOS_WAIT_MS(1000); // 1s
#endif
Expand Down
2 changes: 1 addition & 1 deletion radio/src/edgetx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ void generalDefault()
g_eeGeneral.pwrOffSpeed = 2;
#endif

#if defined(MANUFACTURER_RADIOMASTER)
#if defined(MANUFACTURER_RADIOMASTER) || defined(MANUFACTURER_DUMBORC)
g_eeGeneral.audioMuteEnable = 1;
#endif

Expand Down
2 changes: 1 addition & 1 deletion radio/src/gui/colorlcd/module/module_setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ class ModuleWindow : public Window
edit->setStep(SBUS_STEPSIZE);
new Choice(box, rect_t{}, STR_SBUS_INVERSION_VALUES, 0, 1,
GET_SET_DEFAULT(md->sbus.noninverted));
#if defined(RADIO_TX16S)
#if defined(RADIO_TX16S) || defined(RADIO_DRO1)
new StaticText(this, rect_t{}, STR_WARN_5VOLTS);
#endif
}
Expand Down
6 changes: 4 additions & 2 deletions radio/src/stamp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@
#define DISPLAY_VERSION "-tbs"
#elif defined(IMRC_RELEASE)
#define DISPLAY_VERSION "-imrc"
#elif defined(DUMBORC_RELEASE)
#define DISPLAY_VERSION "-DRO"
#else
#define DISPLAY_VERSION
#endif

#if defined(COLORLCD)
const char fw_stamp[] = "FW" TAB ": edgetx-" FLAVOUR;
#if defined(RADIOMASTER_RELEASE) || defined(JUMPER_RELEASE)
#if defined(RADIOMASTER_RELEASE) || defined(JUMPER_RELEASE) || defined(DUMBORC_RELEASE)
const char vers_stamp[] = "VERS" TAB ": Factory firmware (" GIT_STR ")";
#else
#if defined(VERSION_TAG)
Expand All @@ -63,7 +65,7 @@
const char vers_stamp[] = "FW" TAB ": edgetx-" BOARD_NAME "\036VERS" TAB ": " VERSION DISPLAY_VERSION " (" GIT_STR ")" "\036DATE" TAB ": " DATE " " TIME;
#elif defined(RADIOMASTER_RELEASE)
const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": RM Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME;
#elif defined(JUMPER_RELEASE) || defined(IFLIGHT_RELEASE)
#elif defined(JUMPER_RELEASE) || defined(IFLIGHT_RELEASE) || defined(DUMBORC_RELEASE)
const char vers_stamp[] = "FW" TAB ": edgetx-" FLAVOUR "\036VERS" TAB ": Factory (" GIT_STR ")" "\036BUILT BY : EdgeTX" "\036DATE" TAB ": " DATE " " TIME;
#else
#if defined(VERSION_TAG)
Expand Down
20 changes: 20 additions & 0 deletions radio/src/targets/horus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,26 @@ if (PCB STREQUAL X10)
endif()
set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS")
set(FLYSKY_GIMBAL ON)
elseif (PCBREV STREQUAL DRO1)
set(FLAVOUR dro1)
add_definitions(-DRADIO_DRO1)
add_definitions(-DRADIO_FAMILY_T16)

# Uncomment the line below to enable bootloader support for SPI flash
# add_definitions(-DSPI_FLASH)

unset(INTERNAL_MODULES CACHE)
option(BLUETOOTH "Support for bluetooth module" OFF)
option(INTERNAL_GPS "Support for internal GPS" OFF)
set(SWSERIALPOWER YES)
set(USB_CHARGER YES)
add_definitions(-DMANUFACTURER_DUMBORC)
if (NOT BLUETOOTH)
set(AUX2_SERIAL ON)
endif()
set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS")
set(FLYSKY_GIMBAL OFF)
set(FLEXSW "2" CACHE STRING "Max flex inputs usable as switches")
else()
set(FLAVOUR x10)
set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module")
Expand Down
6 changes: 3 additions & 3 deletions radio/src/targets/horus/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ enum {
#endif

// POTS and SLIDERS default configuration
#if defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_V16)
#if defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_V16) || defined(RADIO_DRO1)
#define XPOS_CALIB_DEFAULT {0x3, 0xc, 0x15, 0x1e, 0x26}
#endif

Expand Down Expand Up @@ -279,7 +279,7 @@ void telemetryPortInvertedInit(uint32_t baudrate);


// Aux serial port driver
#if defined(RADIO_TX16S) || defined(RADIO_F16)
#if defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_DRO1)
#define DEBUG_BAUDRATE 460800
#define LUA_DEFAULT_BAUDRATE 115200
#else
Expand All @@ -306,7 +306,7 @@ void bluetoothWriteWakeup();
uint8_t bluetoothIsWriting();
void bluetoothDisable();

#if defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_V16)
#if defined(RADIO_TX16S) || defined(RADIO_F16) || defined(RADIO_V16) || defined(RADIO_DRO1)
#define BATTERY_DIVIDER 1495
#else
#define BATTERY_DIVIDER 1629
Expand Down
Loading
Loading