-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproj_5.html
346 lines (287 loc) · 18.2 KB
/
proj_5.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<!DOCTYPE html>
<html lang="en">
<head>
<title>Flight Software for GRACE Payload</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="https://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500,600,700,800,900" rel="stylesheet">
<link rel="stylesheet" href="css/open-iconic-bootstrap.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/aos.css">
<link rel="stylesheet" href="css/ionicons.min.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/icomoon.css">
<link rel="stylesheet" href="css/style.css">
<style>
/*======================================
//--//--> ABOUT
======================================*/
.about-mf .box-shadow-full {
padding-top: 4rem;
padding-bottom: 4rem;
}
.about-mf .about-img {
margin-bottom: 2rem;
}
.about-mf .about-img img {
margin-left: 10px;
}
.skill-mf .progress {
/* background-color: #cde1f8; */
margin: .5rem 0 1.2rem 0;
border-radius: 0;
height: .7rem;
}
.skill-mf .progress .progress-bar {
height: .7rem;
background-color: #ffbd39;
}
/* Animation styles */
#typing-animation {
position: relative;
font-size: 30px;
font-weight: bold;
color: rgb(255, 255, 255);
overflow: hidden;
white-space: nowrap;
animation: typing 3s steps(20, end) infinite;
}
#typing-animation:before {
content: "";
/* position: absolute; */
top: 0;
left: 0;
width: 0;
height: 100%;
background-color: #ccc;
animation: typing-cursor 0.5s ease-in-out infinite;
}
@keyframes typing {
from {
width: 0;
}
to {
width: 100%;
}
}
@keyframes typing-cursor {
from {
width: 5px;
}
to {
width: 0;
}
}
/* project image zoom effect */
.zoom-effect {
overflow: hidden;
transition: transform 0.3s ease-out;
}
.zoom-effect:hover {
transform: scale(1.1);
}
.img_deg_R
{
float: right;
width: 50%;
}
.img_deg_L
{
float: left;
width: 20%;
}
.box
{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.dream
{
display: flex;
flex-direction: column;
width: 32.5%;
}
.dream img{
width: 100%;
}
@media only screen and (max-width: 769px){
.box{
flex-direction: column;
}
.dream{
width: 100%
}
}
</style>
<head>
<!-- <div class="row"> -->
<h1 >Flight Software👨💻 for GRACE Payload🛰️</h1>
<div class="underline"></div>
<!-- </div> -->
</head>
<body>
<p>
PiLOT_1 was the first payload mission, so the software we designed and implemented over it was also the first one to fly into the space.
As the design and implementation time for the software was less, we always choosed a method using which we would be able to realize
the software quickly. Due to this decision, unknowingly we made many errors. Some error were so critical that the data was getting
corrupted. To rectify this we had to post process the data and remove the corrupted data to get some valid amount of sufficient data.
As I was involved in both PiLOT_1 and PiLOT_G2 missions, it was my responsibility to not repeat the same mistakes which we did for the first mission.
</p>
<p>
It was beggining of my final year project which was on the topic of "Flight software and systems integration for PiLOT_G2 and InspireSat-3 Satellite."
The launch dates and inclusion of our payload on the POEM platform wasn't sure at that time. So I started developing device drivers for
InspireSat-3 Satellite. More about this would be discussed in some other project. Along with this I was also developing FPGA based
blocks which will autonomously send data to the DPU (Data Processing Unit) on POEM platform. In PiLOT_1 mission this was done using
interrupts through UART line of the Cortex-M3 Microcontroller. My main aim was to completely remove this periodic interrupt so that
our software does not consume time in receiving that interrupt and then sending data over it. This was one major upgrade from the
previous mission which helped us to run the SOC at lower clock speed consuming less power.
</p>
<p>
As discussed in the last project, I had also successfully implemented the In Orbit Reprogramming Operation in debugging mode. When the
above two tasks were completed soon after few days we got a confirmation from ISRO that our payload will be part of the POEM platform
in the upcoming POEM mission. Some major documents which they required were the mechanical drawing for the base plate to integrate
our payload and the maximum electrical power which would be consumed by our payload. I along with my friend who was working
on the hardware part for this mission, we met PD sir and decided upon the configuration of the package. After long discussion,
the CubeSat UHF Board and GMC (Gieger-Muller-Counter) board was choosed to fly along with the other boards which will be interfaced with the
packages over the POEM platform. In total there were two 1U structures which were to be interfaced by a connector. So now there were
two major tasks in front of me. First was to develop the drivers to receive the commands from the CubeSat UHF board. And second was
to interface the radiation counter with the OBC. On top of this, I also had to design a complete software architecture which should be
robust enough to not fail in case of any hardware failure. The software should not also go into some unknown state from where it becomes
difficult for it to return to nominal operation. Now implementing all this and testing was difficult for me to do in a stipulated time
period. So I asked for a help from my junior who quickly agreed to develop the drivers for the counter. Drivers of CubeSat UHF board was
little critical, so I decided to designed, implement and test them.
</p>
<div class="'box">
<div class="dream"></div>
<img class="img_deg_R" src="images/Proj_5_Images/CUB_Drivers_Completed.jpg">
</div>
</div>
<p>
I along with my senior, we already started making drivers for the Cubesat UHF board. Most of the configurations of the transceiver on
the board were completed and ready.
Our task was to successfully receive the command sent from the IIST ground station. Accepting the commands on the ADF transceiver was challenging
because no interrupt pins were provided. This means we have to always keep polling the ADF transceiver to check if any commands are
received or not. The ADF7030-1 transceiver which was placed on CubeSat UHF board also had a Cortex-M0 controller inside it. We were sending the
commands but it wasn't getting accepted into the transceiver. Finally a complete round of going through documentations and evaluation
software was completed. Finally after spending many days and nights thinking about the same problem, we finally got rid of it and now
every command sent to the board was been accepted by the transceiver and the parameters were getting correctly read from it. I was
too happy and satisfied because all my efforts have brought fruits in the form of completing the UHF drivers. The picture shown above
was my happiness😃😃 after completing the UHF drivers. You can see all the messy setup😵💫😵💫 in front of me while debugging the issues and
making the connections from one board to the other. At this point of time I felt that when the electrical hardware boards gets touch of software
which is running over it and handling all the tasks of interfacing the boards, getting telemetry data out of it and operating the
complete hardware as required, it adds the value to the mission and makes it a truly autonomously🤖 working payload or a satellite🛰️🛰️.
</p>
<p>
Until now, all the device drivers were ready and tested for PiLOT-G2 mission. Now the most important task of designing the complete
software architecture was to be done. All the errors which we did in the PiLOT_1 mission were remembered and corresponding to those
a corrective measure was been taken to come up with the final software architecture. When the software architecture was almost ready, we
got to know that for this mission the POEM platform will also be providing the functionality to command to our payload. The format for
the commands were sent and now I had this add on task of receiving the commands from the POEM packages also. As soon as this task arrived
I tried to complete it rapidly. For receiving the command a similar FPGA block was developed and then tested with the starter kit.
I could not test it with the OBC which was available in lab. This was because the FPGA in the SOC of that OBC was damaged due to radiations
while testing it with the GMC hardware. One lesson which I got from this was that whenever you are testing a specific board, do take
care of the other boards involved in the same testing. So ultimately, the commanding module wasn't tested with the OBC and this was
the main issue. Leaving the TTPU commanding part aside, I started doing a long duration test for the data transfer module and the CubeSat UHF board.
A junior who was involved in developing GMC drivers also created a software to decode the data recorded during this long run tests. We
found out several errors and bugs which I fixed before leaving home for my summer vacations.
</p>
<div class="box">
<div class="dream">
<img src="images/Proj_5_Images/IIST_Last_IMG_1.jpg">
</div>
<div class="dream">
<img class="img_deg_R" src="images/Proj_5_Images/Junior_1.jpg">
</div>
<div class="dream">
<img src="images/Proj_5_Images/IIST_Last_IMG.jpg">
</div>
</div>
<p>
Yes, my last semester😞 at IIST was completed. During this last semester most of the students enjoys going for trips, watching movies🍿🎥
and having fun time along with many other friends. I wasn't that kind of guy. My interest and passion towards developing
state of the art softwares with latest technologies into it ultimately dropped my interest for having all this fun activities. The
satisfaction I had on clearing out some critical issues and problems was way much greater than spending time on going for trips and watching
movies. Whenever my friends asked me to come with them for the trips, my only question was "What will I do there???🤷♂️" For most
of the peoples, trips🌴 are meant for relaxing their body and having some new experiences. But I have always seen that after returning back
from a trip, one is way more tired then what he was while going for a trip. And especially during this last semester, I did not want to
spend time on relaxing because I was aware that this could be my last few months for working at SSPACE lab and contributing to it.
Anyone who has to start from where I did two years back would take considerable time mastering the development tools and getting acquainted with it.
Many of the students left this task in between because they feels like there are lot of things involved in it and they have to
spend lot of time learning it. As I had reached so far in doing this job, it was my responsibility to complete as much work as
possible, because I never know if someone equally capable of me would take this task forward. I had a million times pleasure😌 working at
SSPACE lab and ground station. Last few days I spent completely in this two labs exploring the unexplored things and transfering my
knowledge to my juniors (Images above were the last few memories captured at IIST). PD sir did forced me to return back to campus as a Junior Project Fellow, but I wanted to spend quality time
with my parents for next four months until we get the joining letter from ISRO. I promised sir that, I will be supporting the lab
and the PiLOT_G2 mission even I am at home.
I had to return home in the last week of May as my sisters
wedding was just a month away and there were lot of preparations to be done.
</p>
<p>
Sister's wedding was over and our convocation👨🎓 program was followed right after it. We received our degree through the hands of Somanath Sir (Chairman ISRO and Secretary DOS)
in the presence of Jagdeep Dhankhar (Vice-President of India). This was the first time my parents visited the campus and meet PD sir.
We were back at home after the convocation was over. But the mission PiLOT_G2 which was later renamed to GRACE was not over yet. My friend
who worked on hardware was back in the campus as a JPF. He carried the mission smoothly and worked hard to fabricate all the boards.
When the boards were ready we tested the software over it. The integration of the package was completed.
There were many challenges and hurdles, and one by one all of them were cleared.
One of the biggest hurdle was that the reprogramming was not working in the production mode.
</p>
<div class="box">
<div class="dream">
<img src="images/Proj_5_Images/Online_Support.png">
</div>
<div class="dream">
<img class="img_deg_R" src="images/Proj_5_Images/DSC_1665.JPG">
</div>
<div class="dream">
<img src="images/Proj_5_Images/DSC_1664.JPG">
</div>
</div>
<p>
During one of the meet with Unnikrishnan Nair Sir (Director of IIST and VSSC), he asked a question
which said "What makes your mission different and more innovating from the other commercial payloads?" PD sir replied to this by
stating the reprogramming objective of the mission and explained the need of it. It was a big shock🫨🫨 for me as this was the only thing which was revolutionary and something different which we were going to prove
from the mission's point of view. We started going through the documentation provided by the SOC manufacturer. Day and night
I was thinking of the same problem which was resisting the reprogramming to work in production mode. My junior who worked on this
mission helped me for making the circuit connections and debugging the software over the hardware. We use to join the meet in the early
morning at 7am itself. During this issue, whole day long we were in the meet discussing the possible solution for the problem and then
trying multiple alternatives to make this work. I also had my senior to guide me to try different alternatives if some of them does not
work. Finally after three days of continuous efforts, we were able to solve the problem and the reprogramming was working in
production mode as it did in debugging mode. After solving this issue we got some more time by using which rectified few more bugs
and added some more functionality to the software. One of which was the toggling nature of the reprogramming functionality. That means
after going into the update image after reprogramming once, we have option to revert back to the first image which was already running
on the board. The final software images were generated and loaded onto the flash. The final software was flashed onto the board and long
time testings were carried out. The software worked perfectly and the payload was now ready to undergo the pre-flight testings.
</p>
<p>
The first pre-flight test was at BSED lab at VSSC, ISRO. It was a test to check the data integrity of our payload with the data processing
packages on the POEM side. Grace would collect the data from each and every subsystem and then send it to POEM packages. The format for
data transmission was same as PiLOT-1 but the interfacing code blocks were now different from our payload perspective. This improved
code blocks will be discussed in another project. Along with data integrity, this time we also had to test the commanding functionality
which was newly developed from both our and VSSC team. Before going for the tests at VSSC, we just decided to perform the same test at IIST.
Surprisingly the data wasn't coming properly 😔😔. We were replying the data as soon as our payload was being ping to transmit the data.
Here the problem was with the time gap in between receiving the ping and then starting to reply the data bytes. The packages on the POEM
side had some delay after which it starts receiving the data bytes correctly. But our codes were fast enough to transmit the data bytes.
Now to cater to the requirements, we added an extra delay which resolved the issue and now all the data bytes were received correctly.
Finally the changes were made over the flight package and all the images loaded onto the flash were reloaded with the updated ones.
After too many hurdles and difficulties, we kept modifying the software and made it more robust. Finally the package was ready for the
testing at BSED.
For performing the tests, the payload was moved to VSSC along with all the checkout
softwares developed by my team. The test was successfully accomplished. Data collected during testing was able to decode properly
without any garbage bytes in between the packets. The commanding functionality was also verified with POEM packages. Using the same
commanding we also showcased the reprogramming functionality to the VSSC team. All this testings were carried out by my Juniors who
deserves a huge shoutout🥳🥳 for spending their valuable time to carry out these tests.
</p>
<div class="text-center">
<h2><a href = "proj_5_sd.html">🔙🏃♂️</a></h2>
</div>
</body>
</html>