Module QC Workflow¶
Version information¶
This document is compatible with localdb-tools
version 2.2.36
or later.
- The corresponding
YARR
version isv1.5.2
or later. - You need to deploy the following packages in your local DAQ system:
module-qc-database-tools 2.4.8
or latermodule-qc-tools 2.2.7
or latermodule-qc-analysis-tools 2.2.9
or later
tl;dr¶
The LBNL team provides the example bash script to run the all chain of the electrical test of a stage.
Some presentations are also available
Module Assembly¶
When a new module is assembled on your site, you need to register this new-born module to Production DB. We recommend not to register a new module using ITkPD web page, since in order to determine the module serial number, there are several rules that should be uniquely determined by the subcomponents' serial numbers.
LocalDB provides a dedicated interface to register the module for you by determining the serial number.
You will be requested to input only the following information:
- BareModule(s) serial number(s)
- PCB serial number
- Carrier serial number (optional)
!!! note All subcomponents' location on Production DB must be your site (the site you are registered in Production DB).
!!! note In order to assemble the module, BareModule needs to have all FE chips already.
!!! note All sub-components need to be not assembled previously.
Once the module is successfully assembled, the module's information is downloaded to your LocalDB, and you are ready to go.
Downloading Module¶
If the module assembly, or tests of the previous tests were carried out in the other site, you might not have the module in LocalDB though it is already registered in PDB. In this case, you should go to the top page of the LocalDB and click "Pull components from ITkPD" and follow the guide in the page in order to download the information of the module and sub-components, including the restults of previous stages.
!!! note It is not only a module you can download with this interface. Standalone sub-components of Sensor Tile, Bare Module, PCB are supported on top of Module.
!!! warning If your downloaded module's stage is not a valid one (e.g. MODULETOPCB
which was deprecated), you need to switch the module's stage to the correct one by hand. You can do this by clicking the "Switch Stage" yellow button of the module's page.
!!! note Please do not switch the stage except the above reason, unless you understand the behavior e.g. for debugging purpose. You may end-up wiping previous stages test records at the worst case.
Simple Electrical Tests¶
The following tests are the so-called simple electrical tests.
- ADC Calibration (ADC_CALIBRATION)
- Analog Readback (ANALOG_READBACK)
- SLDO (SLDO)
- VCAL Calibration (VCAL_CALIBRATION)
- Low Power Mode (LP_MODE)
- Overvoltage Protection (OVERVOLTAGE_PROTECTION)
- Undershunt Protection (UNDERSHUNT_PROTECTION)
- Data Transmission (DATA_TRANSMISSION)
- Injection Capacitance (INJECTION_CAPACITANCE)
The term simple means that the QC analysis possible to generate only from each measurement result (RAW
record) as the input.
LocalDB calls the corresponding module-qc-analysis-tools
analysis command to evaluate the measurement, and records the analysis result as a format compatible with ITkPD's TestRun
. RAW
measurement, as well as all plots and log files of the analysis become as an attachment of this analysis result document.
Running a simple electrical test is essentially just running 3 steps:
- Step-1: measurement itself
measurement-"$measName" -c "$config" -m "$connectivity" -o "$output"
- Step-2: analyze the measurement (process within LocalDB)
module-qc-tools-upload --path "${lastMeasDir}" \
--host "$localdbHost" --port "$localdbPort" \
--out "${anaResults}"
Here, as you can see in the command option, interaction with LocalDB happens. The client (DAQ host) submits the measurement result, and the QC analysis program evaluates it inside LocalDB. As a response, LocalDB returns the result output JSON
(TestRun format)
- Step-3: update the chip config of the DAQ host Using the result of the analysis, the config file is revised locally within the DAQ host.
analysis-update-chip-config -i "$anaDir" -c "$moduleDir" -t "$qctype"
The bash script embeds these steps and loop over Tests.
Note
output when module-qc-tools-upload
is executed.
YARR Chip Scans¶
!!! note Before going through this section, user is expected to have a basic idea of how the chip config is administrated in LocalDB. If you are not familiar with, please go through the doc.
YARR chip scans are simply possible to carry out by the scanConsole
command. However, initially you need to generate the scan connectivity and chip config files using module-qc-database-tools
.
Check LocalDB¶
Before starting anything about YARR scan, you need to make sure the presence of the module in LocalDB, and the QC stage is exactly the one you are going to test.
!!! note Immediately after signing off from the previous stage, the LocalDB might not be ready to host any new test. If this is the case, when you navigate to LocalDB's module page, you will see a warning message like below. [ WARNING_FE_CONFIG_NOT_READY ] 20UPGR91301046: WARNING: FE Chip configs for the current stage (MODULE/INITIAL_COLD) is not ready
Once the preparation of the stage is done, this warning message should disappear automatically. If this is not the case, something is wrong with LocalDB.
Initial Generation of configs¶
The config needs to be deployed to the local DAQ host every beginning of the stage.
generateYARRConfig --sn 20UPGR91301046 \
--accessCode1 YOUR_ACCCESS_CODE_1 \
--accessCode2 YOUR_ACCESS_CODE_2 \
--outdir <the_dir_to_store_config>
Running scans¶
Running scans is pretty standard as usual scanConsole
:
cd path/to/yarr
./bin/scanConsole -r configs/controller/specCfg-rd53b-16x1.json \
-c 20UPGR91301046/20UPGR91301046_L2_warm.json \
-s configs/scans/rd53b/std_digitalscan.json \
-W MHT
An important option to be added to store the output result to LocalDB properly is the -W
option. This option can append tags associated to the scan, which is convenient in the later phase when we carry out complex test analyses, as we will see later.
Three default tags are appointed by default:
MHT
for Minimal Health TestTUN
for TuningPFA
for Pixel Failure Analysis
On top of that, user can specify arbitrary user's tag as needed. The syntax of specifying multiple tags is as follows:
-W "['my temporary test', 'DEBUG', 'MHT']"
Warning
name.
With -W
option, not only the scan outputs like occupancy map, the chip config is also uploaded to LocalDB
Browsing scan results¶
The easiest way to check the latest YARR scan is to click the "YARR Scan" in the top navigation bar.
Then you can see the latest YARR scans in the reverse chronological order:
By clicking "View" button, you can see the detail of the scan, including plots:
Required scans¶
Note
bash script is provided by the LBNL group. The most accurate and up-to-date specification of electrical tests is documented in this repository.
- Minimal Health Test
std_digitalscan
std_analogscan.json
std_thresholdscan_hr
std_totscan
with-t 6000
option- Tuning (for quad with 1500e target threshold, for triplet with 1000e target threshold)
std_thresholdscan_hr
std_totscan
with-t 6000
optionstd_tune_globalthreshold
with-t 1700
option (200e overtune)- (ITkPix v2 only)
std_tune_globalpreamp
with-t 6000 7
- (ITkPix v2 only)
std_tune_globalthreshold
with-t 1700
option (200e overtune) std_tune_pixelthreshold
with-t 1500
optionstd_thresholdscan_hd
std_totscan
- Pixel Failure Analysis
std_digitalscan
with-m 1
optionstd_analogscan
std_thresholdscan_hd
std_noisescan
Registration of Complex Electrical Tests¶
A complex electrical test can be registered to LocalDB using the browser, once you completed the entire list of scans required for the test.
From the Front-end chip's page, or the Module list table, you can access to the chip's page.
When you scroll down, you find an orange table listing Tests of the stage.
If you sign-in to LocalDB, you will find a green button "Checkout Scans" at the column "Action" for Minimal Health Test, Tuning or Pixel Failure Analysis.
Pushing this button, you will be guided to register the set of YARR scans to evaluate the Test.
The tag you specified during the YARR scan, like MHT
, TUN
, or timestamp or run number will hint you which scan you will need to register here.
!!! note But these are only guides up to the end, the user needs to take the responsibility of the validity of the scan results.
!!! note Do not worry if you miss to register wrong scans, you can create more than one complex analysis result until you meet the correct registration.
Note
take those scans. The analysis can run without these scans entry. Of course, the result of the analysis is most likely failure.
!!! note Although you register scans chip-by-chip, you can specify the same set of scan runs for all chips as common. In order to do this, you just need to check the checkbox at the bottom of the page. This checkbox is actually toggled on by default. However, if you have reasons to select runs for individual chips, you can do.
At the end of registration, the analysis script runs on the server side, and the QC pass/fail is judged for the test.
Electrical Test Summary¶
For each stage requiring electrical test, a summary record test called "E-Summary" is allocated. This is the place to aggregate all FE-level test results and make summary e.g. total bad pixels of the module. The user interface is similar to the above Complex Electrical Tests case, but you are guided to register the record of Minimal Health Test or Tuning instead of registering YARR scans.
!!! note Do not confuse Module-level tests with FE-level tests. Electrical Summary Test is a Module-level test, while Minimal Health Test, Tuning, etc. are FE-level tests.
Stage Sign-off¶
Once all tests of the stage are filled, you can proceed signing-off the stage.
!!! note Actually you can sign-off without missing some tests, as this is a commissioning phase and not all tests are ready to serve.
You click the blue "Stage Sign-off" button under the module's page. In the next page, you are required to select one result per tests (there can be multiple candidate results if you have done multiple times).
!!! note Do not confuse Module-level tests with FE-level tests. Module-level tests include E-Summary and various non-electrical tests.
Once you selected all results, you can proceed to do sign-off.
!!! note Sign-off has technically two steps. The first step is Local Sign-off where the stage is only incremented locally within the LocalDB. The second step is Push to Production DB and the results are synchronized to Production DB after this second step.
Non-electrical Tests¶
Non-electrical tests are not commissioned yet in LocalDB v2.2
. A few preview tools are prepared, but these should not be regarded as full commissioned.