VitaDock+ is a Linux distribution for Raspberry Pi used to create a PlayStation Vita docking station for video output to a TV.
Model | Status | Details |
---|---|---|
Raspberry Pi Zero 2 W Rev 1.0 | Excellent | |
Raspberry Pi 4 Model B Rev 1.1 (4GB) | Excellent | |
Raspberry Pi 4 Model B Rev 1.2 (2GB) | Excellent | |
Raspberry Pi 4 Model B Rev 1.1 (2GB) | Excellent | |
Raspberry Pi 3 Model B Plus Rev 1.3 | Excellent | |
Raspberry Pi 3 Model B Rev 1.2 | Excellent | |
Raspberry Pi 2 Model B Rev 1.1 | Good | |
Raspberry Pi Zero W Rev 1.1 | Works | Latency makes games unplayable. See performance tips section below. |
To help me verify models please report to me how it is working for you and your exact model. You can get the exact model by opening a terminal with the run menu by running x-terminal-emulator
then entering cat /sys/firmware/devicetree/base/model
.
If using AUX audio input there are specific extras needed. Please see Regarding AUX for more information. If using GPIO buttons instead of a keyboard and mouse see Control via GPIO for more information.
Any time you see the VitaDock+ desktop you can plug your Vita in through USB to get video output.
Check back here for updates and rewrite the image when there is one. Data stored on the dock will be overwritten but this isn't really a distribution you're meant to store data on in the first place.
MiniVitaTV by TheOfficialFloW: https://github.com/TheOfficialFloW/MiniVitaTV
Allows the PS Vita to run like a PS TV, enabling DualShock 4 controllers to be connected and makes games load their PS TV control schemes.
PSV-VSH-Menu by joel16: https://github.com/SilentNightx/PSV-VSH-Menu/releases/tag/3.50
Allows you to set processor states for games, overlay FPS counter, and more. Checking the FPS of a game can be helpful when using VitaDock+ so you can decide what mode you want to use (HD @ 30 or SD @ 60).
VitaDock+ can handle audio in several ways.
There is a humming noise experienced over AUX while the Vita is charging.
To get rid of it you can either disable USB Power Supply in Vita Settings -> System or you can use a ground loop isolator: Associate Link
If sending AUX to the dock instead of directly into your sound system your Pi will need AUX input capabilities which not all Pis have by default. Pis such as the Pi 3 and Pi 4 will need to get an adapter such as this one: Associate Link
When doing this, unless you get an interface that supports stereo input you will be limited to mono audio. Depending on the card you get you may also need a 3.5mm stereo to mono adapter: Associate Link
Once you verify your Pi supports it, or you install a USB sound card, you will need to enable AUX input on the dock by going to Menu -> Options -> Use AUX Input. Doing so for the first time will bring you to the configuration tool where you pick your input device. To reconfigure it later you can go to Menu -> Options -> AUX Configuration Tool instead.
Enabling AUX will disable Bluetooth and vice versa.
Bluetooth attempts to use the internal Bluetooth by default. If your Pi doesn't have internal Bluetooth or your Bluetooth is glitching you can try using dongle Bluetooth instead. There are fake CSR Bluetooth dongles going around that don't work so watch out for those: Associate Link
To switch between internal Bluetooth and dongle Bluetooth, or reenable Bluetooth when in AUX mode, you can go to Menu -> Options on the dock and select a Bluetooth mode.
To connect to Bluetooth use the Bluetooth icon in the taskbar. Turn on Discovery then Pair from the Vita Settings -> Devices -> Bluetooth Devices menu. Confirm the code on the Vita and the dock. You can then turn off Discovery if you want. For future play sessions you will just need to connect from the Vita Settings menu.
Bluetooth latency and glitching appears to be bad when first connecting but starts to reside quickly. Bluetooth is also very taxing on the Pi so it may not be the best option for older/slower Pis.
Enabling Bluetooth will disable AUX and vice versa.
It's possible to control the VitaDock+ without the need for a mouse and keyboard. GPIO pins, documented below, have been configured to emulate keyboard presses.
This allows not only for first time setup of audio (Bluetooth or AUX) to be configured but also changing of the display settings without a mouse or keyboard.
It's feasible that in the future the available 3D models for docks could be updated to include these buttons. As of now though a user would have to devise their own way to mount these buttons.
Note the table below lists the GPIO pin number, that is not to be confused with the physical pin number. For exmaple on a RPi3+ GPIO pin 6 is physical pin 31.
GPIO Pin | Keyboard key | Configuration Item |
---|---|---|
21 | Left Arrow Key | LEFT_KEY_GPIO |
20 | Right Arrow Key | RIGHT_KEY_GPIO |
26 | Up Arrow Key | UP_KEY_GPIO |
19 | Down Arrow Key | DOWN_KEY_GPIO |
16 | Windows Key | WINDOWS_KEY_GPIO |
13 | Escape Key | ESCAPE_KEY_GPIO |
12 | Enter Key | ENTER_KEY_GPIO |
6 | Tab Key | TAB_KEY_GPIO |
It is possible to change the GPIO pin used or disable the functionality completely on a per GPIO pin basis.
This can be achieved by modifying the vitadock.conf
file see For Advanced Users. The table above lists the configuration item used for each keyboard key.
Simply change the value to the GPIO pin you would rather use. If you wish to disable the pin entirely set its value to empty, eg: ENTER_KEY_GPIO=
You need a button that is normally open, that is it is not connected when it is not pressed. Nearly all buttons used in Arduino hobby kits and the like behave this way.
One end needs to be connected to the Raspberry PI's GPIO pin, the other end connected to a Ground
pin.
Pressing the Windows Key
will bring up the main menu. Arrow keys
can then be used to navigate up and down the menu. The Enter Key
can be used to select an item or open a submenu. The Escape Key
can be used to close the menu or collapse a submenu.
The Tab Key
is a special key that allows navigation of the entire Operating System without the need for a mouse. Users who are unable to use a mouse for medical reasons may already be aware of this feature.
This functionality has been added just in case a user may wish to do more than just select menu items.
It is possible to make the VitaDock+ discoverable via Bluetooth using a GPIO pin. Sending this pin to ground will make the dock discoverable for three minuets.
The default pin is GPIO pin 5 (physical pin 29 on the RPi3+) however this can be changed within the vitadock.conf
file.
The config item DISCOVERY_KEY_GPIO
controls which pin is used, setting it to empty will disable this feature.
Connect a physical power button to GPIO 3/SCL (physical pin 5 on the RPi3+) and GND (physical pin 6 on the RPi3+). This is not configurable.
Name your payload payload.bin
and place in /boot/nx/. When the Pi detects a Switch in RCM mode over USB it will automatically inject the payload within 3 seconds.
https://www.thingiverse.com/thing:3942821
https://www.thingiverse.com/thing:3502645
https://www.thingiverse.com/thing:4609317
https://www.tinkercad.com/things/b0GQwqVYNPP
Overclocking and disabling Bluetooth on low powered Pis can also help. Good starting overclock values:
Model | arm_freq | core_freq | gpu_freq | sdram_freq | over_voltage | Cooling Required |
---|---|---|---|---|---|---|
Raspberry Pi 1 Model A & B | 1000 | 450 | 6 | |||
Raspberry Pi A+ / B+ / Compute Module | 1100 | 450 | 450 | 6 | Yes | |
Raspberry Pi Zero / Zero W | 1100 | 450 | 6 | |||
Raspberry Pi 2 v1.1 | 1000 | 500 | 2 | |||
Raspberry Pi 2 V1.2 | 1300 | 500 | 4 | |||
Raspberry Pi 3 & Compute Module 3 | 1300 | 500 | 4 | |||
Raspberry Pi 3 A+ / B+ / Compute Module 3+ | 1500 | 4 | ||||
Raspberry Pi 4 | 2100 | 750 | 6 |
Data from: https://www.tomshardware.com/how-to/overclock-any-raspberry-pi
I do not take responsibility for anyone damaging their hardware with overclocking.
Older images (<=V2.0) are known to have better performance on old/slower Pis and worse performance on new/faster Pis.
Boot failure:
Vita connection issues:
Username is pi
Password is raspberry
Do not connect VitaDock+ to the internet without changing this.
Use the run menu to access standard programs:
pcmanfm
to open file manager
x-terminal-emulator
to open terminal emulator
menulibre
to open menu editor
The features below are still in testing and may not work properly or at all. Support will not be provided for them.
This feature allows you to connect a Switch that has SysDVR running in USB mode to get a video output. You need SysDVR 5.3 specifically installed on your Switch and you must be in a game that supports SysDVR when you connect. Doesn't work on Pi 1 or Pi Zero 1. See https://github.com/exelix11/SysDVR for more information.
This feature allows you to display native 720p from a Vita using the Sharpscale plugin. You'll need Sharpscale installed on your Vita along with a 1280×720 resolution patch plugin for a game and you need Unlock Framebuffer Size turned on in the Sharpscale config. See https://forum.devchroma.nl/index.php?topic=112.0 for more information.
Original VitaDock Team: Bu (m0tie), ZoidBerg, his wife Si (icon and video), David-OX, Crash, and myself.
Special thanks to Xerpi (vita-udcd-uvc), TheOfficialFloW (various Vita exploits), Team Molecule (HENkaku), Relative (rpi-nx-rcm), and exelix11 (SysDVR).