NVUV

GPU Undervolt · User Guide
Build 22 · Cantor · Open Alpha · April 2026

📝Foreword

Before we get started, a few words that are important to me.

MSI Afterburner is and remains the best Nvidia GPU tool on the market. What Alexey "Unwinder" Nicolaychuk has accomplished over the years is nothing short of extraordinary. Afterburner is the gold standard for GPU tuning, OSD, fan control and advanced curve editing. NV-UV does not want to replace Afterburner. Not today, not tomorrow. NV-UV is a Companion Tool, it simplifies getting started with undervolting on Blackwell and automates things like preset switching, crash recovery and scanner-based optimization. But for fine-grained curve editing, overclocking, OSD and everything beyond undervolting, Afterburner remains the tool of choice. Once you've found your stable UV setting with NV-UV, you can close NV-UV and let AB take over, the profile sits in AB and runs normally from there.

NV-UV started as a small side project, for my own RTX 5090 and for friends I wanted to introduce to undervolting. That it has turned into something so many people actually want to use, I honestly never expected. I'm overwhelmed by all the interest.

Special thanks go to my NV-UV Discord community, testers who spent hours pushing the scanner to its limits, testers who helped me refine the UI, and everyone whose feedback made NV-UV better piece by piece. Also to my friends and family who put up with me being pretty scarce these past weeks. And a special thank you to the tech press, especially Raphael (PCGH) who discovered the tool and brought it to a wider audience, and Andreas (Hardwareluxx) who took a closer look at NV-UV. Thanks also to PCGH Hardware for giving NV-UV a home in their forum. This is exactly what the PC community has been about for years: tweaking, testing, gaming and having fun. Thank you, from the bottom of my heart. ❤️

— Christian

What is NV-UV?

NV-UV is a GPU undervolting tool for the NVIDIA RTX 50 Series (Blackwell) and, as of recently, also the RTX 40 Series (Ada Lovelace, still experimental). It simplifies the undervolting process, which normally requires manually editing MSI Afterburner's curve editor.

NV-UV uses Afterburner as its backend, so you need MSI Afterburner + RTSS installed.

Features

🎚️ Voltage LockOne click, GPU runs at an exact voltage/frequency point
📊 4 Preset LevelsEco · Balanced · Performance · Max, community-validated values per GPU
🔍 Stock Curve DiscoveryAutomatically reads the real VF curve of your specific GPU from AB
🔬 OCS → UVImport AB OC Scanner results, build chip-specific UV curve
🎮 Game ReplayAutomatic step-down on crash, with per-game learning loop
✈️ UV-PilotDetects 588 games automatically, switches to the optimal preset
Voltage Step ScannerStage 1 (highest stable frequency) + Stage 2 (lowest stable voltage), DX12/DXR stress engine
🎯 Optimize Point NEWStage 2 — find the lowest voltage for a fixed frequency, fine-tuning after Stage 1
📐 V-Step Compensation NEWScanner automatically compensates V-Droop for more precise tests
🖥 Smart HzDesktop 60Hz, gaming native Hz. Saves ~10W idle.
🌍 DE/ENFull UI in German/English, live toggle in the footer
🔥 3D Stress TestDX12 + DXR render engine (headless) with heartbeat load patterns
Anchor ProfileRight-click on slot, UV stays active when NV-UV is closed
🧊 Idle OptimizationLow voltages = stock, saves power at desktop/idle
🔧 V-Step FixCompensates for the Blackwell point-before-flatten bug
📐 Mini ViewCompact view, perfect alongside AB's curve editor
🎨 3 SkinsDark + UV-Party + Royal Blue
System TrayRuns in background. Autostart will be added once the EXE is signed.

📋Requirements

WhatDetails
GPUNVIDIA RTX 5090, 5080, 5070 Ti, 5070, or 5060 Ti / 5060 (experimental)
Ada cards (RTX 4090 / 4080 / 4070 Ti Super / 4070 Ti / 4070 Super / 4070) also supported (experimental)
DriverLatest NVIDIA driver
MSI AfterburnerVersion 4.6.6+ with RTSS
WindowsWindows 11 (64-bit)
NV-UV requires MSI Afterburner running in the background. Without AB, NV-UV cannot change voltages!

🔧Installation

IMPORTANT, please don't skip: For NV-UV to read and write GPU voltage, several options must be enabled in Afterburner. Without these settings NV-UV shows 0 mV, the V-Lock won't apply correctly, and the scanner returns wrong results. Steps 1 and 2 below are mandatory, not optional.
1
Prepare Afterburner, General Tab
AB Settings (⚙), General Tab:
Select your NVIDIA GPU under Master graphics processor selection

Enable these checkboxes:
Enable hardware control and monitoring
Enable low-level IO driver
Enable low-level hardware access interfaceuser mode
Unlock voltage control → standard MSI  ⬅ critical
Unlock voltage monitoring  ⬅ critical

Click OK (not Cancel!) and restart Afterburner.
2
Prepare Afterburner, Monitoring Tab
Settings (⚙), Monitoring Tab. Scroll down through the long sensor list and enable:

GPU voltage  ⬅ without this no V-Lock
GPU power

Click OK and restart Afterburner.

Verify: in AB's main window, the "VOLT" field should now show an actual voltage (e.g. 905 mV) instead of 0 mV. If it still shows 0, AB didn't accept the change — go back to step 1 and make sure both Unlock options are really set.
Note for Reference-Design RTX 5090: On some reference cards Afterburner occasionally resets the Unlock checkboxes by itself. If the voltage reading suddenly drops to 0 mV after a while, just walk through steps 1+2 again. We're working on an automatic fix for this.
3
Extract + run NV-UV
Unzip to any folder, e.g. C:\NV-UV\, double-click NV-UV.exe (no admin needed).
🔗 First launch, curve detection:
NV-UV needs the real VF curve of your GPU. Since Build 22 this is fully automatic:
On first launch NV-UV reads the stock curve directly via NVAPI, no user action required.

If auto-detection ever fails (e.g. unusual driver/hardware combos), the fallback wizard kicks in:
1. Open Afterburner, all sliders at default (no OC/UV)
2. Click 💾 Save in Afterburner
3. Choose a profile slot (1-5)
4. NV-UV reads the curve from the AB profile

Either way it's a one-time setup. NV-UV stores the curve locally.
🔄 Recalibrate (Toolbar):
Full reset: backs up AB profiles automatically, deletes only GPU-specific profiles and NV-UV cache, restarts. Overlay settings, fan curves and other AB settings are preserved.

🔄Updating to a New Version

NV-UV is portable, just copy the new EXE over the old one. Settings are preserved (%LocalAppData%\NV-UV\).

1
Close NV-UV
2
Extract new ZIP (same or new folder)
3
Run NV-UV.exe, done!
If something looks off after an update: click 🔄 Recalibrate in the toolbar.

🚀Quickstart

1
Choose a preset: 🍃 Eco · ⚡ Balanced (recommended) · 🚀 Perf · 🔥 Max
2
Apply UV: Select an AB slot (1-5), then ⚡ Apply UV.
3
Test: Launch a game, watch voltage + temps. Stable = done!
Start with Balanced! Eco can be too aggressive for some GPUs.

🔬OCS → UV Import

Afterburner's built-in OC Scanner tests how much extra frequency your GPU can handle at each voltage. The result alone is very conservative. NV-UV takes that chip-specific data and combines it with the proven Balanced preset as a baseline. Result: A UV curve based on your silicon.

1
Run AB's OC Scanner, save result to a profile slot (1-5).
2
Click OCS → UV, select the profile with the scanner result.
3
Apply: V-Lock (best single point) or Multi-Point (full curve).

Right-click for options: V-Lock / Multi-Point / Verify with Scanner.

OCS data is stored permanently and survives Recalibrate, AB resets and reinstalls.

Voltage Step Scanner

The scanner tests a single voltage point and finds the maximum stable frequency. Ideal for validating a UV setting or finding the sweet spot for your GPU.

1
Open Scanner (⚡ button in main window or Mini View)
2
Settings: Voltage, render resolution (1440p for 5070/5080, 4K for 5090), test duration (2-5 min)
3
Start test. Scanner starts high and works down until it finds the stable frequency.
4
Apply result to slot 1-5, directly or via right-click in history.

🎯 Stage 2 — Optimize Point (New in Cantor)

Stage 1 finds the highest stable frequency at a given voltage. Stage 2 reverses it: starting from a stable point, NV-UV searches for the lowest voltage at which that frequency still holds. This squeezes out another 10–30 mV without losing frequency.

Two-step workflow:

1
Run Stage 1: pick a voltage (e.g. 910 mV), start the scanner, wait for a stable point. The result lands in the history automatically.
2
Start Stage 2: right-click on the stable history entry → 🎯 Optimize Point. NV-UV tests the same frequency stepping the voltage down (5 mV at a time) until it crashes, then keeps the last stable value.

Example: Stage 1 finds 2992 MHz @ 910 mV as stable. Stage 2 then tries 2992 MHz @ 905 / 900 / 895 / 890 mV until the GPU crashes. If 895 mV was the last stable point, you now run the same performance at 15 mV less voltage — fewer watts, less heat, identical frequency.

When is Stage 2 worth it? Whenever you want the absolute most out of your specific GPU. Stage 1 is a great starting point, Stage 2 is the fine-tuning. Stage 2 takes another 5–15 minutes depending on your test duration.

🎯 Expandable Optimize History (New in Cantor v0.126)

Until recently, NV-UV would only save the single point you picked in the optimize result dialog — all the other measured voltage probes were thrown away once the dialog closed. That hurt particularly badly when too aggressive undervolting drove the driver into a render-thread crash and the picker dialog became unresponsive: every measurement lost, Stage 2 from scratch.

Starting with v0.126, NV-UV writes the full optimize run to history before showing the picker. You then see a new entry in the history with a 🎯 marker, holding all probes from the run as expandable sub-entries:

Collapsed (default): one compact header row per optimize run, e.g. 🎯 from 925 mV · 11 probes · clean or after a crash 🎯 from 985 mV · 9 probes · TDR @ 935 mV. Click the header to expand.
Expanded: every measured probe of the run shows up as an indented sub-entry, with voltage, median clock under load, and a ✓ mark on the probe you originally picked. Each sub-entry can be used individually: right-click → apply to slot, verify, or re-optimize. The TDR endpoint (if present) appears as a 💥 row at the end and is informational only.

Why this matters: if you realize after the picker that your chosen point was too aggressive, you don't have to re-run the search — just expand the group and pick one of the more conservative probes (e.g. 5 or 10 mV higher). And if a driver crash kills NV-UV in the middle of a run, the entire group including all probes is still there after restart.

🔍 Verify Point

Right-click on a history entry → Verify runs an extended stress test with that exact frequency/voltage pair. Use this to double-check a Stage 1 or Stage 2 result with a longer run (e.g. 10 minutes instead of 3) before committing it to a slot.

🧪 VRAM-only Test

In the scanner window: 🧪 VRAM-only Test button. Locks the core to stock and tests only the VRAM offset you set. Useful when you want to isolate whether a crash comes from VRAM OC or from core UV: lock the core to a verified value first, then push VRAM separately.

New in Cantor

NVAPI Direct ModeScanner now writes frequency/voltage directly through the driver instead of going via AB profiles, ~50 ms instead of ~2 s per point. Drastically faster scans.
VRAM OC from Phase 1If you set a VRAM offset in the scanner, it's now active during the frequency search, not only during verification. Stability verdicts become much more realistic.
Stage 2 Optimize PointFind the lowest stable voltage for a fixed frequency, see above.
V-Step CompensationDedicated checkbox in the scanner. Automatically compensates V-Droop under load. See the "Optional Features" section.

Already from Antares

FMA Math-Error DetectionCompute shader detects GPU calculation errors in the background
WHEA Pre-CrashWindows hardware error events detect instability before a hard crash
Plateau DetectionAutomatically stops when the GPU can't boost higher at a given voltage
Offset CapStart offset capped at +1000 MHz (or +1200 with Boost Override)
Warmup once per sessionOnly the first step warms up, subsequent steps start immediately
Power Limit SliderFull PL range in the scanner, from GPU minimum (~60%) to maximum
Skip WarmupOptional, for water-cooled setups where GPU temp is already stable
Tip: After the scanner result, enable Game Replay and play. If it crashes in a real game, Game Replay automatically lowers the frequency further.

🎮Game Replay

Just play, Game Replay handles the rest. On a UV crash, frequency is automatically lowered.

Learning Loop (New in Antares)

Game Replay now remembers crash adjustments per game. On the next launch of the same game, UV-Pilot automatically applies the reduced frequency. A game crashes once, next time the safe profile is loaded directly.

Two Crash Modes

TypeWhat happens
Soft Crash (TDR)Driver recovers, 15s cooldown, downstep written live, keep playing
Hard Crash (Page Fault)Downstep saved, automatically applied on next NV-UV start

Settings

🎮 Replay toggle in toolbar, right-click for settings. Strategy: lower frequency (default), raise voltage, or both. Step sizes and safety limits configurable.

Game Replay works independently from UV-Pilot. Just enable 🎮 Replay, works with any active UV profile.

🔥3D Stress Test Engine

Built-in DX12 + DXR stress test that simulates realistic gaming load. The engine constantly switches between idle and full load (heartbeat pattern), creating the transients that cause UV instability.

Render Resolution

ResolutionRecommended for
1440p5080 5070 Ti 5070
4K Supersampled5090
GPUs are most unstable at 40-60% load (highest boost clocks), not at 100% sustained. That's exactly where the stress engine's hammer frames hit.

✈️UV-Pilot

UV-Pilot detects running games and automatically switches to the matching UV profile.

Tier System

TierDescription
🔥 MaxHighest performance, Cyberpunk 2077, Alan Wake 2
🚀 PerformanceStrong, Elden Ring, Hogwarts Legacy
⚡ BalancedStandard, CS2, Valorant, most games
🌿 EcoEfficient, older/lighter games

Custom Profiles

Right-click a slot: "Add to UV-Pilot" creates a custom profile. Assignable per game in the game database.

Game Database

Right-click UV-Pilot → 🎮 Game Database. 588 games + benchmarks, tier assignments adjustable, custom games addable.

Benchmarks (3DMark etc.)

3DMark is recognized but no UV tier is assigned — your active profile stays as-is. This lets you benchmark with your chosen UV without the Pilot switching profiles. A custom profile can optionally be assigned via the Game Browser.

Auto-Mini on Gaming

Right-click UV-Pilot → "📐 Mini View on Gaming". Automatically switches to Mini View on game detection, saving GPU overhead from the WPF main window. Disabled by default.

🔧Optional Features

🧊 Idle Optimization

Sets all voltage points below 850 mV to stock frequency. Saves power at desktop/idle.

🔧 V-Step Fix

Compensates for the Blackwell point-before-flatten bug. Under load, the GPU uses the voltage point before the lock (~10 mV less). V-Step Fix compensates automatically.

Applies to: Quick-Lock in the main window (V-Lock mode). Available as a checkbox next to the voltage slider.

📐 V-Step Compensation (New in Cantor)

The scanner window has its own V-Step Compensation checkbox. It does something different from V-Step Fix above, so here's a clear comparison:

Feature Where What it does
🔧 V-Step Fix Main window
(when applying a V-Lock)
Shifts the lock point up by one VF step so the GPU doesn't fall to the point before it under load.
📐 V-Step Compensation Scanner window
(during a scan)
Continuously measures the difference between the requested voltage and the voltage actually arriving at the chip (V-Droop) and corrects subsequent test steps accordingly.

When should I enable it? When you want precise voltages in the scanner. Example: you ask for 910 mV but MAHM reports 905 mV — the 5 mV delta gets added internally so the next test steps actually hit 910 mV at the chip, not just 905. This makes scan results far more reproducible, especially if you're using Stage 2 (Optimize Point) where every millivolt matters.

Fully automatic, runs silently in the background. In the log you'll see lines like [VDroop] adapted: req 910 mV → MAHM 905 mV (Δ+5) → comp 5 mV. Enabled by default.

🔋 Power Limit

Slider limits maximum power draw. Eco presets set PL to 85%, Performance/Max to 100%.

💾 VRAM Offset

Memory clock offset. Default: 0 MHz. GDDR7 rarely benefits from memory OC.

🔓 Override Safe Limit

Removes the 50 MHz safety margin below stock maximum. Advanced users only.

🖥 UI Scaling

% button in the footer. Steps: 100% through 300%. All windows scale together.

🖥Smart Hz

Automatically switches desktop to 60Hz when no game is running, native refresh rate when a game starts. Saves ~10W idle. Toggle is in the toolbar — tooltip shows "experimental" as multi-monitor support is still limited.

May cause issues with multi-monitor setups. When in doubt, leave it off.

📐Mini View

Compact view without curve. 📐 Mini in toolbar, ↩ Full to return. Always on top. All features available: Slots, Presets, V-Lock, PL, VRAM, Scanner, OCS → UV.

Performance tip: The main window uses WPF rendering which can measurably cost GPU performance in benchmarks. When gaming or benchmarking, use the Mini View or minimize NV-UV to tray. The Mini View has significantly less rendering overhead.

Auto-Mini on Gaming

Right-click UV-Pilot → "📐 Mini View on Gaming" enables automatic switch to Mini View when a game is detected. Returns to full view when the game exits. Disabled by default.

📊Preset Reference

RTX 5090

PresetVoltageFrequencyPL
🍃 Eco910 mV2430 MHz85%
⚡ Balanced935 mV2887 MHz90%
🚀 Performance1025 mV3105 MHz100%

RTX 5080

PresetVoltageFrequencyPL
🍃 Eco850 mV2800 MHz88%
⚡ Balanced900 mV2800 MHz90%
🚀 Performance925 mV2980 MHz100%
🔥 Max975 mV3150 MHz100%

RTX 5070 Ti

PresetVoltageFrequencyPL
🍃 Eco850 mV2500 MHz80%
⚡ Balanced900 mV2800 MHz90%
🚀 Performance935 mV2955 MHz100%
🔥 Max950 mV3000 MHz100%

RTX 5070

PresetVoltageFrequencyPL
🍃 Eco850 mV2600 MHz80%
⚡ Balanced900 mV2750 MHz90%
🚀 Performance940 mV3000 MHz100%
🔥 Max975 mV3150 MHz100%

RTX 5060 Ti / RTX 5060 (experimental)

PresetVoltageFrequencyPL
🍃 Eco800 mV2500 MHz80%
⚡ Balanced875 mV2700 MHz90%
🚀 Performance925 mV2900 MHz100%
🔥 Max975 mV3000 MHz100%

Note: The 5060 (non-Ti) uses this table as fallback. Since it's a smaller GB206 cut with lower TBP, it caps itself via the power limit and the values stay safe.

RTX 4090 (experimental)

PresetVoltageFrequencyPL
🍃 Eco875 mV2400 MHz100%
⚡ Balanced900 mV2550 MHz100%
🚀 Performance925 mV2670 MHz100%
🔥 Max950 mV2745 MHz100%

RTX 4080 / 4080 Super (experimental)

PresetVoltageFrequencyPL
🍃 Eco875 mV2400 MHz100%
⚡ Balanced900 mV2520 MHz100%
🚀 Performance925 mV2640 MHz100%
🔥 Max950 mV2700 MHz100%

RTX 4070 Ti / 4070 Ti Super (experimental)

PresetVoltageFrequencyPL
🍃 Eco925 mV2550 MHz100%
⚡ Balanced940 mV2640 MHz100%
🚀 Performance950 mV2730 MHz100%
🔥 Max975 mV2820 MHz100%

RTX 4070 / 4070 Super (experimental)

PresetVoltageFrequencyPL
🍃 Eco900 mV2400 MHz100%
⚡ Balanced925 mV2550 MHz100%
🚀 Performance940 mV2670 MHz100%
🔥 Max975 mV2790 MHz100%
What does "experimental" mean? These cards are supported by the NV-UV code, but the preset values have not yet been verified on real hardware through our tester programme. Expect issues on individual cards. Please test using Balanced as a starting point and report back on the PCGH forum or Discord so the values can be tightened up.
Preset values are based on community experience. Not every GPU can handle every preset, silicon lottery. When in doubt, start with Balanced.

FAQ

Does NV-UV replace Afterburner?

No. NV-UV uses Afterburner as its backend. AB must be installed. For OC, OSD and advanced curve editing, AB is still the go-to tool.

Is undervolting safe?

No voltages are increased, only lowered. Everything resettable via Stock button or Recalibrate. However, I assume no liability for any damage that may occur directly or indirectly through undervolting.

Why does NV-UV show no voltage? (0 mV / no reading)

This is the most common stumbling block. Cause: voltage options aren't enabled in Afterburner. NV-UV reads voltage through Afterburner's shared memory (MAHM), and without the right AB settings MAHM simply returns nothing.

Quick check: look at Afterburner's main window. Does the "VOLT" field also show 0 mV? Then AB itself isn't reading voltage either — the problem is in AB, not in NV-UV. Fix:

  1. AB → Settings (⚙) → General tab → Unlock Voltage Control ✓ and Unlock Voltage Monitoring
  2. AB → Settings (⚙) → Monitoring tab → scroll down and enable GPU voltage
  3. Click OK (not Cancel) and fully restart Afterburner
  4. AB's main window should now show a real value under "VOLT" (e.g. 905 mV). Only then can NV-UV see the voltage too.

Detailed walkthrough with all recommended checkboxes: see Installation → Steps 1 + 2 above.

Note for Reference-Design RTX 5090: on some cards Afterburner occasionally resets the Unlock checkboxes by itself. If the voltage reading disappears after a while, just walk through steps 1+2 again.

Voltage under load is lower than my V-Lock target, why?

Normal GPU boost behavior. NV-UV sets a V-Lock at e.g. 950 mV, but the GPU only boosts to the voltage it thermally/power-wise needs. With a UV profile (curve flattened at lock point), there's no incentive to boost higher. Not a bug.

The scanner stops below my stock maximum, why?

Two possible reasons:
1. Safe Limit: Scanner stops 50 MHz below stock max by default. Enable "Override Safe Limit" to remove it.
2. Driver Limit: NVIDIA caps frequency offset at +1000 MHz per voltage point. Solution: Test at a lower voltage where there's more headroom.

Scanner keeps stepping up but GPU frequency doesn't increase

Fixed in Antares! Plateau detection automatically stops the scanner when the GPU can't boost higher. If you're on an older version: update to Antares.

Game crashes after UV, what to do?

Normal! Not every GPU can handle every preset. Try the next higher preset, or use the scanner for individual optimization. With Game Replay: just keep playing, the frequency is lowered automatically, ideally while still in the game or after the crash on the next launch.

Difference between V-Lock and Multi-Point?

V-Lock fixes the GPU to one voltage/frequency point. Simple, reliable, recommended method.
Multi-Point sets multiple points on the curve (e.g. from OCS Import). More complex but potentially more efficient across the voltage range.

Why ~200 MB EXE?

Self-contained .NET 9 runtime. No installation needed, just run the EXE.

Windows 10 support?

Not planned. DXR stress testing requires Windows 11.

RTX 40 series support?

Experimental. NV-UV detects RTX 40 cards (Ada Lovelace), reads the stock curve and Apply UV works. What's still rough is the import of existing AB profiles on Ada, the curve formula differs from Blackwell and some profiles don't come through cleanly yet. Stock-curve based workflows (presets, V-Lock, Scanner) should work. If you hit issues on Ada, especially around AB profile import, please send logs + your AB profile via PCGH forum or Discord so we can close the remaining gaps.

NV-UV costs benchmark points, why?

The WPF main window uses GPU resources for rendering and DWM compositing. In 3DMark this can cost ~200-500 points. Solution: Use Mini View, minimize NV-UV to tray, or enable Auto-Mini on Gaming (right-click UV-Pilot). Your UV profile stays active in AB even when NV-UV is minimized/closed.

Antivirus flags NV-UV

False positive. Self-contained .NET SingleFile EXEs are sometimes flagged. NV-UV is safe, you can add an exception.

Where are my settings stored?

%LocalAppData%\NV-UV\ contains: UV profiles, slot names, Game Replay adjustments, scanner history, OCS data, stock curve, CCB cache, logs.

How do I export log files?

Via the Log Export button below the log panel. The log file is exported and can be sent directly to Christian.

Help, my profiles are gone!

Always back up your profiles manually before experimenting. If profiles are lost: check the NV-UV folder at %LocalAppData%\NV-UV\, that's where saved data, OCS curves and scanner history are stored.

My PC won't boot properly after an unstable UV!

Important tip when experimenting with UV: In Afterburner under Settings → General, disable Start with Windows. This prevents an unstable profile from being loaded automatically at boot, in case a UV setting kills the driver during startup. Only re-enable AB autostart once your UV setting has been verified stable in games.

🛠Troubleshooting

NV-UV starts but shows no GPU

Latest NVIDIA driver installed? Start NV-UV after Windows desktop has loaded.

No MAHM connection (no voltage reading)

AB + RTSS must be running. Enable voltage monitoring in AB (see FAQ above). Restart AB.

Apply does nothing / voltage unchanged

Enable Unlock Voltage Control in AB. Missing stock curve? Click 🔄 Recalibrate.

Game crashes after UV

Try a higher preset, or use the scanner. Game Replay lowers frequency automatically.

💬Feedback

Please post feedback directly in the Feedback thread on the PCGH forum or to Christian on Discord, screenshot + text.

Log file: %LocalAppData%\NV-UV\nv-uv.log, please include with bug reports! Exportable via the Log Export button below the log panel.

🔖 Third-Party Components

NV-UV uses NvApiNative.dll, a native NVAPI bridge derived from the open-source project Green Curve by aufkrawall. Green Curve demonstrated how to access the VF curve on Blackwell GPUs directly via NVAPI entry points. NV-UV applies this approach for Scanner Direct Mode and Point Optimization.

Project repository: https://github.com/aufkrawall/green-curve

The full text of the MIT license is reproduced below:

MIT License

Copyright (c) 2026 aufkrawall

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Many thanks to aufkrawall for Green Curve and for making the project available under an open license.