EIR-OPS-021: GMOD Experiment Set Up
Objective
To facilitate the Operator in setting up the GMOD experiment and streaming science data to the OBC.
Introduction
This procedure will guide the Operator through steps to set up GMOD to run an experiment, generate data and pass it to the OBC. It also contains optional procedures to enable GRB triggering.
Procedure
This procedure contains a number of sub-procedures. Section A details some pre-pass preparations. Sections B to D provide steps to set up GMOD to run the experiment and stream data to the OBC. Section E is optional and depends on the aim of the experiment being set up.
Note
A communication window is required for sub-procedure B to E.
A. Pre-Pass Preparations
A.1.
Establish from previous pass notes what version of the GMOD firmware is currently programmed onto the MSP.
A.2.
Establish from previous pass notes what values are expected to be returned for the
payload.GMOD.ResetCounterandpayload.GMOD.LastResetTypeparameters in Section B.Discuss what actions should be taken during the pass if either parameter differs from what is expected.
A.3.
Prepare a file with the expected
payload.GMOD.InitASICRegBufferparameter value (or get this file from a member of the GMOD team).On the Operation Station (or wherever MCS is running), calculate an MD5 checksum for this file using:
certutil -hashfile <file> MD5in a terminal on a windows computer, ormd5 <file>on a Mac.
This checksum will be needed for comparison in Section C.
Ensure the terminal used to calculate this checksum is still available for the Operator to use during the communication passes.
A.4.
If Sections D or E are to be followed, establish if any of the light curve generation, spectrum generation or triggering parameters need to be changed from their default values prior to proceeding (see Steps D.1. and E.1. for more details if needed).
A.5.
If GMOD is being left on and generating data for a long period of time, the GMOD team should be consulted about configuring the OBC to stop GMOD generating data while passing through the South Atlantic Anomaly (SAA), a region with high levels of radiation.
If the GMOD team decide some
TimeActionfunctionality is required for this purpose, the relevant procedures should be prepared and understood by the Operator prior to the passes (see Step C.27 for more details if needed).
B. Power On and Initial Checks
Important
You are about to send the first TC of this procedure - Have you completed the EIR-OPS-003: Start a Communication Pass procedure? A Communication Pass must be started prior to carrying out the operations planned for the pass. Don’t forget to set up the parameters/actions that will be used during the pass in MCS before the pass begins!
B.1.
Invokethe actionplatform.EPS.TurnOnGMODto turn on GMOD.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
B.2.
Getthe parameterplatform.EPS.actualSwitchStateswithFirst row= 0 andLast row= 9 to assess whether GMOD is now on.Ensure that PDMs 3, 6 and 9/rows 2, 5 and 8 are ON/1.
Warning
PDM 8 is drawing parasitic power. Therefore, when you Get the platform.EPS.actualSwitchStates parameter it will always read as ON/1 even when it is powered OFF.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
2 bytes, 2 bytes |
Data Info |
The first and last rows/indexes of the parameter to get |
Allowed Value(s) |
0 - 9, 0 - 9 |
Expected Value(s) |
0, 9 |
TM Details |
|
Data Expected from TC |
|
Data Size |
List[0:9] of booleans |
Data Info |
If |
Allowed Value(s) |
0,0,0,0,0,0,0,0,0,0 (all OFF) - 1,1,1,1,1,1,1,1,1,1 (all ON) |
Expected Value(s) |
X,X,1,X,X,1,X,X,1,X (PDMs 3, 6 + 9 = 1. Other PDMs may be 0 or 1) |
B.3.
Getthe parameterpayload.GMOD.FirmwareVersionto further verify that GMOD is now on.Ensure the expected firmware version, determined in Section A, is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
2 bytes |
Data Info |
Version of the firmware currently running on the GMOD MSP |
Allowed Value(s) |
0000 - FFFE |
Expected Value(s) |
As determined in Section A |
B.4.
Getthe parameterpayload.GMOD.GMODModeto assess whether GMOD is operating in the expected mode following power on.Ensure Idle Mode/1 is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
Int4 |
Data Info |
Current operational mode of GMOD |
Allowed Value(s) |
1 - 5 |
Expected Value |
1 |
Where…
|
Mode |
|---|---|
1 |
Idle |
2 |
Experiment |
3 |
CPLD Programme |
4 |
Safe |
5 |
Experiment16 |
B.5.
Getthe parameterpayload.GMOD.ResetCounterto determine the number of times the GMOD payload has reset since the MSP was last programmed.Assess whether the value is as expected. If not, take action according to what was decided in Section A.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
1 byte |
Data Info |
Number of resets since the firmware was last programmed |
Allowed Value(s) |
0 - 127 |
Expected Value |
As determined in Section A |
B.6.
Getthe parameterpayload.GMOD.LastResetTypeto determine the most recent type(s) of GMOD reset(s) that have occurred.Continue to get this parameter until 0 is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
1 byte |
Data Info |
Last GMOD reset type(s) |
Allowed Value(s) |
00 - 2E |
Where…
|
Reset Type |
|---|---|
02 |
Brownout |
04 |
Unknown |
06 |
SW reboot |
14 |
SW reboot |
16 |
Watchdog reset |
C. Initialise GMOD Generating Data
C.1.
Getthepayload.GMOD.SyncTimeStatusparameter which indicates whether syncing of GMOD’s time from the OBC’s time is still in progress (0), a success (1), a failure (2 or 7) or yet to be synced (3).Ensure 3 (i.e. the initialisation value) is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit3 |
Data Info |
Status of time synchronisation between GMOD and OBC |
Allowed Value(s) |
0, 1, 2, 3, 7 |
Expected Value |
3 |
C.2.
Getthepayload.GMOD.MSPCoarseTimeparameter which returns the MSP’s current coarse time value.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
4 bytes |
Data Info |
Coarse time counter from MSP |
Allowed Value(s) |
0 00000000 - FFFFFFFF (hex) |
Expected Value |
> 0 |
C.3.
Invokethepayload.GMOD.SyncTimeaction which synchronises GMOD’s coarse time clock with the OBC’s time.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.4.
Getthepayload.GMOD.SyncTimeStatusparameter which indicates whether syncing of GMOD’s time from the OBC’s time is still in progress (0), a success (1), a failure (2 or 7) or yet to be synced (3).Ensure 1 (i.e. the success value) is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit3 |
Data Info |
Status of time synchronisation between GMOD and OBC |
Allowed Value(s) |
0, 1, 2, 3, 7 |
Expected Value |
1 |
C.5.
Getthepayload.GMOD.MSPCoarseTimeparameter which returns the MSP’s current coarse time value.Ensure the returned value is much larger than the value returned in Step C.2, indicating that GMOD’s time is now consistent with the OBC’s.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
4 bytes |
Data Info |
Coarse time counter from MSP |
Allowed Value(s) |
00000000 - FFFFFFFF (hex) |
Expected Value |
Larger than the value returned in Step C.2 |
C.6.
Getthepayload.GMOD.BaudRateSetStatusparameter which indicates whether setting the MSP baud rate was successful.Ensure 3 (i.e. the initialisation value) is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit3 |
Data Info |
Status of setting MSP baud rate |
Allowed Value(s) |
0 (in progress), 1 (success), 2 (failure), 3 (init) |
Expected Value |
3 |
C.7.
Invokethepayload.GMOD.MSPBaudRateaction with action argument = 01F400 (hex), which corresponds to a baud rate of 128000 (dec), to set the serial baud rate at which GMOD transfers data over to the OBC.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
3 bytes |
Data Info |
Baud rate for serial communication |
Allowed Value(s) |
000000 - FFFFFF (hex) |
Expected Value(s) |
01F400 (hex) |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.8.
Getthepayload.GMOD.BaudRateSetStatusparameter which indicates whether setting the MSP baud rate was successful.Ensure 1 (i.e. the success value) is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit3 |
Data Info |
Status of setting MSP baud rate |
Allowed Value(s) |
0 (in progress), 1 (success), 2 (failure), 3 (init) |
Expected Value |
1 |
C.9.
Getthe parameterpayload.GMOD.RegErrStatusto read the value of the ERR_O pin on the ASIC, which indicates if there are parity errors in registers.
Note
The value of this parameter should be roughly noted for later comparison with the same parameter following writing the registers to SIPHRA (i.e. Step C.17). The actual value may be gibberish at this time.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit2 |
Data Info |
Value of the ERR_O pin on the ASIC |
Allowed Value(s) |
0 - 1 |
C.10.
Getthe parameterpayload.GMOD.ReadRegErrRegto read the individual register parity error statuses.
Note
The value of this parameter should be roughly noted for later comparison with the same parameter following writing the registers to SIPHRA (i.e. Step C.18). The actual value may be gibberish at this time.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
4 bytes |
Data Info |
28-bit bitmap of boolean parity errors |
Allowed Value(s) |
00000000 - 0FFFFFFF |
C.11.
Getthe parameterpayload.GMOD.InitGMODConstantCurrValueto assess the DACA value that controls the MBias current.Ensure that 0862 (hex) is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
2 bytes |
Data Info |
Initialisation value for GMOD constant current |
Allowed Value(s) |
0000 - FFFF (hex) |
Expected Value |
0862 (hex) |
C.12.
Downlinkthe SIPHRA registers to be set using the parameterpayload.GMOD.InitASICRegBufferwithFirst row= 0 andLast row= 27.Take note of where this file was saved and the filename for use in the next step.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
2 bytes, 2 bytes |
Data Info |
The first and last rows/indexes of the parameter to get |
Allowed Value(s) |
0 - 27, 0 - 27 (dec) |
Expected Value(s) |
0, 27 (dec) |
TM Details |
|
Data Expected from TC |
|
Data Size |
112 bytes |
Data Info |
ASIC register values to be set as part of the |
C.13.
Calculate an MD5 checksum for the file downlinked in the previous step using the same methods used in Section A.
Ensure this checksum matches the checksum previously calculated in Section A.
C.14.
Invokethe actionpayload.GMOD.InitialiseGMOD.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
Note
Currently this function: 1) Sets the ConstantCurrValue parameter (to the InitGMODConstantCurrValue parameter), 2) Sets the ConstantCurrEnable parameter to TRUE, 3) Toggles the ASICResetPin OFF and then ON, and 4) Writes the InitASICRegBuffer data to the ASIC reg table on the GMOD MSP. Each of these steps will only proceed if the previous step succeeded.
C.15.
Invokethe actionpayload.GMOD.writeRegToSIPHRAto write the contents of the ASIC register table on the MSP to the SIPHRA registers.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.16.
Getthe parameterpayload.GMOD.WriteRegStatusto confirm that the writes to SIPHRA were successful.Ensure 1 (i.e. success) is returned.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit3 |
Data Info |
Successful = 1, In Progress = 0, Failed = 2 |
Allowed Value(s) |
0, 1, 2 |
Expected Value |
1 |
C.17.
Getthe parameterpayload.GMOD.RegErrStatusto read the value of the ERR_O pin on the ASIC, which indicates if there are parity errors in registers.Ensure 0 is returned (i.e. ensure the parameter has updated since Step C.9).
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
bit2 |
Data Info |
Value of the ERR_O pin on the ASIC |
Allowed Value(s) |
0, 1 |
Expected Value |
0 |
C.18.
Getthe parameterpayload.GMOD.ReadRegErrRegto read the individual register parity error statuses.Ensure all 0s are returned (i.e. ensure the parameter has updated since Step C.10).
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
4 bytes |
Data Info |
28-bit bitmap of boolean parity errors |
Allowed Value(s) |
00000000 - 0FFFFFFF (hex) |
Expected Value |
00000000 |
C.19.
Setthe parameterpayload.GMOD.BiasOffsetValueto 08CC (hex).
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
2 bytes |
Data Info |
Bias Offset Value |
Allowed Value(s) |
0000 - 0FFF (hex) |
Expected Value(s) |
08CC (hex) |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.20.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
C.21.
Setthe parameterpayload.GMOD.boostConverterEnableto 1 (i.e. enabled).
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
Boolean |
Data Info |
Boost Converter is Disabled (0) or Enabled (1) |
Allowed Value(s) |
0, 1 |
Expected Value(s) |
1 |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.22.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
C.23.
Setthe parameterpayload.GMOD.biasOffsetEnableto 1 (i.e. enabled).
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
Boolean |
Data Info |
Bias Offset is Disabled (0) or Enabled (1) |
Allowed Value(s) |
0, 1 |
Expected Value(s) |
1 |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.24.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
C.25.
Getthe parameterpayload.GMOD.LastPageSumAddrseveral times, with ~3 seconds between each TC, to read the memory address of the last summed channel TTE page stored to GMOD’s flash memory.Ensure the parameter value is NOT changing between TCs, which confirms that GMOD is not currently generating data.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
3 bytes |
Data Info |
Memory address for the last stored sum channel TTE page |
Allowed Value |
000000 - 007FFF (hex) |
Expected Value(s) |
Not changing between TCs |
C.26.
Setthepayload.GMOD.GMODModeparameter to 2 (i.e. Experiment Mode) to begin running the GMOD experiment.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
Int4 |
Data Info |
Mode of GMOD |
Allowed Value(s) |
1, 2, 3, 4, 5 |
Expected Value(s) |
2 (i.e. Experiment Mode) |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.27.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
Warning
If GMOD is being left on and generating data for a long period of time, the GMOD team should be consulted about configuring the OBC to stop GMOD generating data while passing through the SAA, a region with high levels of radiation. A TimeAction component can be used to invoke an action/set a parameter based on time. The EIR-OPS-037: Set-Up a TimeAction procedure can be followed to set up two TimeActions, one to set the payload.GMOD.GMODMode to Idle (0x01) prior to SAA entry and one to set the payload.GMOD.GMODMode to Experiment (0x02) at SAA exit so GMOD starts generating data again.
C.28.
Getthe parameterpayload.GMOD.LastPageSumAddrseveral times, with ~3 seconds between each TC, to read the memory address of the last summed channel TTE page stored to GMOD’s flash memory.This time, ensure the parameter value is changing, which confirms that GMOD is now generating data.
Record the last value returned from these gets for use in Section D.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
3 bytes |
Data Info |
Memory address for the last stored sum channel TTE page |
Allowed Value |
000000 - 007FFF (hex) |
Expected Value(s) |
Changing between TCs |
D. Set Up Streaming Data to the OBC
D.1.
Note
As the OBC receives data from GMOD, it will automatically prepare light curves and spectra, which will be logged to storage channels 21 (dec) and 22 (dec), respectively.
Prior to enabling streaming in the next steps, the Operator should now review Section G of the EIR-OPS-020: GMOD Configuration procedure to ensure the desired e.g. light curve bin widths, ADC event limits, etc. are set-up.
D.2.
Getthe parameterpayload.GMOD.LastPageSumAddrRxseveral times, with ~3 seconds between each TC, to read the memory address of the last summed channel TTE page received by the OBC from GMOD.Ensure the parameter value is NOT changing between TCs, which confirms that the OBC is not currently receiving this data type from GMOD.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
2 bytes |
Data Info |
Updates with the memory address of the last summed channel TTE page received by the OBC from the MSP |
Allowed Value |
000000 - 007FFF (hex) |
Expected Value(s) |
Not changing between TCs |
D.3.
Invokethe actionpayload.GMOD.StreamSumEnablewith the action argument set as thepayload.GMOD.LastPageSumAddrparameter value noted in Step C.28.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
2 bytes |
Data Info |
GMOD flash memory address to stream data from |
Allowed Value(s) |
000000 - 007FFF (hex) |
Expected Value(s) |
|
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
D.4.
Getthe parameterpayload.GMOD.LastPageSumAddrRxseveral times, with ~3 seconds between each TC, to read the memory address of the last summed channel TTE page received by the OBC from GMOD.This time, ensure the parameter value is changing, which confirms that the OBC is now receiving this data type from GMOD.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
uint16 |
Data Info |
Updates with the memory address of the last summed channel TTE page received by the OBC from the MSP |
Allowed Value |
000000 - 007FFF (hex) |
Expected Value(s) |
Changing between TCs |
D.5.
Getthe parametercdh.logging.GMODTTELogger.channelIDto determine the current channel ID to which GMOD with log summed channel TTEs.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
4 bytes |
Data Info |
Channel ID = Ch ID for GMOD Summed TTE Channel |
Allowed Value |
25 - 29 |
Expected Value(s) |
25 - 29 |
D.6.
Querythe parametercore.Storage.channelContentseveral times, with ~10 seconds between each TC, with:Parameter Index in Blockset tocdh.logging.GMODTTELogger.channelIdfrom the previous step.
Ensure the returned TM, which gives the number of rows in the channel, is changing, which confirms that summed channel TTE is being successfully stored by the OBC.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
4 bytes |
Data Info |
Channel ID |
Allowed Value(s) |
1 - 88 (dec) |
Expected Value(s) |
|
TM Details |
|
Data Expected from TC |
Number of rows in GMOD Sum TTE storage channel ( + ACK ) |
Data Size |
4 bytes |
Data Info |
Number of rows in GMOD Sum TTE storage channel |
Allowed Value |
0 - 65535 (dec) |
Expected Value(s) |
Changing between TCs |
E. Enable OBC Triggering
Important
This section should only be followed if the GMOD Team have confirmed that OBC Triggering can be enabled.
E.1.
Prior to enabling triggering in the next steps, the Operator should now review Section H of the EIR-OPS-020: GMOD Configuration procedure to ensure the desired e.g. trigger significance threshold, etc. are set-up.
E.2.
Setthepayload.GMOD.GRBTriggeringEnabledparameter to 1 (i.e. enabled) to enable GRB triggering.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
bit1 |
Data Info |
Indicates whether triggering on incoming summed channel TTE data is enabled (1) or disabled (0) |
Allowed Value(s) |
0 - 1 |
Expected Value(s) |
1 |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
E.3.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
Important
Early in the mission, and possibly throughout the mission, the GRB trigger threshold will need to be modified (increased/decreased) based on the GMOD data downlinked. The GMOD team should be consulted before changing the trigger threshold.
END OF PROCEDURE