Skip to main content

Supported Windows

LEASE_ISL

The window is used to enable an inter-satellite communication link so that processes on the payloads can use the ISL to send data to, or receive data from, another satellite. This window will be scheduled on the satellite which will be sending data and the satellite to receive those data is specified as a parameter. Documentation about the software interfaces to transmit and receive using the ISL system can be found here.

Type

LEASE_ISL

Parameters

NameTypeRequiredDescription
isl_receive_satellite_idstringyesThe identifier for the satellite which will be receiving data from the satellite that this window is scheduled on.

Special POST /window Response

In the POST /window section, above, the response is noted as having a single ID returned. Since ISL windows come in pairs (i.e. one for each satellite involved), the POST /window endpoint will return a second ID. This will be the ID of the window created for the paired satellite. This will be found under an additional key, paired_id. See the example JSON response in this section.

curl -X POST "${HOST}/tasking/window" \
-H "${AUTH_HEADER}" \
-H "Content-Type: application/json" \
-d @- << EOF
{
"type": "LEASE_ISL",
"satellite_id": "FM123",
"start": 1599445000,
"duration": 600,
"parameters": {
"isl_receive_satellite_id": "FM124"
}
}
EOF
{"data": {"id": "3014288", "paired_id": "3014289"}}

PAYLOAD_IPI

This window allows the user to run an executable on the imaging payload interface (IPI) which provides access to imaging/camera hardware. The user's executable can make use of software interfaces to trigger the capture of images on the IPI.

The window consists of two phases:

  1. A file copy phase during which files needed from other payloads can be copied to the payload.
  2. A processing phase where a customer-supplied executable is run with customer supplied arguments.
  3. A data retrieval phase where any files written to /outbox are queued for download.

Type

PAYLOAD_IPI

Parameters

NameTypeRequiredDescription
adcs_configadcs_confignoSee adcs_config default: { "mode": "NOOP" }
downlink_budgetnumbernokilobytes of data to schedule for download
copy_fromlist of copy_fromnoSee copy_from (default: [])
user_commanduser_commandyesSee user_command
curl -X POST "${HOST}/tasking/window" \
-H "${AUTH_HEADER}" \
-H "Content-Type: application/json" \
-d @- << EOF
{
"type": "PAYLOAD_IPI",
"satellite_id": "FM123",
"start": 1599445000,
"duration": 600,
"parameters": {
"downlink_budget": 0,
"copy_from": [
{
"src_payload": "SABERTOOTH",
"src_path": "/persist/data/locations1",
"dst_path": "/persist/data/locations1"
}
],
"adcs_config": {
"mode": "TRACKING",
"aperture": "IMAGER_TBD",
"target_latitude_north": 5.240337,
"target_longitude_east": -52.768472
},
"user_command": {
"executable": "/persist/bin/capture",
"executable_arguments": [
"--duration", "60",
"--interval", "10",
"--output-dir-for-download", "/outbox/images/"
]
}
}
}
EOF
{"data": {"id": "3014288"}}

PAYLOAD_SDR

This is an updated version of the PAYLOAD_SDR window (the old version is no longer supported). It allows the user to run an executable on the software defined radio (SDR) payload. The supplied executable can make use of software interfaces to send or receive signals with the SDR payload. The previous version of the window included a capture_config, which has been replaced with the following applications, which can be used in a user_command, either invoked directly or included in a script etc. Further documentation can be found here.

  1. RFCollect
  2. RFTransmit
  3. IQGenerator

The window consists of three phases:

  1. A file copy phase during which files needed from other payloads can be copied to the payload. (Noted earlier as "pre-buffer.")
  2. A processing phase where a customer-supplied executable is run with customer supplied arguments.
  3. A data retrieval phase where any files written to /outbox are queued for download. (Noted earlier as "post-buffer.")

IQ Capture Size Limitations

Captured IQ files in uncompressed form must not exceed 1GB in size due to payload memory constraints.

To calculate the uncompressed file size for a capture, a useful upper bound (in kB) can be found by solving 4 * sample_rate_khz * capture_duration rounded up to the nearest 16kB.

Note: The compressed file will likely be much smaller though actual compression ratios depend on signal parameters and will need to be determined experimentally.

Type

PAYLOAD_SDR

Parameters

NameTypeRequiredDescription
adcs_configadcs_confignoSee adcs_config default: { "mode": "NOOP" }
downlink_budgetnumbernokilobytes of data to schedule for download
copy_fromlist of copy_fromnoSee copy_from (default: [])
user_commanduser_commandyesSee user_command
curl -X POST "${HOST}/tasking/window" \
-H "${AUTH_HEADER}" \
-H "Content-Type: application/json" \
-d @- << EOF
{
"type": "PAYLOAD_SDR",
"satellite_id": "FM123",
"start": 1599445000,
"duration": 600,
"parameters": {
"downlink_budget": 0,
"copy_from": [
{
"src_payload": "SABERTOOTH",
"src_path": "/persist/data/waveform1",
"dst_path": "/persist/data/waveform1"
}
],
"adcs_config": {
"mode": "TRACKING",
"aperture": "SBAND_SDR",
"target_latitude_north": 5.240337,
"target_longitude_east": -52.768472
},
"user_command": {
"executable": "/persist/bin/phase1",
"executable_arguments": [
"--input", "/persist/data/waveform1",
"--output", "/output/results.txt"
]
}
}
}
EOF
{"data": {"id": "3014288"}}