Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
SO SMuRF system verification is nearly complete, with only a few stragglers, so this PR checks in the validation scripts that we used to check some critical aspects of the carriers and AMCs. In particular those are validating JESD on the carriers before permanently affixing the FPGA heatsink, validating the AMC response versus up- and down-converter attenuation settings, and verifying carrier thermal performance (after FPGA heatsink has been permanently affixed).
Currently technicians at SLAC run the scripts from smurf-srv11 at SLAC using these bash aliases on that server:
These scripts assume some extra things are installed on your server, including
gnuplot
,ipython3
, and scripts to log the tmux sessions run byshawnhammer
. For tmux logging, put this in a text file named ~/.tmux.confand unpack this in your /home/cryo directory - tmux-logging.tar.gz.
You will also need the SMuRF atca-monitor and utils dockers setup such that their run.sh scripts are at ~/docker/atca_monitor/run.sh and ~/docker/utils/run.sh, respectively.
JESDtest
E.g. JESDtest2 as aliased above running on slot 2 boots up system and runs scratch/shawn/test_new_carrier.py. Here's typical pysmurf output (excluding setup and truncating the full_band_response output):
User is asked to confirm JESD values twice (once 1 min after setup and once 15 min after setup) and to confirm full band response looks good. Here's a typical good looking full band response plot:

AMCLOOPBACKtest
E.g. AMCLOOPBACKtest2 as aliased above running on slot 2 boots up system and runs scratch/stephen/full_band_response_AMCatten.py. Here's typical pysmurf output (excluding setup and truncating the full_band_response outputs):
This test typically takes ~8 min and produces full band response plots vs attenuation for both installed AMCs. Here's typical plots:


THERMALtest
E.g. THERMALtest2 as aliased above running on slot 2 (fyi this is just an example, usually 7-slot crates have lower cooling efficiency on slot 2 so thermal performance will be measurably worse, so keep that in mind) boots up system and runs scratch/shawn/thermal_test.py. Be aware the directory some of the thermal test script outputs gets saved to is hard coded in thermal_test.py and the test will fail if that directory doesn't exist on disk.
The thermal test script is run in an ipython session running outside of the dockers. Here's typical output from that:
The script shows a full band response (typical below), then shows an updating gnuplot plot of key SMuRF system temperatures and currents as the thermal test script runs to completion. That gnuplot plot after the thermal test script runs to completion for an example is also below.
a bunch of log data, including the temperature/current data is also saved to disk during & at the end of the thermal test script, including (with examples);