Module Testing basics

Contact,, with questions

For the BurnIn Box instructions: BurnInBox For details specific to 2S or PS modules check the respective Twiki (TO BE UPDATED).

Configure the FC7

Go to the Ph2_ACF area or install a new Ph2_ACF version. We are using the Dev branch of Check the dedicate website for updated installation instructions but briefly the main steps to be executed in the lenny01 Programming directory are:

$> git clone --recurse-submodules # N.B. to syncrhonize only the submodule: `git submodule sync; git submodule update --init --recursive --remote`
 $> cd Ph2_ACF
 $> source
 $> mkdir build 
 $> cd build 
 $> cmake3 .. # add -DCMAKE_BUILD_TYPE=Debug if you plan to use gdb for debugging

cd /home/modtest/Programming/Ph2_ACF  # change the directory accordingly

Make sure you can ping the FC7. If you don't know the IP address check in the /etc/ethers file.


If not already don, insert the correct machine and IP address in the xml file located in the settings directory that you are going to use.

    <connection id="board" uri="localhost://" address_table="file://settings/address_tables/uDTC_OT_address_table.xml" />

List firmware on SD card:

[modtest@lenny01 Ph2_ACF]$ fpgaconfig -c settings/MyXML.xml -l

To load a new firmware: The firmware are stored in Be sure the version you are downloading is compatible with the code version you are using, the module type, the CIC version etc.

[modtest@lenny01 Ph2_ACF_LpGBT]$ fpgaconfig -c settings/MyXML.xml -f PATH_TO_FILE -i FW_NICKNAME
[modtest@lenny01 Ph2_ACF_LpGBT]$ fpgaconfig -c settings/MyXML.xml -i FW_NICKNAME

To load an existing firmware just use the second line above.

Blue light on FC7 blinks at 1Hz if firmware loaded properly.

Run a test

 cd /home/modtest/Programming/Ph2_ACF

Be sure that the settings/MyXML.xml has the right CIC version, module type, master patch, lpgbt version etc etc in it. The first time you run on a module (assuming it has the LV on) you need to reconfigure it:

ot_module_test -f settings/MyXML.xml   --reconfigure

Run the usual noise test (if you already reconfigured the module you can remove the --reconfigure option to be faster):

ot_module_test -f settings/MyXML.xml   --reconfigure -b -m -a -t

The options are:

  • -b to run in batch → no canvases popping up
  • -t to do the trimming
  • -a to run on all channels at once (important for PS modules to speed up the measurement)
  • -m to measure the noise with the s-curves

A descritpion of what to check in the terminal printout and output fiel to be added.

To run an injection test (to properly see the noise also disable the s-curve fit option):

1) Check the latency, enlarge the

in the xml e.g. to 150
ot_module_test -f settings/2S_Module_KITleft.xml --scanL1 
and check the latency map to find the value to put in the xml (199)

2) In the xml: set the latency of each hybrid to the value found above (199), uncomment the line with


3) run with the usal command

ot_module_test -f settings/MyXML.xml   --reconfigure -m

Trouble shooting

  • Things to check while reconfiguring: all chips fine? both CICs configured properly?

  • Things to check while trimming: different chips have different (but similar) pedestal values, pedestal should not be zero nor the maximum available value. Is the pedestal distribution narrow?

  • Things to check while measuring the noise: Are the scurve reasonable? Is the noise as expected?

  • LpGBT not locking: reload the firmware, check the optical fiber connection, clean the optical fiber, if switching lpgbt version or similar changes try to reconfigure the cdce (REMEMBER to set it back to 0 afterwards)

  • Symptom of a wrong firmware
D19cOpticalInterface::Read -- Corrupted CPB reply
terminate called after throwing an instance of 'std::runtime_error'
  what():  D19cOpticalInterface::Read -- Corrupted CPB reply
Aborted (core dumped)

  • You possibly have the wrong
    in the xml. For the trimming & noise measurement it should be 3.

 D19cL1ReadoutInterface timed-out while waiting for trigger FSM...[ReadoutAttempt#9]
02.12.2022 16:05:58: |140527162002880|I| D19cL1ReadoutInterface::ReadEvents.. took 10 attempts to readout L1 data.
02.12.2022 16:05:58: |140527162002880|I| Failed to ReadNEvents
terminate called after throwing an instance of 'Exception'
  what():  Failed to ReadNEvents....
Aborted (core dumped)
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2022-12-13 - IreneZoi
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback