Skip to content

Instantly share code, notes, and snippets.

@baydam
Last active June 18, 2024 12:24
Show Gist options
  • 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
@baptistesejourne
Copy link

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 2.0.0.100

@MikaelBF
Copy link

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 :)

@MikaelBF
Copy link

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 ;)

@volkswatson
Copy link

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

@MikaelBF
Copy link

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 :)

@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

🤩

@studiofrankensound
Copy link

It's 2024 and I'm finally catching up with this great looking project, but after downloading the image, saving to microSD with RPi imager and inserting it into a new RP3b+, I don't even see the boot screen loading and no sign of wifi network. I haven't worked with these tools much before, could I be missing something simple?

@magdesign
Copy link

magdesign commented Jun 9, 2024

from the feedback i got so far, the image boots after flashing, so you might have not flashed it properly or not using an RPI3b+... 🤷

@studiofrankensound
Copy link

just an update, I've now tried redownloading and flashing the image with multiple cards on multiple PCs using both rpi imager and balenEtcher, then tried with more than one 3b+(with official power supply) with the same result... it doesn't boot. I've gone back to a boring old videolooper image for now ;) but if anybody gets this working with a similar setup in future, I'd love to hear about it

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