# How does a command sent to a rocket or rover look like?

I think the question is quite clear. Let's say when Mission Control decides to let Perseverence move forward for 3 seconds with a speed of 10 (whatever..) What syntax would this command have?

Im wondering because on my hobby projects I send commands to my small robots which look like:

SetSpeed(10, 3)


So basically Command Name + Args in parentheses. Then this is parsed, the command name was mapped to a specific function and my algorithm puts each argument seperated by comma into a list which is passed to the function.

Do SpaceX or NASA use such Strings as well? Or do they replace strings with byte codes, so each command has a specific number.

Most remotely controlled spacecraft and rovers do not use text-based commands. Instead, each command has a unique identifier, a command-specific data structure that contains data specific to that command, and data (e.g. checksums) that confirm the command and data are valid. All of the data are binary rather than text-based.

The Mars rovers use a sequenced set of commanded waypoints, possibly with speed limits. Commanding velocity rather than a waypoint is a no-no; another name for using commanded velocity falls under the category of "dead reckoning". Relying on dead reckoning for any extended period of time means that the vehicle will soon be dead.

Some of the waypoints have automated transitions to the next command, in which case the vehicle immediately starts processing the next command after it "thinks" it has reached the commanded waypoint. Some waypoints involve transitions to other commands, such as "drill here" (but again in binary rather than in text). Some waypoints are also hold points, points at which the rover needs to stop until given authority to proceed (ATP) to the next command from Mission Control.

For shuttle which used a MIL-STD-1553 bus system for its flight critical functions, a command consisted of some header information (mostly used for validation), the address of the bus terminal unit, card, and channel on the 1553 bus to which the command was to be sent, and a mask to set the desired bits.

The commands were made up of one or more 48 bit words.