How to undervolt a mac to increase its battery life.
Last Updated: Sat Sep 19 2020
Macbooks are known for packing powerful specs under a slim body. Due to insufficient cooling, they run hot and if you are doing some heavy work the temperature even reaches around 90 degrees but no worries! we have found a fix for it ‘undervolting’. It can reduce your MacBook’s temperature by 10-15 degrees. The undervolting process is easy in windows via software such as Intel extreme utility. But in mac, it is not easy to do, so I decided to write one as I didn’t find any undervolting a mac article on the internet.
Why should you undervolt a mac?
As I said above undervolting a processor improves its performance by allowing it to stay at turbo boost for a longer period, it also improves battery life as the voltage to the CPU will be reduced and heating is also less. So as you can see there are so many advantages of undervolting a CPU. Also if you want more performance you can overclock your CPU along with undervolt.
Underclocking vs undervolting. Which is better?
Underclocking is what most of us prefer when it comes to reducing heat and increasing battery life but it impacts the performance in a negative way means your performance will go down as you underclock your processor. But that’s not the case with undervolting, here you reduce the voltage of the CPU and GPU by some mV so the CPU can run efficiently in all its frequencies. In undervolting, battery life will be increased, heat will be reduced and performance will also increase because if your CPU will be generating low heat, it can stay at turbo speed for a higher period of time. Unlike underclocking in which you can reduce clock speed in one click, undervolting requires some time because you have to experiment in order to achieve a stable voltage in which your CPU will ideally and this will require several reboots and several hours of stress tests.
Before we begin make sure that your mac or Hackintosh is running mac 10.12 or higher otherwise it won’t work. So let’s start.
Method 1. Using undervolting script
Step 1. Download the script from here and unzip it.
Step 2. Reboot your mac and while it starts press command + R to boot into recovery mode. In recovery mode click utilities and open terminal. In terminal type:
csrutil enable --without kext
and then reboot. This command will turn off the SIP for unsigned kexts. For Hackintosh users, if you are using clover chances are your SIP is already disabled and for open-core users you can add an NVRAM variable or use recovery like above to disable it.
Step 3. Open the Terminal app, type cd and then drag the voltageshift folder from downloads to the terminal window or you can manually type the path to the folder. Now type “"./voltageshift info” by this command, you can see your current voltage stats, as you have not applied Undervoltage settings the voltage should be 0 and once you Undervoltage your CPU the voltage will be –xx
this will decrease the CPU voltage by -60 mV, to check if it is working type ./voltageshift info and now in voltageshift info, you should see CPU voltage offset of -60mv.
Now we have to check whether the applied settings is stable or not if the voltage is unstable your system will freeze and will shutdown. Please note that every single CPU is different, even if we have the same CPU the settings worked for me may doesn’t work for you, So you have to test yourself by a stress test.
I have undervolt my CPU by -75mVStep 5. Open another 5 terminal windows and type:
yes > /dev/null
in all the 5 terminal window. Every terminal window will consume 20% of your CPU, so 5 windows will utilize 100% for your CPU. Now leave your mac for 1 hour to make sure it is stable. However, a 1-hour stress test is not required for -60 mV offset because it is not too much if you undervolt it further like -80 mV or -100mV then you need some hours of testing to ensure that the settings is stable enough to be a daily driver.
Now from the above command, the undervolt settings will be there until you reboot means after you reboot you have to again follow those steps. To save our time and not entering the commands, again and again, we will make the script run at every boot, so the settings get applied automatically.
In the example -140 is CPU offset, both -100 is GPU and CPU Cache offset, zeros are SystemAgency, Analogy I/O and Digital I/O, 1 is Turbo boost enabled, to disable use 0, 45 is power min and 60 is power max.
Method 2. Undervolt using volta.
In this method, we will use an app called Volta to undervolt our CPU. The above script and this app both use the same method to undervolt the CPU means you must enable SIP without kext. Volta provides a graphical interface for easy undervolting. But the sad thing is that the app is not free. You have to pay $8 to use the app. However, it is available for 7 day trial for testing or you can use clean my mac to reset its trial.
Step 2. Open the app then a power icon will appear in the taskbar. Click on the icon and use the slider to set it to -75 and click apply.
Step 3. Open 5 terminal windows and paste this “yes > /dev/null” command in every window. This will start a stress test to ensure that the applied voltage is stable if your mac freezes or shuts down that means the applied voltage is not stable and you have to reduce it.
Step 4. To automatically undervolt your CPU while you log in, click the volta icon and then click the settings icon below left. In settings enable ‘launch volta on login’ option. You can also enable low power when unplugged to get more battery life.
Did you face any problem while undervolting your mac? feel free to ask in comments!
Update 1: The above guides are only working for Macintoshes or Hackintoshes with Intel Haswell and Broadwell CPUs
Update 2: Actually VoltageShift works for newer CPUs too! The script officially says it only works for Haswell and Broadwell. But I tired it on my i7 7700hq kaby lake hackintosh and it worked!
David Nightingale · Mon Feb 18 2019 · Reply Hi, will your script work with a mid 2012 Macbook Pro (2.7 GHz core i7)? The reason I ask is that I know that Volta only works with Haswell and Broadwell processors (Macbooks from 2013 - 2015) so thought I should check before trying your script. Cheers.
manash · Mon Feb 18 2019 · Reply I don't know exactly it will work or not. But can try it!
John · Sun Feb 24 2019 · Reply Method 1 work with macbook pro 2018 version?
manash · Sun Feb 24 2019 · Reply Sorry I don't own 2018 MacBook pro. But you can definitely try it
Hops · Sat Mar 02 2019 · Reply Does method 1 require you to disable SIP like volta?
alejandro · Sun Mar 10 2019 · Reply Hi, I have just installed Volta app in MacBook Air 11 2014 (Haswell). However, I al new at these type of things. Which is the best configuration to extend battery life? I only use the MacBook with pages or Word. I read that turning of turbo boost with turbo boot switcher it is good in term of battery. So, Should I to unmark the turboboost option? Wich undervolt limit is good to extend the battery? Thanks a million from Spain
manash · Wed Mar 13 2019 · Reply If you are ok with some performance drop by turning off turbo boost, then you can disable it. The more you undervolt the better battery life you get. Start from low like -50 and do some stability testing and if it is stable increase it further.
alejandro · Mon Mar 11 2019 · Reply I’d like to know which is the best configuration to extend the battery life on a MacBook Air (Haswell). I mark power and unmark turbo boost? -65mV si ok to office tasks? And how about de wats? I apology for my English and the lack of knowledge, I al new at these kind of things. Thanks a million
Armin · Wed Mar 13 2019 · Reply Hi, if I type "./voltageshift info" it only asks my password and doesn't show anything subsequently. Did I do something wrong?
Armin · Wed Mar 13 2019 · Reply After applying "sudo chown -R root:wheel build/Release/VoltageShift.kext" I can view the stats and infos but I still cannot apply any voltage as it says 0mV before and after... any ideas?
manash · Wed Mar 13 2019 · Reply I think it is a bug, it happened to me also. After applying the undervolt restart the PC and it will show up in info
Jason · Fri Mar 22 2019 · Reply i have the same problem as Armin. I run info but nothing appears. it excutes fine no error, but no info appears. id there a fix?
Brandon · Tue Mar 26 2019 · Reply What do I type in the script to also undervolt the GPU when the mac is booted?
Stan · Mon May 06 2019 · Reply Thank you, works like a charm.
Dave · Mon May 06 2019 · Reply Domain with the script/kext has expired.
Apello · Fri Jun 21 2019 · Reply I'm having the same problem as Jason where after entering “./voltageshift info” nothing appears. Is there a solution to this? Thanks.
Jeff · Sat Jul 13 2019 · Reply I also have the same problem as Jason Where after entering “./voltageshift info” and Nothing appears. MacBook Pro 2019 i9 8cores.
Bob · Mon Jul 15 2019 · Reply Just like everyone else, I also have problems when I enter “./voltageshift info” and nothing appears. In fact, it just asks for password and nothing pops up. I can't change voltage or anything because nothing appears.
Manash · Tue Jul 16 2019 · Reply that is a bug in the script. The script doesn't show the info but the undervolt is working correctly
Andy · Wed Jul 17 2019 · Reply Hey! do you know if this will work with a 2016 15" MBP?
5k0tt · Fri Aug 30 2019 · Reply How to make this script work on a MBP Late 2007 (Santa Rosa CPU)? Thanks!
Manash · Fri Aug 30 2019 · Reply Sorry I'm not sure but you can try
Rommy Linders · Tue Oct 08 2019 · Reply Hey dear Editor, the download link of the script isn't working, can you maybe please fix this issue? Thank you!
hut_hut · Sun Oct 13 2019 · Reply The link to the voltage script is gone, can you give the code to GitHub link?
Shaun · Wed Jan 08 2020 · Reply If this is like Volta, It will only work with MacBooks Pros and Airs with with Haswell and Broadwell architectures. Early 2013 and previous MacBooks won't work, 2016+ MacBooks won't work either. The best you can do for a new MacBook Pro is use Volta and either disable Turbo Boost, or set the power limit to lower than 45W.
Jakub · Sun Jan 19 2020 · Reply Succesfully disabled SIP (with command csrutil disable, since the one above does not work on Catalina. But when I type the ./voltageshift info or offset commands, it just says killed 9 and nothing happens (2012 15'' retina)
Vivalareprecion · Mon Mar 09 2020 · Reply Same problem here, the script is being blocked by the OS (late 2013)
Manash · Sat Sep 19 2020 Follow the instructions here: https://github.com/sicreative/VoltageShift/issues/34
lukas · Fri Jan 24 2020 · Reply hey, i did everything correctly i am on mac os catalina with an 2015 macbook pro but i have problem: Last login: Fri Jan 24 13:00:18 on ttys000 [email protected] ~ % cd /Users/l/Downloads/voltageshift\ \(1\) [email protected] voltageshift (1) % ./voltageshift info zsh: killed ./voltageshift info [email protected] voltageshift (1) % any solutions? its detected as malware
Tofu · Wed Jul 08 2020 · Reply I tried running the "./voltageshift info" in terminal, but it keeps getting killed. I've already disabled SIP. Is this an issue with Catalina?
Manash · Sat Sep 19 2020 · Reply It's a Signature verification issue. Follow the instructions: https://github.com/sicreative/VoltageShift/issues/34