diff --git a/radio/src/targets/pl18/battery_driver.h b/radio/src/targets/pl18/battery_driver.h index 020b8a4a2..14fce17bc 100644 --- a/radio/src/targets/pl18/battery_driver.h +++ b/radio/src/targets/pl18/battery_driver.h @@ -42,8 +42,16 @@ enum ChargeState CHARGE_FINISHED }; -#define IS_UCHARGER_ACTIVE() gpio_read(UCHARGER_GPIO) ? 1 : 0 -#define IS_UCHARGER_CHARGE_END_ACTIVE() gpio_read(UCHARGER_CHARGE_END_GPIO) ? 1 : 0 +#if defined(UCHARGER_GPIO_PIN_INV) + #define IS_UCHARGER_ACTIVE() gpio_read(UCHARGER_GPIO) ? 0 : 1 +#else + #define IS_UCHARGER_ACTIVE() gpio_read(UCHARGER_GPIO) ? 1 : 0 +#endif +#if defined(UCHARGER_CHARGE_END_GPIO_PIN_INV) + #define IS_UCHARGER_CHARGE_END_ACTIVE() gpio_read(UCHARGER_CHARGE_END_GPIO) ? 0 : 1 +#else + #define IS_UCHARGER_CHARGE_END_ACTIVE() gpio_read(UCHARGER_CHARGE_END_GPIO) ? 1 : 0 +#endif #if defined(UCHARGER_EN_GPIO) #define ENABLE_UCHARGER() gpio_set(UCHARGER_EN_GPIO) #define DISABLE_UCHARGER() gpio_clear(UCHARGER_EN_GPIO) diff --git a/radio/src/targets/pl18/board.cpp b/radio/src/targets/pl18/board.cpp index a5fec0026..500f3cbcc 100644 --- a/radio/src/targets/pl18/board.cpp +++ b/radio/src/targets/pl18/board.cpp @@ -237,6 +237,10 @@ int usbPlugged() static uint8_t lastState = 0; uint8_t state = gpio_read(UCHARGER_GPIO) ? 1 : 0; +#if defined(UCHARGER_GPIO_PIN_INV) + state = !state; +#endif + if (state == lastState) debouncedState = state; else diff --git a/radio/src/targets/pl18/hal.h b/radio/src/targets/pl18/hal.h index d728c55d7..814fcdee9 100644 --- a/radio/src/targets/pl18/hal.h +++ b/radio/src/targets/pl18/hal.h @@ -359,6 +359,11 @@ // Chargers (USB and wireless) #define UCHARGER_GPIO GPIO_PIN(GPIOB, 14) // PB.14 input #define UCHARGER_CHARGE_END_GPIO GPIO_PIN(GPIOB, 13) // PB.13 input +#if defined(RADIO_NB4P) + #define UCHARGER_GPIO_PIN_INV + #define UCHARGER_CHARGE_END_GPIO_PIN_INV +#endif + #if defined(RADIO_PL18) || defined(RADIO_PL18EV) #define UCHARGER_EN_GPIO GPIO_PIN(GPIOG, 3) // PG.03 output #endif diff --git a/radio/util/hw_defs/switch_config.py b/radio/util/hw_defs/switch_config.py index 081f2946a..18e3c7dfa 100644 --- a/radio/util/hw_defs/switch_config.py +++ b/radio/util/hw_defs/switch_config.py @@ -66,8 +66,8 @@ SWITCH_CONFIG = { "SJ": { "default": "3POS" } }, "nb4p": { - "SA": { "default": "2POS" }, - "SB": { "default": "2POS" } + "SA": { "default": "3POS" }, + "SB": { "default": "3POS" } }, "lr3pro": { # left side