Knowledge base

Knowledge base
Troubleshooting VNC Server on the Raspberry Pi

If VNC on the Raspberry Pi is not running smoothly, use this page to help you troubleshoot your problem.

Note: If you would like to enable the experimental direct capture feature from the command line, click here

Changing the Raspberry Pi's screen resolution  

The following use cases may result in you needing to change your Raspberry Pi's screen resolution:

  • You have previously increased your Pi's resolution, which may be impacting VNC's performance.
  • You are connecting to a headless Pi (a Pi that is not plugged into a monitor) in Service Mode, which may result in its resolution being too small (A headless Pi defaults to the smallest safe resolution, which is typically the same as a standard definition TV. As VNC Server remotes the desktop at whatever resolution your Pi is using, the screen displayed by VNC Viewer is then much smaller than you would expect.)

You can change your Pi's resolution using raspi-config or the Raspberry Pi Configuration app.

To use raspi-config, access Terminal and run raspi-config. Then navigate to Advanced Options > Resolution. If you'd rather use a gui, open the Raspberry Pi Configuration app and select Resolution from the resultant dialog.

Note: If you are using an older version of Raspian, or if you require an unusual resolution, follow these instructions:

Specify the following settings in /boot/config.txt:

hdmi_force_hotplug=1 Tells your Pi an HDMI display is attached.
hdmi_mode=16 Forces a resolution of 1024x768 at 60Hz. See here for more options.

Note: These new settings will override any information from monitors you subsequently plug in (unless you revert hdmi_force_hotplug), so pick a 'headless' resolution that is compatible with your regular monitor.

You will need to restart your Pi for these settings to take effect. Click here for more information on config.txt.


Optimizing the Raspberry Pi Zero / Raspberry Pi 1 for VNC

If are controlling a Raspberry Pi Zero / Raspberry Pi 1 in a secure environment (e.g. over a local network), disabling encryption may offer a performance boost due to reduced CPU usage.

Note: You should never disable encryption for connections over the Internet. 

To disable encryption:

  1. On your Pi, navigate to the VNC Server dialog, then More > Options > Expert.
  2. Change the Encryption parameter to AlwaysOff.
  3. Restart any existing connections so these changes take effect. 

If your performance is still slow, lower your Pi's screen resolution using these instructions


Optimizing your Raspberry Pi for direct capture

If you have enabled direct capture in order to play Minecraft remotely, you may have noticed a drop in performance. Here, increasing the memory allocated to your GPU may help:

  1. Access Terminal and run sudo raspi-config.
  2. Navigate to Advanced options > Memory Split.
  3. Ensure your GPU has at least 128mb allocated to it.

If your performance is still slow, lower your Pi's screen resolution using these instructions