Skip to content

DUNE-DAQ/hermesmodules

Repository files navigation

Hermes Modules

Configuring the ZCU102 design to send fake data

The Hermes core can be monitored, controlled and configured using the hermesbutler.py script. This script is part of the hermesmodules DUNE-DAQ package. It requires a DUNE-DAQ release or area.

The other ingredients to set up the Hermes core to transmit data to a network endpoint are:

  1. The hermes ipbus connection details
  2. the hermes link mac and ip addresses (and port)
  3. the receiver link mac and ip addresses (and port)
  4. A handful of parameters.

In order to simplify the handling of these parametrs, all the connection details are specified in configuration files and only the connection names are exposed to the hermesbutler command line.

  • Hermes IPbus control endpoint details are specified in the ${HERMESMODULES_SHARE}/config/c.xml connection file. Information about IPBus connection files are available on the IPbus User Guide.
  • The transmitter endpoints details are defined in the ${HERMESMODULES_SHARE}/config/tx_endpoints.json file.
  • The receiver endpoints details are defined in the ${HERMESMODULES_SHARE}/config/tx_endpoints.json file.

The content of these configuration files can be visualized hermesbutler.py addrbook. Once all the information have been inserted, the sequence of commands to set-up the endpoint is:

hermesbutler.py -d <device id> enable -l <link> --dis 
hermesbutler.py -d <device id> udp-config -l <link> <rx endpoint> <tx endpoint>
hermesbutler.py -d <device id> mux-config -l <link> 1 2 3
hermesbutler.py -d <device id> fakesrc-config -l <link> -n 4
hermesbutler.py -d <device id> enable -l <link> --en
hermesbutler.py -d <device id> stats -l <link>

Hermes IPbus UDP-to-Axi bridge

Installation

Installing the ipbus bridge requires compiling the bridge code on the zynq PS and running the bridge from terminal or as a service. gcc

Log in onto the Zynq PS. Clone the hermesmodules via git or by downloading a tarball.

git clone https://github.com/DUNE-DAQ/hermesmodules.git -b <tag or branch>

or

curl -o <path to tarball on GitHub>
tar xfvz <tarball>

Compile the bridge code with make

cd zynq
make

Optional: Install hermes_udp_srv system-wide

  • On the ZCU102

    sudo make install-zcu102
  • On the WIBs

    sudo make install-zcu102

Running hermes_udp_srv

When installed system-wide, the hermes_udp_srv is started automatically at boot. If not, the service can be started from commandline

Usage: ./hermes_udp_srv [options...]
Options:
    -d, --device           device type             (Required)
    -v, --verbose          verbosity level        
    -c, --check-replies-countCheck Replies count    
    -h, --help             Shows this page        
  • On the ZCU102

    sudo /bin/hermes_udp_srv -d zcu102 
  • On the WIBs

    sudo /bin/hermes_udp_srv -d wib -c false