simonsobs / simonsobs/sodetlib

Multiple overbiasing methods and cfg file entries

Open
#511 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
5
Forks
0
Avg merge
3d 17h
Merged PRs (30d)
4

Description

There are different overbiasing methods that use different configurations:

  • bias_to_rfrac uses util. overbias_dets https://github.com/simonsobs/sodetlib/blob/04e279107ab063225bdee3b33fb4f00c1514268f/sodetlib/operations/bias_dets.py#L139
    • This uses per-bias group settings from cfg.dev.bias_groups, namely overbias_voltage and cool_voltage, as well as cfg.dev.exp['overbias_wait']. As applied, the voltage values must be specified in actual Volts.
    • This uses the pysmurf function S.set_tes_bias_bipolar
    • Sidenote: cool_voltage is used in a confusing way here, where it gets applied in high current mode, but then (if high_current_mode=False, which it is by default) it switches to low current mode with const_current = False. This means either (a) cool_voltage is applying more power than we want it to, or (b) there's a sudden drop in power that could potentially latch detectors.
  • take_iv uses the pysmurf function S.overbias_tes_all , wrapped in a helper function overbias_and_sweep https://github.com/simonsobs/sodetlib/blob/04e279107ab063225bdee3b33fb4f00c1514268f/sodetlib/operations/iv.py#L639
    • This uses settings from cfg.dev.exp['iv_defaults'] for overbias_voltage, overbias_wait, cool_wait, and cool_voltage.
    • cool_voltage is only applied if the IV is run serially over bias_groups. I have no idea why. But at least it gets applied in low current mode.
    • S.overbias_tes_all does not take per-bias line values; it only accepts floats that get applied to all specified bias lines.

This is confusing. The overbiasing that happens for an IV curve and the overbiasing that happens for biasing the detectors in transition is the same process and should be identical between steps, and therefore should only be specified in one place (the need for IV curve to have a large bias_high, in order to have a long enough normal branch to fit Rn, is a distinct step separate from driving the TESs normal). Also, more granular control over per-bias lines is better than being forced to apply the same values to every bias line.

So, I propose that:

  1. take_iv be moved to use util.overbias_dets
  2. The current mode switch in util.overbias_dets be moved to after setting the bias to cool_voltage.
  3. The overbias parameters be moved out of cfg.dev.exp['iv_defaults'] and into cfg.dev.bias_groups, where they are specified per-bias group. Also move overbias_wait here, so that it's not off on its own.
    a. This will have a side-effect of making scheduler calls to take_iv less flexible, as these parameters won't be accessible. I can think about that more though.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare util.overbias_dets with its use in operations/bias_dets.py and the overbias_and_sweep helper in operations/iv.py. Inspect the cfg.dev.bias_groups and cfg.dev.exp['iv_defaults'] settings described in the issue, then trace take_iv's overbias flow. Done means both workflows share the overbias helper, per-bias-group parameters are used, and the current-mode switch occurs after setting cool_voltage.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.