How to undervolt a mac to increase its battery life.

Last Updated: Sat Sep 19 2020
featured

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

Also read: Dual boot hackintosh macOS mojave and windows 10 in same drive

Step 4. In terminal type:

./voltageshift offset -60

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.

“5 yes” process making CPU utilization 100%

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.

Also read: How to create bootable macOS mojave USB using UniBeast

Step 6. Open the terminal app and copy-paste this command:

sudo ./voltageshift buildlaunchd <CPU> <GPU> <CPUCache> <SystemAgency> <Analogy I/O> <Digital I/O> <Turbo Boost> <Power_min> <Power_max>

**

replace the following <NAME> with your values. See the Example below:

e.g: sudo ./voltageshift1 buildlaunchd -140 -100 -100 0 0 0 1 45 60

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 1. Download the volta app from here.

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!

Voltage Shift on Kaby lake

 

Credits: Sc Lee for voltageshift

Comments

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?

manash · Sat Mar 02 2019 · Reply
yep

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.

manash · Mon May 06 2019 · Reply
fixed ;)

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