Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
How to build PocketVJ on Raspberry Pi 3

Documentation for building PocketVJ on raspberry Pi 3

Install Raspbian Lite

Find the instruction in the link below

Install dependencies

$ sudo apt-get -y install lxde-core lxterminal lxappearance xinit lightdm ntfs-3g python-pexpect vim figlet git-core firmware-ralink hostapd isc-dhcp-server lighttpd samba samba-common-bin php5-common php5-cgi php5 php5-mysql screen fbi ttf-mscorefonts-installer mediainfo gparted php5-cli iptables xtightvncviewer imagemagick dosfstools exfat-utils exfat-fuse hfsplus hfsprogs hfsutils xdotool expect expect-dev avahi-daemon libavahi-compat-libdnssd-dev feh libjpeg8 libjpeg8-dev libao-dev avahi-utils libavahi-compat-libdnssd-dev libva-dev youtube-dl python-smbus mpg321 mpg123 libreoffice-impress rc-gui python-pip iceweasel python-dev python-dbus xpdf x11-xserver-utils libncurses5-dev shellinabox tk okular usbmount libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad libgstreamer-plugins-base1.0-dev gstreamer1.0

$ sudo pip install --upgrade pip
$ sudo pip install pjlink python-osc svgtools svgpathtools svgwrite

Setup PocketVJ Control Panel server

$ cd /tmp
$ git clone
$ sudo mv PocketVJ-CP-v3/* /var/www
$ sudo chown -R www-data:www-data /var/www

Add www-data to your sudoers list with: visudo add this line at the end: www-data ALL=(ALL) NOPASSWD: ALL
Allow php with: sudo lighty-enable-mod fastcgi-php
Edit /etc/lighttpd/lighttpd.conf and replace /var/www/html by /var/www
Then reload lighttpd server with: sudo /etc/init.d/lighttpd force-reload
Create diferrent folders for audios and videos

$ sudo mkdir -p /media/internal/{video,images,pdf,audios}

Clone RaspiDMX to Raspberry home directory

$ cd && git clone

Install Openframeworks 0.9.8

Download openFrameworks
$ cd /tmp
$ wget
$ tar -zxvf of_v0.9.8_linuxarmv6l_release.tar.gz
$ mv of_v0.9.8_linuxarmv6l_release ~/openFrameworks
Install packages and compile openFrameworks
$ cd /home/pi/openFrameworks/scripts/linux/debian
$ sudo ./
$ sudo ./
$ make Release -C /home/pi/openFrameworks/libs/openFrameworksCompiled/project

Install HPlayer

Prepare your RaspberryPi

$ sudo raspi-config
	# Expand filesystem
	# Split GPU memory to 256
	# Bootup in Console
	# Overclock if you want to
	# Reboot !

Build HPlayer from source

$ cd ~/openFrameworks/addons/
$ git clone
$ git clone
$ git clone

$ cd ~/openFrameworks/apps/myApps/
$ git clone
$ cd HPlayer
$ make
$ cp -R bin/ ~/HPlayer
$ cd ~

Install OMXPlayer-sync

$ sudo su
$ apt-get remove omxplayer
$ rm -rf /usr/bin/omxplayer /usr/bin/omxplayer.bin /usr/lib/omxplayer
$ apt-get install libpcre3 fonts-freefont-ttf fbset libssh-4 python3-dbus
$ wget
$ dpkg -i omxplayer_0.3.7~git20160713~66f9076_armhf.deb
$ wget -O /usr/bin/omxplayer-sync
$ chmod 0755 /usr/bin/omxplayer-sync
$ wget

Simulate a fake keyboard

$ cd /tmp
$ wget
$ sudo apt-get install p7zip
$ 7z x -t7z fsaysPI.7z
$ sudo cp fsaysPI/fsaysuinput /opt
$ sudo cp fsaysPI/fsayskeyboard /opt
$ sudo chmod +x /opt/fsays*

Install TCPSClient

$ cd /tmp
$ wget
$ unzip

In case you use Raspberry Pi 3 copy TCPSClient3.bin to excutable directory

$ sudo cp TCPSClient/TCPSClient3.bin /usr/bin/
$ sudo chmod u+x /usr/bin/TCPSClient3.bin

Install info-beam for using the snapshot function

$ cd /tmp
$ git clone
$ cd tools/screenshot/ && make
$ cd ../ && sudo mv screenshot/ /opt/

Install Pi-Wall

$ cd /tmp
$ wget
$ sudo dpkg -i pwlibs1_1.1_armhf.deb
$ wget
$ sudo dpkg -i pwomxplayer_20130815_armhf.deb

Install Extplorer

install eXtplorer in /var/www/eXtplorer and configure it: sudo nano /var/www/eXtplorer/include/init.php

change the root directory to '/media/';

$ cd /tmp
$ wget
$ unzip -d eXtplorer
$ sudo mv eXtplorer /var/www/
$ sudo chown -R www-data /var/www/eXtplorer

Increase the upload size limit by editing these lines below in /etc/php5/cgi/php.ini

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 2000M/g' /etc/php5/cgi/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 8000M/g' /etc/php5/cgi/php.ini

This comment has been minimized.

Copy link

@baptistesejourne baptistesejourne commented Oct 31, 2017

thanks so much !!!
very helpful
I'm stuck at the end, about connecting the Pi to my computer and finding the right address to connect to the pocketvj index.html, I guess its not


This comment has been minimized.

Copy link

@MikaelBF MikaelBF commented Jan 31, 2018

Hello. Thank you for the in-depth explanation. It really helped me along :)

I do have a problem though. I am an extreme novice when it comes to working with Pi's, so following along with the code you wrote was very nice, however, in the end, when you say to configure the root directory of eXtplorer you kind of lost me. I have googled everywhere, and people have all sorts of suggestions, but none of them work.

Could you include the precise method of how the configuration should be? As in, which line to change/add and how it should be written. It would help me a lot

Everything else works like a charm.

To answer baptistesejourne's question: I think you just need to write the IP of the Pi in your browser's adress line. It worked for me at least :)


This comment has been minimized.

Copy link

@MikaelBF MikaelBF commented Feb 2, 2018

Finally, I found out!! :D

Turns out I did not need to change any code at all. Rather, I could edit the home folder directly in the eXtplorer window.

I tried removing the eXtplorer folder and placing a clean version in its place.

When I first logged on, I used the basic login and pass "admin" (both places). It then warned me to change the password, and in the same window, I was able to define the home folder. Changing this to /media/ did the trick :)

Now I just need to try out whether I did all the rest of the things correctly ;)


This comment has been minimized.

Copy link

@volkswatson volkswatson commented Feb 8, 2018

Crud. I inadvertently trashed my lighttpd.conf file. Can someone post it here?


This comment has been minimized.

Copy link

@MikaelBF MikaelBF commented Feb 19, 2018

New question:

How do I find out my Pi's IP address after having installed PocketVJ? To begin with, I could access it via the IP address in my browser, however, it's been a week since I worked on it, and now it has changed its IP, so I can't access it anymore. I wanted to go into the terminal to find out, but it just runs the demo video, and does not respond to any shortcuts on my keyboard...

I could just format the SD card and start over, but that just seems like a lot of hassle, if there is an easy way to get to the terminal again.

Thank you in advance :)


This comment has been minimized.

Copy link

@LucianoV78 LucianoV78 commented Apr 25, 2018

Hi everybody,
sorry for my english but really happy to be here with you all...looking for help.

I'm trying to build my pocketvj thanks to this efficient guide on my PI B3, but having problems about 3 points:

  • SIMULATE A FAKE KEYBOARD (There's no file at the link in the line 2)
  • INSTALL TCPSCLIENT (I'm not able to copy TCPSClient3.bin to excitable directory using the second two lines as described)
  • INSTALL EXTPLORER (unable to change the root directory to '/media/' configuring sudo nano /var/www/eXtplorer/include/init.php)

All the rest seems to be ok.

Thank you, I'm really excited to reach the end of this creative compiling...


This comment has been minimized.

Copy link

@cisaia cisaia commented Feb 23, 2019

Hi to all,
I'm trying to build my installation but I'd found many errors in the dependencies could someone update the dependencies correlated with the Raspbian Stretch Lite.
Thanks to all in advance.


This comment has been minimized.

Copy link

@slagteriet slagteriet commented Mar 24, 2019

hi @baydam I tried following your guide, and merged it with the guide from @magdesign this on.

I added latest version of eXtplorer 2.1.12 and OMXplayer 0.3.7 version below.


and latest version of OMXplayer for raspberry same one here


I can start the PocketVJ Control Panel , but it won't play anything an eXtplorer is just blank..?

Rearding TCPSclient here is what I used for RPI3 with stretch link here

These steps won't install in the fist dependencies you have to install..


This comment has been minimized.

Copy link

@slagteriet slagteriet commented Mar 24, 2019

When running install of openFrameworks 0.10.0

I get following issues

Skærmbillede 2019-03-24 kl  20 25 37


This comment has been minimized.

Copy link

@Lightsteed Lightsteed commented Apr 3, 2019

I have tried using a few guides to install and get pocketvj working properly but every time i run into errors on the install dependencies and whatnot, i have managed to get it half working, but not the mapping function which is what i really need. Is anyone able to upload a fully working iso image of the pocketVJ for a raspberry pi 3b+ ?


This comment has been minimized.

Copy link

@magdesign magdesign commented May 18, 2019


This comment has been minimized.

Copy link

@WhereIsLucas WhereIsLucas commented May 11, 2020

@baydam which Raspbian version did you use, on which version of the Raspberry ?
I'm trying to get this working on my 3B+, but I can't get everything to work.
Thanks for your help?


This comment has been minimized.

Copy link
Owner Author

@baydam baydam commented May 13, 2020

Hey @WhereIsLucas I used a Raspberry 3 at the time but this documentation was written 3 years ago some packages may have change since.
This document is about how I successed installing PocketVJ at that time. I followed the instructions from PocketVJ repository and everytime that something doesn't work I make some researches to figured out


This comment has been minimized.

Copy link

@mainframe2017 mainframe2017 commented Nov 23, 2020

this project work on every pi and and every Raspbian lite OS?


This comment has been minimized.

Copy link

@Alby90 Alby90 commented Mar 22, 2021

No news on how to build pocketVJ? I have problem like everyone else when i try to Install dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment