Raspberry PI Configuration
==========================
Basic installation
------------------
The SD card that comes with the raspberry PI has
`raspbian `_ pre-installed.
You can figure out the particular raspbian version by doing
.. code-block::
> less /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
In order to update to the latest version, go ahead and download the OS image from the
`raspberry page `_
and unzip it.
The community recommends `Etcher `_ to flash the
image onto the SD card, and this is actually quite easy---you download the
binary from the website, change the permissions to make it executable and
run it. (You will need a card reader for the thing to happen.)
.. note::
Version 11 of raspbian comes with Python 3.9.2 installed, and it seems like
a good starting point for our purposes.
After the OS installation you might want to do an update:
.. code-block::
> sudo apt dist-upgrade
Dependencies
------------
The only additional packages that you need, on top of the standard raspbian
Desktop installation, are:
* the Python wrappers to the Qt library for the GUI;
* the pandas framework for parsing the excel configuration file.
.. code-block::
> sudo apt-get install python3-pyqt5 python3-pandas
Setting up the screen
---------------------
You get control of the screen orientation (e.g., vertical vs. horizontal) through
the `Preferences -> Screen Configuration` dialog. This will open the screen
editor that allows to change the orientation.
Alternatively, you can hack the ``/boot/config.txt``, e.g.
.. code-block::
display_hdmi_rotate=1
to rotate the screen by 90 degrees (i.e., to the right).
Presentation software
---------------------
In order to clone the repository just do
.. code-block::
> git clone https://github.com/lucabaldini/pisameet.git
This should come up with a small fictional session from the last edition of the
Pisa Meeting (i.e., the one in 2018). You should be able to run the slideshow
by doing
.. code-block::
> ./pisameet/slideshow.py pm2018/pm2018.xlsx
Unique Screen Identifier
------------------------
Each Raspberry PI should be assigned a unique screen identifier, in order for
the slideshow code to be able to determine with posters should be added to the
roster on any given machine. This is a achieved through a text configuration
file living in the ``pisameet`` subfolder called ``screen.cfg``.
.. note::
If the ``pisameet/screen.cfg`` files does not exist, a default one will
be created, using a copy of the ``pisameet/screen.cfg.sample`` included
in the distribution. (Note the actual configuration file is included in the
``.gitignore`` file). In any event, the file should be edited by hand.
(And it would be a good thing to have a physical label on the board matching
the screen identifier of each device.)
.. seealso:: :ref:`program`
Automatic slideshow start
-------------------------
The raspberry PIs should be configured in such a way that they will
automatically start the slideshow at login, and the quickest way to achieve that
is through a .Desktop file to along the lines of
.. code-block::
[Desktop Entry]
Type=Application
Name=Pisa Meeting Slideshow
Exec=/usr/bin/python3 /home/pi/pisameet/pisameet/slideshow.py /home/pi/pisameet/pm2018/pm2018.xlsx
The ``pisameet`` distribution comes with a ``pisameet.desktop`` sample file
that you can adapt and copy into the ``/home/pi/.config/autostart`` folder
(which, most likely, you will have to create first):
.. code-block::
> mkdir /home/pi/.config/autostart
> cp pisameet.desktop /home/pi/.config/autostart