2
$\begingroup$

It is pretty simple to find documentation about satellite operating modes behaviour when trying to develop satellite onboard software (example of safe mode behaviour on wikipedia, or on researchgate), but implementations are commercial and it is difficult to find reliable information about the implementation details of satellite modes. Most notably, mode switching sequences and error handling are mission-critical details for which open information is very sparse.

$\endgroup$
  • $\begingroup$ Added documentation and focused the question. Hopefully this can be reopened. $\endgroup$ – Magix Apr 12 at 18:15
  • $\begingroup$ Your link simply refers to a "concept". As such the question is too broad. There is no common satellite OS for which there is some well defined procedure or API to set "safe mode". Each manufacturer will develop their own implementation of the concept. If you have to ask the question, you are clearly not a satellite developer and as such why are you asking? That is to say, if you need to know you would not need to ask - you'd have in-house experts, policies and procedures. Whoever has voted to re-open had better have an answer ready, it still does not look answerable to me. $\endgroup$ – Clifford Apr 12 at 18:21
  • 1
    $\begingroup$ It is too broad because it is about concepts related to a type or class of system. Good SO questions are about concrete software development issues. $\endgroup$ – Clifford Apr 12 at 18:34
  • 1
    $\begingroup$ Welcome to Space! Hopefully your question will be better received here. It might be a good idea to incorporate some of the information from your responses in comments back into the original post. Also you can look around this site to see if there are related questions and answers you might want to link to. $\endgroup$ – uhoh Apr 13 at 4:10
  • 1
    $\begingroup$ Thanks ! I'll do my best. $\endgroup$ – Magix Apr 13 at 11:58
3
$\begingroup$

No experience of satellites here, but I used to do real-time software development. I believe that the point is to discover "normal" from "abnormal". You would have several different "functions" that monitor parts or the whole system.

One typical solution for monitoring software is one or many watchdog timers. The software is supposed to reset the watchdog timer periodically. If too long time, the watchdog kicks in and forces the system into safe mode. The software will "trap" some hardware errors, maybe with help of a memory management unit (more or less complicated). One type of check might be to have "guard" areas in RAM initiated to known values and periodically checked. This might discover run-away software. ROM content can be checked periodically by background checksums monitoring.

There would be monitoring of different parts of the hardware. Memory will be checked by one or more parity bits. There will be monitoring of voltages, temperature, power usage and so on. Outside of limits might trigger safe mode. Complicated stuff, say a CPU, could be doubled and the two halves run the same software and compare the results. (I believe this was used in the engine F1 controller for the Saturn V).

And of course, when the software finds itself to be "lost in space" it could trigger safe mode. Losing track of position, direction or speed might be triggers. Safe mode might be different in different phases of the flight.

| improve this answer | |
$\endgroup$
  • $\begingroup$ I understand. Would a mode be implemented using a global variable and the different modules would be handled based on its value ? $\endgroup$ – Magix Apr 16 at 9:45
  • 1
    $\begingroup$ @Magix: could be a variable. Or booting into a different set of software. Or killing the main computer and running on the backup hardwired logic. Or … well you do what it takes. There is some nice Reading here: history.nasa.gov/computers/contents.html $\endgroup$ – ghellquist Apr 16 at 11:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.