Raspberry Pi - over_voltage settings
Table of contents
Overview
In order to know much voltage you get on which over_voltage setting, I tested some Raspberry Pis and it took me some time to collect all the data.
I tested all settings from -17 to +17, mainly for VDD_CORE, but since the RPi3B+ also allows adjusting the V_DDR I added it, too.
The data is divided into the value the Raspberry Pi OS gave me via vcgencmd measure_volts core (VDD_CORE) and vcgemcmd measure_volts sdram_c (V_DDR) labeled as Read out and the voltage I measured with my voltmeter directly at the PCB, labeled as Measured.
Beside these values I also added a diff, whichs shows how much the value changes from setting to setting.
Inside the official documentation the over_voltage options are a little bit messed up1 (or I don’t fully understand it), if you use a recent Raspberry Pi, like the RPi4B or CM4 and what to see which setting coresponds to which voltage.
If you are using a RPi3B+, RPi4B or CM4 take a look at my results to see what setting brings you which voltage.
Raspberry Pi 3 B+
VDD_CORE
over_voltage=# at /boot/config.txt
| over_voltage | Read out [V] | Read out diff [V] | Measured [V] | Measured diff [V] |
|---|---|---|---|---|
| -17 | 1,3500 | 0,0000 | 1,346 | 0,000 |
| -16 | 1,2000 | -0,1500 | 1,197 | -0,149 |
| -15 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -14 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -13 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -12 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -11 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -10 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -9 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -8 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -7 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -6 | 1,2000 | 0,0000 | 1,197 | 0,000 |
| -5 | 1,2250 | 0,0250 | 1,221 | 0,024 |
| -4 | 1,2500 | 0,0250 | 1,246 | 0,025 |
| -3 | 1,2750 | 0,0250 | 1,271 | 0,025 |
| -2 | 1,3000 | 0,0250 | 1,296 | 0,025 |
| -1 | 1,3250 | 0,0250 | 1,321 | 0,025 |
| 0 | 1,3500 | 0,0250 | 1,346 | 0,025 |
| 1 | 1,3750 | 0,0250 | 1,371 | 0,025 |
| 2 | 1,3938 | 0,0188 | 1,389 | 0,018 |
| 3 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 4 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 5 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 6 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 7 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 8 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 9 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 10 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 11 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 12 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 13 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 14 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 15 | 1,3938 | 0,0000 | 1,389 | 0,000 |
| 16 | no boot | no boot | no boot | no boot |
| 17 | no boot | no boot | no boot | no boot |
V_DDR
over_voltage_sdram=# at /boot/config.txt
| over_voltage_sdram | Read out [V] | Read out diff [V] | Measured [V] | Measured diff [V] |
|---|---|---|---|---|
| -17 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -16 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -15 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -14 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -13 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -12 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -11 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -10 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -9 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -8 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -7 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -6 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -5 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -4 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -3 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -2 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| -1 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| 0 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| 1 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| 2 | 1,2500 | 0,0000 | 1,247 | 0,000 |
| 3 | 1,2750 | 0,0250 | 1,272 | 0,025 |
| 4 | 1,3000 | 0,0250 | 1,297 | 0,025 |
| 5 | 1,3250 | 0,0250 | 1,322 | 0,025 |
| 6 | 1,3500 | 0,0250 | 1,347 | 0,025 |
| 7 | 1,3750 | 0,0250 | 1,372 | 0,025 |
| 8 | 1,3938 | 0,0188 | 1,391 | 0,019 |
| 9 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 10 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 11 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 12 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 13 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 14 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 15 | 1,3938 | 0,0000 | 1,391 | 0,000 |
| 16 | 1,2500 | -0,1438 | 1,247 | -0,144 |
| 17 | 1,2500 | 0,0000 | 1,247 | 0,000 |
Raspberry Pi 4 B
VDD_CORE
over_voltage=# at /boot/config.txt
| over_voltage | Read out [V] | Read out diff [V] | Measured [V] | Measured diff [V] |
|---|---|---|---|---|
| -17 | 0,8562 | 0,0000 | 0,856 | 0,000 |
| -16 | 0,8350 | -0,0212 | 0,838 | -0,018 |
| -15 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -14 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -13 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -12 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -11 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -10 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -9 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -8 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -7 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -6 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -5 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -4 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -3 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -2 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| -1 | 0,8350 | 0,0000 | 0,838 | 0,000 |
| 0 | 0,8625 | 0,0275 | 0,863 | 0,025 |
| 1 | 0,8875 | 0,0250 | 0,888 | 0,025 |
| 2 | 0,9063 | 0,0188 | 0,906 | 0,018 |
| 3 | 0,9313 | 0,0250 | 0,931 | 0,025 |
| 4 | 0,9563 | 0,0250 | 0,956 | 0,025 |
| 5 | 0,9813 | 0,0250 | 0,981 | 0,025 |
| 6 | 1,0063 | 0,0250 | 1,006 | 0,025 |
| 7 | 1,0313 | 0,0250 | 1,031 | 0,025 |
| 8 | 1,0563 | 0,0250 | 1,056 | 0,025 |
| 9 | 1,0812 | 0,0249 | 1,081 | 0,025 |
| 10 | 1,1000 | 0,0188 | 1,100 | 0,019 |
| 11 | 1,1000 | 0,0000 | 1,100 | 0,000 |
| 12 | 1,1000 | 0,0000 | 1,100 | 0,000 |
| 13 | 1,1000 | 0,0000 | 1,100 | 0,000 |
| 14 | 1,1000 | 0,0000 | 1,100 | 0,000 |
| 15 | 1,1000 | 0,0000 | 1,100 | 0,000 |
| 16 | 0,8350 | -0,2650 | 0,838 | -0,262 |
| 17 | 0,8563 | 0,0213 | 0,863 | 0,025 |
Raspberry Pi Compute Module 4
VDD_CORE
over_voltage=# at /boot/config.txt
| over_voltage | Read out [V] | Read out diff [V] | Measured [V] | Measured diff [V] |
|---|---|---|---|---|
| -17 | 0,880 | 0,000 | 0,880 | 0,000 |
| -16 | 0,835 | -0,045 | 0,840 | -0,040 |
| -15 | 0,835 | 0,000 | 0,840 | 0,000 |
| -14 | 0,835 | 0,000 | 0,840 | 0,000 |
| -13 | 0,835 | 0,000 | 0,840 | 0,000 |
| -12 | 0,835 | 0,000 | 0,840 | 0,000 |
| -11 | 0,835 | 0,000 | 0,840 | 0,000 |
| -10 | 0,835 | 0,000 | 0,840 | 0,000 |
| -9 | 0,835 | 0,000 | 0,840 | 0,000 |
| -8 | 0,835 | 0,000 | 0,840 | 0,000 |
| -7 | 0,835 | 0,000 | 0,840 | 0,000 |
| -6 | 0,835 | 0,000 | 0,840 | 0,000 |
| -5 | 0,835 | 0,000 | 0,840 | 0,000 |
| -4 | 0,835 | 0,000 | 0,840 | 0,000 |
| -3 | 0,835 | 0,000 | 0,840 | 0,000 |
| -2 | 0,835 | 0,000 | 0,840 | 0,000 |
| -1 | 0,855 | 0,020 | 0,860 | 0,020 |
| 0 | 0,880 | 0,025 | 0,880 | 0,020 |
| 1 | 0,905 | 0,025 | 0,910 | 0,030 |
| 2 | 0,930 | 0,025 | 0,930 | 0,020 |
| 3 | 0,945 | 0,015 | 0,950 | 0,020 |
| 4 | 0,980 | 0,035 | 0,980 | 0,030 |
| 5 | 1,005 | 0,025 | 1,010 | 0,030 |
| 6 | 1,030 | 0,025 | 1,030 | 0,020 |
| 7 | 1,055 | 0,025 | 1,060 | 0,030 |
| 8 | 1,080 | 0,025 | 1,080 | 0,020 |
| 9 | 1,100 | 0,020 | 1,100 | 0,020 |
| 10 | 1,100 | 0,000 | 1,100 | 0,000 |
| 11 | 1,100 | 0,000 | 1,100 | 0,000 |
| 12 | 1,100 | 0,000 | 1,100 | 0,000 |
| 13 | 1,100 | 0,000 | 1,100 | 0,000 |
| 14 | 1,100 | 0,000 | 1,100 | 0,000 |
| 15 | 1,100 | 0,000 | 1,100 | 0,000 |
| 16 | 0,835 | -0,265 | 0,840 | -0,260 |
| 17 | 0,880 | 0,045 | 0,890 | 0,050 |
Conclusion
As you can see the RPi3B+ acts different to the newest models.
With the RPi3B+ and below over_voltage=8 brings you the highest VDD_CORE, whereby on a RPi4B setting 10 is the value of choice for max. VDD_CORE.
Even the CM4 acts slighty different to the RPi4B, because there is a small offset beginning at setting 0.
If you choose an extreme setting, the voltage acts weird.
over_voltage=16 is always a bad idea. Either the system won’t boot (RPi3B+), or the voltage jumps back to the stock value, which will result in an unstable system, since you change voltage mainly for overclocking purposes.
I want to test some more models, but this work consumed much free time, so please don’t expect any results in the near future.