Skip to content

Instantly share code, notes, and snippets.

@baydam
Last active April 27, 2024 03:58
Show Gist options
  • Star 35 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save baydam/a905e4878f54150f7da421e2c1d17a21 to your computer and use it in GitHub Desktop.
Save baydam/a905e4878f54150f7da421e2c1d17a21 to your computer and use it in GitHub Desktop.
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 https://www.raspberrypi.org/documentation/installation/installing-images/README.md

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 https://github.com/magdesign/PocketVJ-CP-v3.git
$ 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 https://github.com/AndrewFromMelbourne/raspidmx

Install Openframeworks 0.9.8

Download openFrameworks
$ cd /tmp
$ wget http://openframeworks.cc/versions/v0.9.8/of_v0.9.8_linuxarmv6l_release.tar.gz
$ 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 ./install_dependencies.sh
$ sudo ./install_codecs.sh
$ 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 https://github.com/jvcleave/ofxOMXPlayer.git
$ git clone https://github.com/satoruhiga/ofxArgParser.git
$ git clone https://github.com/jkosoy/ofxCrypto.git

$ cd ~/openFrameworks/apps/myApps/
$ git clone https://github.com/Hemisphere-Project/HPlayer.git
$ 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 http://omxplayer.sconde.net/builds/omxplayer_0.3.7~git20160713~66f9076_armhf.deb
$ dpkg -i omxplayer_0.3.7~git20160713~66f9076_armhf.deb
$ wget -O /usr/bin/omxplayer-sync https://github.com/turingmachine/omxplayer-sync/raw/master/omxplayer-sync
$ chmod 0755 /usr/bin/omxplayer-sync
$ wget https://github.com/turingmachine/omxplayer-sync/raw/master/synctest.mp4

Simulate a fake keyboard

$ cd /tmp
$ wget http://www.fsays.eu/downloads/fsaysPI.7z
$ 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 https://mypage.techlife.sg/products/TCPSClient.zip
$ unzip TCPSClient.zip

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 https://github.com/info-beamer/tools.git
$ cd tools/screenshot/ && make
$ cd ../ && sudo mv screenshot/ /opt/

Install Pi-Wall

$ cd /tmp
$ wget http://dl.piwall.co.uk/pwlibs1_1.1_armhf.deb
$ sudo dpkg -i pwlibs1_1.1_armhf.deb
$ wget http://dl.piwall.co.uk/pwomxplayer_20130815_armhf.deb
$ 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 http://extplorer.net/attachments/download/68/eXtplorer_2.1.9.zip
$ unzip eXtplorer_2.1.9.zip -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
@LucianoV78
Copy link

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

@cisaia
Copy link

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.

@slagteriet
Copy link

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.

wget http://extplorer.net/attachments/download/78/eXtplorer_2.1.12.zip

and latest version of OMXplayer for raspberry same one here

wget https://omxplayer.sconde.net/builds/omxplayer_0.3.7~git20170130~62fb580_armhf.deb

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..
gstreamer1.0
gstreamer0.10-plugins-bad
firmware-ralink

@slagteriet
Copy link

When running install of openFrameworks 0.10.0
of_v0.10.0_linuxarmv6l_release

I get following issues

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

@Lightsteed
Copy link

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+ ?

@magdesign
Copy link

@WhereIsLucas
Copy link

@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?

@baydam
Copy link
Author

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

@mainframe2017
Copy link

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

@Alby90
Copy link

Alby90 commented Mar 22, 2021

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

@tmatt73
Copy link

tmatt73 commented Jul 11, 2023

I'm stuck at sudo mv PocketVJ-CP-v3/* /var/www, whatever I do it shows there is no directory named PocketVJ-CP-v3.

@magdesign
Copy link

since 2022, there is an image available for download on the official website.
cool guys make a donation to say thanks and to pay some of the server costs/internet 🤓

@DavidLep0le
Copy link

Hello magdesign,
just want to say that the image on the official website is not working.
It's a bug in the uncompress .xz file pv391.img.xz
there is always an error on linux.
so ready to make a donation but i thing it could be cool to put an img here on your github.
sincerly

@magdesign
Copy link

thanks for your feedback.
did you try uncompressing with another tool?
(otherwhise i can re-upload when there is good internet, which is not the case here in the balkan mountains...)

@DavidLep0le
Copy link

hello,
super thanks answer me during your trip !
Your vidz is nice !
I try to uncompress with the regular debian tools and even in the terminal.
always in error...
Even on a mac... So maybe it would be better to fetch the img on a git ...?
thanks and i'm looking forward hearing from you.

@magdesign
Copy link

magdesign commented Sep 30, 2023

thanks for reporting!
i found internet with good upspeed this morning and re-uploaded the image. please try again and report back...

20230930_093203

btw.
wifi password: pocketvj

@DavidLep0le
Copy link

Hello,
It works...
SUPER THANKS.
So now i'm ready to learn how to use PocketVJ.
Here some pics:
PV-3
PV-2
PV-1

@magdesign
Copy link

🤩

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