Nexus 5, ParanoidAndroid, Franco.Kernel and Undervolting

By | June 8, 2014

Update: I no longer have my N5 undervolted, but will keep the voltages here. I have however changed a few of the CPU options, and in turn have updated this post.

So I managed to get myself a Nexus 5, which best of all was free. So I thought I would do another post about my settings like what I’ve done in the past for my Galaxy S2, Xperia Z and Xperia Z1. So without further ado here is my set up.

Device: Google Nexus 5 (16GB Black)
ROM: ParanoidAndroid (4.5 Alpha 3)
Kernel: franco.Kernel (r54)

So I am running ParanoidAndroid 4.4 RC2 (4.4.3) with franko.Kernel which is running beautifully.

Here is all the CPU, GPU and Miscellaneous settings that I’ve configured which loads on boot via init.d, some of it is from Vomer’s settings, and some from Piereligio’s colour profile (I’m using TrueRGBv7).

Note: I am not responsible if any of these settings makes your Nexus 5 catch on fire.

Per-App Modes

  • Books: Adobe Reader, AdSense, Westpac, Calendar, Dominos, File manager, Fuelly, eBay, Google Opinion Rewards, Google Play Books, Keep, Paypal, SpeedTest, WordPress
  • DualCore: 2048, Candy Crush, Chrome Beta, Clean Master, Facebook, Facebook Messenger, Flappy Bird, Gmail, Google+, Hangouts, Instagram, MOG, PicFrame, PicSay Pro, Skype, XDA, YouTube
  • QuadCore: Fast & Furious 6

CPU

echo “interactive” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo “70” /sys/module/msm_thermal/parameters/temp_threshold
echo “50000” > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo “300000” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo “1190400” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo “500000” > /sys/devices/system/cpu/cpufreq/interactive/sync_freq
echo “700000” > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo “800000” > /sys/devices/system/cpu/cpufreq/interactive/input_boost_freq
echo “120000” > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo “0” > /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
echo “95” > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo “10000” > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo “90” > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo “0” > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy

Screen

echo “N” > /sys/module.lm3630_bl/parameters/backlight_dimmer
echo “0” > /sys/module.lm3630_bl/parameters/min_brightness

GPU

echo “320000000” > /sys/class/kgsl/kgsl-3d0/max_gpuclk
echo “4” > /sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/min_pwrlevel
echo “25” > /sys/module/msm_kgsl_core/parameters/up_threshold
echo “10” > /sys/module/msm_kgsl_core/parameters/down_threshold
echo “4” > /sys/class/kgsl/kgsl-3d0/min_pwrlevel

Miscellaneous

Hotplug

echo “0” > /sys/devices/virtual/misc/mako_hotplug_control/load_threshold

Enable Fast Charge

echo “1” > /sys/kernel/fast_charge/force_fast_charge

Disable FSync

echo “N” > /sys/module/sync/parameters/fsync_enabled

Disable Logging

echo “0” > /sys/module/logger/parameters/enabled

Volume Tweaks

Headphones
echo “5” > /sys/class/misc/soundcontrol/volume_boost

Headset Gain
echo “3” > /sys/class/misc/soundcontrol/headset_boost

Mic gain
echo “3” > /sys/class/misc/soundcontrol/mic_boost

Speaker Gain
echo “5” > /sys/class/misc/soundcontrol/speaker_boost

Colour Profile

echo “0 12 19 30 39 48 56 72 82 104 118 127 119 116 115 106 84 78 66 60 44 35 20” > /sys/module/dsi_panel/kgamma_rp
echo “0 12 19 30 39 48 56 72 82 104 118 131 120 116 114 107 100 78 66 60 44 35 20” > /sys/module/dsi_panel/kgamma_rn
echo “0 12 20 31 40 55 62 76 89 109 123 132 115 113 111 103 78 75 67 58 49 39 21” > /sys/module/dsi_panel/kgamma_gp
echo “0 12 20 31 40 55 62 79 84 109 123 134 116 112 112 104 101 76 67 58 49 39 21” > /sys/module/dsi_panel/kgamma_gn
echo “0 12 19 30 39 48 56 72 83 105 119 130 119 115 116 106 88 80 71 62 52 42 25” > /sys/module/dsi_panel/kgamma_bp
echo “0 12 19 30 39 48 56 72 83 105 121 130 118 115 114 108 100 80 66 60 48 38 22” > /sys/module/dsi_panel/kgamma_bn
echo “32” > /sys/module/dsi_panel/kgamma_w

Vibration

echo “80” > /sys/class/timed_output/vibrator/amp

As for undervolting, my CPU is a “PVS-0”. Taken from this post you can check what PVS revision your CPU is.

The Qualcomm (S4 Pro) SoC has 4 different variant. Slow, Nominal, Fast and Faster (0, 1, 2, 3) . Faster variants can undervolt a lot lower than the rest, or it should already be pre-configured automatically at a lower voltage like the Nexus 4, so some Xperia Z will have less heat and perform better in battery life. For example, for nominal variants, they might only be able to undervolt around -100mV while faster variants can undervolt around 175mV – 250mV.

Voltages (Frequency = STOCK = MINE)

  • 300000 = 800000 = 650000 (-150)
  • 345000 = 800000 = 700000 (-100)
  • 422000 = 800000 = 700000 (-100)
  • 652000 = 810000 = 735000 (-75)
  • 729000 = 820000 = 745000 (-75)
  • 883000 = 840000 = 790000 (-50)
  • 960000 = 850000 = 800000 (-50)
  • 1036000 = 860000 = 810000 (-50)
  • 1190000 = 885000 = 835000 (-50)
  • 1267000 = 895000 = 845000 (-50)
  • 1497000 = 930000 = 880000 (-50)
  • 1574000 = 945000 = 895000 (-50)
  • 1728000 = 975000 = 925000 (-50)
  • 1958000 = 1020000 = 975000 (-50)
  • 2265000 = 1075000 = 1025000 (-50)
  • 2419000 = 1090000 = 1040000 (-50)
  • 2572000 = 1105000 = 1055000 (-50)
  • 2726000 = 1120000 = 1070000 (-50)
  • 2803000 = 1150000 = 1100000 (-50)
  • 2880000 = 1175000 = 1125000 (-50)
  • 3014000 = 1200000 = 1150000 (-50)
  • Thomas Friedrich

    Thanks for those settings, especially the voltage ones. These settings
    are so good, I am using them on my N5 and Fauy kernel, and it is rock
    stable and saving battery at the same time. You have saved me hours of experimenting, so thank you again! :-)

  • Pingback: ??? » Nexus 5?????????????? for ROOT()