Starting and using TDUControl » History » Version 6

« Previous - Version 6/21 (diff) - Next » - Current version
Thomas Dealtry, 01/30/2015 04:18 AM

Getting help

Email Tom Dealtry -


The following are instructions on how to communicate with the NOvA timing distrubution unit (TDU). The TDU distributes timing information throughout the system, handles synchronisation between boards, and includes automatic propagation delay calculation & compensation.

There are various ways to communicate:

  • Through lbnerc & daqinterface (coming soon)
  • Booting up an xmlrpc server & commuicating through this
  • Communicating with the TDU directly

List of commands (to be expanded)

All 'get', 'do', and 'read' commands return an error code with a common numbering scheme.

'get' commands

  • get_status()
    Returns [error_code, ready_to_do]. When ready_to_do is True, the control register can be modified (i.e. a 'do' command can be performed)

'do' commands

  • do_ping()
    ping the TDU
  • do_time_sync()
    Perform a time synchronisation (this calls get_status() internally)
  • do_delay_calc()
    Perform a propagation delay calculation (this calls get_status() internally)
  • do_send_sync_pulse()
    Send a sync pulse (this calls get_status() internally)
  • debug_do_write_control_reg(data_to_or)
    Write the control register to perform a none standard operation (this calls get_status() internally)

'read' commands

  • read_tdu_id()
    Read out the TDU version & ID numbers
  • read_tdu_status()
    Read out the TDU's current operating conditions (current, voltage, temperature, fan status, FPGA status)
  • read_gps_status()
    Read out the GPS status (faults, timeouts, sat count, etc. + current UTC time)
  • read_error_registers()
    Read out the error registers
  • read_control_reg()
    Read out the control register
  • debug_read_all_registers()
    Read out all the registers. Also comes with some hints on what the 'default' for normal operating conditions is.

Other commands

  • close_socket()
  • print_log
    Will be made private

Error codes


List of TDU IP addresses (to be expanded)

  • Master:
  • Slave:

Using the NOvA GUI (TDUControl) - OLD & BROKEN

To start TDUControl, use the following steps:

  1. log into the lbnedaq account on lbne35t-gateway01
  2. source /data/lbnedaq/novadaq/setup/
  3. TDUControl -m
  4. enter the IP address of the Master TDU into the GUI (

Alternatively for steps 3 & 4, you can run TDUControl -m -t