I turned a Raspberry Pi into a mini console for PC gaming

While the Steam Link is not officially available in South Africa, you shouldn’t be prevented from playing PC games from the comfort of your couch.

A good alternative is a Raspberry Pi running as a streaming console connected to a TV and your PC.

Unlike a Steam Link, the system uses Nvidia’s GameStream technology to stream games from a PC to a device over a local network.

In this configuration, the Raspberry Pi essentially functions as a gaming console – allowing you to connect controllers to the Pi’s USB ports and run preconfigured games from the Pi’s interface.


The hardware required for the build is a Raspberry Pi with a power supply, SD card, and case (optional, as it will be in a high-use area). A Raspberry Pi 3 Model B starter kit with what you’ll need costs around R940.

The pricing for the individual components is:

  • Raspberry Pi 3 Model B – R610
  • 8GB MicroSD card – R99
  • Raspberry Pi power supply – R109
  • Raspberry Pi case – R130

You will also need a relatively-new Nvidia graphics card in your PC to use GameStream – a GeForce 600 Series or newer for desktop or GTX660M or newer chip for a notebook.

My work laptop – an Asus ROG G752VT – sports an Nvidia GeForce GTX 970M, which was perfect.

If you plan on using a Raspberry Pi as a streaming console for long stints, it is also a good idea to get a small heatsink for the board’s processor.

Raspberry Pi hardware


The setup consists of installing Nvidia’s GeForce Experience tool on the PC you will use to run the games.

After installing the software, I was able to check my notebook graphics card’s compatibility with Nvidia’s GameStream technology.

I then enabled GameStream on my notebook, making sure to add apps to the software’s settings to stream them to the Pi.

After setting up the notebook for streaming, I used it to install NOOBS on an SD card, which I connected to the Raspberry Pi board.

I then installed the Raspbian Jessie operating system and set up Bluetooth peripheral devices for easier accessibility while setting up Moonlight.

Moonlight is open source software which works with GameStream and allows you to stream gameplay to a variety of devices.

The software also allows the client device to send control inputs to the host by default.

Installing the software and its dependencies only required starting up the Pi’s Terminal and entering a few commands.

To begin, I made sure my system was updated using the “sudo apt-get update” command, and then installed the required dependencies with the following command:

sudo apt-get install libopus0 libexpat1 libasound2 libudev0 libavahi-client3 libcurl3 libevdev2 libenet7 libraspberrypi0

After the dependencies had finished installing, I could install Moonlight.

I opened up the sources.list file in the Pi’s nano text editor with this command:

sudo nano /etc/apt/sources.list

In the nano text editor, I navigated to the end of the document and added the following line before saving and exiting.

deb http://archive.itimmer.nl/raspbian/moonlight jessie main

Now all that remained was to fetch and install the GPG key using these commands:

wget http://archive.itimmer.nl/itimmer.gpg

sudo apt-key add itimmer.gpg

And install the Moonlight package with:

apt-get update
apt-get install moonlight-embedded

After installing Moonlight, I was able to pair with my notebook wirelessly using its local IP address.

Running games using Moonlight can be done by entering commands in the terminal or executing custom scripts to access saved configurations.

When starting a stream with Moonlight, you can specifiy various options in the command line.

Below is an example of a command entered into the Pi which executes The Witcher 3: Wild Hunt remotely on my laptop and streams it to the Pi at a resolution of 1080p and a framerate of 60fps.

moonlight stream -1080 -60fps -bitrate 10000 -app witcher3

Moonlight and Xboxdrv Setup

Controller mapping

Some controllers work natively with the Raspberry Pi, but it is usually easier to install xboxdrv and map your controllers as you connect them.

The software allows you to save configurations and connect multiple controllers, including wireless Xbox 360 controllers using a dongle.

I installed xboxdrv from its GitHub page and mapped the input of a connected controller before initialising a game using Moonlight.

If a controller requires remapping before playing, it is possible to write mapping options to a script which runs on startup.

Wticher 3 streaming from Laptop


The lengthy setup is worth the wait.

Using scripts and a decent local network connection, the Raspberry Pi works great as a streaming console – allowing me to connect a controller and start streams at the push of a button.

Sound is automatically delivered to the TV via the HDMI cable, and the quality and latency of your stream will depend on the connection between the two devices.

While a wired Ethernet connection is ideal, a Wi-Fi connection with no interference and good signal strength may suffice – depending on your bitrate settings.

Tweaking the stream options to find the right compromise between responsiveness and visual quality was a delicate balancing act, but eventually resulted in a responsive, high-quality stream which didn’t seem to push the Raspberry Pi beyond its limits.

The best streaming experience over Wi-Fi was obtained by setting the stream to 30fps, as this increased responsiveness while delivering smooth gameplay.

While a cheap gaming console may be the easiest solution for living room gaming, a little bit of work and a Raspberry Pi can deliver true PC gaming to your TV.

If you have a wireless keyboard and mouse, you can also hook them up to your Pi to play strategy games or first-person shooters.

Now read: Five cool gadgets you can build using a Raspberry Pi

Latest news

Partner Content

Show comments


Share this article
I turned a Raspberry Pi into a mini console for PC gaming