From 9e6ab8459920c065a112458bb2d80926d7fa6215 Mon Sep 17 00:00:00 2001 From: Batambatam <89753019+Batambatam@users.noreply.github.com> Date: Sun, 13 Mar 2022 13:04:15 +0100 Subject: [PATCH] feat: TPro - Use function switch leds as charge level indicator when charging Co-authored-by: Batam Port of https://github.com/opentx/opentx/pull/8871 --- radio/src/targets/taranis/board.cpp | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 3d2fde428..a3fb98637 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -158,6 +158,43 @@ void boardInit() ledGreen(); #endif +// Support for FS Led to indicate battery charge level +#if defined(RADIO_TPRO) + // This is needed to prevent radio from starting when usb is plugged to charge + usbInit(); + // prime debounce state... + usbPlugged(); + + if (usbPlugged()) { + delaysInit(); + adcInit(&stm32_hal_adc_driver); + getADC(); + pwrOn(); // required to get bat adc reads + storageReadRadioSettings(false); // Needed for bat calibration + INTERNAL_MODULE_OFF(); + EXTERNAL_MODULE_OFF(); + + while (usbPlugged()) { + // Let it charge ... + getADC(); + delay_ms(20); + if (getBatteryVoltage() >= 660) + fsLedOn(0); + if (getBatteryVoltage() >= 700) + fsLedOn(1); + if (getBatteryVoltage() >= 740) + fsLedOn(2); + if (getBatteryVoltage() >= 780) + fsLedOn(3); + if (getBatteryVoltage() >= 820) + fsLedOn(4); + if (getBatteryVoltage() >= 842) + fsLedOn(5); + } + pwrOff(); + } +#endif + keysInit(); #if defined(ROTARY_ENCODER_NAVIGATION)