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$
4
  • $\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
    Commented Apr 12, 2020 at 18:21
  • $\begingroup$ Your approach to the problem doesn't take into account the lot of students and small companies who try to open up the space environment for everyone (New Space !). This information is not reserved to specialized companies anymore, and I believe helping the spread of it is important. I understand this question cannot be answered by non-experts, but that's why we're here, isn't it ? $\endgroup$
    – Magix
    Commented Apr 12, 2020 at 18:24
  • $\begingroup$ What I meant by "do what you like", is that if it is your hardware that you are protecting or controlling,it is for you to determine how that might be done. There is no Windows for Satellites, and no standard architecture or platform. $\endgroup$
    – Clifford
    Commented Apr 12, 2020 at 18:37
  • 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
    Commented Apr 13, 2020 at 4:10

1 Answer 1

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.

$\endgroup$
2
  • $\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
    Commented Apr 16, 2020 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
    Commented Apr 16, 2020 at 11:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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