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.

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.

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.

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.

volkswatson commented Feb 8, 2018

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


This comment has been minimized.

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.

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...

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