#!/bin/bash # Based on https://github.com/Photonicsguy/CHIP # Enable ADC registers i2cset -y -f 0 0x34 0x82 0xff ## REGISTER 00 ## REG=$(i2cget -y -f 0 0x34 0x00) STATUS_ACIN=$(($(($REG&0x80))/128)) STATUS_VBUS=$(($(($REG&0x20))/32)) STATUS_CHG_DIR=$(($(($REG&0x04))/4)) REG=$(i2cget -y -f 0 0x34 0x01) STATUS_CHARGING=$(($(($REG&0x40))/64)) STATUS_BATCON=$(($(($REG&0x20))/32)) BAT_C=0 BAT_D=0 if [ $STATUS_ACIN == 1 ]; then # ACIN voltage REG=$(i2cget -y -f 0 0x34 0x56 w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG=$(printf "%d" "$REG") ACIN=$(echo "$REG*0.0017"|bc) # ACIN Current REG=$(i2cget -y -f 0 0x34 0x58 w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG=$(printf "%d" "$REG") ACIN_C=$(echo "$REG*0.000625"|bc) else ACIN=0 ACIN_C=0 fi if [ $STATUS_VBUS == 1 ]; then # VBUS voltage REG=$(i2cget -y -f 0 0x34 0x5A w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG=$(printf "%d" "$REG") VBUS=$(echo "$REG*0.0017"|bc) # VBUS Current REG=$(i2cget -y -f 0 0x34 0x5C w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG=$(printf "%d" "$REG") VBUS_C=$(echo "$REG*0.000375"|bc) else VBUS=0 VBUS_C=0 fi if [ $STATUS_BATCON == 1 ]; then # Battery Voltage REG=$(i2cget -y -f 0 0x34 0x78 w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG=$(printf "%d" "$REG") VBAT=$(echo "$REG*0.0011"|bc) if [ $STATUS_CHG_DIR == 1 ]; then # Battery Charging Current REG=$(i2cget -y -f 0 0x34 0x7A w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG_C=$(printf "%d" "$REG") BAT_C=$(echo "scale=2;$REG_C*0.001"|bc) else # Battery Discharge Current REG=$(i2cget -y -f 0 0x34 0x7C w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG_D=$(printf "%d" "$REG") BAT_D=$(echo "scale=2;$REG_D*0.001"|bc) fi # Battery % REG=$(i2cget -y -f 0 0x34 0xB9) BAT_PERCENT=$(printf "%d" "$REG") else VBAT=0 #BATT_CUR=0 BAT_PERCENT=0 fi # Temperature REG=$(i2cget -y -f 0 0x34 0x5E w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}') REG=$(printf "%d" "$REG") THERM=$(echo "($REG*0.1)-144.7"|bc) echo "$THERM" echo $ACIN echo $ACIN_C echo $VBUS echo $VBUS_C echo $VBAT echo "$(echo "$BAT_C-$BAT_D"|bc)" echo $BAT_PERCENT echo $STATUS_CHARGING