The SOC parses our telemetry for index entries and feeds their data
model with assumptions about the resulting data rate. This patch
restores the assignment of index entries to relative data rate.
[2] Full nominal config with 10s cadence
[6] patch to 1s cadence
[7] == [2]
Calibration of ADC readings `HIT` to energy `E` works like this
```
E = MULI HIT * gain
E = ADDI HIT + pedl
```
The `pedl` was calculated as
```
pedl = -$floor(p*gain)
```
where `p` is the ADC reading corresponding to E = 0 keV.
Since `p` is a large magnitude negative number, the limited precision
of the `MULI` instruction parameter causes significant errors in `pedl`.
This patch aims to fis those errors. The new formula for `pedl` is
```
pedl = $floor(-p*$MRND(gain))
```
i.e., we use the same value for `gain` as the `MULI` instruction. This
is now in place for any automatic calibration calculations in
`step_temp_calib.l3`.
For the FS in space we use a fixed precomputed calibration. This is based on
the TVAC FS calibration for T=-36°C, with some adjustments for the changed
`acq_time=6`. The TVAC calib has been saved earlier to
`step_fs_calib-36.calib` with full precision, i.e., without taking `$MRND()`
into account. The awk script `step_fs_calib-36.awk` reverts those
calculations, applies the adjustments, and outputs the adjustes numbers. Since
awk does not have access to `$MRND()`, the script has been changed to output
formulas for `pedl`, including `$MRND()`,
Set the acq_time=6 (as in v7).
Fix large pixel calib for T=-36°C. The fix is based on IFTP data from
July 4 to July 20 with acq_time=6 and acq_time=1.
For each IX a rought estimate was obtained for the shift of the pedestal
and the 160keV pulser peaks. The shift was applied to all large pixels.
Set the acq_time=6 (as in v7).
Fix large pixel calib for T=-36°C. The fix is based on IFTP data from
July 4 to July 20 with acq_time=6 and acq_time=1.
For each IX a rought estimate was obtained for the shift of the pedestal
and the 160keV pulser peaks. The shift was applied to all large pixels.
New method: step_dps.step_hist()
to generate 1D histograms.
New method: step_dps.step_sensor_main()
to return a main STEP dps_product
4keV … 64keV, 2bpo, 1s
New method: step_dps.step_sensor_aux()
to return an aux STEP dps_product
60s
1kev…2KeV, 1 bin
2keV…4keV, 7 bins
64keV… 256keV, 15 bins
256keV…384keV, 1 bin
Changed method: step_dps.assemble()
pick only LL dps_products from step.data
add two main and two aux dps_products.
Version 8.1
The `freq` argument of step_pulser was missing. The intended positional `sel`
arguments were passed as `freq`
The TESTREG write schedule collided with regular IX REG writes.
The VERSION was set in each config.*, which is not what the VERSION is
associated with. It is now set as a module attribute
solo.step.base_config.VERSION
The unused table argument scratch is now set to solo.step.base_config.SUBVERSION
There is still an optional argument version= to override.