Vcgencmd is a useful command has multiple options to measure clock speeds, temperatures, voltages. It is built in and has many parameters
Measure Clock Speeds
Description |
Command |
Get Arm CPU core speed |
vcgencmd measure_clock arm |
Get GPU core speed |
vcgencmd measure_clock core |
Get H.264 block speed |
vcgencmd measure_clock h264 |
Get image sensor pipeline speed |
vcgencmd measure_clock isp |
Get 3D block speed |
vcgencmd measure_clock v3d |
Get UART speed |
vcgencmd measure_clock uart |
Get PWM block (analog audio output) |
vcgencmd measure_clock pwm |
Get SD card interface clock speed |
vcgencmd measure_clock emmc |
Get pixel values |
vcgencmd measure_clock pixel |
Get analogue video encoder speed |
vcgencmd measure_clock vec |
Get HDMI clock |
vcgencmd measure_clock hdmi |
Get display parallel interface clock speed |
vcgencmd measure_clock dpi |
user@raspberrypi:~ $ vcgencmd measure_clock arm
frequency(48)=600117184
Measure Voltages
We can measure the voltages of the VideoCore chip, RAM and the voltages, currents in use on the many power sources, including the Power Management IC.
Description |
Command |
Get VideoCore voltage |
vcgencmd measure_volts core |
Get RAM core voltage |
vcgencmd measure_volts sdram_c |
Get RAM I/O voltage |
vcgencmd measure_volts sdram_i |
Get RAM Phy voltage |
vcgencmd measure_volts sdram_p |
Read PMIC voltages |
vcgencmd pmic_read_adc |
user@raspberrypi:~ $ vcgencmd measure_volts core
volt=0.8688V
System Configuration Info
Description |
Command |
Returns system configuration |
vcgencmd get_config int |
Returns memory split for Arm CPU |
vcgencmd get_mem arm |
Returns memory split for GPU |
vcgencmd get_mem gpu |
user@raspberrypi:~ $ vcgencmd get_config int
arm_64bit=1
arm_boost=1
arm_freq=1500
audio_pwm_mode=514
auto_initramfs=1
camera_auto_detect=1
config_hdmi_boost=5
core_freq=500
core_freq_min=200
disable_commandline_tags=2
disable_fw_kms_setup=1
disable_l2cache=1
disable_overscan=1
display_auto_detect=1
display_hdmi_rotate=-1
display_lcd_rotate=-1
dvfs=3
enable_gic=1
force_eeprom_read=1
force_pwm_open=1
framebuffer_ignore_alpha=1
framebuffer_swap=1
gpu_freq=500
gpu_freq_min=250
init_uart_clock=0x2dc6c00
lcd_framerate=60
mask_gpu_interrupt0=3072
mask_gpu_interrupt1=25635
max_framebuffers=2
over_voltage_avs=-11250
pause_burst_frames=1
pciex4_reset=1
program_serial_random=1
total_mem=2048
hdmi_force_cec_address:0=65535
hdmi_force_cec_address:1=65535
hdmi_pixel_freq_limit:0=0x11e1a300
hdmi_pixel_freq_limit:1=0x11e1a300
System Throttle Status
When the Raspberry Pi hits around 80 degrees Celsius, it will enter thermal throttle. We can test for this
Description |
Command |
Returns the system’s throttle state as a bit-pattern. |
vcgencmd get_throttled |
The return value uses the following bit table
System Throttle Status Bit Table
Description |
Bit |
Hex Value |
Under-voltage detected |
0 |
0x1 |
Arm frequency capped |
1 |
0x2 |
Currently throttled |
2 |
0x4 |
Soft temperature limit active |
3 |
0x8 |
Under-voltage has occurred |
16 |
0x10000 |
Arm frequency capping has occurred |
17 |
0x20000 |
Throttling has occurred |
18 |
0x40000 |
Soft temperature limit has occurred |
19 |
0x80000 |