From 3626436edd4ef8b21a464dded8d4a6f68a7d00b4 Mon Sep 17 00:00:00 2001 From: Aditya Prayoga Date: Mon, 26 Oct 2020 14:26:08 +0700 Subject: [PATCH] Helios64: Added UPS usage in Linux --- .../img/ups/battery_level_schematic.png | Bin 0 -> 39293 bytes docs/helios64/ups.md | 65 +++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 docs/helios64/img/ups/battery_level_schematic.png diff --git a/docs/helios64/img/ups/battery_level_schematic.png b/docs/helios64/img/ups/battery_level_schematic.png new file mode 100644 index 0000000000000000000000000000000000000000..48b77b38945d28ac93d6b970e0a43648bf7ee8ce GIT binary patch literal 39293 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 literal 0 HcmV?d00001 diff --git a/docs/helios64/ups.md b/docs/helios64/ups.md index c1ff3f4..930d380 100644 --- a/docs/helios64/ups.md +++ b/docs/helios64/ups.md @@ -36,7 +36,7 @@ The battery pack is rated 7.2V 3180mAh (22.9Wh) with max continuous discharge of ## Charge Management -Battery charge is fully managed by hardware, no software required. Charging function still operates when system is powered off. Helios64 board provides a visual charging indicator on LED9. +Battery charge is fully managed by hardware ([Texas Instrument BQ24133](https://www.ti.com/product/BQ24133)), no software required. Charging function still operates when system is powered off. Helios64 board provides a visual charging indicator on LED9. |LED State | Description | |-----------|-------------| @@ -45,3 +45,66 @@ Battery charge is fully managed by hardware, no software required. Charging func | Blinking | Fault / Battery Absent | **Note:** The estimated time to fully charge the empty battery is around 4 hours. + +## UPS Status Under Linux + +In Linux, the UPS declared as gpio-charger located at +`/sys/class/power_supply/gpio-charger` + + +### Main Power Status + +Main Power status can be read using + +```bash +cat /sys/class/power_supply/gpio-charger/online +``` + +**1** means power adapter supplying the power. + +**0** means loss of power, power adapter no longer supplying power. + +### Charging Status + +!!! Note + This status is unavailable on Linux Kernel 4.4 + +Battery charging status can be read using + +```bash +cat /sys/class/power_supply/gpio-charger/status +``` + +It will return **Charging** or **Not Charging** + +!!! Info + The status is only **valid** when main power is available. + + *Fault / Battery Absent* status is unavailable but it can be concluded if the status keep changing. + +### Battery Level + +Battery voltage can be measured on internal ADC channel 2. The internal ADC is located at +`/sys/bus/iio/devices/iio:device0` + +![!Battery level](/helios64/img/ups/battery_level_schematic.png) + + +Following table show scalling between ADC reading and actual battery voltage + +| Battery Voltage (V) | ADC reading (mV) | Remarks | +|---------------------|------------------|---------| +| 0 | 114 | No batteries | +| 7.0 | 916 | Recommended threshold to force shutdown system | +| 8.4 | 1099 | Fully Charge | + +[IIO subsystem](https://www.kernel.org/doc/html/latest/driver-api/iio/index.html) provide hardware raw value. To convert the raw value to standard units, use following formula + +`adc = in_voltage2_raw * in_voltage_scale` + +To get the actual ADC reading in shell run following command + +```bash +echo "`cat /sys/bus/iio/devices/iio:device0/in_voltage2_raw` * `cat /sys/bus/iio/devices/iio:device0/in_voltage_scale`" | bc +``` +