Using an ISIS Anntenna System in a Kubos Project

This document covers the particular capabilities and requirements of the Kubos API for the ISIS Antenna Systems.

Reference Documents

ISIS

  • Antenna System Interface Control Document - The main hardware guide for the antenna
  • Antenna Systems Options Sheet - Allows customers to specify non-default options that their antenna should be manufactured with

Project Configuration

There are several options which may be specified within a project’s config.json file under the antenna.isis structure. These option values should match what was specified in your antenna’s options sheet. If they are not specified, the default value will be used.

For example:

{
    "antenna": {
        "isis": {
            "primary": "0x31",
            "secondary": "0x32",
            "count": 4,
            "watchdog": {
                "timeout": 3600
            }
        }
    }
}
antenna.isis

Antenna System Configuration

Object Properties:
 
  • primary (string) – (Default: “0x31”) I2C address of the primary antenna microcontroller
  • secondary (string) – (Default: “0x00”) I2C address of the secondary antenna microcontroller. A value of 0x00 indicates that no secondary microcontroller is available to the system
  • count (integer) – (Default: 2) The number of deployable antennas available to the system
  • watchdog (watchdog) – Watchdog configuration
antenna.isis.watchdog

Watchdog properties

Object Properties:
 
  • timeout (integer) – (Default: 60) Antenna system’s watchdog timeout period (in seconds). If the system does not receive any I2C commands in this time period, it will restart itself. Specify a value of 0 to indicate that the watchdog has been disabled.

Run-Time Configuration

The ISIS antenna system supports in-flight configuration changes via the k_ants_configure() function. The function takes a KANTSController value which indicates which microcontroller should be used to issue future antenna system commands.

Arming the System

Deployment can be enabled using the k_ants_arm() function.

Deployment can subsequently be disabled using the k_ants_disarm() function.

Note

Arming/Disarming is done on a per-microcontroller basis

Deployment

There are several functions which can be used to control the deployment of the systems antennas.

Manual Deployment

Deployment of a single antenna can be controlled using the k_ants_deploy() function.

The function takes three arguments:

  • The antenna to deploy, specified by KANTSAnt
  • Whether prior deployment should be overridden
  • The deployment timeout value, in seconds (the default is 30 seconds)

For example:

#include <isis-ants-api/ants-api.h>

KANTSStatus status;

/* Deploy antenna #3 with a 20 second timeout value */
status = k_ants_deploy(ANT_3, false, 20);
if (status != ANTS_OK)
{
    fprintf(stderr, "Failed to deploy antenna: %d\n", status);
    return ANTS_ERROR;
}

Automatic Deployment

The k_ants_auto_deploy() function can be used to automatically deploy each antenna in sequential order.

The function takes a single argument of the deployment timeout value for each antenna, in seconds (the default is 30 seconds).

Canceling Deployment

All current deployment actions can be canceled by using k_ants_cancel_deploy().

Watchdog

Each antenna microcontroller has a watchdog which will restart the system if it has not been fed within the required interval.

There are three provided functions to assist with maintenance:

Other Functions