Translator Disclaimer
1 March 2018 In-flight performance of pulse-processing system of the ASTRO-H/Hitomi soft x-ray spectrometer
Author Affiliations +
We summarize results of the initial in-orbit performance of the pulse shape processor (PSP) of the soft x-ray spectrometer instrument onboard ASTRO-H (Hitomi). Event formats, kind of telemetry, and the pulse-processing parameters are described, and the parameter settings in orbit are listed. The PSP was powered-on 2 days after launch, and the event threshold was lowered in orbit. The PSP worked fine in orbit, and there was neither memory error nor SpaceWire communication error until the break-up of spacecraft. Time assignment, electrical crosstalk, and the event screening criteria are studied. It is confirmed that the event processing rate at 100% central processing unit load is ∼200  c  /  s  /  array, compliant with the requirement on the PSP.



The ASTRO-H1 (named Hitomi after launch on February 17, 2016) is the sixth Japanese x-ray astronomy satellite and was developed under international collaboration of Japan, United States, Europe, and Canada. The pulse shape processor24 (PSP) is a digital signal-processing electronic for the microcalorimeter instrument, soft x-ray spectrometer5 (SXS) onboard ASTRO-H. The SXS has 36 sensor pixels, which are operated at 50 mK to measure heat input of x-ray photons and realizes energy resolution of full-width at half-maximum (FWHM) <7  eV in 0.3 to 12.0 keV. Receiving digitized waveform (14 bit, 12.5 kHz sample) from 18 channels apiece, two identical units of PSP-A and -B trigger x-ray events, assign an event grade, and perform optimal filtering to measure energy deposit on the microcalorimeter pixels. This paper describes results of the initial in-orbit performance of the PSP as well as the related technical details.


Overview of the PSP

The PSP is a digital signal processor of the SXS, and it has following functions:

  • To process continuously the digitized waveform from the detector system.

  • To receive commands from the spacecraft.

  • To output the house-keeping (HK) telemetry, the event telemetry, and the diagnostic telemetry to the spacecraft.

  • To calculate noise spectra, average pulses, and templates (see Sec. 3.2) of the detector.

It is requested to the PSP to make full use of the detector performance in terms of energy resolution, event triggering and grading, time-assignments, background/crosstalk rejection, counting capability, etc. Particularly for the counting capability, processing more than 150 c/s/array of the incoming x-rays is required to the PSP. The PSP realizes these functions and requirements in combination of its hardware and the onboard software. The basic algorithm of the x-ray pulse processing in the PSP is described in a separate paper.3

The processing algorithm of the PSP follows that of the calorimeter digital processor for the Suzaku XRS.6,7 However, the PSP is implemented on a completely different hardware. In Fig. 1, we show a block diagram of the PSP. The analog signals from the x-ray microcalorimeter detector are amplified and digitized by the analog-to-digital signal processing unit called the x-ray amplifier box (XBOX). The digital data are transferred to the PSP via low voltage differential signal (LVDS) lines with sampling rate of 12.5 kHz. The data contain stream of the 14-bit adc_sample, which is a raw value sampled by the analog-to-digital converter (ADC) in the XBOX. From the stream of the adc_sample, the PSP calculates the 16-bit derivative by applying a boxcar filter, and the derivative is used for the triggering. Both the adc_sample and the derivative are stored in a buffer memory named waveform ring-buffer (WFRB) in the PSP. The size of the WFRB is 1 MB containing 218=262,144 samples (20.97152 s in 12.5 kHz) for each pixel.

Fig. 1

Block diagram of PSP and neighboring components. Dashed lines from the detector to the XBOX are analog signals. Gray lines from the XBOX to the PSP-A/B are digital signals via LVDS. Black lines from the PSP to the SpaceWire Router, the SMU, and the DR are digital signals via SpaceWire.


The PSP has two electrically identical hardware: PSP-A and PSP-B. One PSP processes the continuous data of 18 channel (from the microcalorimeter pixels) and 1 channel (from the anticoincidence sensor) sequence units, triggers discrete pulses and noise records from the data stream. The hardware design of each PSP consists of a field-programmable gate array (FPGA) board, two central processing unit (CPU) boards, and a power supply board. These boards are developed by JAXA and Mitsubishi Heavy Industries, Ltd. The communication between the FPGA board and the CPU board uses the SpaceWire protocol, which is the standard high-speed serial communication in satellites based in part on the IEEE 1355. Table 1 shows hardware specifications of the FPGA board and the CPU board. Telemetry from the PSP is edited into Space Packets, which is the standard protocol for satellites by the Consultative Committee for Space Data Systems, and they are transferred to the satellite management unit (SMU) or the data recorder (DR) via SpaceWire. We assume all the Space Packets shall be downlinked to the ground station (Uchinoura Space Center), although we have to select and prioritize the Space Packets because the capacity of the DR is limited and shared with other mission instruments. See the next paragraph in detail. Commands are transferred from the SMU to the PSP. The PSP also relays commands to the XBOX and telemetry from the XBOX.

Table 1

Specifications of the FPGA board and the CPU board.

FPGA boardCPU board
SpaceWireThree portsFour ports (two in FPGA + two in CPU)
MemorySDRAM (64 MB)SDRAM (64 MB), SRAM (4 MB), EEPROM (2 MB)
Clock20 MHz60 MHz
CPUSH-4 compatible

The list of telemetry packets from the PSP is shown in Table 2. A single Space Packet is identified by a combination of three identifier numbers, namely, application process identifier (APID), lower function object identifier (FOID) (Upper FOID is equivalent of lower 8 bit of APID.), and Attribute ID. APID=0x02/0x05 is assigned for SMU-A/B, APID=0x40/44/48/4C for PSP-A0/A1/B0/B1, and APID=0x47/4F for XBOX-A/B. The maximum size of a Space Packet is 1024 octets for ASTRO-H; however, it is allowed to generate a longer spacecraft monitor and control protocol (SMCP) message up to 0xFFFFFF=16,777,215 octets, which is segmented into multiple Space Packets. Lower 32-bits of the time counter of the spacecraft (L32TI) in units of 1/64  s=15.625  ms is attached in the secondary header of each Space Packet. The time counter of the spacecraft is 38-bits long. The upper 32-bits of the time counter (U32TI) is in units of 1 s, and its origin (U32TI = 0) is the same as that of the global positioning system (GPS), 1980-01-06 00:00:00 UTC, when the spacecraft time is synchronized with the GPS. There is a 7-bit value (0x00 to 0x7F) named “Category” in the secondary header of a Space Packet, which is used as priority in recording the packet to the DR. The value of 0x7F is the lowest priority, meaning that the packet is only telemetered in real-time downlink and shall not be recorded in the DR. The HK packets of ESHK2 and SYS/USR/XBOX/STATISTIC HK are generated periodically as indicated by the column of “Period.” In order to save the capacity of the DR (1.5 GB), categories of SYS/USR/XBOX HK are dynamically changed in four cycles by the PSP. We also changed the category of PULSEREC to lower priority and changed those of AVGPULSE, NOISESPC1K, TEMPLATE, WFRB DUMP, and NOISESPC8K to higher priority by sending commands to the PSP in orbit. The PSP has many parameters for the pulse-processing, and the list of major parameters is shown in Table 3.

Table 2

List of telemetry packets from the PSP.

NameSizea (octet)APIDLower FOIDAttribute IDCategorybPeriodDescription
ESHK2160x02/050x000x01010x021 sEssential HK for SXS with packet size of 904 octets, containing HK data of PSP-A0/A1/B0/B1 (16 octets each), ADRC (400), SCD (88), PCD (86), JTD (68), SXI-CD (38), and FWE (160).c
SYS HK2470x40/44/48/4C0x000x00000x51/7F/7F/7F4 sSystem HK of PSP-A0/A1/B0/B1 for common software.
USR HK2060x40/44/48/4C0x800x00010x51/7F/7F/7F4 sUser HK of PSP-A0/A1/B0/B1 for user application.
XBOX HK2220x47/4F0x810x00400x51/7F/51/7F4 sHK made by PSP-A0/A1 for XBOX-A, or PSP-B0/B1 for XBOX-B.
XBOX REPLY400x47/4F0x820xFFFE0x50XBOX reply when a commands is sent to XBOX-A/B.
PIXEL HK8150x40/44/48/4C0x830x00030x51Pixel HK which is generated when pixel parameters are changed.
STATISTIC HK5140x40/44/48/4C0x840x00040x5116 sStatistics HK including CPU idle time and event rates.
PXP EVENTVariable0x40/44/48/4C0x910x11110x52MicroCalorimeter pixel pulse events containing event records up to 80.
ACP EVENTVariable0x40/44/48/4C0x920x22220x52Antico pulse events containing event records up to 150.
PULSERECVariable0x40/44/48/4C0x930x33330x620x72A pulse record of the microcalorimeter pixel with Huffman compression.
NOISERECVariable0x40/44/48/4C0x940x44440x62A noise record of the microcalorimeter pixel with Huffman compression.
AVGPULSE82350x40/44/48/4C0x950x55550x620x52An average pulse (adc_sample and derivative) of a microcalorimeter pixel.
NOISESPC1K82190x40/44/48/4C0x960x66660x620x52A noise spectrum with 1024 (1k) samples of a microcalorimeter pixel.
TEMPLATE51790x40/44/48/4C0x970x77770x620x52H- and M-resolution templates (1024 and 256 samples) of a microcalorimeter pixel.
WFRB DUMP65,5590x40/44/48/4C0x9A0xAAAA0x620x5216,384 samples of adc_sample and derivative of a microcalorimeter pixel.
NOISESPC8K32,7950x40/44/48/4C0x9B0xBBBB0x620x52A noise spectrum with 8096 (8k) samples of a microcalorimeter pixel.
SYSLOGVariable0x40/44/48/4C0xFE0xFFFE0x50A system-log message of PSP-A0/A1/B0/B1 for user application.

aSize of binary data from each PSP for ESHK2, size of a Space Packet for ≤1024, and size of an SMCP message for >1024 which is segmented into several Space Packets.

bCategory ranges from 0x00 to 0x7F, used as priority in the DR. The value of 0x7F is the lowest, which is only telemetered in real-time downlink and shall not be recorded in the DR.

cADR Controller, ADRC; shield cooler driver, SCD; precooler driver, PCD; Joule–Thomson cooler driver, JTD; soft x-ray imager cooler driver, SXI-CD; filter wheel electronics, FWE.

Table 3

List of parameter setting of the PSP in orbit. The suffix of P nn ranges from P00 to P17 in decimal, corresponding to IPIX = 0 to 17.

NameOriginaSize (bit)ValueDescription
Version information of FPGA and onboard software
SW_VERCOMM320x00000408Software version of the common software.
FORMAT_VERUAPP84Version (0 to 255) of the USR HK format.
UAPP_VER_YYMMDD/MINORUAPP24/80x150615/0BMajor/minor version (0xYYMMDD/0xZZ) of the PSP user application.
FPGA_VERFPGA320x01020419Version of the user FPGA logic on the FPGA board.
Parameters for pulse-processing of the microcalorimeter pixel.
PULSE_THRES_P nnFPGA1612075Threshold to generate a trigger for the pulse candidate, where derivative ≥ PULSE_THRES.
DERIV_HALF_LEN_P nnFPGA58Half length of the boxcar filter in calculating derivative (0 to 31).
QUICK_DOUBLE_THRES_P nnFPGA81Threshold to set QUICK_DOUBLE = 1 in the FALL state of the pixel pulse trigger module.
PX_PF_INHIBIT_FLGFPGA10Switch to inhibit PEAKFIND state in the pixel pulse trigger module (0:EXIST, 1:INH).
PF_STATE_CNT_MAX_P nnFPGA85Maximum number of samples that can stay in the PEAKFIND state (5 = 0.4 ms).
PF_QUIT_CNT_MAX_P nnFPGA85Maximum number of samples after peak that can stay in the PEAKFIND state (5 = 0.4 ms).
SECOND_THRES_MIN_P nnUAPP1612075Minimum secondary threshold, i.e., second_thres=max (DERIV_MAX / SECOND_THRES_FRAC, SECOND_THRES_MIN).
SECOND_THRES_FRAC_P nnUAPP820Fraction to DERIV_MAX of the primary pulse which is used to determine the secondary threshold.
SECOND_THRES_USE_LEN_P nnUAPP1675Number of ticks after the position of DERIV_MAX to use the secondary threshold (75=6  ms).
SECOND_TRIG_GAP_LEN_P nnUAPP825Number of tick skipped after the position of DERIV_MAX to start the second trigger (25=2  ms).
SLOPE_DETECT_LEN_P nnUAPP820Length in tick to judge slow-pulse events. Condition of (ticks from the trigger point to DERIV_MAX < SLOPE_DETECT_LEN) && (ticks from the trigger point to zero-crossing < 2 × SLOPE_DETECT_LEN) must be satisfied for normal events. A primary pulse judged as the slow-pulse is set the most significant bit (MSB) of RISE_TIME to 1 (RISE_TIME > 128). A secondary pulse judged as the slow-pulse shall be discarded, and SLOPE_DIFFER is set to 1 for the primary pulse. SLOPE_DETECT_LEN = 20 corresponds to 1.6 ms.
SLOPE_SKIP_LEN_P nnUAPP160Length in tick to skip after the slow-pulse event is found.
PHA_AVG_PULSE_P nnUAPP32144,000PHA in the event record is normalized so that the average pulse cross-correlated with H- or M-resolution template becomes equal to PHA_AVG_PULSE. The average pulse is normalized to fit within a signed 16-bit integer (32,768 to 32,767).
FORCE_MIDRES_TMPL_P nnUAPP10Force to use M-resolution template to Hp (0:DIS, 1:ENA).
PRE_TRIG_LEN_HUAPP12140Length in tick before the trigger point in cross-correlating the H-resolution template (140 = 11.2 ms).
PRE_TRIG_LEN_MUAPP1227Length in tick before the trigger point in cross-correlating the M-resolution template (27 = 2.16 ms).
MIN_SHIFT_BACKWARDUAPP48Minimum number (8 to 0) to shift backward in cross-correlating the H- or M-resolution template.
MAX_SHIFT_FORWARDUAPP4+7Maximum number (0 to +7) to shift forward in cross-correlating the H- or M-resolution template.
PX_OFFSET_AVG_GAPFPGA65Length (0 to 31 ticks) between the first sample of a triggered pulse and the last sample of the base-level calculation used for LO_RES_PH.
PX_OFFSET_AVG_POWFPGA34Length (0 to 5, corresponding 1=20 to 32=25 ticks) in averaging the base-level used for LO_RES_PH.
Parameters for noise-processing of the microcalorimeter pixel
NOISE_THRES_P nnFPGA1612075Threshold to judge a trigger for NOISEREC, where | derivative| < NOISE_THRES in the interval of NOISE_CLEAN_LEN.
NOISE_CLEAN_LEN_P nnFPGA162048Length of | derivative| < NOISE_THRES in units of tick to generate a trigger for NOISEREC.
NOISE_TAIL_MARGINUAPP80Margin number of samples at the tail of noise triggers, namely, noise records are extracted from (TRIG_LP + NOISE_CLEAN_LEN – 1024 – NOISE_TAIL_MARGIN).
Parameters for pulse-processing of antico
AC_PULSE_THRESFPGA1625An antico pulse is triggered by FPGA when (adc_sample – AC_ADC_SAMPLE_PEDESTAL) ≥ AC_PULSE_THRES. The threshold of 25 in ADC unit corresponds 10  keV.
AC_ADC_SAMPLE_PEDESTALFPGA166613/6611Zero level of adc_sample in the antico waveform, which was slightly different between PSP-A and PSP-B.
AC_PEAK_FIND_LENFPGA850The maximum length in units of tick for the ACP_PEAKFIND state in FPGA (50 = 4 ms).
Parameters for telemetry rate
FCOLL_MAX_SIPCOMM166520Maximum number of Space Packets per second transferred to DR for each PSP-A0/A1/B0/B1.
PXP_TLM_ITVL_SECUAPP616Maximum interval of the microcalorimeter pixel event packet in units of second (0 to 63).
ACP_TLM_CPS_MAXUAPP16450Maximum number of antico events per second (0 to 65,535).
PULSE_ITVL_TICKUAPP16012,500Two pulse records among pixels must be separated by PULSE_INTVL_TICK (12,500 ticks = 1 s).
PULSE_SELF_ITVL_FACTORUAPP60Two pulse records in the same pixel must be separated by this parameter × PULSE_ITVL_TICK.
NOISE_ITVL_TICKUAPP16625012,500Two noise records among pixels must be separated by NOISE_INTVL_TICK (12,500 ticks = 1 s).
NOISE_SELF_ITVL_FACTORUAPP68Two noise records in the same pixel must be separated by this parameter × NOISE_ITVL_TICK.
Parameters for the autonomous function (AT) of the SMU
JFET_HTR_VIN_THRESUAPP410Threshold in units of V (0 to 15) for the JFET heater power, JFET_HTR_VIN.
JFET_HTR_VOUT_THRESUAPP410Threshold in units of V (0 to 15) for the JFET heater power, JFET_HTR_VOUT.

a“COMM” means the common software among mission instruments onboard ASTRO-H, “FPGA” means the user FPGA of the FPGA board in the PSP-A/B, and “UAPP” means the user application software written for the PSP.

The PSP has a function to grade (Fig. 2) pulses into high-resolution primary (Hp), medium-resolution primary (Mp), medium-resolution secondary (Ms), low-resolution primary (Lp), or low-resolution secondary (Ls). The definition of each grade is listed in Table 4, in which only two values of the tp (time-interval to the previous pulse) and the tn (time-interval to the next pulse) are used. The meaning of the “primary” and the “secondary” does not relate to a distinct physical process, but they just denote there is a triggered event in a specified time-interval for tp (secondary) or not (primary). The PSP evaluates the detected pulses using the optimal filtering methods to produce an event record of 96 bits (12 octets). Contents of the event record for each microcalorimeter pixel is shown in Table 5. The template length for the optimal filtering is 1024 samples (81.92 ms) for Hp and 256 samples (20.48 ms) for Mp/Ms. The PSP has a special mode, FORCE_MIDRES_TMPL = enabled (1:ENA) for each pixel, in which the short template is applied to Hp events for the calibration purpose. The Lp/Ls events are only calculated for LO_RES_PH without optimal filtering. Up to 80 event records are merged into a Space Packet, and it is transferred to the DR.

Fig. 2

Schematic view of grades (Hp, Mp, Ms, Lp, Ls) for pulses arriving at time t=0. The tp denotes the time-interval to the previous pulse, and the tn denotes that to the next pulse. The value of 884 samples is determined by (1024-PRE_TRIG_LEN_H), and the value of 229 samples is determined by (256-PRE_TRIG_LEN_M), in Table 3.


Table 4

Definition of the event grades. See Fig. 2 for the definition of tp and tn, and they are in units of ms.


Table 5

Definition of an event record for the microcalorimeter pixels in 96 bits (12 octets).

NameSize (bit)Description
ITYPE3Event type, 0:Hp, 1:Mp, 2:Ms, 3:Lp, 4:Ls, 5:(BL, 6: EL, 7:reserved.
IPIX5Pixel ID, 0 to 17, or 31 for undefined. One need to see PSP_ID (0 to 3) in the packet header to know PIXEL = 18 × (PSP_ID/2)+IPIX.
TRIG_LP24Time informationa of the event.
QUICK_DOUBLE1The quick-double flag indicating that derivative increased again in the FALL state of the pulse detection in FPGA.
SLOPE_DIFFER1The slope-differ flag indicating that slope of the derivative is different from the average derivative (a slow-pulse is found in the residual). The slow-pulse found in the slope shall be discarded. SLOPE_DIFFER becomes always 1 for x-rays with its energy larger than 15  keV.
LO_RES_PH14The low-resolution pulse height (0 to 16,383), determined by the maximum value of the raw pulse.
DERIV_MAX16The maximum value of derivative. This is signed value, ranging from 32,768 to +32,767.
RISE_TIME8Time in units of 1/4 tick (20  μs) from DERIV_MAX to zero-crossing of derivative, corresponding to the rise-time of the raw pulse. The MSB of RISE_TIME means the slow-pulse flag (RISE_TIME <128 for nominal pulse), and dynamic range of RISE_TIME is 2.56 ms.
TICK_SHIFT4Number of shift for the template which is needed to get the maximum of the optimal filter. This is signed value, ranging from 8 to +7.
TIME_VERNIER4Fine resolution of time (0 to 15) in units of 1/16 tick (5  μs). TIME_VERNIER = 0 for Lp/Ls/BL, or when TICK_SHIFT=8/+7.
PHA16Pulse height indicator, which is represented by an unsigned value (0 to 65,535) for Hp/Mp/Ms/Lp/Ls, and by a signed value (32,768 to +32,767) for BL.
EL_REASON8Reasons of the EL phenomenon, 0:EDB overflow with IPIX = 31, 1:first FIFO overflow, 2:pulse data in WFRB is lost.
EL_LOST_CNT16Number of event candidates which are lost in the EL phenomenon.
EL_START_LP32Time informationa of the first event in the EL phenomenon.
EL_STOP_LP32Time informationa of the last event in the EL phenomenon.

a6-bits lap + 18-bits pointer to the WFRB in units of 1 tick (80  μs).

There are two kinds of pseudoevents, baseline (BL) and event-lost (EL). The BL pseudoevent is coupled with the telemetry type of “noise record,” for which the PSP periodically collects a waveform in quiescent time (absolute value of the derivative is less than a parameter, NOISE_THRES, for an interval of NOISE_CLEAN_LEN = 2048 samples, in Table 3) and calculate the zero-level of PHA in a signed integer (32,768 to +32,767). The TRIG_LP, LO_RES_PHA, and DERIV_MAX correspond to the first sample of the noise record, and QUICK_DOUBLE, SLOPE_DIFFER, RISE_TIME, TICK_SHIFT, and TIME_VERNIER become 0. The EL pseudoevent means that the PSP cannot process all of the events due mostly to high incoming rate (200  c/s/array), and several event candidates are skipped for a few seconds. In such case (hereafter, the EL phenomenon), the content of the event record following the TRIG_LP shall be replaced by EL_REASON, EL_LOST_CNT, EL_START_LP, and EL_STOP_LP (11 octets). One can construct the good time interval (GTI) for each pixel using the EL pseudoevent. There are three kinds of reasons for the EL phenomenon, specified by EL_REASON. When EL_REASON = 0, corresponding to the event dual buffer (EDB) overflow in the FPGA (125 stages of FIFO read by 8 Hz shared for 9 pixels, corresponding 111  c/s/pixel), one needs to take care that IPIX becomes 31 (undefined), which means that the EL pseudoevent applies to all the 9 pixels handled by one CPU board (PIXEL = 0 to 8 for PSP-A0, 9 to 17 for A1, 18 to 26 for B0, and 27 to 35 for B1). EL_REASON = 1 represents the overflow of the 1first FIFO in CPU (256 stages of FIFO for each pixel). EL_REASON = 2 represents that the pulse data (the 14-bits adc_sample and the 16-bits derivative) in the WFRB are lost.

Contents of the event record for the anticoincidence sensor (antico) are shown in Table 6. There are BL (FLG_BASELINE = 1) and EL (FLG_EVENT_LOST = 1) pseudoevents for the antico events, too. The BL pseudoevent for the antico is generated by random sampling in 1 Hz. The EL pseudoevent for the antico is only sent when the EDB overflows in the FPGA (125 stages of FIFO read by 8 Hz, corresponding 1000  c/s). The structure of the event record for the EL for the antico is the same as the normal antico event (FLG_BASELINE = FLG_EVENT_LOST = FLG_PARITY_ERR = 0). Time information of only the first event is stored for the EL pseudoevent, and one should extract the time information for the last event in the EL with the TRIG_LP of the next event. With regard to the normal antico event and the BL pseudoevent, the value of ADC_SAMPLE_MAX has a DC-offset of the ADC in the XBOX. One has to subtract the value of AC_ADC_SAMPLE_PEDESTAL (Table 3) to get the value of PHA for the antico. The AC_ADC_SAMPLE_PEDESTAL was set to 6613 for PSP-A and 6611 for PSP-B.

Table 6

Definition of an event record for the anti-coincidence sensor (antico) in 48 bits (six octets).

NameSize (bit)Description
FLG_EVENT_LOST1Flag for the EL phenomenon for antico. The reason is EDB overflow only.
FLG_BASELINE1Flag for the BL event for antico. The BL event for antico is generated by random sampling in 1 Hz.
DURATION6Duration (0 to 63) in units of tick (80  μs) exceeding the antico threshold.
TRIG_LP24Time informationa of the event.
FLG_PARITY_ERR1Flag to show the parity error is found in the time-interval of duration.
TRIG_LAP_LSB1The least significant bit (LSB) of the lap of TRIG_LP, namely, this value should be equal to (TRIG_LP ≫ 18)&1.
ADC_SAMPLE_MAX14Maximum value of the adc_sample (0 to 16,383) in the time-interval of duration.

a6-bits lap + 18-bits pointer to the WFRB in units of 1 tick (80  μs).


In-Orbit Operation of the PSP


Operation in Orbit

In-orbit operation of the SXS is summarized in Ref. 8. The PSP was powered OFF at the launch, and we powered ON both PSP-A/B and XBOX at 2016-02-19 06:14 UTC. The onboard software of the PSP was started, and parameters were set for the nominal observation mode on the same day. We adjusted the rate of NOISEREC from 2 to 1 c/s/CPU at 2016-02-21 08:57 UTC and that of PULSEREC from ALL to 1 c/s/CPU at 2016-02-23 02:10 UTC. The maximum number of Space Packets per second transferred to DR for each PSP-A0/A1/B0/B1 (FCOLL_MAX_SIP in Table 3) was reduced from 65 to 20 at 2016-02-22 06:19 UTC. The categories of telemetry were changed at 2016-02-22 07:59 UTC, as mentioned in the previous section. We lowered the event threshold for the derivative (PULSE_THRES, SECOND_THRES_MIN, NOISE_THRES in Table 3) from 120 to 75, which is equivalent to 166 and 104  eV, respectively, in energy, at 2016-03-02 04:00 UTC. Figure 3 shows comparison of 5-σ thresholds determined using the WFRB DUMP telemetry. The only significant change from the ground testing to the values in orbit is PIXEL = 33. It did not ring (The adc_sample oscillates in a certain frequency.) on the ground, whereas it was ringing in orbit, similar to PIXEL = 26 and 27, for which ringing was seen on the ground. We set the antico thresholds at 25 (10  keV) for both PSP-A and -B from the ground testing and kept them unchanged in orbit. Both PSP-A and -B worked fine in orbit, and there was no memory error nor SpaceWire communication error until the break-up of spacecraft on 2016-03-26 UTC.

Fig. 3

On-ground (December 2016, February 6, 2016, and February 15, 2016) versus in-orbit (Y + 5, Y + 7, corresponding to 5 or 7 days after launch) comparison of 5-σ thresholds for the derivative. The 5-σ thresholds are calculated by off-line, using the WFRB DUMP telemetry (Table 2). The only significant change from the ground testing to the values in orbit is PIXEL = 33 (see main text).


Table 3 summarizes the parameter setting of the PSP in orbit. In order to protect the sensor and the adiabatic demagnetization refrigerator (ADR) from He-leak into the vacuum shield of the SXS dewar (DWR), we set parameters of JFET_HTR_VIN_THRES = JFET_HTR_VOUT_THRES = 10 V for the autonomous (AT) function of the SMU. In such case, thermal conduction of the junction field-effect transistor (JFET) through the He gas become larger, and the JFET heater power to keep it at 130 K becomes higher. The PSP monitors the values of the heater powers named JFET_HTR_VIN/VOUT in the XBOX HK. When they become larger than these thresholds, the PSP sets a flag in the ESHK2 telemetry. The SMU monitors this flag in the ESHK2 telemetry and sends the registered AT command, which aborts sequencers of the ADR controller (ADRC) and disables the XBOX amplifiers to prevent the permanent damage to the sensor and the ADR.


Template for Optimal Filter

The average pulses (for both the adc_sample and the derivative with a record-length of 1024 samples) and the H- and M-resolution templates (record-lengths of 1024 and 256 samples, respectively) in orbit are the same as those used in the ground testing. Inside the PSP algorithm, the M-resolution template is a cut-out of the H-resolution template, considering the difference of the record-lengths and the pretrigger lengths (PRE_TRIG_LEN_H = 140, PRE_TRIG_LEN_M = 27 in Table 3). The H-resolution template for each pixel is calculated from the the average pulse and the noise spectrum. The PSP has functions to collect them and to calculate the templates by the onboard software. It is also possible to upload the average pulses and templates calculated by off-line from the ground station to the PSP. It is unlikely to change the x-ray pulse shape; however, the noise environment may change in orbit. On the other hand, the nonlinearity of PHA (Table 5) and the time-assignment of the events (see Sec. 3.3) are affected by the template. We therefore decided to use the same templates, which is calculated in ground, also in orbit, as far as the degradation in orbit is within the energy resolution budget. In the case of ASTRO-H/Hitomi, the energy resolution at 5.9 keV was 4.43 eV (FWHM) at the subsystem test, 4.79 eV at the spacecraft thermal vacuum test, and 4.94 eV in orbit.9 The degradation was within the energy resolution budget so that we used the same templates throughout the operation on-ground to in-orbit.

The flight templates were taken at Tsukuba Space Center in the subsystem test of the SXS on 2015-03-10 13:04 17:10 UTC and were written to the electrically erasable programmable read-only memory (EEPROM) of PSP-A0/A1/B0/B1 on ground. At that time, the major part of the SXS was the flight-model (FM), namely the DWR, electrical harnesses, XBOX, ADRC, power supply unit, shield cooler driver (SCD), precooler driver (PCD), and Joule–Thomson cooler driver (JTD) were FM, and PSP-A/B and SXS SpaceWire Router A (SXS-SWR-A) were the engineering model. The SXS-SWR-B, filter wheel electronics (FWE), and SXS power distributer (SXS-DIST) were absent. We irradiated Mn-Kα x-rays (5.9 keV) to all the microcalorimeter pixels. The x-rays were made on the secondary Mn target irradiated by an x-ray generator mounted on the DWR and came into the microcalorimeter pixels (except for the calibration pixel, PIXEL = 12) through the gate-valve of the DWR, which has an entrance window made of 300  μm of Be. The calibration isotope Fe55 attached on the detector assembly was used for the calibration pixel. At that time, the event thresholds were set to lower values of 50 than those in-orbit (125 or 75) for most of pixels. The thresholds were 70 for PIXEL = 8, 27, and it was 200 for PIXEL = 26. The difference of the event thresholds among pixels affects the time-assignment, which is described in the next section.


Time Assignment

There are several remarks on the time-assignment of the events for both the microcalorimeter pixels and the antico. The time-coincidence among the pixels and the antico is important for rejecting non-x-ray background events, and the requirement on the PSP is that the relative timing accuracy (The “relative timing” means that it just applies to the time-coincidence between the pixels and the antico, and it does not apply to difference from the astronomical absolute time.) <80  μs. However, there exist systematic shifts in the time-assignment among the event grades (Hp, Mp/Ms, and Lp/Ls) and that between the pixels and the antico. Triggering a pulse candidate is done in the FPGA, and the way of triggering is different between the pixels and the antico. The pixel events are triggered when the calculated derivative using a boxcar filter of DERIV_HALF_LEN_P nn = 8 ticks exceeds the PULSE_THRES_P nn in Table 3. On the other hand, the antico events are triggered when the adc_sample exceeds the (AC_PULSE_THRES + AC_ADC_SAMPLE_PEDESTAL). The time-assignment of the antico is done using the triggered time, which is stored as TRIG_LP in Table 6. The time-assignment of the microcalorimeter pixels depends on the event grades. With regard to Hp, the adc_sample is cross-correlated with the H-resolution template within the range of 8 (= MIN_SHIFT_BACKWARD) < TICK_SHIFT < + 7 (= MAX_SHIFT_FORWARD), and the maximum is searched. When the maximum is found, the CPU conducts the parabolic fit using the three samples around the maximum and calculates TIME_VERNIER in time-resolution of 1/16 tick=5  μs. If the maximum is not found (TICK_SHIFT = −8 or +7), TIME_VERNIER is set to 0. The triggered time is shifted by the value of TICK_SHIFT, and it is stored as TRIG_LP in Table 5. With regard to Mp/Ms, the time-assignment is similar to Hp but for using the M-resolution template. With regard to Lp/Ls, time of the derivative maximum (derivative = DERIV_MAX) is assigned for TRIG_LP and TIME_VERNIER = 0.

Therefore, time for Hp/Mp/Ms is assigned so that the obtained pulse record becomes the best match for the template, referring to the time origin of the template. The time origin of the template is the FPGA trigger time in making the average pulse in the template generation. This means that the time-assignment of Hp/Mp/Ms among pixels does not depend on the event threshold in the actual observation, but it slightly depends on that in the template generation. With regard to Lp/Ls, which use the time of DERIV_MAX, it does not depend on the event threshold, and there is a systematic delay compared with Hp/Mp/Ms. The delay was evaluated as 11.625 tick=0.93  ms on ground using the spacecraft thermal-vacuum test on 2015-06-25. Because the event threshold for PIXEL = 26 was four times higher than those for other pixels in the template generation, a delay of 1.625 tick=0.13  ms was seen in Hp/Mp/Ms events for PIXEL = 26. There is a delay in the antico event, too, and it is slightly dependent on the antico event threshold and the energy input to the antico sensor (Si PIN). The delay was evaluated as 0.24 ms on ground, by checking a distribution of Δt = (antico time) − (pixel time) for the cosmic-ray events. Parameters of these corrections for the delays are incorporated into the calibration database (CALDB) file, ah_sxs_coeftime_20140101v001.fits.

In addition to the relative time differences, we observed a time delay of Hp events from the expected irradiation of the modulated x-ray source (MXS), which consists of four x-ray generators for gain calibration attached to the housing of the filter wheel mechanics. The observed delay was 160  ms, and it is due mainly to specification of latching the spacecraft time in the FWE, namely the time of irradiation start is recorded as 1/64  s=156.25  ms ahead. The remaining delay was evaluated as 0.445±0.022  ms on ground using the spacecraft thermal-vacuum test on 2015-06-25. This delay consists of both systematic shift of time-assignment in the PSP and delay in the digital and analog circuits in the FWE/MXS, although we cannot separate them because there are no ground measurements.

We also found a very small shift of the time-assignment up to 20  μs depending on the DERIV_MAX or RISE_TIME, although we cannot separate their effect on the time-assignment, because there is a clear correlation between DERIV_MAX and RISE_TIME for normal events. This is due mainly to the slight distortion of the pulse shape (ratio of pulse-height to the input energy becomes lower for x-rays with higher energy) due to the microcalorimeter physics. Parameters for the time correction were evaluated with in-orbit data, especially using the Crab pulsar. The latest CALDB file takes into account the DERIV_MAX dependence and the absolute timing by comparing the SXS observation with the radio-band observation of the Crab pulsar.


Distribution of Events and Screening for X-Rays

Figure 4 shows distributions of events in RISE_TIME, DERIV_MAX, and TICK_SHIFT plotted versus the energy of pulse invariant (EPI) in units of keV. The EPI is the best estimate of the input energy of each x-ray pulse, and its value is calculated from PHA in Table 5 with polynomials, considering pixel-to-pixel difference of nonlinear energy scale and the temporal gain drift.10 Events plotted in this figure are obtained in the observation of G21.5-0.9 (Crab-like supernova remnant) in orbit. Because the gate-valve with an entrance window of 300  μm Be is closed, almost no x-rays below 1  keV come into the microcalorimeter pixels through the gate-valve. However, there is an electron-loss continuum (flat tail at low energy side in the line-spread function) due to the escape of electrons with small energy from the HgTe absorber, and those events show similar responses to the low energy x-rays, which are photoelectrically absorbed in the microcalorimeter.

Fig. 4

Plots of RISE_TIME, DERIV_MAX, and TICK_SHIFT versus EPI from upper to lower panels, using the in-orbit observation of G21.5–0.9 on 2016-03-19–2013-03-22 UTC. An unscreened event file only with GTI selection (i.e., outside of the SAA and the Earth occultation) is used for these plots. Only Hp/Mp/Ms events are plotted for TICK_SHIFT because TICK_SHIFT is always zero for Lp/Ls. Although TICK_SHIFT is 4-bit signed integer (8 to 7), it is randomized within ±0.5 for visibility. Left panels are in the energy range of EPI <15  keV, and right panels are expansion in EPI <1  keV. The event grades of Hp/Mp/Ms/Lp/Ls are shown in different colors with samall dots. Events flagged with QUICK_DOUBLE = 1 or SLOPE_DIFFER = 1 are shown in yellow or cyan, respectively, with cross markers.


Normal x-ray events distribute in the range of 40 ≲ RISE_TIME ≲ 60 (3.2 to 4.8 ms) in the RISE_TIME versus EPI plot. The RISE_TIME becomes slightly smaller when EPI becomes larger; therefore, it is better to screen events with EPI-dependent range for RISE_TIME in order to reduce non-x-ray background events. There is an upper branch in the energy range of 9 to 12 keV, which is a pile-up of Mn-Kα x-rays for the calibration pixel. There is a lower branch in 3.5 to 6 keV with Ls events, which is the Mn-Kα x-rays on the slope of a previous pulse. There is a cluster of Lp events with RISE_TIME 20 (1.6 ms) below 2  keV, which is the direct hit of the Si thermistor. Most of them are also flagged as SLOPE_DIFFER. There are many events at low energy below 0.5  keV, and most of them are electrical crosstalks from other pixels or the antico. There are several events with longer RISE_TIME with QUICK_DOUBLE = 1 in the wide energy range, which are pile-up events. Events with shorter RISE_TIME with SLOPE_DIFFER = 1 in the wide energy range are probably due to electrical interference with the attitude control system, e.g., magnetic torquer or reaction wheel, and/or the power system of spacecraft, e.g., battery charge control unit, which were seen in the ground testing.

Most of the electrical crosstalk events have small EPI (<0.1  keV) and short RISE_TIME (<40); however, they appear to have broad tail in the RISE_TIME distribution, and EPI can have 0.5  keV. We can remove the electrical crosstalk events possibly better by setting a condition on the EPI versus DERIV_MAX plane and rejecting TICK_SHIFT = −8 or 7. With regard to the TICK_SHIFT distribution, TICK_SHIFT is almost within ±1 for normal x-rays in EPI>3  keV, although it becomes smaller below 2  keV. This is because the FPGA trigger point shifts forward at low energy.

We note that a significant fraction of normal x-ray events above 12  keV is flagged as SLOPE_DIFFER = 1. This is already known on ground in the calibration of the high energy band, and it is because the pulse shape of high energy x-rays is slightly distorted from the average pulse, and the residual in the slope is judged as the slow-pulse. See description of RISE_TIME in Table 5 for definition of the slow-pulse. The dynamic range of the XBOX and the PSP is designed as 30  keV, and one should not apply screening condition for SLOPE_DIFFER to analyze x-rays above 12  keV.


CPU Load and Event Rates

Idle time of the CPU at every second, and the FPGA trigger rate at every 16 s for each pixel are contained in the STATISTIC HK (Table 2). Figure 5 shows plots of the CPU load fraction calculated from it, event rates of pixels with PSP-A0 (PIXEL = 0 to 8), and the A-side of the antico rate with PSP-A1, in the observation of the Crab nebula on 2016-03-25 UTC. Gray hatches show eclipses (occultation of boresight with the Earth), and pink hatches show the south Atlantic anomaly (SAA). Since the Crab nebula is moderately bright through the gate-valve, the CPU load fraction becomes almost 100% and the live-time fraction becomes lower for the central pixel (PIXEL = 0) during the on-source observation (nonhatch). The processing rate at 100% CPU load is 200  c/s/array in sum of PSP-A0/A1/B0/B1, which is compliant with the requirement on the PSP, namely to process events >150  c/s/array, if we ignore the electrical crosstalk.

Fig. 5

Plots of the CPU load fraction, the live-time fraction, all events rate, the Hp event rates, the Mp + Ms event rates, the Lp + Ls event rates, and the antico rate in observing the Crab nebula. The gray hatches show eclipses (occultation of boresight with the Earth), and the pink hatches show the SAA. In the top panel, the actual CPU load fraction in the HK telemetry is drawin in black, and the estimated fraction is drawn in red (see Sec. 3.5). In the second to fifth panels, PSP-A0 events from PIXEL = 00 to 08 are plotted in different colors. In the bottom panel, the total event rate of the antico is drawn in black, and the event rate with PHA >30  keV is drawn in red.


The antico rate also increases during on-source, because a small fraction of x-rays above the antico threshold of 10 keV comes into the antico through the gap of the HgTe absorber, and/or the absorber becomes transparent to higher energy x-rays. This fraction of the antico events is negligible above 30 keV; therefore, we recommend using the antico events with PHA>7530  keV to reject cosmic-rays by time-coincidence with the antico events, as well as to judge the condition of the SAA. The antico rate increases dramatically at the SAA, and we set the SAA condition as the antico rate above 30 keV is larger than 3  c/s in a sliding cell of 32-s width.

The event rates of pixels increase at the SAA, too. Figure 6 shows the pixel maps of the FPGA event rate. There is electrical crosstalk from A-side of the antico to PIXEL = 8 and 17 and from B-side of the antico to PIXEL = 26 and 35. Figure 7 shows the branching ratios of the event grades using all pixels, where the FPGA event rate was maximum, when observing the Crab nebula. The ratios match well with the theoretical expectation assuming random trigger. Figure 8 shows the pixel maps of the CPU event rate when observing the Crab nebula. Central pixels of PIXEL = 0, 17, 18, and 35 were affected by limitation of the 100% CPU load (so called the PSP-limit), and the EL pseudoevents were seen in the telemetry. These pixels are also affected by the branching ratio, and the event rate of Hp + Mp is much lower than outer pixels. The live-time fraction for outer pixels was nearly 100%, including the calibration pixel.

Fig. 6

Pixel maps of the FPGA event rate in units of c/s/pixel at eclipse by the Earth, at the SAA with eclipse, in observing the Crab nebula, and at the SAA with observing the Crab nebula. In each pixel, the pixel number (P nn), the A/B-side channel (A nn or B nn), and the count rate are labeled in three lines. The left bottom pixel labeled with “P12” is the calibration pixel (PIXEL = 12). The left middle pixels labeled with “acB” and “acA” denote the antico events read by PSP-A or PSP-B.


Fig. 7

Branching ratios of the event grades using all pixels when observing the Crab nebula. The top panel plots the actual branching ratios of the Hp (black), Mp (red), Ms (blue), Lp (green), or Ls (purple) grade in crosses, against the total rate in units of c/s/pixel. The solid lines in the same colors show the theoretical expectation assuming random trigger. The bottom five panels plots the residual of the actual branching ratio to the theoretical line divided by the error of each data point for the Hp, Mp, Ms, Lp, and Ls grade, respectively.


Fig. 8

Pixel maps of the CPU event rate in units of c/s/pixel when observing the Crab nebula, for all grades (left) and the Hp + Mp events (right). Meanings of labels in each pixel are same as Fig. 6.


We evaluated what fraction of the CPU load is consumed for the event processing. We constructed a simple model

for each 64-s bin, and fitted the model to the in-orbit data at the SAA on 2016-03-16 25 UTC with (CPU load) <1.0 at the peak, which we call the “small SAA.” Fits results are summarized in Table 7. The e=0.06599 means that the base load is 6.6%. The estimated CPU load using this model is plotted in Fig. 5 with a red line at the top panel. It almost reproduces the overall shape of the actual CPU load, except for the first part around 12:00 where the event file is lacking, and time around 15:00 where noise measurements were done. The PSP-limit with this model corresponds to 200  c/s/array, which matches the actual observation.

Table 7

Fit results of the CPU load fraction.

ParameterFit results



Until the break-up of the Hitomi satellite, the SXS worked very well, which has enabled revolutionary science. The following is a summary of topics described in this paper.

  • Both PSP-A and -B worked fine in orbit, and there was no memory error nor SpaceWire communication error, even with many passages of the SAA. Lists of telemetry packets, pulse-processing parameters in orbit, definition of the event records for the microcalorimeter pixels, and definition of the anticoincidence sensor are shown in Tables 26.

  • We used the same templates for optimal filter throughout the operation on-ground to in-orbit, because degradation of the energy resolution (FWHM=4.94  eV at 5.9 keV in orbit) was within the energy resolution budget.

  • There are systematic shifts in the time-assignment among the event grades (Hp, Mp/Ms, and Lp/Ls) and that between the microcalorimeter pixels and the anticoincidence sensor. They are incorporated into the CALDB file.

  • Distributions of events in RISE_TIME, DERIV_MAX, and TICK_SHIFT plotted versus EPI (in units of keV) show interesting features such as pile-ups and electrical crosstalks, and they are used to determine the screening criteria for normal x-ray events rejecting the background/crosstalk events.

  • The event rates and the pixel maps during observation of the Crab nebula demonstrate the counting capability of the PSP for bright objects, as well as the reconstruction of the GTI using the EL pseudoevent. The performance of PSP is confirmed in orbit, particularly for the event processing rate of 200  c/s/array.


The authors have no relevant financial interests in the manuscript and no other potential conflicts of interest to disclose.


This work was supported by JSPS KAKENHI Grant Number 15H03642.



T. Takahashi et al., “The ASTRO-H x-ray astronomy satellite,” Proc. SPIE, 9144 914425 (2016). PSISDG 0277-786X Google Scholar


S. Takeda et al., “Performance verification and system integration tests of the pulse shape processor for the soft x-ray spectrometer onboard ASTRO-H,” Proc. SPIE, 9144 91445B (2014). PSISDG 0277-786X Google Scholar


Y. Shimoda et al., “Development of a digital signal processing system for the x-ray microcalorimeter onboard ASTRO-H (II),” J. Low Temp. Phys., 167 575 –581 (2012). JLTPAC 0022-2291 Google Scholar


H. Seta et al., “The digital processing system for the soft x-ray spectrometer onboard ASTRO-H—the design and the performance—,” IEEE Trans. Nucl. Sci., 59 366 –372 (2012). IETNAE 0018-9499 Google Scholar


R. L. Kelley et al., “The ASTRO-H high-resolution soft x-ray spectrometer,” Proc. SPIE, 9905 99050V (2016). PSISDG 0277-786X Google Scholar


R. L. Kelley et al., “The Suzaku high resolution x-ray spectrometer,” Publ. Astron. Soc. Jpn., 59 S77 –S112 (2007). Google Scholar


K. R. Boyce et al., “Design and performance of the ASTRO-E/XRS signal processing system,” Proc. SPIE, 3765 741 –750 (1999). PSISDG 0277-786X Google Scholar


M. Tsujimoto et al., “In-orbit operation of the ASTRO-H SXS,” Proc. SPIE, 9905 99050Y (2016). PSISDG 0277-786X Google Scholar


F. S. Porter et al., “In-flight performance of the soft x-ray spectrometer detector system on ASTRO-H,” Proc. SPIE, 9905 99050W (2016). PSISDG 0277-786X Google Scholar


F. S. Porter et al., “Temporal gain correction for x-ray calorimeter spectrometers,” J. Low Temp. Phys., 184 498 –504 (2016). JLTPAC 0022-2291 Google Scholar


Yoshitaka Ishisaki is an associate professor at the Department of Physics, Tokyo Metropolitan University. He received his BS, MS, and PhD degrees in physics from the University of Tokyo in 1991, 1993, and 1996, respectively. His current research interests include high-energy astrophysics and its instrumentation.

Biographies for the other authors are not available.

© The Authors. Published by SPIE under a Creative Commons Attribution 3.0 Unported License. Distribution or reproduction of this work in whole or in part requires full attribution of the original publication, including its DOI.
Yoshitaka Ishisaki, Shinya Yamada, Hiromi Seta, Makoto S. Tashiro, Sawako Takeda, Yukikatsu Terada, Yuka Kato, Masahiro Tsujimoto, Shu Koyama, Kazuhisa Mitsuda, Makoto Sawada, Kevin R. Boyce, Meng P. Chiao, Tomomi Watanabe, Maurice A. Leutenegger, Megan E. Eckart, Frederick Scott Porter, and Caroline Anne Kilbourne "In-flight performance of pulse-processing system of the ASTRO-H/Hitomi soft x-ray spectrometer," Journal of Astronomical Telescopes, Instruments, and Systems 4(1), 011217 (1 March 2018).
Received: 18 September 2017; Accepted: 19 January 2018; Published: 1 March 2018


Back to Top