Test Description: Testing the function of the ST-16RT star tracker (EM)
Completed: 28/02/2025
Documented by: Riley Sweeney
Resources Required:
Tools:
Hardware and Equipment: EM star tracker, variable power supply, USB to RS485 adapter, computer with ST GUI and matlab installed
PPE: Use ESD bracelet and mat when handling any electronic hardware.
Verification Activities: R-LIB-ADC-003-6367, R-LIB-ADC-005-5877
Pass Criteria: The star tracker shall collect an image when commanded.
Connect the RS-485 adapter to computer via USB. Drivers may need to be installed to enable function.
Connect the ground and power pins on the RS-485 adapter to the power supply.
Connect the RS-485 port to the star tracker.
Set the power supply's voltage to 12 V to represent the voltage it will receive from LI Bus.
Turn on the power supply.
Launch the stgui application.
Set the working directory to a location to save results to.
Generate an ST interface file and configure it to work with your system. This may include changing the ComPort and NspPacket fields.
Check the "Echo Packets" and "Save" boxes to view and save results from the GUI.
This test will ping the star tracker and take an image using the ST GUI.
Click the "Ping Supr." button. You should see communication results in the text window of the GUI. This is from the star tracker's bootloader.
Check the "Recall" box in the GUI and click "Initialize". The results should say "Device initialization successful".
Click "Ping Supr." again. The results shown should be different from those shown in step 1. This confirms that the star tracker has booted up and is now in Idle mode.
The star tracker is now ready to take images. Click "Take Picture and Process" to begin. The results should show some telemetry and a confirmation that images have been captured and processed.
To view the results, click the "Result" button in the "Read Structures" group. The results are viewable in any text editor.
ST Interface Def:
{
"SerialDevice": {
"EchoPackets": false,
"ComPort": "com12",
"BaudRate": 115200
},
"NspPacket": {
"DestinationAddress": 14,
"SourceAddress": 17,
"MessageControlField": 160,
"Data": "",
"ClassVersion": 0,
"Classname": "SI.Comms.NspPacket",
"ParentAssembly": "SI.Comms, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
}
}
Ping Supr. Log:
14:53:32.3252-INFO : TX - C0 0E 11 A0 6B 00 C0
14:53:32.3620-INFO : RX - C0 11 0E A0 53 69 6E 63 6C 61 69 72 20 49 6E 74 65 72 70 6C 61 6E 65 74 61 72 79 20 52 65 76 35 63 20 53 74 61 72 20 54 72 61 63 6B 65 72 20 43 6F 70 79 72 69 67 68 74 20 28 43 29 20 53 69 6E 63 6C 61 69 72 20 49 6E 74 65 72 70 6C 61 6E 65 74 61 72 79 20 31 36 3A 31 39 3A 34 31 20 4A 75 6C 20 31 39 20 32 30 31 34 24 21 C0
14:53:32.3630-INFO : Sinclair Interplanetary Rev5c Star Tracker Copyright (C) Sinclair Interplanetary 16:19:41 Jul 19 2014
“Recall” then “Initialize”:
14:58:22.1857-INFO : TX - C0 0E 11 A1 00 20 00 00 8E 51 C0
14:58:22.2305-INFO : RX - C0 11 0E A1 00 20 00 00 8A 82 C0
14:58:22.2424-INFO : Device initialization successful
“Ping Supr.” Once more:
14:59:24.9114-INFO : TX - C0 0E 11 A0 6B 00 C0
14:59:24.9482-INFO : RX - C0 11 0E A0 53 74 61 72 20 74 72 61 63 6B 65 72 20 52 65 76 35 67 20 73 75 70 65 72 76 69 73 6F 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 70 72 6F 67 72 61 6D 20 43 6F 70 79 72 69 67 68 74 20 28 43 29 20 53 69 6E 63 6C 61 69 72 20 49 6E 74 65 72 70 6C 61 6E 65 74 61 72 79 20 4A 61 6E 20 31 36 20 32 30 31 38 20 31 36 3A 35 31 3A 31 36 6E 0B C0
14:59:24.9482-INFO : Star tracker Rev5g supervisor application program Copyright (C) Sinclair Interplanetary Jan 16 2018 16:51:16
Ping reply has changed, ST now booted into “Idle”
Take Picture and Process
15:03:52.8687-INFO : TX - C0 0E 11 A9 A0 00 04 00 C8 CD C0
15:03:52.9030-INFO : RX - C0 11 0E A9 A0 00 E5 05 00 00 79 0B C0
15:03:52.9210-INFO : TX - C0 0E 11 A9 54 00 04 00 0F C8 C0
15:03:52.9466-INFO : RX - C0 11 0E A9 54 00 00 00 00 40 12 7A C0
15:03:52.9466-INFO : TX - C0 0E 11 AB 00 7D 39 C0
15:03:52.9776-INFO : RX - C0 11 0E AB 00 77 87 C0
15:03:52.9776-INFO : TX - C0 0E 11 AA A0 00 E5 05 00 00 61 20 C0
15:03:53.0121-INFO : RX - C0 11 0E AA A0 00 E5 05 00 00 17 A3 C0
15:03:53.0121-INFO : TX - C0 0E 11 AA 54 00 00 00 20 41 B0 63 C0
15:03:53.0404-INFO : RX - C0 11 0E AA 54 00 00 00 20 41 C6 E0 C0
15:03:53.0404-INFO : TX - C0 0E 11 AB 2F 88 E0 C0
15:03:53.0727-INFO : RX - C0 11 0E AB 2F 82 5E C0
15:03:53.0816-INFO : TX - C0 0E 11 AA A0 00 E5 05 00 00 61 20 C0
15:03:53.1523-INFO : RX - C0 11 0E AA A0 00 E5 05 00 00 17 A3 C0
15:03:53.1523-INFO : TX - C0 0E 11 AA 54 00 00 00 00 40 0A 51 C0
15:03:53.1608-INFO : RX - C0 11 0E AA 54 00 00 00 00 40 7C D2 C0
15:03:53.1608-INFO : Acquired and processed images.
Result structure:
{
"Main": {
"SequenceNum": 4,
"ReturnCode": 48,
"Quatern": [
0.0,
0.0,
0.0,
0.0
],
"AngVel": [
"NaN",
"NaN",
"NaN"
],
"EpochTime": 0.0
},
"Hw": {
"NumFixFlashErrs": 5,
"NumUnfixFlashErrs": 0,
"Reserved1": "/JX41699+/w=",
"DetectorTemp": 7456,
"FuncProcessTemp": 52,
"StatusBitfield": 0,
"VddCoreSetPoint": 8,
"VddMpuSetPoint": 11,
"Reserved2": "fz8=",
"DarkOffset": [
307,
153,
227,
153,
167,
304,
168,
224,
307,
158,
227,
156,
167,
302,
166,
222
]
},
"Stat": {
"GoodRowsImg1": 0,
"GoodRowsImg2": 0,
"MeanValImg1": [
3.31854848E+09,
3.31282458E+09,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"IntBrightRoiImg1": 3.31854848E+09,
"IntBrightRoiImg2": 3.31282458E+09,
"MeanValImg2": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"SpatialVarImg1": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"SpatialVarImg2": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"TemporalVarImgs": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"Reserved1": "AAAAAA==",
"Reserved2": "AAAAAP3Nj/8="
},
"Image": [
{
"InitFlag": 2,
"ReturnCode": 30,
"NumLitPix": 277505,
"NumPeaks": 30,
"ExpError": 0.0,
"ImgCaptureTime": 0.059855364797692628,
"PeakArray": [
1252,
874,
1896,
187,
1404,
1819,
1254,
359,
1170,
940,
118,
1168,
243,
1531,
1139,
818,
1614,
1124,
44,
1561,
1122,
1333,
491,
1085,
699,
156,
1031,
7,
1595,
1029,
1455,
449,
1018,
123,
1353,
1017,
202,
1521,
964,
1516,
387,
964,
956,
1721,
961,
520,
1675,
952,
1440,
942,
908,
197,
1603,
891,
64,
1498,
881,
1305,
959,
880,
1100,
1212,
872,
902,
1437,
861,
1388,
901,
859,
100,
1611,
858,
811,
100,
851,
123,
1845,
849,
1242,
290,
848,
1042,
142,
843,
1046,
1225,
842,
75,
1781,
836
]
},
{
"InitFlag": 2,
"ReturnCode": 30,
"NumLitPix": 275478,
"NumPeaks": 30,
"ExpError": 0.0,
"ImgCaptureTime": 0.1599914481309859,
"PeakArray": [
154,
1490,
1502,
1321,
756,
1283,
116,
1909,
1226,
1044,
1134,
1126,
1459,
410,
1106,
1480,
375,
1102,
242,
1876,
1017,
979,
1414,
995,
15,
1446,
982,
845,
1449,
978,
142,
1197,
971,
1314,
740,
954,
152,
1269,
954,
826,
1339,
946,
775,
1460,
946,
1154,
1184,
939,
611,
137,
938,
1101,
1132,
932,
1097,
1130,
905,
186,
1587,
901,
933,
1588,
894,
195,
865,
865,
1211,
998,
860,
1212,
850,
858,
1155,
865,
854,
524,
231,
850,
24,
1260,
848,
324,
1506,
843,
1242,
802,
841,
1393,
872,
837
]
}
],
"Ers": {
"InitFlag": 1,
"ReturnCode": 4294967292,
"StarMapping": [
2675801427,
2393627087,
4294967295,
4071538601,
3149894591,
2064120267,
2078277611,
2896477693,
4160748462,
3925532639
],
"FitResidual": 0.0,
"UpperTriAngVelCovar": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
]
},
"Cent": [
{
"InitFlag": 3,
"ReturnCode": 0,
"NumGoodStars": 10,
"Reserved": "AAAAAA==",
"BestCentroids": [
1254.0295450583928,
872.92533844634249,
188.05361703348734,
1403.9061379092657,
1255.9,
358.05131486429474,
244.94426712090893,
1529.0188697967487,
818.97829539438851,
1615.0582649550026,
1333.0109026845153,
489.00755245563113,
1453.9632320303022,
450.03770011540854,
122.01955757510631,
1353.0839409895457,
201.93477844769834,
1521.0246754075349,
956.03338978484283,
1718.9151880220161
],
"BestStarVectors": [
0.022609023227644878,
0.043685522429655677,
0.99878947090902992,
-0.12258100172976788,
-0.028380614260843526,
0.99205263910193,
0.022888659820079746,
0.11335619588944836,
0.99329073392693734,
-0.11491457360658841,
-0.045432757627748718,
0.992335883311268,
-0.036962120240662595,
-0.057505868708270361,
0.99766070220863279,
0.033359027741086712,
0.095676472113590011,
0.994853349972782,
0.049756973876127757,
0.1008359865218301,
0.9936580636078286,
-0.13145745959600741,
-0.02143257591751821,
0.99109009732017,
-0.12071281543778387,
-0.044313601328649546,
0.9916978980144957,
-0.018263256223111278,
-0.07170233506533201,
0.99725885737771613
]
},
{
"InitFlag": 3,
"ReturnCode": 0,
"NumGoodStars": 10,
"Reserved": "AAAAAA==",
"BestCentroids": [
152.985268766651,
1488.9941545212348,
1320.0351101576039,
756.93202134389526,
1042.9831842335373,
1134.0188874688909,
1459.0187987803172,
411.92080454303857,
980.99417596440139,
1413.0144782907437,
845.03260886597616,
1449.0190074744974,
143.94163670396856,
1196.9559918663058,
153.07568408657619,
1268.9573847706629,
1315.0394618351904,
739.96180158868833,
772.90552260602624,
1459.0124280988287
],
"BestStarVectors": [
-0.1273043535083066,
-0.039924347531994836,
0.99105986098316834,
0.031607467320901438,
0.059424386031863424,
0.9977322839090127,
-0.0062597595613731122,
0.0081349344543308055,
0.99994731773811851,
0.050431455995127078,
0.10596172979750879,
0.99309051957237582,
-0.014802185034158557,
-0.0299839716897585,
0.99944077201198978,
-0.033386432233457553,
-0.03485986746616114,
0.99883438856647422,
-0.12845845650655102,
-0.00021472861743993769,
0.99171486771328343,
-0.127258910832956,
-0.01000887153020542,
0.99181903193289322,
0.030927476372580379,
0.061730979968700125,
0.99761354106554079,
-0.043234485959898684,
-0.036197220180609391,
0.99840900460431559
]
}
],
"Match": [
{
"InitFlag": 0,
"ReturnCode": -100,
"NumTriangTests": 0,
"Reserved1": "AAAAAA==",
"MatchErrs": 0.0,
"ConfidIndex": 0.0,
"TotalStarTests": 0,
"TotalSetTests": 0,
"ConsetSize": 0,
"Reserved2": "AAAAAA==",
"ConsetRmsErrs": 0.0,
"MatchedStars": [
-4,
-4,
-4,
-4,
-4,
-4,
-4,
-4,
-4,
-4
],
"InertialAttQuat": [
0.0,
0.0,
0.0,
0.0
],
"UpperTriAttConvar": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
]
},
{
"InitFlag": 0,
"ReturnCode": -100,
"NumTriangTests": 0,
"Reserved1": "AAAAAA==",
"MatchErrs": 0.0,
"ConfidIndex": 0.0,
"TotalStarTests": 0,
"TotalSetTests": 0,
"ConsetSize": 0,
"Reserved2": "AAAAAA==",
"ConsetRmsErrs": 0.0,
"MatchedStars": [
-4,
-4,
-4,
-4,
-4,
-4,
-4,
-4,
-4,
-4
],
"InertialAttQuat": [
0.0,
0.0,
0.0,
0.0
],
"UpperTriAttConvar": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
]
}
],
"Reserved": "wfevP7+prT/dIZU/t6OTPw/nkj+C8JA/bWWNP3FXjT/JXYo/bTGKPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/qwSjP+tBmj9bAJM/UQGSPzcgjD/5Kos/v8SKP2PJiT9jyYk/jFGJPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/"
}