Software for taking data from one hexaboard module with four SKIROC2_CMS chips,  using the test stand board.
Two main acquisition programs:
run_local.pyfor local debugging.daq-zmq_client.py, that spawns a server over the network in the device and processes data off-device. This package then needs to be installed in both machines, though only the python part in the client.
Two main sources of configuration:
yamlfile- command line options
 
More details on the SKIROC2_CMS readout chip configuration can be found here and here.
See here to install Raspbian on a Pi 3.
Then:
cd $HOME
git clone https://github.com/CMS-HGCAL/rpi-daq
cd rpi-daq
make packagesThe following step is only needed in the server or for local running (it is not needed for the client):
makeFinally, a local test run with charge injection:
make testrunAnother example of a local acquisition:
python run_local.py --showRawData --dataNotSaved
An example of client and server running in the same machine
python daq-zmq-client.py -e
- 
rpi_daq.py: configures the chips and reads events. - 
src/gpiohb.c: utilities for low-level communication with the hexaboard; uses thebcm2835library. - 
unpacker.py: parses (and compresses) raw data. - 
skiroc2cms_bit_string.py: utilities for configuration of the readout chips. - 
run_local.py: simple local running application. - 
daq-zmq-{client,server}.py: full-fledged system with data processing offloaded to client side. 
-  🚀 Optimize timing of 
gpiohb.cI/O routines. - 💡 Develop an ASUS Tinker Board version.
 -  ➕ Add functionality to 
skiroc2cms_bit_string.py. -  🔒 Improve the client-server usage, e.g., streamlining 
sshsessions (no password, public key). 
- Fork this project,
 - Clone your repository when installing,
 - Your magic happens here,
 - Push to your repository, and
 - Submit pull requests.
 
- Download Raspbian with desktop.
 - Use Etcher to write the image to the SD card.
 - Boot the device and connect a screen, keyboard, and mouse.
 - Connect device to network using desktop tools.
When using wired and wireless network, editing/etc/wpa_supplicant/wpa_supplicant.confmay be needed to sort out priorities. See also this. - Register device to network, including both wired and wireless MAC addresses that can be obtained using 
ifconfig. - Update the system:
sudo apt-get update sudo apt-get --yes dist-upgrade sudo apt-get clean sudo apt --yes autoremove sudo rpi-update
 sudo reboot- Change 
piuser password usingpasswd. - Enable 
VNCin pi customization GUI fromDesktop menu → Preferences → Raspberry Pi Configuration → Interfaces → VNC: Enabled. 
- Install some goodies:
sudo apt-get --yes install emacs25 htop iotop nmap liquidprompt ipython elpa-markdown-mode yaml-mode liquidprompt_activate
 - Free up some space:
sudo apt-get --yes purge wolfram-engine libreoffice* sudo apt-get clean sudo apt-get --yes autoremove 
- Download 
TinkerOS-Debianimage from the downloads section in the Tinker Board page. - Use Etcher to write the image to the SD card.
 - Default user and password are 
linaro:linaro. Change it. - Register device to network, including both wired and wireless MAC addresses that can be obtained using 
ifconfig. - Update the system:
sudo apt-get update sudo apt-get --yes dist-upgrade sudo apt-get clean sudo apt --yes autoremove
 - Install some goodies:
sudo apt-get --yes install emacs25 htop iotop nmap liquidprompt ipython elpa-markdown-mode yaml-mode git tree liquidprompt_activate echo heartbeat | sudo tee /sys/class/leds/led1-led/trigger
 - Setup the 
CGPIO API (see also the Tinker Board page). Basically:cd $HOME git clone http://github.com/TinkerBoard/gpio_lib_c.git cd gpio_lib_c/ sudo ./build gpio -v gpio readall
 - Set up VNC (
sudo tinker-configallows to start VNC, but not to set it up as a deamon):# From https://tinkerboarding.co.uk/wiki/index.php?title=Software#Remote_access sudo apt-get --yes install x11vnc echo "@x11vnc -forever -noxrecord" >> ~/.config/lxsession/LXDE/autostart sudo service lightdm restart