simonsobs / simonsobs/sodetlib
Multiple overbiasing methods and cfg file entries
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, namelyoverbias_voltageandcool_voltage, as well ascfg.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 withconst_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.
- This uses per-bias group settings from
- take_iv uses the pysmurf function
S.overbias_tes_all, wrapped in a helper functionoverbias_and_sweephttps://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_voltageis 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 uses settings from
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:
- take_iv be moved to use
util.overbias_dets - The current mode switch in
util.overbias_detsbe moved to after setting the bias tocool_voltage. - The overbias parameters be moved out of
cfg.dev.exp['iv_defaults']and intocfg.dev.bias_groups, where they are specified per-bias group. Also moveoverbias_waithere, 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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