diff --git a/src/Power.cpp b/src/Power.cpp index 6add295d8..3632027c6 100644 --- a/src/Power.cpp +++ b/src/Power.cpp @@ -126,7 +126,7 @@ RAK9154Sensor rak9154Sensor; #endif #ifdef HAS_BQ27220 -#include "BQ27220.h" +#include "bq27220.h" #endif #ifdef HAS_PMU @@ -1306,8 +1306,13 @@ class LipoCharger : public HasBatteryLevel } if (bq == nullptr) { bq = new BQ27220; - bool result = bq->init(&Wire, BQ27220_I2C_SDA, BQ27220_I2C_SCL); + bq->setDefaultCapacity(BQ27220_DESIGN_CAPACITY); + + bool result = bq->init(); if (result) { + LOG_DEBUG("BQ27220 design capacity: %d", bq->getDesignCapacity()); + LOG_DEBUG("BQ27220 fullCharge capacity: %d", bq->getFullChargeCapacity()); + LOG_DEBUG("BQ27220 remaining capacity: %d", bq->getRemainingCapacity()); return true; } else { LOG_WARN("BQ27220 init failed"); @@ -1322,12 +1327,12 @@ class LipoCharger : public HasBatteryLevel /** * Battery state of charge, from 0 to 100 or -1 for unknown */ - virtual int getBatteryPercent() override { return bq->getChargePcnt(); } + virtual int getBatteryPercent() override { return bq->getChargePercent(); } /** * The raw voltage of the battery in millivolts, or NAN if unknown */ - virtual uint16_t getBattVoltage() override { return bq->getVolt(BQ27220::VOLT); } + virtual uint16_t getBattVoltage() override { return bq->getVoltage(); } // BQ27220::VOLT /** * return true if there is a battery installed in this unit @@ -1342,7 +1347,18 @@ class LipoCharger : public HasBatteryLevel /** * return true if the battery is currently charging */ - virtual bool isCharging() override { return ppm->isCharging(); } + virtual bool isCharging() override + { + bool isCharging = ppm->isCharging(); + if (isCharging) { + LOG_DEBUG("BQ27220 time to full charge: %d min", bq->getTimeToFull()); + } else { + if (!ppm->isVbusIn()) { + LOG_DEBUG("BQ27220 time to empty: %d min (%d mAh)", bq->getTimeToEmpty(), bq->getRemainingCapacity()); + } + } + return isCharging; + } }; LipoCharger lipoCharger; diff --git a/variants/t-deck-pro/platformio.ini b/variants/t-deck-pro/platformio.ini index ba6ef0c9e..0a119cef6 100644 --- a/variants/t-deck-pro/platformio.ini +++ b/variants/t-deck-pro/platformio.ini @@ -21,4 +21,4 @@ lib_deps = https://github.com/ZinggJM/GxEPD2/archive/refs/tags/1.6.4.zip https://github.com/CIRCUITSTATE/CSE_Touch/archive/b44f23b6f870b848f1fbe453c190879bc6cfaafa.zip https://github.com/CIRCUITSTATE/CSE_CST328/archive/refs/tags/v0.0.4.zip - https://github.com/mverch67/BQ27220/archive/9249016527c19bea5ab38351c7d0f1ffe4c19dd9.zip + https://github.com/mverch67/BQ27220/archive/07d92be846abd8a0258a50c23198dac0858b22ed.zip diff --git a/variants/t-deck-pro/variant.h b/variants/t-deck-pro/variant.h index 5f3722456..b08d3f65f 100644 --- a/variants/t-deck-pro/variant.h +++ b/variants/t-deck-pro/variant.h @@ -65,6 +65,7 @@ #define HAS_BQ27220 1 #define BQ27220_I2C_SDA SDA #define BQ27220_I2C_SCL SCL +#define BQ27220_DESIGN_CAPACITY 1400 // LoRa #define USE_SX1262