[Gta04-owner] ANN: first replicant 4 with 3.12 kernel available

Dr. H. Nikolaus Schaller hns at goldelico.com
Sun Feb 2 17:27:24 CET 2014


Am 02.02.2014 um 17:04 schrieb Alexandre Roumiantsev:

> Hello
> 
>> The suspend/resume issue seems solved too with this version, but need
>> more testing to confirm it
> 
> It really need a lot of testing. Moreover some thing has a draft coding.
> To be able to control power consumption more accurately I need to create
> power_config.xml file.

We did not yet notice a significant problem by not having this file, because
IMHO that its is only needed for that crappy hardware that can't read or estimate
the battery charging state directly.

I had a document describing this but don't find it at the moment.

> For Android on Freerunner project we used simple(dummy) file:
> 
> <device name="Android">
>  <item name="none">0</item>
>  <item name="screen.on">0.1</item>
>  <item name="bluetooth.active">0.1</item>
>  <item name="bluetooth.on">0.1</item>
>  <item name="screen.full">0.1</item>
>  <item name="wifi.on">0.1</item>
>  <item name="wifi.active">0.1</item>
>  <item name="wifi.scan">0.1</item>
>  <item name="dsp.audio">0.1</item>
>  <item name="dsp.video">0.1</item>
>  <item name="radio.active">1</item>
>  <!-- The current consumed by the radio when it is scanning for a
> signal -->
>  <item name="radio.scanning">0.5</item>
>  <item name="gps.on">1</item>
>  <!-- Current consumed by the radio at different signal strengths, when
> paging -->
>  <array name="radio.on"> <!-- Strength 0 to BINS-1 -->
>      <value>0.2</value>
>      <value>0.1</value>
>  </array>
>  <!-- Different CPU speeds as reported in
>       /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state -->
>  <array name="cpu.speeds">
>      <value>400000</value> <!-- 400 MHz CPU speed -->
>  </array>
>  <!-- Power consumption when CPU is idle -->
>  <item name="cpu.idle">0.1</item>
>  <!-- Power consumption at different speeds -->
>  <array name="cpu.active">
>      <value>0.2</value>
>  </array>
> </device>
> 
> here is an example some more complicate file:
> 
>    <device name="Android">
>        <!-- All values are in mAh except as noted -->
>        <item name="none">0</item>
>        <item name="screen.on">42.4</item>
>        <item name="screen.full">211.6</item>
>        <item name="bluetooth.active">66.2</item>
>        <item name="bluetooth.on">0.7</item>
>        <item name="wifi.on">6.44</item>
>        <item name="wifi.active">101.56</item>
>        <item name="wifi.scan">52.1</item>
>        <item name="dsp.audio">0.1</item>
>        <item name="dsp.video">0.1</item>
>        <item name="gps.on">59.7</item>
>        <item name="radio.active">185.6</item>
>        <!-- The current consumed by the radio when it is scanning for a
> signal -->
>        <item name="radio.scanning">122.68</item>
>        <!-- Current consumed by the radio at different signal
> strengths, when paging -->
>        <array name="radio.on"> <!-- Strength 0 to BINS-1 -->
>            <value>1.7</value>
>            <value>2.4</value>
>        </array>
>        <!-- Different CPU speeds as reported in
>             /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
> -->
>        <array name="cpu.speeds">
>            <value>384000</value> <!-- 384 MHz CPU speed -->
>            <value>486000</value> <!-- 486 MHz CPU speed -->
>            <value>594000</value> <!-- 594 MHz CPU speed -->
>            <value>702000</value> <!-- 702 MHz CPU speed -->
>            <value>810000</value> <!-- 810 MHz CPU speed -->
>            <value>918000</value> <!-- 918 MHz CPU speed -->
>            <value>1026000</value> <!-- 1026 MHz CPU speed -->
>            <value>1134000</value> <!-- 1134 MHz CPU speed -->
>            <value>1242000</value> <!-- 1242 MHz CPU speed -->
>            <value>1350000</value> <!-- 1350 MHz CPU speed -->
>            <value>1458000</value> <!-- 1458 MHz CPU speed -->
>            <value>1512000</value> <!-- 1512 MHz CPU speed -->
>        </array>
>        <!-- Power consumption when CPU is idle -->
>        <item name="cpu.idle">3.5</item>
>        <item name="cpu.awake">35.33</item>
>        <!-- Power consumption at different speeds -->
>        <array name="cpu.active">
>            <value>92.6</value> <!-- 384 MHz CPU speed -->
>            <value>108.6</value> <!-- 486 MHz CPU speed -->
>            <value>118.8</value> <!-- 594 MHz CPU speed -->
>            <value>121.4</value> <!-- 702 MHz CPU speed -->
>            <value>127.3</value> <!-- 810 MHz CPU speed -->
>            <value>133.1</value> <!-- 918 MHz CPU speed -->
>            <value>173.3</value> <!-- 1026 MHz CPU speed -->
>            <value>209.5</value> <!-- 1134 MHz CPU speed -->
>            <value>216.5</value> <!-- 1242 MHz CPU speed -->
>            <value>228.5</value> <!-- 1350 MHz CPU speed -->
>            <value>236.0</value> <!-- 1458 MHz CPU speed -->
>            <value>239.7</value> <!-- 1512 MHz CPU speed -->
>        </array>
>        <!-- This is the battery capacity in mAh -->
>        <item name="battery.capacity">2100</item>
>    </device>
> 
> Please, somebody who has some technical knowledge about, give me an idea
> about the file.

This is a set of parameters to calibrate an estimation function within Android.
With that data it tries to estimate how fast the battery discharges and make
decisions on it. E.g. it knows that a faster CPU draws more mA. And a GPS
receiver as well.

But we have a fuel gauge. I.e. we know the outcome of this.

I hope Android is well enough designed that it can take that better data...

If not, you have to measure the average power consumption e.g. without
Bluetooth. Then recharge the battery and measure with Bluetooth on.
The difference (in mA) is obviously put into  <item name="bluetooth.active">66.2</item>

BR,
Nikolaus



More information about the Gta04-owner mailing list