SBS DAQ: GEM Hall A BigBite setup

From Hall A Wiki
Revision as of 17:28, 26 August 2021 by Moffit (Talk | contribs) (vtpFiberStatus)

Jump to: navigation, search

CODA scripts

Frontend scripts to use on tedbbdaq


  • executes each CODA component (platform, rcgui, PEB, all ROCs) in a separate xterm


  • kills and restarts the PEB and ROCs. The xterms are not killed with this script.


  • kills all CODA components


- github page
- Scripts locations:
  • bbgem@tedbbdaq
- ~/sbs-onl/coda_scripts/
  • sbs-onl@intelbbgem
- ~/coda_scripts/

Useful stand-alone programs


log into any machine first with the sbs-onl (e.g.)

 ssh sbs-onl@tedbbdaq

$CODA_BIN/remex <remexHost> <function call>

  • Execute a function call on the specified remote Host
- Run without arguments for usage

Usage for setting trigger source (BBGEM only)


remex bbgemROC19 "rocSetTriggerSource(0)"

  • Random Pulser

remex bbgemROC19 "rocSetTriggerSource(1)"

  • Fixed Pulser

remex bbgemROC19 "rocSetTriggerSource(2)"

MPD programs

log into the VME Controller first with the sbs-onl (e.g.)

 ssh sbs-onl@intelbbmpd2


$LINUXVME/mpd/libsrc/test/mpdStatus <mpd slot number>

  • Show the status of MPD at slot <mpd slot number>
- Run without <mpd slot number> to scan all slots.

mpdApvConfig (formerly i2c_test)

$LINUXVME/mpd/libsrc/test/mpdApvConfig <mpd slot number> <configfile>

  • Test the initialization and configuration of the APVs in the specified MPD.
- Does the same initialization that is done in mpd_list.c:rocDownload()
- Also attempts the readback of the APV registers with mpdApvStatus(0)


$LINUXVME/mpd/libsrc/test/mpdI2CScan <mpd slot number>

  • Scan i2c addresses for any APVs from MPD in specified slot number
- Configure those found APVs with some default register values
- Display the APV registers


$LINUXVME/mpd/libsrc/test/mpdFiberStatus <mpd slot number>

  • Display the status of the fiber transceiver


$LINUXVME/mpd/libsrc/firmware/ProgramEpcs -s <mpd_vme_slot> -v <firmware .jic file>

  • Update MPD firmware at specified VME address.
- Described in


$LINUXVME/mpd/libsrc/firmware/RunUserFpga -s <mpd_vme_slot> (-f)

  • Change between user and factory FPGA image.
- Described in

SSP programs

log into the SSP crate first with the sbs-onl

 ssh sbs-onl@intelbbgem


~/linuxvme/ssp/test/sspMpdStatus <ssp slot number>

  • Show the status of SSP at slot <sp slot number>, as well as their fiber connected MPDs
- Run without <ssp slot number> to scan all slots.



  • Same function as ssp_mpd_setup() in the readout list without running CODA


~/linuxvme/ssp/firmware/sspFirmwareUpdate <firmware .bin file> <SSP VME ADDRESS>

  • Update SSP at specified VME address.

VTP programs

log into the VTP first with the sbs-onl

 ssh sbs-onl@sbsvtp3



  • Show the status the VTP as well as its connected MPDs (those found with channel up)


~/vtp/vtp/test/vtpMpdInit cfgFileName

  • Initialize VTP and their attached MPDs and APVs (those found with channel up)
  • If cfgFileName is provided, use it to define the MPD and APV to initialize



  • Show the status of all fiber channels on the VTP
- executes vtpMpdPrintStatus(0, 0)



  • Dump raw adcs samples to file.
  • work in progress...

other VME programs

log into the VME controller first with the sbs-onl

 ssh sbs-onl@intelbbgem


$CODA_VME/ti/test/tiLibTest <TI slot number>

  • Test triggering capabilities of the local TI.
- Puts the local TI in master mode (with no slaves).
- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser


$CODA_VME_BIN/vme_display <VME Address> <read size in bytes>

  • Display the read value of specified size from the specified VME address.
- Run without arguments for usage


$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes>

  • Modify the value of specified size of the specified VME address.
- Run without arguments for usage

platform on tedbbdaq

log into tedbbdaq first with the sbs-onl

 ssh sbs-onl@tedbbdaq

sudo systemctl restart platform

sudo systemctl restart platform

  • Restart the CODA 3 platform systemd service.
- Can be run from any account in the 'coda' group on tedbbdaq
- bbshower, bbhodo, bbgem, daq

MPD/SSP/APV Config files

  • Config files for configuration of APVs and MPD / SSP can be found in
- sbs-onl@intelbbgem:~/bbgem-cfg/
  • The SSP readout list ( uses
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt
  • The MPD readout list (, uses
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt
  • Both use common files to configure the MPDs/APVs given the MPD's slot number. For example, slot 5 MPD:
- sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg
  • Programs useful for debugging config file format
- $LINUXVME/mpd/libsrc/test/mpdConfigTest <config filename>
- $LINUXVME/mpd/libsrc/test/sspMpdConfigTest <config filename>

Superbigbite Logbook Entries

  • Entry script:
- daq@tedbbdaq:~/gem_scripts/ %(rt) <START/END> %(rn)
- Executed by PEB1 before Prestart and after End

Machines in use


  • NFS server, tftp server for VME Controllers
  • CODA and hardware drivers : /data/disk2/SBS/coda/3.10_arm
  • sbs-onl home directory : /data/disk2/home/sbs-onl
  • Read-only permissions for all machines in 36 subnet
  • Read-Write permissions for a few select machines / vme controllers


  • DAQ Computer (RunControl, Event Building)
  • Mount atedf3:/data/disk2/SBS to /mnt/SBS
- Uses autofs. /etc/auto.SBS should be included in a line in /etc/auto.master
  • User: daq
  • CODA (3.10) : ~/coda3/3.10_arm/
- ~/.bashrc
# CODA 3 setup : SESSION=bbgem 01dec2020
export CODA=/mnt/SBS/coda/3.10_arm
export SESSION=bbgem
export EXPID=tedbbdaq
source ${HOME}/gem_scripts/setupCODA3.bash
- ~/gem_scripts/setupCODA3.bash


  • XVR16 VME Controller
  • User: sbs-onl
  • home directory : atedf3:/data/disk2/home/sbs-onl/bbgem
  • CODA3 environment setup:
- ~/.bashrc
# CODA 3 using coda_scripts : SESSION=bbgem 01dec2020
export SESSION=bbgem
export EXPID=tedbbdaq
source ${HOME}/coda_scripts/setupCODA3.bash
- ~/coda_scripts/setupCODA.bash
  • Slots 20 : SSP - initial firmware: fe_ssp_mpd_v1_8_aug11_2020.bin
  • Slot 21: TI
  • LINUXVME (mpd,ssp)
- ~/linuxvme/
# LINUXVME for mpd and ssp
export LINUXVME=${HOME}/linuxvme
export LINUXVME_INC=${HOME}/linuxvme/include
export LINUXVME_LIB=${HOME}/linuxvme/${MACHINE}/lib
export LINUXVME_BIN=${HOME}/linuxvme/${MACHINE}/bin
  • readout lists
- ~/rol/


  • XVB601 VME Controller
  • 'daq' login
  • Slots 2-8, 10-16: MPDs
  • Slot 21: TI


VXS crate with intelbbgem and SSP

BB MPD crates

  • intelbbmpd
    • 8 MPDs for 2 INFN layers
  • intelbbmpd2
    • 15 MPDs for 2 UV layers + back tracker

VTP crate

intelsbsgem3 XVR16 for VXS VTP crate

bbgemvxs2 VXS crate

intelsbsgem2 XVR16 for 3rd VXS VTP crate


Serial portserver port 4 VTP serial