diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index ea65013dc..1febe2658 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -62,6 +62,7 @@ if(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019) else() option(USBJ_EX "Enable USB Joystick Extension" ON) endif() +option(POWER_LED_BLUE "Override Power LED to be normally Blue" OFF) # since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags. set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).") @@ -434,6 +435,10 @@ if(USBJ_EX) ) endif() +if(POWER_LED_BLUE) + add_definitions(-DPOWER_LED_BLUE) +endif() + foreach(FILE ${TARGET_SRC}) set(SRC targets/${TARGET_DIR}/${FILE} ${SRC}) endforeach() diff --git a/radio/src/edgetx.h b/radio/src/edgetx.h index a9ba78746..4586a2f0e 100644 --- a/radio/src/edgetx.h +++ b/radio/src/edgetx.h @@ -598,10 +598,10 @@ constexpr uint8_t OPENTX_START_NO_CHECKS = 0x04; #if defined(STATUS_LEDS) #define LED_ERROR_BEGIN() ledRed() -// Green is preferred "ready to use" color for these radios -#if defined(MANUFACTURER_RADIOMASTER) || defined(MANUFACTURER_JUMPER) || defined(RADIO_COMMANDO8) -#define LED_ERROR_END() ledGreen() -#define LED_BIND() ledBlue() + // Green is preferred "ready to use" color for these radios, unless overridden by user +#if !defined(POWER_LED_BLUE) && (defined(MANUFACTURER_RADIOMASTER) || defined(MANUFACTURER_JUMPER) || defined(RADIO_COMMANDO8)) + #define LED_ERROR_END() ledGreen() + #define LED_BIND() ledBlue() #else // Either green is not an option, or blue is preferred "ready to use" color #define LED_ERROR_END() ledBlue() diff --git a/radio/src/options.h b/radio/src/options.h index 6377452b6..1c01e8abd 100644 --- a/radio/src/options.h +++ b/radio/src/options.h @@ -102,6 +102,9 @@ static const char * const options[] = { #endif #if defined(ENABLE_SERIAL_PASSTHROUGH) "passthrough", +#endif +#if defined(POWER_LED_BLUE) + "power_led_blue", #endif nullptr //sentinel }; diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index 21bc56d37..002bc7fe7 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -259,7 +259,12 @@ void boardInit() rtcInit(); // RTC must be initialized before rambackupRestore() is called #endif +#if !defined(POWER_LED_BLUE) ledBlue(); +#else + ledGreen(); +#endif + #if !defined(LCD_VERTICAL_INVERT) lcdSetInitalFrameBuffer(lcdFront->getData()); #elif defined(RADIO_F16) diff --git a/radio/src/targets/pl18/board.cpp b/radio/src/targets/pl18/board.cpp index 31383cba6..21642ee1d 100644 --- a/radio/src/targets/pl18/board.cpp +++ b/radio/src/targets/pl18/board.cpp @@ -288,7 +288,11 @@ void boardInit() rtcInit(); // RTC must be initialized before rambackupRestore() is called #endif #if defined(LED_STRIP_GPIO) +#if !defined(POWER_LED_BLUE) ledBlue(); +#else + ledGreen(); +#endif #endif lcdSetInitalFrameBuffer(lcdFront->getData()); diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 9e677c25d..e3832628e 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -167,7 +167,7 @@ void boardInit() #if defined(STATUS_LEDS) ledInit(); -#if defined(MANUFACTURER_RADIOMASTER) || defined(MANUFACTURER_JUMPER) || defined(RADIO_COMMANDO8) +#if !defined(POWER_LED_BLUE) && (defined(MANUFACTURER_RADIOMASTER) || defined(MANUFACTURER_JUMPER) || defined(RADIO_COMMANDO8)) ledBlue(); #else ledGreen();