""
All times are GMT -4. The time now is 02:23 AM.  

Go Back   OCXtreme.org Forums > OCXtreme > V-Mods

V-Mods Kick it up a notch!

Reply
 
Thread Tools Display Modes
 
Old 01-24-2009, 07:13 PM   #1
3oh6
OCX expert
 
3oh6's Avatar
 
Join Date: Feb 2007
Location: staring at an LCD in...London ON Canada
Posts: 804
Default Guide :: GT200+ Software Volt Mod w/Rivatuner

The news has been spreading like wildfire, Rivatuner has always been able to increase/decrease voltages with GT200 cards and others, but it has been a secret thus far...not anymore. All of my information is based on the information provided by justageek95 in this thread here. All credit goes to him, I am just doing what I do best, explaining in an easy to understand and follow manner. This is for Volterra VT11xx equipped cards and hasn't been confirmed to work with GTX 285s. It should work with other cards who's voltage regulators allow for voltage adjustments through registers. I think the GTX 295 uses the Volterra IC so it should work for them, but don't have on on hand to test. Let's get started with the quick and dirty guide...

First...the disclaimer. I nor OCX are in any way responsible for you being an idiot and putting 1.7v through your GTX 260 on air. From here on is all at your own risk and you may very well be voiding your warranty. There, I said it so don't say someone didn't warn you...but if you needed that warning, then get lost and save yourself a headache

Software Needed
Rivatuner - of course

Hardware Needed
GPU with voltage regulator capable of voltage adjustments with register changes. this guide will use 65nm GTX 280/260s as the examples which uses Volterra regulators. HD4870/HD4850 should well since they use Volterra VT11xx regulators i believe. The GTX 295 has also been confirmed to be working with this method. The multi-GPU or multi-core GPU guide is a couple posts down but you are best off to read through the single card guide first as it goes into more detail.

Step 1 :: Install/Configure Rivatuner
If you need instructions for this, then please leave now....seriously, get out.

Once Rivatuner is installed, open it and go to the Hardware monitoring section...1.

Make sure your card you are changing voltage for is selected from the drop down menu. Select the Setup option from the hardware monitoring window in the bottom right...2.

Then select the Plugins option in the bottom left...3.

When the Active plugin modules window opens, scroll down and make sure there is a check beside VT1102.dll...4.


You should now have the Voltage regulator output, V as one of the monitors in the hardware monitoring window, you may have to scroll down to find it. If not, then go back to the Hardware monitoring setup window and ensure there is a check beside Voltage regulator output, V.


This is the one of primary concern at this point. Leave the hardware monitoring open, you can hide or minimize Rivatuner as the next few steps all involve the command prompt. We will come back to Rivatuner to setup shortcuts and automatic scheduling later.



Step 2 :: Find I2C BUS of Card
With the Voltage regulator output, V monitor visible, we should be seeing the idle voltage for the video card. What we need to do now is find out which I2C BUS the card we are going to adjust is using, and we need the command prompt for that. Easiest way to open the command prompt is Windows key + R and type cmd in the run box. The command prompt will open in a small window to your default user name. We need to be in the Rivatuner folder in order to execute Rivatuner.exe so you need to navigate there now. This is the command that gets me to the default Rivatuner folder in this Vista x64 installation.


If you can't navigate DOS enough to get to your Rivatuner folder, again, please leave now. Once in the Rivatuner folder, we can now easily execute Rivatuner.exe which we need to do in order to find the I2C BUS that our card is on. Here is the EXACT command to type in, you might even be able to copy and paste if you are lazy or have fat fingers and find precision typing a chore...

Code:
rivatuner.exe /ri0,70,1a /ri1,70,1a /ri2,70,1a /ri3,70,1a
This simply polls the four I2C BUSes and tells us where devices are located. The r in the command stands for read, i stand for i2c, and the 1a is the register we are polling. With different voltage regulators on other cards, the 1a is what you would have to change as it likely won't be the same register. This is what it looks like in the command prompt for 100% clarification...


This checks the four I2C BUSes and reports back where the card is located. Once you type that in and hit ENTER. A small dialogue should pop up from Rivatuner with the results...


The image speaks for itself, the video card I am working with is on the fourth BUS or the i3 BUS. the number 3 is what we will have to keep track of as when we are writing to the registers and polling for more information, we will have to poll/write to the 03 I2C BUS. This will make sense in about 10 seconds, unless of course you have to go to the bathroom at this point, then either 30 seconds to say....10 minutes depending on whether it’s a 1 or a 2 .



Step 3 :: Find Voltage Registers of Card
We will now do basically the same thing but with a bit different command in order to find the voltage register for the card. At this point I have determined that at least two of the voltage registers are responsible for idle and load states. These seem to change with each setup, hence the reason for us having to find which one is for which. So in the same command prompt window, we need to type the following...

Code:
rivatuner.exe /ri3,70,15 /ri3,70,16 /ri3,70,17 /ri3,70,18
This polls the 15, 16, 17, and 18 registers on the I2C #3 BUS. compare it to the command we typed earlier and it makes perfect sense. Again, for 100% clarification, here is the command as typed...


And the results again come up in a Rivatuner prompt...


The numbers we are presented with are in hexadecimal and need to be converted to decimal format in order to do the calculation to find the voltage. This web site does just that...

http://www.maxi-pedia.com/hex+to+decimal+converter

After we convert the hexadecimal values to decimal values, we run them through this equation in order to determine the voltage of each register.

Voltage = (VID*0.0125)+0.45

So our first VID is hexadecimal 3b...which is decimal 59 (from conversion web site above)...through the equation...
Voltage = (59*0.0125)+0.45 = 1.1875 = Voltage. Our complete list of registers equals out to these voltages...

Register 15 - 3B = 59 = 1.1875v
Register 16 - 38 = 56 = 1.1500v
Register 17 - 31 = 49 = 1.0625v
Register 18 - 35 = 53 = 1.1125v


We now just match up the different states to the corresponding voltage to know which register controls which voltage. If we go back to the Voltage regulator output, V from Rivatuner, we can see that this card is running 1.11v at idle.


This would mean that the closest voltage from our register chart above is the last one, #18 which is 1.1125v. In order to change idle voltage, we will want to write to register 18. To find out load voltage, let's put the card under load using F@H and match that up to the corresponding voltage above.


Rivatuner is saying 1.19v is being supplied under load which would be closest to 1.1875v on the register 15. So to adjust load voltage, change register 15. We now know what registers to change, so we can head back to the command prompt to write our changes.



Step 4 :: Adjusting Voltage
Now the easy part, adjusting voltage. We are going to use the identical command, but instead of read, we will be using write. Here first is a sample table of some of the voltages and the hexadecimal number they equate to. Obviously these just keep going up so simply go higher in hexadecimal to go higher in voltage or lower to do the opposite...

2C = 1.00v
2F = 1.03v
30 = 1.05v
3A = 1.17v
3F = 1.24v
40 = 1.25v
4F = 1.44v


...and so on and so forth. If you are unsure how the hexadecimal system works, do a Google search, it is pretty straight forward. You can also follow this equation working from voltage backwards to hexadecimal.

VID = (voltage - 0.450) / 0.0125

So for 1.50v it would be.... VID = (1.50 - 0.450) / 0.0125 = 84 convert to hexadecimal = 54.

54 = 1.50v

Now that we have everything we need, let's change some voltages. First up is the command. As mentioned, it is identical to before but with a w and of course an added value to designate the register.

rivatuner.exe /wi3,70,register,hexadecimal value

So still in the same command prompt, we will now change idle to say 1.0v and load to 1.25v...keeping in mind our load register is #15 and idle is #18.

Code:
rivatuner.exe /wi3,70,15,40 /wi3,70,18,2c
In the command prompt, this is what it would look like...


Of course you can also just change one register at a time, you simply designate a single register at a time. For when you setup Rivatuner shortcuts or scheduled events, it is just easier to get use to changing both idle and load at the same time so you can make a single shortcut. Here is what Rivatuner hardware monitor shows for voltages now at idle/load with F@H used for load again.


Of course, the question on everyone's mind is, "does this actually change voltage though"? You tell me, notice the lack of the jumper on the fan header where the alligator clip is reading the voltage from. My hard mod requires the jumper to be there to ground the VR. The following below were taken with the same voltages set as shown in the Rivatuner monitor above.

Idle

Load

There you have it folks, softmod voltage adjustments using Rivatuner and the command line. Yes, it looks like a lot of effort but that is only because I went through stoopid levels of detail to avoid any confusion. It really is simple once you figure out what your registers and I2C BUS are. The next post will involve setting up shortcuts through Rivatuner and automatic scheduled events, AKA loading settings at Windows boot, and shortcuts on your desktop for on the fly voltage adjustments with the double click of the mouse.

Again, all of the credit goes to justageek95 in this thread here. I am just regurgitating and polishing his information with some screenshots and images to make it extremely straight forward.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Last edited by 3oh6; 01-25-2009 at 03:14 AM..
3oh6 is offline   Reply With Quote
 
Old 01-24-2009, 07:14 PM   #2
3oh6
OCX expert
 
3oh6's Avatar
 
Join Date: Feb 2007
Location: staring at an LCD in...London ON Canada
Posts: 804
Default Multi-GPU Configuration

Step 1 :: Find I2C BUS of Cards
Alright, now that everyone knows how to change voltages for a single GPU, what about multi-GPU setup? Or multi core GPUs like the GTX 295 and HD4870X2? It really is simple, and just involves a single flag added to the commands...

/sdX

With X being the device number. The first device is going to be 0, the second will be 2. Unwinder explains it like this...
Quote:
<device_index> is 0-based logical display device index, i.e. if there are 4 virtual display devices (2 heads representing independent displays for the primary GPU and 2 more heads for the secondary) then your should select the first (0) then the third (2) logical devices when applying the changes.
in his post here. For multiple GPU setups, we will be using GPU0 and GPU2, but for the 9800GX2, it is reported to use GPU0 and GPU1. Throughout this guide I will be referring to /sd0 & /sd2, for 9800GX2 users, substitute those for /sd0 and sd/1. GTX 295 users are reporting that it uses devices /sd0 & /sd2 which means there is some variation to how things. you may need to do some testing to find which devices your card uses. So if we go back to our initial I2C bus polling command to find out which bus our devices are on, we would change this...

Code:
rivatuner.exe /ri0,70,1a /ri1,70,1a /ri2,70,1a /ri3,70,1a
to this...

Code:
rivatuner.exe /sd0 /ri0,70,1a /ri1,70,1a /ri2,70,1a /ri3,70,1a /sd2 /ri0,70,1a /ri1,70,1a /ri2,70,1a /ri3,70,1a
Which should look as follows in the command prompt...


What happens this time instead of a single prompt coming up, we get one which outlines the I2C bus for Device 0, then when we hit OK, we get a second for the I2C bus of Device 2




Like the single GPU example earlier, both devices are showing on the I2C bus 3. We will use this bus to find the registers controlling idle voltage as well as voltage under full load, just like we did for a single GPU, except the /sdX flag will be included in the command.



Step 2 :: Find Voltage Registers of Cards
Getting right into it, we follow the same steps as above but use the following command, the changes are highlighted.

Code:
rivatuner.exe /sd0 /ri3,70,15 /ri3,70,16 /ri3,70,17 /ri3,70,18 /sd2 /ri3,70,15 /ri3,70,16 /ri3,70,17 /ri3,70,18
And in the command prompt...


This will again provide us with two prompts, one for each device. Each prompt lists the values for each register, 15/16/17/18.




We again have to convert the hexadecimal values of the registers to decimals then run them through the conversion. Here is the web site that will convert them...

http://www.maxi-pedia.com/hex+to+decimal+converter

and the formula to find out the voltage associated with each register...

Voltage = (VID*0.0125)+0.45

Skipping the example, here is how our two GTX 260s shake down after the registers have been converted and ran through the formula...

Device 0
Register 15 - 38 = 56 = 1.1500v
Register 16 - 36 = 54 = 1.1250v
Register 17 - 35 = 53 = 1.1125v
Register 18 - 31 = 49 = 1.0625v



Device 2
Register 15 - 38 = 56 = 1.1500v
Register 16 - 36 = 54 = 1.1250v
Register 17 - 30 = 48 = 1.0500v
Register 18 - 31 = 49 = 1.0625v


In order to find the right registers, we have to match up the voltages to what Rivatuner is providing via the Voltage regulator output, V for each GPU in the monitor.




Well isn't that interesting...each GPU has a different idle voltage. Both GPUs are identical EVGA GTX 260 216s and have the stock BOIS on them. Regardless, it appears that GPU0 & GPU1 are using register #17 for idle. Next up is under load, again using the F@H GPU2 client to help us out for a second or two. You can use ATI Tool and scan for artifacts or Furmark...anything that will put the GPUs under 3D load.




Again the voltages aren't the same for both cards, definitely explains the temperature difference I saw between the cards. I just assumed it was from being in the top slot, but a little bump in voltage to the top card certainly isn't going to help temperatures either. Moving on from this little discussion, we can see that GPU0 is using register #16 because it is closest to the 1.13v we are seeing under load. On the flip side, GPU1 is using register #18 because Rivatuner is showing closest to 1.0625v under load. We now have our registers and I2C buses for both cards so we can move on to actually adjusting voltages now.




Step 3 :: Adjusting Voltages
I will repeat the small portion of hexadecimal voltage equivalents that was outlined in the single card portion...

2C = 1.00v
2F = 1.03v
30 = 1.05v
3A = 1.17v
3F = 1.24v
40 = 1.25v
4F = 1.44v


...and the equation for finding the hexadecimal value for any voltage value you may want to set...

VID = (voltage - 0.450) / 0.0125

...again, the example I used earlier for this equation.

VID = (1.50 - 0.450) / 0.0125 = 84 convert to hexadecimal = 54.

54 = 1.50v

This time I will use a clean command prompt to show examples of these commands since everything is twice as long with two GPUs as with a single. Let's go for the same values as before as well, 1.0v @ idle, and 1.25v @ load. As a refresher, both GPUs are using register #17 for idle, and GPU0 is using #16 for load while GPU1 is using #18 for load. Soooo...the command line for this setup would be...

Code:
rivatuner.exe /sd0 /wi3,70,16,40 /wi3,70,17,2c /sd2 /wi3,70,18,40 /wi3,70,17,2c
How it looks in the command prompt...


It really isn't a whole lot different than a single card, you just have to add the /sdX flag and enter two sets of commands, one for each card. In the case of the HD4870X2 and the GTX 295 (assuming the GTX 295 works with this method), one for each core. Here are the fruits of our labor.




For these cards we will just have to assume they are running at the actual voltages because I don't have them volt modded to check with a DMM. If you don't have access to measuring voltage with a DMM, you can always double check your work with some basic load testing and check temps. Spiking voltage under load should spike temps as well.

And that concludes our broadcasting day...
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Last edited by 3oh6; 02-02-2009 at 09:19 AM..
3oh6 is offline   Reply With Quote
 
Old 01-24-2009, 07:14 PM   #3
3oh6
OCX expert
 
3oh6's Avatar
 
Join Date: Feb 2007
Location: staring at an LCD in...London ON Canada
Posts: 804
Default Adding Shortcuts to the Desktop...

coming soon...
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Last edited by 3oh6; 01-27-2009 at 12:41 PM..
3oh6 is offline   Reply With Quote
 
Old 01-24-2009, 07:46 PM   #4
MrCape
Team OCX
 
Join Date: Jan 2008
Location: Cape Cod
Posts: 431
Default

Dude, this guide is totally sweet, thanks! I'm benching LN tonight and stopped all prep to do these mods. It's a nice change from physical vmod.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
MrCape is offline   Reply With Quote
 
Old 01-24-2009, 08:17 PM   #5
3oh6
OCX expert
 
3oh6's Avatar
 
Join Date: Feb 2007
Location: staring at an LCD in...London ON Canada
Posts: 804
Default

excellent timing then, glad it helped out. once you figure out what is what, this method is really quite quick and easy. plus with Rivatuner shortcuts, it will be very handy. it's already doing wonders for my GPUs crunching, dropping volts every hour and they just don't stop going down crunching stable. it isn't a sauna in my office anymore
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
3oh6 is offline   Reply With Quote
 
Old 01-24-2009, 09:25 PM   #6
MrCape
Team OCX
 
Join Date: Jan 2008
Location: Cape Cod
Posts: 431
Default

Cool, I was able to identify and change the GPU0 idle. Then I used /sd to identify and change both cores (295gtx).

The only thing that's weird is that the monitor is not sensing a change on load. It's always showing the idle V of 1.04 even if I run 3d app, AM3 or ATI tool's 3d tool. I'm going to set what I assume to be the load value a bit higher and see if I can squeeze more freq out of it. Or I suppose I should grab the DMM and see for real.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
MrCape is offline   Reply With Quote
 
Old 01-24-2009, 09:25 PM   #7
sup3rfly
Techno Slave!!!
 
Join Date: May 2007
Location: 秋葉原電気街
Posts: 146
Default

wicked guide.... thx man... was gonna do a review on 285gtx.... this is very handy!!! thanks a lot bro

update:
activated the VT1103.dll plugin but i m unable to see all the voltage regulator output readings.... this is on 285gtx tho... any idea how to make it work?? i am usingg rivatuner v2.22 as well...
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Last edited by sup3rfly; 01-24-2009 at 10:58 PM..
sup3rfly is offline   Reply With Quote
 
Old 01-24-2009, 10:03 PM   #8
MrCape
Team OCX
 
Join Date: Jan 2008
Location: Cape Cod
Posts: 431
Default

Well I ended up just changing 18 and it worked for idle and load. It bought me quite a bit of shader and GPU clock. Sweet! Now I'm making a little shortcut for it and that's that.

Cool, didn't take the time to put that into a shortcut, but used the scheduler in RT to do the switch when I open RT.

This makes it pretty easy to just change the values in the command field in the scheduler. I suppose you could do the same with the command in a shortcut.

GPUZ seems to have the same sensor, which makes it easy to see that it's off if you're using the RT scheduler and no MM at the time.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Last edited by 3oh6; 01-24-2009 at 10:33 PM..
MrCape is offline   Reply With Quote
 
Old 01-24-2009, 11:03 PM   #9
clon22
超率菜鳥
 
clon22's Avatar
 
Join Date: Apr 2008
Location: Small Island, smaller than a dot on the globe... :D
Posts: 697
Default

This is gonna come in so handy.
Thank you so much for this thread.
Now, i just got to wait until after chinese lunar new year holiday
b4 i can get my hands on a card.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Last edited by clon22; 01-25-2009 at 01:45 AM..
clon22 is offline   Reply With Quote
 
Old 01-24-2009, 11:07 PM   #10
sup3rfly
Techno Slave!!!
 
Join Date: May 2007
Location: 秋葉原電気街
Posts: 146
Default

happy chinese new year bro
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
sup3rfly is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



All times are GMT -4. The time now is 02:23 AM.
Style By: vBSkinworks