[Oppo Find 5] honf:
Hey, if anyone is is interested in undervolting the CPU please post your experiences here.

I have collected some basic data on my phone using maxwens kernel (version 201306252333) and XenonHD ROM (first release). My CPU is marked as faster.

Tried to undervolt the device as much as possible, while still maintaining stability under full load. Full load being wifi, bluetooth and GPS all running, CPU @ 100% load, minimal GPU load (ran at 325MHz most of the time) and screen brightness at ~33%.

The data I was most interested in was the temperature difference between running stock and undervolted settings at all frequencies. This is presented further down in the post.

The tools I used were Trickster MOD (works only with maxwells kernel):

monitoring CPU temperature

quickly changing voltage levels

forcing CPU frequency to stay locked, to ensure I achive maximum undervolt at each frequency step

and StabilityTest to fully load all cores.

A few tips for those who will attempt this.

Thermal throttling starts to kick in at 60+C and kicks down your clock (even when min and max are locked into one frequency) to keep temperatures in check. This can be disabled, but do be careful if you decide to do that.

Have Wifi, bluetooth enabled, when testing for stability also turn GPS on and try to get a lock. Doing this with full load will crash the device, where as only full load without GPS locking it would have passed. You don't want your Oppo to reset on you when you need it most would you? ;)

Do note, I did not let the device cool down for each frequency. I started at the maximum to warm up the whole phone. After that I started at the highest frequency and worked my way down continuously while giving it a minute to stabilize, ensuring that the device is thermally saturated (e.g. the whole phone kept warm). Since the temperature should only get lower, I figure this is the most correct way to collect the temperature data and compare results. The device layed on a wooden desk, so no heatsinks were involved, not even my hands :)

As for the raw numbers, here they are.

With a hot device, going from maximum frequency to lowest frequency

╔═══════════╦════════════════╦═════════════════╦════════════════════╦═════════════════╗
║ Frequency ║ Undervolt (mV) ║ Temperature (C) ║ Stock voltage (mV) ║ Temperature (C) ║
╠═══════════╬════════════════╬═════════════════╬════════════════════╬═════════════════╣
║ 1512 ║ 1025 ║ 76 ║ 1125 ║ 79 ║
║ 1458 ║ 1000 ║ 74 ║ 1112 ║ 79 ║
║ 1350 ║ 950 ║ 71 ║ 1100 ║ 78 ║
║ 1242 ║ 925 ║ 69 ║ 1075 ║ 77 ║
║ 1134 ║ 900 ║ 66 ║ 1050 ║ 75 ║
║ 1026 ║ 750 ║ 61 ║ 1000 ║ 68 ║
║ 918 ║ 725 ║ 59 ║ 975 ║ 64 ║
║ 810 ║ 700 ║ 58 ║ 962 ║ 62 ║
║ 702 ║ 700 ║ 56 ║ 925 ║ 61 ║
║ 594 ║ 700 ║ 55 ║ 900 ║ 58 ║
║ 486 ║ 700 ║ 54 ║ 875 ║ 56 ║
║ 384 ║ 700 ║ 51 ║ 850 ║ 54 ║
║ 270 ║ 700 ║ 50 ║ 850 ║ 52 ║
║ 162 ║ 700 ║ 50 ║ 850 ║ 51 ║
╚═══════════╩════════════════╩═════════════════╩════════════════════╩═════════════════╝

And a quick chart

With a cold device, going from minimum frequency to maximum frequency

╔═══════════╦════════════════╦═════════════════╦════════════════════╦═════════════════╗
║ Frequency ║ Undervolt (mV) ║ Temperature (C) ║ Stock voltage (mV) ║ Temperature (C) ║
╠═══════════╬════════════════╬═════════════════╬════════════════════╬═════════════════╣
║ 162 ║ 700 ║ 38 ║ 850 ║ 39 ║
║ 270 ║ 700 ║ 38.5 ║ 850 ║ 40 ║
║ 384 ║ 700 ║ 39 ║ 850 ║ 40 ║
║ 486 ║ 700 ║ 42 ║ 875 ║ 43 ║
║ 594 ║ 700 ║ 44 ║ 900 ║ 45 ║
║ 702 ║ 700 ║ 45.5 ║ 925 ║ 46 ║
║ 810 ║ 700 ║ 46 ║ 962 ║ 48 ║
║ 918 ║ 725 ║ 48 ║ 975 ║ 50 ║
║ 1026 ║ 750 ║ 50 ║ 1000 ║ 53 ║
║ 1134 ║ 900 ║ 56 ║ 1050 ║ 59 ║
║ 1242 ║ 925 ║ 58 ║ 1075 ║ 64 ║
║ 1350 ║ 950 ║ 60 ║ 1100 ║ 68 ║
║ 1458 ║ 1000 ║ 65 ║ 1112 ║ 71 ║
║ 1512 ║ 1025 ║ 69 ║ 1125 ║ 75 ║
╚═══════════╩════════════════╩═════════════════╩════════════════════╩═════════════════╝

I will update OP with a table and chart of what the situation looks like when I start with a cold device from the lowest frequency and work my way up to the highest (have a few datapoint already, it looks more or less the same, temperatures are lower though since the device is never fully saturated with heat).

All in all, undervolting does seem to have a positive effect on temperature. :victory:

Whats most interesting from this experiment is that the CPU cools off a lot faster when undervolted compared to stock voltage. which is a huge boon.

By cooling off faster, I mean the temperature CPU reaches when it goes to a lower frequency under full load. I did not include time measurements, I should have though :\ Alas, it was 1 to 2 minutes each time I lowered the frequency to let the CPU/phone shake off some heat.

Again, the reason as far as I can conclude, when not undervolted the temperature stays up so high (on higher frequencies and also lower) is that the CPU is producing the same amount of heat that is getting radiated away from the phone. By undervolting CPU produces less heat, the radiated heat stays the same and as a consequence the CPU cools down faster. I should definitely try the same test in different ambient temperature environments, since that should play a huge factor. Also a pretty big factor should be sun exposure, not sure how to procede with that. I'll try to mimic GPS dashboard usage in a car, e.g. the backside gets partial sun exposure.

TODO:

✓ Post data when starting from a cold device and ramping the frequency from low to high. Not sure if this represents any kind of device use though. More data is always nice.

Repeat measurements @ different ambient temperatures (also humidity?)

And ideas or tests of your own are most welcomed!

Edit 30.6.2013:

Added cold device test.