RivaTuner plugin supporting GT2xx and HD4870 Voltage Tuning
finally here is a first release of my RivaTuner plugin wich allows voltage control on vga cards equipped with a Voltera VT1165 VRM controller.
as far as i know this are: GTX260 65nm, GTX280, GTX295, HD4870 and HD4870x2
this VT1165 plugin is an enhanced version of the VT1103 plugin already included with RivaTuner and supports the previously available monitoring features plus some added functionality:
already included in VT1103 plugin
- vrm output voltage
- vrm output current
- vrm temperature for up to 5 phases
added the functionality
- change vrm output voltage on the fly
- monitor status of OCP
- monitor status of OVP
monitoring of OVP and OCP might be useful for hardmodded cards to verify if either of this safety features is activated or not.
to integrate this in a RivaTuner plugin has the advantage of utilizing the available RivaTuner functions to access the VT1165 directly. there is no need to manually scan for a device, write down register addresses and enter this values somewhere else, besides in RivaTuners scheduler to apply the settings at startup.
also you don't need to care about which one of the registers is used in which mode, as the plugin will detect the currently used register itself and apply the settings to this register. so to completely setup your cards all you need to do is to bring the card in the mode you want to change (idle, 2d, low 3d or performance 3d) or what ever it is called and change the voltage as required. there are not more than 4 modes available. most cards don't use all of them. my gtx295 is using only one mode. usually i would assume putting the card under load (atitool 3dview would be fine for this) and change the voltage then. i cant see a reason to change any other modes, but its up to everybody to do so.
you do all of this at your own risk! don't blame me if you overvolted your card too much and thus burnt it. this is a very powerful and dangerous tool!
also i would not have been able to create this without the help of Unwinder, the creator of RivaTuner. although he did not take part in the devolpment, he put some valueable info in the "evga voltage tuner" thread here in the forums and also kindly answered all my boring questions!
that said, lets roll ...
the plugin can be found here: vt1165.zip
as the plugin is created with visual studio 2008 you need to download and install microsoft vs2008 runtime components. this is just about 1.7MB and can be found here:
Microsoft Visual C++ 2008 Redistributable Package (x86)
here is a step by step guide on how to install and use my plugin:
experienced RivaTuner users wil most likely know almost all of this already and just look at the few points below and at some screenshots at the end:
- download the plugin vt1165.zip
- download and install the Microsoft Visual C++ 2008 Redistributable Package (x86)
- download and install the latest version of RivaTuner
- start up RivaTuner once to let it configure its database and exit RivaTuner again (rivaTuner might get started directly after ths installation. if so, just let it configure its database and manually exit again.
- copy VT1165.dll into RivaTuners plugin folder. this is PlugIns\Monitoring within RivaTuners installation folder. on my system this is: C:\Program Files\RivaTuner v2.22\PlugIns\Monitoring
- run VT1165.reg found within vt1165.zip. this changes a single registry key to activate the plugin. don't do this in the gui as there is a bug within my code that might crash RivaTuner. i have not yet sorted this out. use VT1165.reg as a workarounf in the meantime to activate the plugin for the first time!
finally start up RivaTuner again.
the plugin checks upon startup if a card is supported and pops up the following window for each card unsupported card:
http://fg000005.host.inode.at/pub/NoVT1165.gif
so if you see this, you are out of luck!
if everything went right and your card is supported the following window should pop up:
click on the small button besides Customize...1 to open up the menu and then select Hardware monitoring 2 to bring up the Hardware monitoring window.
http://fg000005.host.inode.at/pub/p1.jpg
depending on the version of RivaTuner you are running, a warning might come up first:
http://fg000005.host.inode.at/pub/p2.jpg
clicking on the [UP] button will increment the voltage. if you are running on two identical GPUs and have selected Apply settings to both GPUs at the beginning, voltage for both GPUs will be increased simultaneously, as you can see in the following screenshot. clicking the [DOWN] button will decrease voltage respectively. the currently selected voltage is displayed in the VRM Voltage Control window immediately as you click the button. the graph might follow with a delay depending on the update rate specified in Hardware monitoring setup, usually 1 second.
if you want to make the settings to be applied automatically on startup, simply use the values displayed in the [B]VRM Voltage Control[B] window besides Parameters: when setting up a scheduler entry in RivaTuner under the Scheduler tab.
running on a system with either a single GPU installed or if there are two GPUs of different type installed, you should have selected Apply settings to first GPU only at the beginning. this results in changing the voltage for the first GPU only. in this situation, there is currently no way to change the voltage for the second GPU. as soon as RivaTuner V2.23 gets released, this restriction will be lifted, and all GPU's can be modified individually!
if you selected the wrong mode on startup, just close the Hardware monitoring window by clicking the [x] button and reopen it again. you will be prompted to select the mode on every startup.
http://fg000005.host.inode.at/pub/p3.jpg
finally, two new graphs are available that might be of interest for some hard core overvolters using hard modded cards. this two graphs show the state of OVP and OCP. if OVP or OCP is inactiv (normal) the graph shows a steady line at 0. if OVP or OCP gets activated the graph jumps up to 1 signalling OVP or OCP condition.
http://fg000005.host.inode.at/pub/p4.jpg
as i have not hard modded my card i was not able to verify if this works as expected. so if any hardcore overclockers are out there and suspect OVP or OCP is kicking in on their cards, please use this plugin and report back. also i had just one gtx295 at hand so i was not able to verify the functionalty on different cards. please report back if you run into any problems or have any further questions or feature requests. but keep in mind, my programming knowledge is somehow limited and dont expect miracles.
once again: remember this tool allows you to change voltages to very dangerous levels for you GPU, so be careful and don't blame me if you burn your card. you do all of this at your own risk!
Over Voltage Protection / Over Current Protection
regarding the discussion on OVP and OCP:
first of all, i still dont have a datasheet for the vt1165! all my knowledge is based on the information in various forums, mainly the posts from Unwinder and some private conversation with Unwinder.
so my understanding of this is:
OVP is triggered as soon as the output voltage exceeds the programmed voltage plus a certain, via resistors, predefined margin.
if its working this way, we will never see OVP kicking in when using the registers to change output voltage, as output voltage can hardly exceed the voltage we set by registers.
e.g. if the register defines 1.15V and the margin is set to 0.2V then OVP would kick in when output voltage exceeds 1.35V
if we now change the register to a reflect voltage of 1.30V and add our margin of 0.2V we get also a changed value of 1.50V where OVP would kick in! so, no matter what voltage is defined via the register, OVP would always kick in if output voltage exceeds this value by the margin, which simply would not happen.
this is totally different when using a hard mod: here the voltage set by register remains unchanged, thus the base for OVP. a hardmod forces the voltage increase by changing some resistors externally, thus output voltage plus margin is likely to exceed the unchanged predefined voltage in the register.
so using the example above, no matter what output voltage you set via a hardmod, the OVP reference level remains unchanged at 1.35V (1.15V + 0.2V) and thus let OVP kick in as soon as output voltage exceeds 1.35V.
OCP is a different story, as there is no register involved here. OCP will kick in when a certain current draw is exceeded! i have no idea at what point this will be. if my plugin works correctly we probably will see this sooner or later.
implementing OVP and OCP status in the plugin was no big deal and was, the above said in mind, targeted to hard mods mainly, tough OCP might be seen even when soft modding.