Skip to content

Telecommands

Gabriel Mariano Marcelino edited this page May 16, 2019 · 12 revisions

Telecommands will be the main form of communication between ground segment and space segment. To explain the telecommands a pattern will be adopted:

  • "aa" : between double quotes means ASCII
  • | : means concatenation
  • 0x : means a number in hexadecimal
  • null : means this is not used, but generally will be substituted with zeros
  • send : what the ground station sends (starting from left to right)
  • receive: the answer of the satellite

The FloripaSat will use the NGHam protocol thus leaving the telecommand with the following format, in order:

6 Bytes - ID
2 Bytes - Action
8 Bytes - Arguments
12 Bytes - Reserved    

ID: The identification number of the ground station. Rules are defined by the AMSAT. Example: "PY0EFS".

Action: The telecommand itself, the action that the cubesat must do.

Arguments: The telecommand can need some arguments, the number of bytes can vary.

Reserved: Reserved bytes, for future improvement.

List of Telecommands:


1. Telemetry Downlink

This telecommands allow to downlink any information of the satellite. A single information distributed in time or the whole packets distributed in time (limited by the downlink bandwidth). The memory organization and how the packets are stored in the sd card are described at this page. The same page presents how to convert the raw data to feasible values. Along with the ID and action ASCII the GS need to specify which information wants, how many packets wants and a time reference (if the desired data is the most recent or the oldest).

The first 2 bytes are the data flags. Each bit correspond to an information of the satellite. The sender must mask which he wants (e.g. to select all kind of data, every bit must be set).

Each bit represents the modules whose data are required
Bit 0: system status
Bit 1: imu
Bit 2: msp sensors
Bit 3: systick
Bit 4: solar panels
Bit 5: radio
Bit 6: msp430 adc solar panels
Bit 7: msp43 adc
Bit 8: battery monitor
Bit 9: ads1248
Bit A: task scheduler
Bit B: transceiver
Bit C: payload 1
Bit D: payload 2

The following byte specify how many seconds of data is desired to be read. This means that the requester can read at a request between 0 and 255 seconds of data. It's important to know that a packet contains the last read data of all sensors and a packet is generated at each second. So, if we want know the data 80 seconds ago we just need to see the 80th packet behind the current one.

The next byte specify the time reference. If it will start to read the packets from the oldest packet or the newest packet. The last 4 bytes specify the offset. This means that it is possible to move forward from the oldest packet until a desired point in the time and read some packets from this point. In the same way, it is possible to move backward from the newest packet. For example: if the requester wants to start to read from the 10th second from the beginning of the satellite operation, he must set the reference byte at the start and put 10 in the offset field.

  • Id : "(Ground station ID)"
  • Action : "dw"
  • Arguments :
    • 2 Bytes - flags
    • 1 Bytes - packets count
    • 1 Bytes - reference
    • 4 Bytes - Offset

Examples

Read Systick and Battery Monitor in the last read packet, requested from FloripaSat's ground station:

"PY0EFS" | "dw" | 0x0104 0x00 0x01 0x0000 0x0000 | 0x0000 0x0000 0x0000

  • 0x0104 - Systick and battery monitor flags
  • 0x00 - Request 1 data packet
  • 0x01 - Starting on the newer packets (last write on non-volatile)
  • 0x00000000 - 0 packets ago

Read 5 packets of all data, starting on the 10º oldest packet, requested from FloripaSat's ground station:

"PY0EFS" | "dw" | 0xFFFF 0x04 0x00 0x0000 0x000A | 0x0000 0x0000 0x0000

  • 0xFFFF - All data flags
  • 0x04 - Request 5 data packets
  • 0x00 - Starting on the older packets (last write on non-volatile)
  • 0x0000000A - Offset 10 packets

Back To Top


2. Ping

This simply will return the id of the groundstation and a FloripaSat message:

  • Id : "(Ground station ID)"
  • Action : "pg"
  • Arguments : null

Example

Sending a ping from FloripaSat's ground station

  • send : "PY0EFS" | "pg" | 0x0000 0x0000 | 0x0000 0x0000 0x0000
  • receive : "Hello from FloripaSat, telecommand received from " | "PY0EFS"

Back To Top


3. Shutdown

This will stop any communication of the satellite for 24 hours. It should return the id of the ground station and when he will wake up.

NOTE: This is a restricted telecommand.

Back To Top

Clone this wiki locally