Compare commits

..

8 commits

Author SHA1 Message Date
kuehl
929312070f slight iteration of he2 lowgain-highgain ratios 2026-02-19 09:51:42 +01:00
kuehl
14da078396 included patch2 creator and corresponding messages tcms 2026-02-11 10:12:27 +01:00
kuehl
2f3a4f3dcd increment subversion number in config.py 2026-02-10 16:08:47 +01:00
kuehl
f5c06fcd01 use ifc calib rather than tvac calib in het_calib.l3 2026-02-10 11:17:39 +01:00
kuehl
aaf50cfdc1 added macro for inflight calib to het_calib.l3 2026-02-10 11:15:32 +01:00
kuehl
f8ba2071f8 added inflight calib files 2026-02-10 11:08:05 +01:00
519a204f95 HETEPT patch v10.1
Patch 10.1 corrects the operational heater setpoints of HE1 and HE2. In v10 the OH_SETPOINTS were calculated incorrectly due to incorrect scaling of OH_DC_ESTIMATE.
2024-06-20 15:40:49 +02:00
5e7450bdc9 Bug fix of the operational heater set point
The OH_SETPOINT was incorrect because OH_DC_ESTIMATE was not scaled correctly.
2024-06-20 15:37:27 +02:00
15 changed files with 354 additions and 4 deletions

View file

@ -0,0 +1,2 @@
msg(0x268d, 3, 0x007270e00a0c8600)
msg(0x000f, 3, 0x00000a6e000a0001)

View file

@ -0,0 +1,8 @@
<TCs>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">2</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">2</parameter>
<parameter name="Messages" id="PID00075">e68d007270e00a0c8600c00f00000a6e000a0001</parameter>
</TC>
</TCs>

View file

@ -0,0 +1,56 @@
msg(0x261f, 3, 0x024000240240006b)
msg(0x2625, 3, 0x0240006902400023)
msg(0x262d, 3, 0x000000ba00000022)
msg(0x2635, 3, 0x0200002c01000023)
msg(0x263d, 3, 0x0100014801000068)
msg(0x2645, 3, 0x0100006a01000068)
msg(0x264d, 3, 0x088000240880006a)
msg(0x264f, 3, 0x088000230880006a)
msg(0x2651, 3, 0x0400112d04000144)
msg(0x2657, 3, 0x0400002304000068)
msg(0x2659, 3, 0x0400006a04000023)
msg(0x265d, 3, 0x0800002a000000ba)
msg(0x265f, 3, 0x0100117200000022)
msg(0x2661, 3, 0x0100002400000022)
msg(0x268d, 3, 0x007270e00a0c8600)
msg(0x2482, 3, 0xe00000ea86eb2804)
msg(0x2483, 3, 0xc6a99605140200f7)
msg(0x2484, 3, 0xe00000eb86eb1a08)
msg(0x2485, 3, 0xc6a96e09140a0006)
msg(0x2489, 3, 0xe00000e286eaeb12)
msg(0x248a, 3, 0xc6a95213140200e4)
msg(0x248b, 3, 0xe00000e586eb1e16)
msg(0x248c, 3, 0xc6a9701714180014)
msg(0x2497, 3, 0x86cab72dc6891b2e)
msg(0x2499, 3, 0x86cab731c6891b32)
msg(0x2502, 3, 0xe00000f386eb2804)
msg(0x2503, 3, 0xc6a96705140200f1)
msg(0x2504, 3, 0xe00000f086eb4708)
msg(0x2509, 3, 0xe00000ec86eadf12)
msg(0x250a, 3, 0xc6a95a13140200ef)
msg(0x250b, 3, 0xe00000ee86eb2816)
msg(0x250c, 3, 0xc6a96a1714180014)
msg(0x2517, 3, 0x86cab72dc6891b2e)
msg(0x2519, 3, 0x86cab731c6891b32)
msg(0x2582, 3, 0xe00000ea86eb2804)
msg(0x2583, 3, 0xc6a99605140200f7)
msg(0x2584, 3, 0xe00000eb86eb1a08)
msg(0x2585, 3, 0xc6a96e09140a0006)
msg(0x258a, 3, 0xe00000f386eb2814)
msg(0x258b, 3, 0xc6a96715140200f1)
msg(0x258c, 3, 0xe00000f086eb4718)
msg(0x2592, 3, 0xe00000e286eaeb24)
msg(0x2593, 3, 0xc6a95225140200e4)
msg(0x2594, 3, 0xe00000e586eb1e28)
msg(0x2595, 3, 0xc6a97029142a0026)
msg(0x259a, 3, 0xe00000ec86eadf34)
msg(0x259b, 3, 0xc6a95a35140200ef)
msg(0x259c, 3, 0xe00000ee86eb2838)
msg(0x259d, 3, 0xc6a96a39143a0036)
msg(0x25b1, 3, 0xe00000e686cab762)
msg(0x25b2, 3, 0xc6891b63140200f4)
msg(0x25b3, 3, 0xe00000f686cab766)
msg(0x25b4, 3, 0xc6891b6708641168)
msg(0x25cc, 3, 0x86cab797c6891b98)
msg(0x25ce, 3, 0x86cab79bc6891b9c)
msg(0x000f, 3, 0x00000a6e000a0002)

View file

@ -0,0 +1,20 @@
<TCs>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">2</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">20</parameter>
<parameter name="Messages" id="PID00075">e61f024000240240006be6250240006902400023e62d000000ba00000022e6350200002c01000023e63d0100014801000068e6450100006a01000068e64d088000240880006ae64f088000230880006ae6510400112d04000144e6570400002304000068e6590400006a04000023e65d0800002a000000bae65f0100117200000022e6610100002400000022e68d007270e00a0c8600e482e00000ea86eb2804e483c6a99605140200f7e484e00000eb86eb1a08e485c6a96e09140a0006e489e00000e286eaeb12</parameter>
</TC>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">2</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">20</parameter>
<parameter name="Messages" id="PID00075">e48ac6a95213140200e4e48be00000e586eb1e16e48cc6a9701714180014e49786cab72dc6891b2ee49986cab731c6891b32e502e00000f386eb2804e503c6a96705140200f1e504e00000f086eb4708e509e00000ec86eadf12e50ac6a95a13140200efe50be00000ee86eb2816e50cc6a96a1714180014e51786cab72dc6891b2ee51986cab731c6891b32e582e00000ea86eb2804e583c6a99605140200f7e584e00000eb86eb1a08e585c6a96e09140a0006e58ae00000f386eb2814e58bc6a96715140200f1</parameter>
</TC>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">2</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">16</parameter>
<parameter name="Messages" id="PID00075">e58ce00000f086eb4718e592e00000e286eaeb24e593c6a95225140200e4e594e00000e586eb1e28e595c6a97029142a0026e59ae00000ec86eadf34e59bc6a95a35140200efe59ce00000ee86eb2838e59dc6a96a39143a0036e5b1e00000e686cab762e5b2c6891b63140200f4e5b3e00000f686cab766e5b4c6891b6708641168e5cc86cab797c6891b98e5ce86cab79bc6891b9cc00f00000a6e000a0002</parameter>
</TC>
</TCs>

View file

@ -0,0 +1,43 @@
#!/usr/bin/python3
def main(cf_dir='./solo/configurations/'):
from solo.configtable import read_txt_table
from solo.hetept.config import fm1, fm2
from solo.cdpu.telecom import write_xml
from solo.cdpu.telecom import msg_telecommands
# load HET/EPT v10 configuration tables
fm1_v10 = read_txt_table(cf_dir + 'hetept1/v0010/hetept_config_fm1.txt')
fm2_v10 = read_txt_table(cf_dir + 'hetept2/v0010/hetept_config_fm2.txt')
# create new configuration tables from the current code base
fm1_v10_p2 = fm1()
fm2_v10_p2 = fm2()
# make a diff of the nominal configuration
patch1_fm1 = fm1_v10_p2[2] - fm1_v10[2]
patch1_fm2 = fm2_v10_p2[2] - fm2_v10[2]
# write messages
with open(cf_dir + 'hetept1/v0010/hetept_fm1_v0010_patch2.msgs', 'w') as f:
for m in patch1_fm1.msgs():
f.write(m+'\n')
with open(cf_dir + 'hetept2/v0010/hetept_fm2_v0010_patch2.msgs', 'w') as f:
for m in patch1_fm2.msgs():
f.write(m+'\n')
# write telecommands
fm1_tc = msg_telecommands(comment='', unit='HE1')
fm2_tc = msg_telecommands(comment='', unit='HE2')
patch1_fm1(fm1_tc)
patch1_fm2(fm2_tc)
write_xml(cf_dir + 'hetept1/v0010/hetept_fm1_v0010_patch2.tcs', fm1_tc.ad_gen())
write_xml(cf_dir + 'hetept2/v0010/hetept_fm2_v0010_patch2.tcs', fm2_tc.ad_gen())
if __name__ == "__main__":
import sys, os
sys.path[1:1] = [os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", ".."))]
print(os.getcwd())
main(cf_dir='../../')

View file

@ -0,0 +1,43 @@
#!/usr/bin/python3
def main(cf_dir='./solo/configurations/'):
from solo.configtable import read_txt_table
from solo.hetept.config import fm1, fm2
from solo.cdpu.telecom import write_xml
from solo.cdpu.telecom import msg_telecommands
# load HET/EPT v10 configuration tables
fm1_v10 = read_txt_table(cf_dir + 'hetept1/v0010/hetept_config_fm1.txt')
fm2_v10 = read_txt_table(cf_dir + 'hetept2/v0010/hetept_config_fm2.txt')
# create new configuration tables from the current code base
fm1_v10_p1 = fm1()
fm2_v10_p1 = fm2()
# make a diff of the nominal configuration
patch1_fm1 = fm1_v10_p1[2] - fm1_v10[2]
patch1_fm2 = fm2_v10_p1[2] - fm2_v10[2]
# write messages
with open(cf_dir + 'hetept1/v0010/hetept_fm1_v0010_patch1.msgs', 'w') as f:
for m in patch1_fm1.msgs():
f.write(m+'\n')
with open(cf_dir + 'hetept2/v0010/hetept_fm2_v0010_patch1.msgs', 'w') as f:
for m in patch1_fm2.msgs():
f.write(m+'\n')
# write telecommands
fm1_tc = msg_telecommands(comment='', unit='HE1')
fm2_tc = msg_telecommands(comment='', unit='HE2')
patch1_fm1(fm1_tc)
patch1_fm2(fm2_tc)
write_xml(cf_dir + 'hetept1/v0010/hetept_fm1_v0010_patch1.tcs', fm1_tc.ad_gen())
write_xml(cf_dir + 'hetept2/v0010/hetept_fm2_v0010_patch1.tcs', fm2_tc.ad_gen())
if __name__ == "__main__":
import sys, os
sys.path[1:1] = [os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", ".."))]
print(os.getcwd())
main(cf_dir='../../')

View file

@ -0,0 +1,2 @@
msg(0x268d, 3, 0x007270e009188600)
msg(0x000f, 3, 0x00000aa2000a0001)

View file

@ -0,0 +1,8 @@
<TCs>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">3</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">2</parameter>
<parameter name="Messages" id="PID00075">e68d007270e009188600c00f00000aa2000a0001</parameter>
</TC>
</TCs>

View file

@ -0,0 +1,55 @@
msg(0x261f, 3, 0x024000240240006b)
msg(0x262d, 3, 0x000000c600000024)
msg(0x2635, 3, 0x0200002c01000023)
msg(0x263d, 3, 0x0100014a0100006a)
msg(0x2645, 3, 0x0100006a0100006a)
msg(0x264d, 3, 0x088000240880006a)
msg(0x264f, 3, 0x0880002308800069)
msg(0x2651, 3, 0x0400113304000147)
msg(0x2657, 3, 0x0400002304000069)
msg(0x2659, 3, 0x0400006b04000022)
msg(0x265d, 3, 0x0800002a000000c6)
msg(0x265f, 3, 0x0100115900000024)
msg(0x2661, 3, 0x0100002300000024)
msg(0x268d, 3, 0x007270e009188600)
msg(0x2482, 3, 0xe00000ea86eb1e04)
msg(0x2484, 3, 0xe00000eb86eb2b08)
msg(0x2485, 3, 0xc6a96009140a0006)
msg(0x2489, 3, 0xe00000e286eafb12)
msg(0x248a, 3, 0xc6a95213140200e4)
msg(0x248b, 3, 0xe00000e586eb5e16)
msg(0x248c, 3, 0xc6a9751714180014)
msg(0x2497, 3, 0x86ca152dc6889c2e)
msg(0x2499, 3, 0x86ca1531c6889c32)
msg(0x2502, 3, 0xe00000f386ebbe04)
msg(0x2503, 3, 0xc6a95605140200f1)
msg(0x2504, 3, 0xe00000f086eb4308)
msg(0x2505, 3, 0xc6a97309140a0006)
msg(0x2509, 3, 0xe00000ec86eafd12)
msg(0x250a, 3, 0xc6a96b13140200ef)
msg(0x250b, 3, 0xe00000ee86eb2b16)
msg(0x250c, 3, 0xc6a9851714180014)
msg(0x2517, 3, 0x86ca152dc6889c2e)
msg(0x2519, 3, 0x86ca1531c6889c32)
msg(0x2582, 3, 0xe00000ea86eb1e04)
msg(0x2584, 3, 0xe00000eb86eb2b08)
msg(0x2585, 3, 0xc6a96009140a0006)
msg(0x258a, 3, 0xe00000f386ebbe14)
msg(0x258b, 3, 0xc6a95615140200f1)
msg(0x258c, 3, 0xe00000f086eb4318)
msg(0x258d, 3, 0xc6a97319141a0016)
msg(0x2592, 3, 0xe00000e286eafb24)
msg(0x2593, 3, 0xc6a95225140200e4)
msg(0x2594, 3, 0xe00000e586eb5e28)
msg(0x2595, 3, 0xc6a97529142a0026)
msg(0x259a, 3, 0xe00000ec86eafd34)
msg(0x259b, 3, 0xc6a96b35140200ef)
msg(0x259c, 3, 0xe00000ee86eb2b38)
msg(0x259d, 3, 0xc6a98539143a0036)
msg(0x25b1, 3, 0xe00000e686ca1562)
msg(0x25b2, 3, 0xc6889c63140200f4)
msg(0x25b3, 3, 0xe00000f686ca1566)
msg(0x25b4, 3, 0xc6889c6708641168)
msg(0x25cc, 3, 0x86ca1597c6889c98)
msg(0x25ce, 3, 0x86ca159bc6889c9c)
msg(0x000f, 3, 0x00000aa2000a0002)

View file

@ -0,0 +1,20 @@
<TCs>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">3</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">20</parameter>
<parameter name="Messages" id="PID00075">e61f024000240240006be62d000000c600000024e6350200002c01000023e63d0100014a0100006ae6450100006a0100006ae64d088000240880006ae64f0880002308800069e6510400113304000147e6570400002304000069e6590400006b04000022e65d0800002a000000c6e65f0100115900000024e6610100002300000024e68d007270e009188600e482e00000ea86eb1e04e484e00000eb86eb2b08e485c6a96009140a0006e489e00000e286eafb12e48ac6a95213140200e4e48be00000e586eb5e16</parameter>
</TC>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">3</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">20</parameter>
<parameter name="Messages" id="PID00075">e48cc6a9751714180014e49786ca152dc6889c2ee49986ca1531c6889c32e502e00000f386ebbe04e503c6a95605140200f1e504e00000f086eb4308e505c6a97309140a0006e509e00000ec86eafd12e50ac6a96b13140200efe50be00000ee86eb2b16e50cc6a9851714180014e51786ca152dc6889c2ee51986ca1531c6889c32e582e00000ea86eb1e04e584e00000eb86eb2b08e585c6a96009140a0006e58ae00000f386ebbe14e58bc6a95615140200f1e58ce00000f086eb4318e58dc6a97319141a0016</parameter>
</TC>
<TC type="128" subtype="102" id="ZID52540" comment="" delta="00:00:03">
<parameter name="SensorID" id="PID00069">3</parameter>
<parameter name="Flags" id="PID00085">15</parameter>
<parameter name="NMessages" id="PID00086">15</parameter>
<parameter name="Messages" id="PID00075">e592e00000e286eafb24e593c6a95225140200e4e594e00000e586eb5e28e595c6a97529142a0026e59ae00000ec86eafd34e59bc6a96b35140200efe59ce00000ee86eb2b38e59dc6a98539143a0036e5b1e00000e686ca1562e5b2c6889c63140200f4e5b3e00000f686ca1566e5b4c6889c6708641168e5cc86ca1597c6889c98e5ce86ca159bc6889c9cc00f00000aa2000a0002</parameter>
</TC>
</TCs>

View file

@ -11,7 +11,7 @@ from .base_config import hetept_config, hetept_config_table
# attempt to reproduce what was flown 2021-2023
VERSION = 10
SUBVERSION = 0
SUBVERSION = 2
ENV = ["CLOSE", "FAR"]
TEMPERATURE = [25., 15. , 5. , -5.]

View file

@ -0,0 +1,29 @@
FM1_EPT_TC = 1.0 / (1 + T_HET1*(-9.756e-05 +7.456e-06*T_HET1))
FM1_C1_calib = 1.005 * FM1_EPT_TC
FM1_C2_calib = 0.992 * FM1_EPT_TC
FM1_C3_calib = 0.990 * FM1_EPT_TC
FM1_C4_calib = 1.009 * FM1_EPT_TC
FM1_A1_calib = 0.988 * FM1_EPT_TC
FM1_A2_calib = 1.013 * FM1_EPT_TC
FM1_A3_calib = 1.004 * FM1_EPT_TC
FM1_A4_calib = 1.003 * FM1_EPT_TC
FM1_BGO_calib = 21.4300
FM1_BGO_L_calib = 291.3900
FM1_A11H_calib = 1.3950
FM1_A12H_calib = 1.3880
FM1_A21H_calib = 1.3950
FM1_A22H_calib = 1.4100
FM1_B11H_calib = 1.3650
FM1_B12H_calib = 1.3900
FM1_B21H_calib = 1.3590
FM1_B22H_calib = 1.3950
FM1_B13G_calib = 1.1330
FM1_B23G_calib = 1.1711
FM1_A11L_calib = 19.1753
FM1_A12L_calib = 18.8633
FM1_A21L_calib = 18.8117
FM1_A22L_calib = 19.1308
FM1_B11L_calib = 18.6457
FM1_B12L_calib = 18.8773
FM1_B21L_calib = 18.7053
FM1_B22L_calib = 18.8322

View file

@ -0,0 +1,29 @@
FM2_EPT_TC = 1.0 / (1 + T_HET1*(0.0001453 +5.111e-06*T_HET1))
FM2_C1_calib = 0.990 * FM2_EPT_TC
FM2_C2_calib = 1.006 * FM2_EPT_TC
FM2_C3_calib = 0.978 * FM2_EPT_TC
FM2_C4_calib = 0.984 * FM2_EPT_TC
FM2_A1_calib = 1.037 * FM2_EPT_TC
FM2_A2_calib = 0.997 * FM2_EPT_TC
FM2_A3_calib = 0.998 * FM2_EPT_TC
FM2_A4_calib = 0.997 * FM2_EPT_TC
FM2_BGO_calib = 20.1700
FM2_BGO_L_calib = 275.5903
FM2_A11H_calib = 1.3900
FM2_A12H_calib = 1.3960
FM2_A21H_calib = 1.4680
FM2_A22H_calib = 1.4080
FM2_B11H_calib = 1.3730
FM2_B12H_calib = 1.4210
FM2_B21H_calib = 1.3740
FM2_B22H_calib = 1.3960
FM2_B13G_calib = 1.1251
FM2_B23G_calib = 1.1731
FM2_A11L_calib = 18.7536
FM2_A12L_calib = 18.7538
FM2_A21L_calib = 18.6796
FM2_A22L_calib = 18.9045
FM2_B11L_calib = 18.6411
FM2_B12L_calib = 18.9185
FM2_B21L_calib = 18.8383
FM2_B22L_calib = 19.0399

View file

@ -339,11 +339,46 @@ B21L_calib = $1_B21L_calib * B21H_calib
B22L_calib = $1_B22L_calib * B22H_calib
.endmacro
.macro HET_IFC
$1_B21H_calib = 1
$1_B22H_calib = 1
.include $2
C1H_calib = $1_BGO_calib
C2H_calib = $1_BGO_calib
C1L_calib = $1_BGO_L_calib
C2L_calib = $1_BGO_L_calib
A11H_calib = $1_A11H_calib
A12H_calib = $1_A12H_calib
A21H_calib = $1_A21H_calib
A22H_calib = $1_A22H_calib
B11H_calib = $1_B11H_calib
B12H_calib = $1_B12H_calib
B21H_calib = $1_B21H_calib
B22H_calib = $1_B22H_calib
B13G_calib = $1_B13G_calib
B23G_calib = $1_B23G_calib
A11L_calib = $1_A11L_calib
A12L_calib = $1_A12L_calib
A21L_calib = $1_A21L_calib
A22L_calib = $1_A22L_calib
B11L_calib = $1_B11L_calib
B12L_calib = $1_B12L_calib
B21L_calib = $1_B21L_calib
B22L_calib = $1_B22L_calib
.endmacro
.ifdef M_FM1
.call HET_TVCAL FM1 2016-10-05-fm1-tvcal-calibration.txt
.call HET_IFC FM1 2026-02-06-fm1-ifc.txt
.endif
.ifdef M_FM2
.call HET_TVCAL FM2 2016-10-13-fm2-tvcal-calibration.txt
.call HET_IFC FM2 2026-02-06-fm2-ifc.txt
.endif

View file

@ -33,7 +33,7 @@ class hetept_ppss(ppss_table):
self.dps = dps
self.dps_us = dps_us
self.clear_us = clear_us
self.OH_SETPOINT = HK_T_to_ADC(OH_degC, dc_estimate=self.OH_DC_ESTIMATE, shift=self.OH_SHIFT)
self.OH_SETPOINT = HK_T_to_ADC(OH_degC, dc_estimate=self.OH_DC_ESTIMATE*192//100, shift=self.OH_SHIFT)
self.assemble()
def assemble(self):