Kubos Project Configuration

Kubos project configuration is derived from Yotta’s configuration system and module.json files.

If a project’s configuration is changed, the new settings will be incorporated during the next execution of kubos build.

config.json

Overview

Each Kubos target comes with a set of default configuration options. These options describe things like hardware bus availability and communication settings. The config.json file, which lives in the top level directory of a Kubos project, allows users to override any of these options with a custom value.

Under the covers, the target.json and config.json files are used to generate a yotta_config.h file, which contains #define YOTTA_CFG_{option} statements for each defined option. These YOTTA_CFG_* variables can then be referenced within the Kubos project’s source code.

The current configuration of a project can be seen using the kubos config command. Each configuration option in the output will have a comment showing the origin of the value. Anything marked with “application’s config.json” will have been taken from the project’s config.json file. All other comments will have “*-gcc”, which indicates that that option is a default value taken from the corresponding target.json file.

For example:

$ kubos config

{
  "test": false, // application's config.json
  "hardware": {
    "console": {
      "uart": "K_UART2", // msp430f5529-gcc
      "baudRate": 115200 // msp430f5529-gcc
    },
    "i2c": {
      "count": 2, // msp430f5529-gcc
      "defaults": {
        "bus": "K_I2C2", // msp430f5529-gcc
        "role": "K_MASTER", // kubos-gcc
        "clockSpeed": 100000, // kubos-gcc
        "addressingMode": "K_ADDRESSINGMODE_7BIT" // kubos-gcc
      },
      "i2c1": {},
      "i2c2": {}
    },
    "spi": {
      "count": 2, // msp430f5529-gcc
      "defaults": {
        "bus": "K_SPI1", // msp430f5529-gcc
        "role": "K_SPI_MASTER", // kubos-gcc
        "direction": "K_SPI_DIRECTION_2LINES", // kubos-gcc
        "dataSize": "K_SPI_DATASIZE_8BIT", // kubos-gcc
        "clockPolarity": "K_SPI_CPOL_HIGH", // kubos-gcc
        "clockPhase": "K_SPI_CPHA_1EDGE", // kubos-gcc
        "firstBit": "K_SPI_FIRSTBIT_LSB", // kubos-gcc
        "speed": "10000" // kubos-gcc
      },
      "spi1": {},
      "spi2": {}
    },
    "uart": {
      "count": 2, // msp430f5529-gcc
      "uart1": {
        "tx": "P33", // msp430f5529-gcc
        "rx": "P34" // msp430f5529-gcc
      },
      "uart2": {
        "tx": "P44", // msp430f5529-gcc
        "rx": "P45" // msp430f5529-gcc
      },
      "defaults": {
        "baudRate": 9600, // kubos-gcc
        "wordLen": "K_WORD_LEN_8BIT", // kubos-gcc
        "stopBits": "K_STOP_BITS_1", // kubos-gcc
        "parity": "K_PARITY_NONE", // kubos-gcc
        "rxQueueLen": 128, // kubos-gcc
        "txQueueLen": 128 // kubos-gcc
      }
    }
  },
  "gcc": {
    "printf-float": false // kubos-msp430-gcc
  },
  "arch": {
    "msp430": {}
  }
}

Custom Settings

Users can add new settings to a config.json file which can then be used within their project. These settings will be generated as #define YOTTA_CFG_{user_option} {value} statements during project compilation time.

For example:

{
  "CSP": {
    "my_address": "1",
    "target_address": "2",
    "port": "10",
    "uart_bus": "K_UART6",
    "uart_baudrate": "115200",
    "usart": {}
  }
}

Will generate the following statements:

#define YOTTA_CFG_CSP_MY_ADDRESS 1
#define YOTTA_CFG_CSP_TARGET_ADDRESS 2
#define YOTTA_CFG_CSP_PORT 10
#define YOTTA_CFG_CSP_UART_BUS K_UART6
#define YOTTA_CFG_CSP_UART_BAUDRATE 115200
#define YOTTA_CFG_CSP_USART

Non-Default Settings

These are settings which are not included by default as part of any target device, so must be explicitly provided in a config.json file in order to be made available to the project.

File System

If present, the fs file system structure enables support for accessing storage on a peripheral device.

Note: This structure was created for KubOS RT. KubOS Linux has native support for various file systems.

fs

File system support

Object Properties:
 
  • fatfs (fatfs) – FatFS settings
fs.fatfs

FatFS support

Object Properties:
 
  • driver (driver) – Device connection settings
fs.fatfs.driver

Driver settings for the device the FatFS file system is on.

Note: Only one driver property may be specified

Object Properties:
 
  • sdio (sdio_dev) – An SDIO device is available
  • spi (spi_dev) – A SPI device is available
fs.fatfs.driver.sdio

SDIO device settings

WARNING: SDIO HAL support must be turned on for this feature to work.

SDIO is currently supported by:

  • STM32F407 (daughter board)
  • PyBoard

There are no configuration properties for SDIO. It is assumed that only one port is available and will have predetermined settings

Example:

{
    "fs": {
        "fatfs": {
            "driver": {
                "sdio": {}
            }
        }
    }
}
fs.fatfs.driver.spi

SPI device settings

Note: While FatFS over SPI will work for any target with a SPI bus, we recommend using FatFS over SDIO if it is available on your target.

Object Properties:
 
  • dev (KSPINum) – SPI bus the device is connected to
  • cs (pin) – Chip select pin assigned to the device

Example:

{
    "fs": {
        "fatfs": {
            "driver": {
                "spi": {
                    "dev": "K_SPI1",
                    "cs": "P37"
                }
            }
        }
    }
}

SDIO

General SDIO support is turned on via the hardware.sdio object. This support is not automatically included with any target device.

hardware.sdio

SDIO support

There are no configuration properties for this object. It simply enables the use of the HAL SDIO library

Example:

{
    "hardware": {
        "sdio": {}
    }
}

Built-in Peripheral Support

Kubos Core supports a variety of end-point peripherals. In order to turn on support for these devices within a Kubos project, they should be added to the sensors structure of the config.json file.

sensors

Kubos Core sensor APIs

By default, including the sensors object turns on the following APIs:

Without including a corresponding sensor device (ex. HTU21D), these APIs serve only as code stubs.

Object Properties:
 
  • htu21d (htu21d) – HTU21D humidity sensor support
  • bno055 (bno055) – BNO055 absolute orientation sensor support
  • bme280 (bme280) – BME280 humidity and pressure sensor support
  • gps (gps) – GPS (NMEA) support
sensors.htu21d

HTU21D humidity sensor configuration

Object Properties:
 
  • i2c_bus (KI2CNum) – The I2C bus connected to the sensor

Example:

{
    "sensors": {
        "htu21d": {
            "i2c_bus": "K_I2C1"
        }
    }
}
sensors.bno055

BNO055 absolute orientation sensor configuration

Note: The sensor supports interfacing with both I2C and UART, but only I2C support has been implemented in Kubos Core

Object Properties:
 
  • i2c_bus (KI2CNum) – The I2C bus connected to the sensor

Example:

{
    "sensors": {
        "bno055": {
            "i2c_bus": "K_I2C1"
        }
    }
}
sensors.bme280

BME280 humidity and pressure sensor configuration

Note: The sensor supports interfacing with both SPI and I2C, but only SPI support has been implemented in Kubos Core

Object Properties:
 
  • spi_bus (KSPINum) – The SPI bus connected to the sensor
  • CS (pin) – The chip select pin connected to the sensor

Example:

{
    "sensors": {
        "bme280": {
            "spi bus": "K_SPI1",
            "CS": "PA4"
        }
    }
}
sensors.gps

NMEA-formatted GPS data support

Note: There are no configuration properties for GPS within the config.json file. All configuration will be done within the Kubos application’s code

Example:

{
    "sensors": {
        "gps": {}
    }
}

User-Configurable Included Settings

These are settings which may be changed by the user without compromising the target device, but which will automatically be included in the project without a config.json file present.

System

system

KubOS Linux file system properties related to Kubos applications

Object Properties:
 
  • initAfterFlash (boolean) – (Default: false) Specifies whether the application should be started as a background daemon on the target device immediately after being flashed
  • initAtBoot (boolean) – (Default: true) Specifies whether the application should be started on the target device during system initialization. An init script will be generated with the run level specified by runLevel
  • runLevel (number) – (Default: 50. Range: 10-99) The priority of the generated init script. Scripts with lower values will be run first
  • destDir (string) – (Default: “/home/usr/local/bin”) Specifies flashing destination directory for all non-application files
  • password (string) – (Default: “Kubos123”) Specifies the root password to be used by ``kubos flash` to successfully connect to the target device

Example:

{
    "system": {
      "initAfterFlash": true,
      "initAtBoot": true,
      "runLevel": 40,
      "destDir": "/home/myUser/storage",
      "password": "password"
    }
}

Hardware

hardware

Description of target board’s hardware peripherals

Object Properties:
 
  • console (console) – Debug console
  • externalClock (integer) – Clock rate of external clock
  • pins (pins) – Custom name -> pin mapping
  • i2c (i2c) – Availability and properties of I2C
  • uart (uart) – Availability and properties of UART
  • spi (spi) – Availability and properites of SPI
hardware.console

The debug UART console

Object Properties:
 
  • uart (KUARTNum) – UART bus to connect to
  • baudRate (string) – (Default: “115200”) Connection speed

Example:

{
    "hardware": {
        "console": {
            "uart": "K_UART1",
            "baudRate": "9600"
        }
    }
}
hardware.pins

Custom name -> pin mapping. Allows more readable pin names to be used in Kubos projects.

Object Properties:
 
  • {pin-name} (pin) – Pin name/value pair

Example:

{
    "hardware": {
        "pins": {
            "LED1": "PA1",
            "LED2": "PA2",
            "USER_BUTTON": "PA3"
        }
    }
}
hardware.i2c

Availability and properties of I2C on the target device

Object Properties:
 
  • count (integer) – Number of I2C buses available
  • defaults (defaults) – Default I2C connection settings
  • i2c{n} (bus) – I2C bus definitions

Example:

{
    "hardware": {
      "i2c": {
        "count": 2,
        "defaults": {
          "bus": "K_I2C1",
          "role": "K_MASTER",
          "clockSpeed": 100000,
          "addressingMode": "K_ADDRESSINGMODE_7BIT"
        },
        "i2c1": {
          "scl": {
            "pin": "PB6",
            "mode": "GPIO_MODE_AF_PP",
            "pullup": "GPIO_NOPULL",
            "speed": "GPIO_SPEED_MEDIUM"
          },
          "sda": {
            "pin": "PB7",
            "mode": "GPIO_MODE_AF_OD",
            "pullup": "GPIO_PULLUP",
            "speed": "GPIO_SPEED_MEDIUM"
          },
          "alt": "GPIO_AF4_I2C1"
        },
        "i2c2": {
          "scl": {
            "pin": "PB10",
            "mode": "GPIO_MODE_AF_PP",
            "pullup": "GPIO_NOPULL",
            "speed": "GPIO_SPEED_MEDIUM"
          },
          "sda": {
            "pin": "PB11",
            "mode": "GPIO_MODE_AF_OD",
            "pullup": "GPIO_PULLUP",
            "speed": "GPIO_SPEED_MEDIUM"
          },
          "alt": "GPIO_AF4_I2C2"
        }
      }
    }
}
hardware.i2c.defaults

Default I2C connection settings

Object Properties:
 
hardware.i2c.i2c{n}

I2C bus definition

Object Properties:
 
  • scl (scl) – Clock line settings
  • sda (sda) – Data line settings
  • alt (string) – (STM32F4* only) GPIO alternate function mapping (GPIO_AFx_I2Cy)
hardware.i2c.i2c{n}.scl

I2C bus clock line settings

Object Properties:
 
  • pin (pin) – Clock line pin
  • mode (KGPIOMode) – Pin GPIO mode
  • pullup (KGPIOPullup) – Pin pullup/pulldown setting
  • speed (enum) – Clock line speed (GPIO_SPEED_[LOW, MEDIUM, FAST, HIGH])
hardware.i2c.i2c{n}.sda

I2C bus data line settings

Object Properties:
 
  • pin (pin) – Data line pin
  • mode (KGPIOMode) – Pin GPIO mode
  • pullup (KGPIOPullup) – Pin pullup/pulldown setting
  • speed (string) – Data line speed (GPIO_SPEED_[LOW, MEDIUM, FAST, HIGH])
hardware.uart

Availability and properties of UART on the target device

Object Properties:
 
  • count (integer) – Number of UART buses available
  • defaults (defaults) – Default UART connection settings
  • uart{n} (bus) – UART bus definitions

Example:

{
    "hardware": {
      "uart": {
        "count": 2,
        "defaults": {
          "baudRate": 9600,
          "wordLen": "K_WORD_LEN_8BIT",
          "stopBits": "K_STOP_BITS_1",
          "parity": "K_PARITY_NONE",
          "rxQueueLen": 128,
          "txQueueLen": 128
        },
        "uart1": {
            "tx": "P33",
            "rx": "P34"
        },
        "uart2": {
            "tx": "P44",
            "rx": "P45"
        }
      }
    }
}
hardware.uart.defaults

Default UART connection settings

Object Properties:
 
  • baudRate (integer) – Default bus speed
  • wordLen (KWordLen) – Default word length
  • stopBits (KStopBits) – Default number of stop bits
  • parity (KParity) – Default parity setting
  • rxQueueLen (integer) – Default size of RX queue
  • txQueueLen (integer) – Default size of TX queue
hardware.uart.uart{n}

UART bus definition

Object Properties:
 
  • tx (pin) – Bus transmit pin
  • rx (pin) – Bus receive pin
hardware.spi

Availability and properties of SPI on the target device

Object Properties:
 
  • count (integer) – Number of SPI buses available
  • defaults (defaults) – Default SPI connection settings
  • spi{n} (bus) – SPI bus definitions

Example:

{
    "hardware": {
      "spi": {
        "count": 3,
        "defaults": {
          "bus": "K_SPI1",
          "role": "K_SPI_MASTER",
          "direction": "K_SPI_DIRECTION_2LINES",
          "dataSize": "K_SPI_DATASIZE_8BIT",
          "clockPolarity": "K_SPI_CPOL_HIGH",
          "clockPhase": "K_SPI_CPHA_1EDGE",
          "firstBit": "K_SPI_FIRSTBIT_LSB",
          "speed": "10000"
        },
        "spi1": {
          "mosi": "PA7",
          "miso": "PA6",
          "sck": "PA5",
          "cs": "PA4",
          "port": "GPIOA",
          "alt": "GPIO_AF5_SPI1"
        },
        "spi2": {
          "mosi": "PB15",
          "miso": "PB14",
          "sck": "PB13",
          "cs": "PB12",
          "port": "GPIOB",
          "alt": "GPIO_AF5_SPI2"
        },
        "spi3": {
          "mosi": "PC12",
          "miso": "PC11",
          "sck": "PC10",
          "cs": "PC8",
          "port": "GPIOC",
          "alt": "GPIO_AF6_SPI3"
        }
      }
    }
}
hardware.spi.defaults

Default SPI connection settings

Object Properties:
 
hardware.spi.spi{n}

SPI bus definition

Object Properties:
 
  • mosi (pin) – Master-out pin
  • miso (pin) – Master-in pin
  • sck (pin) – Clock pin
  • cs (pin) – Chip-select pin
  • port (pin) – GPIO port that the SPI pins belong to
  • alt (string) – (STM32F4* only) GPIO alternate function mapping (GPIO_AFx_I2Cy)

Command and Control

cnc

Kubos Command and Control configuration

Note: Kubos C2 is currently only supported by KubOS Linux

Object Properties:
 
  • daemon_log_path (path) – Absolute path for daemon log file
  • registry_dir (path) – Absolute path to C2 executables
  • client (client) – C2 client pipe configuration
  • daemon (daemon) – C2 daemon pipe configuration

Example:

{
    "cnc": {
        "daemon_log_path": "\"/home/var/log.daemon.log\"",
        "registry_dir": "\"/usr/local/kubos\""
    }
}
cnc.client

Kubos Command and Control client configuration

Note: In the future, multiple clients will be able to connect to the single C2 daemon. Currently only the command line client is supported

Object Properties:
 
  • tx_pipe (path) – Client transmit pipe absolute path
  • rx_pipe (path) – Client receive pipe aboslute path

Example:

{
   "cnc": {
       "client": {
           "tx_pipe": "\"/usr/local/kubos/client-to-daemon\"",
           "rx_pipe": "\"/usr/local/kubos/daemon-to-client\""
       }
   }
}
cnc.daemon

Kubos Command and Control daemon configuration

Object Properties:
 
  • tx_pipe (path) – Daemon transmit pipe absolute path
  • rx_pipe (path) – Daemon receive pipe aboslute path

Example:

{
   "cnc": {
       "daemon": {
           "tx_pipe": "\"/usr/local/kubos/daemon-to-client\"",
           "rx_pipe": "\"/usr/local/kubos/client-to-daemon\""
       }
   }
}

Telemetry

telemetry

Kubos Telemetry configuration

Object Properties:
 
  • csp (csp) – CSP connection configuration
  • aggregator (aggregator) – Aggregator configuration
  • subscribers (subscribers) – Subscriber configuration
  • message_queue_size (integer) – (Default: 10) Max number of messages allowed in telemetry queue
  • internal_port (integer) – (Default: 20) Port number used for the telemetry server’s internal connections
  • external_port (integer) – (Default: 10) Port number used for telemetry’s external socket connections
  • rx_thread (rx_thread) – Receive thread configuration
  • buffer_size (integer) – (Default: 256) KubOS Linux only. Max size of a message which can be sent/processed by the telemetry system
  • storage (storage) – Telemetry storage configuration

Example:

{
    "telemetry": {
        "message_queue_size": 10,
        "internal_port": 20,
        "external_port": 10,
        "buffer_size": 256,
    }
}
telemetry.csp

Kubos Telemetry server’s CSP configuration

Object Properties:
 
  • address (integer) – KubOS RT only. CSP address used by telemetry server
  • client_address (integer) – KubOS RT only. CSP address for a telemetry client thread/process

Example:

{
    "telemetry": {
        "csp": {
            "address": 1,
            "client_address": 2
        }
    }
}
telemetry.aggregator

Kubos Telemetry aggregator configuration

Object Properties:
 
  • interval (integer) – (Default: 300) Time interval (in ms) between calls to the user-defined telemetry aggregator

Example:

{
    "telemetry": {
        "aggregator": {
            "interval": 300
        }
    }
}
telemetry.subscribers

Kubos Telemetry subscribers configuration

Object Properties:
 
  • max_num (integer) – (Default: 10) Maximum number of subscribers allowed by the telemetry server
  • read_attempts (integer) – (Default: 10) Number of attempts allowed for a subscriber to read a message from the telemetry server

Example:

{
    "telemetry": {
        "subscribers": {
            "max_num": 10,
            "read_attempts": 10
        }
    }
}
telemetry.rx_thread

Kubos Telemetry server receive thread configuration

Object Properties:
 
  • stack_size (integer) – (Default: 1000) Stack size of the thread
  • priority (integer) – (Default: 2) Priority level of the thread

Example:

{
    "telemetry": {
        "rx_thread": {
            "stack_size": 1000,
            "priority": 2
        }
    }
}
telemetry.storage

Kubos Telemetry storage configuration

Object Properties:
 
  • file_name_buffer_size (integer) – (Default: 128) Maximum file name length of telemetry storage files
  • data (data) – Telemetry data storage configuration
  • subscriptions (string) – (Default: “0x0”) Hex flag value indicating topics which telemetry storage should subscribe to and capture in files
  • stack_depth (integer) – (Default: 1000) Telemetry storage receive task stack depth
  • task_priority (integer) – (Default: 0) Telemetry storage receive task priority

Example:

{
     "telemetry": {
         "storage": {
            "file_name_buffer_size": 128,
            "data": {
                "buffer_size": 64,
                "part_size": 51200,
                "max_parts": 10,
                "output_format": "FORMAT_TYPE_CSV"
            },
            "subscriptions": "0x0",
            "subscribe_retry_interval": 50,
            "stack_depth": 1000,
            "task_priority": 0
        }
    }
}
telemetry.storage.data

Kubos Telemetry data storage configuration

Object Properties:
 
  • buffer_size (integer) – (Default: 64) Maximum size/length of the storage buffer
  • part_size (integer) – (Default: 51200) Maximum file size before file rotation is triggered
  • max_parts (integer) – (Default: 10) Maximum number of files before file rotation in triggered
  • output_format (output_data_format) – (Default: “FORMAT_TYPE_CSV”) Output format of telemetry storage files

CSP

csp

Kubos CSP (CubeSat Protocol) configuration

Object Properties:
 
  • debug (boolean) – Turn on CSP debug messages

Example:

{
    "csp": {
        "debug": true
    }
}

IPC

ipc

Kubos IPC (Inter-Process Communication) configuration

Object Properties:
 
  • read_timeout (integer) – (Default: 50) Timeout value for reading
  • send_timeout (integer) – (Default: 1000) Timeout value for sending
  • socket_port (integer) – (Default:8888) Port for IPC sockets to listen/connect on

Example:

{
    "ipc": {
        "read_timeout": 50,
        "send_timeout": 1000,
        "socket_port": 8888
    }
}

Target-Required Settings

These are configuration options that are required by a specific target which should not be changed by the user. They are documented here only for reference.

Architecture

arch

Architecture of the target’s processor

Object Properties:
 
  • arm (object) – Specifies that the target has an ARM architecture
  • msp430 (object) – Specifies that the target has an MSP430 architecture

Example:

{
    "arch": {
      "msp430": {}
    }
}

CMSIS

cmsis

Cortex Microcontroller Software Interface Standard

Settings specific to targets with Cortex processors

Object Properties:
 
  • nvic (nvic) – “Nester Vector Interrupt Controller”

Example:

{
    "cmsis": {
      "nvic": {
        "ram_vector_address": "0x20000000",
        "flash_vector_address": "0x08000000",
        "user_irq_offset": 16,
        "user_irq_number": 82
      }
    }
}
cmsis.nvic

Nested Vector Interupt Controller

Object Properties:
 
  • ram_vector_address (string) – Location of vectors in RAM
  • flash_vector_address (string) – Initial vector position in flash
  • user_irq_offset (integer) – (Default: 16) Number of ARM core vectors (HardFault handler, SysTick, etc)
  • user_irq_number (integer) – (Default: 82) Number of manufacturer vectors
  • has_vtor (boolean) – (Default: false) Specifies whether a Vector Table Offset Register exists on the target
  • has_custom_vtor (boolean) – (Default: false) Specifies whether a non-default VTOR exists on the target

UVisor

uvisor

uVisor RTOS security settings

Specific to STM32F4 targets*

Object Properties:
 
  • present (integer) – (Default: 0. Values: 0, 1) Specifies whether uVisor is present on the target device

Example:

{
    "uvisor": {
      "present": 0
    }
}

GCC

gcc

Project compiler options

Object Properties:
 
  • printf-float (boolean) – Enables floating point support in printf commands. Note: Must be false for MSP430* targets

Example:

{
    "gcc": {
      "printf-float": false
    }
}

module.json

The Kubos project’s module.json file is originally based on Yotta’s module.json file

Default Configurations

When you run kubos init, a module.json file is created for you with some default values.

KubOS RT Default File:

{
    "bin": "./source",
    "license": "Apache-2.0",
    "name": "{your-project-name}",
    "repository":{
        "url": "git://<repository_url>",
        "type": "git"
    },
    "version": "0.1.0",
    "dependencies":{
        "kubos-rt": "kubostech/kubos-rt#~0.1.0"
    },
    "homepage": "https://<homepage>",
    "description": "Example app running on kubos-rt."
}

KubOS Linux Default File:

{
    "bin": "./source",
    "license": "Apache-2.0",
    "name": "{your-project-name}",
    "repository":{
        "url": "git://<repository_url>",
        "type": "git"
    },
    "version": "0.1.0",
    "dependencies":{
        "csp": "kubostech/libcsp#~1.5.0"
    },
    "homepage": "https://<homepage>",
    "description": "Example app running on KubOS Linux."
}

Relevant Configuration Options

These are the configuration options which are most likely to be changed for a project. (For all other options, refer to Yotta’s documentation.)

name

The module name, which is also used as the file name of the compiled application binary.

By default, this is the project name, however, it can be changed to anything.

Naming rules:

  • Must start with a letter
  • No uppercase letters
  • Numbers are allowed
  • Hyphens are allowed
bin

Relative path to the project’s source code.

dependencies

Project library dependencies.

To keep Kubos project binaries small, kubos build will only include libraries which have been specified in this object. As a result, if you want to use a Kubos library, it must be specified here, or must be included with another library you specify.

WARNING: “kubos-rt” is a required dependency for all KubOS RT projects

Object Properties:
 
  • {component} (string) – Project dependency location and/or version

Available dependency name/value pairs (hierarchy denotes included dependecies. Italics denotes Yotta targetDependencies):

  • “cmd-control-client”: “kubostech/cmd-control-client”

    • “csp”: “kubostech/libcsp”
    • “command-and-control”: “kubostech/command-and-control”
    • “ipc”: “kubostech/ipc”
    • “tinycbor”: “kubostech/tinycbor”
  • “cmd-control-daemon”: “kubostech/cmd-control-daemon”

    • “csp”: “kubostech/libcsp”
    • “command-and-control”: “kubostech/command-and-control”
    • “ipc”: “kubostech/ipc”
    • “tinycbor”: “kubostech/tinycbor”
    • “kubos-core”: “kubostech/kubos-core”
  • “cmsis-core”: “kubostech/cmsis-core”

    • “cmsis-core-st”: “kubostech/cmsis-core-st”

      • “cmsis-core-stm32f4”: “kubostech/cmsis-core-stm32f4”

        • “cmsis-core”: “kubostech/cmsis-core”

        • “stm32cubef4”: “kubostech/stm32cubef4”

        • “cmsis-core-stm32f405rg”: “kubostech/cmsis-core-stm32f405rg”

          • “cmsis-core”: “kubostech/cmsis-core”
        • “cmsis-core-stm32f407xg”: “kubostech/cmsis-core-stm32f407xg”

          • “cmsis-core”: “kubostech/cmsis-core”
  • “command-and-control”: “kubostech/command-and-control”

  • “csp”: “kubostech/libcsp”

    • “freertos”: “kubostech/freertos”
    • “kubos-hal”: “kubostech/kubos-hal”
    • “tinycbor”: “kubostech/tinycbor”
  • “freertos”: “kubostech/freertos”

    • “cmsis-core”: “kubostech/cmsis-core”
    • “freertos-config-stm32f4”: “kubostech/freertos-config-stm32f4”
    • “freertos-config-msp430f5529”: “kubostech/freertos-config-msp430f5529”
  • “ipc”: “kubostech/ipc”

    • “csp”: “kubostech/libcsp”
    • “tinycbor”: “kubostech/tinycbor”
    • “kubos-rt”: “kubostech/kubos-rt”
  • “kubos-core”: “kubostech/kubos-core”

    • “csp”: “kubostech/libcsp”
    • “kubos-hal”: “kubostech/kubos-hal”
  • “kubos-hal”: “kubostech/kubos-hal”

    • “csp”: “kubostech/libcsp”

    • “kubos-hal-linux”: “kubostech/kubos-hal-linux”

      • “kubos-hal” : “kubostech/kubos-hal”
    • “kubos-hal-msp430f5529”: “kubostech/kubos-hal-msp430f5529”

      • “kubos-hal” : “kubostech/kubos-hal”
      • “msp430f5529-hal”: “kubostech/msp430f5529-hal”
    • “kubos-hal-stm32f4”: “kubostech/kubos-hal-stm32f4”

      • “kubos-hal”: “kubostech/kubos-hal”

      • “stm32cubef4-stm32f405rg”: “kubostech/stm32cubef4-stm32f405rg”

        • “cmsis-core”: “kubostech/cmsis-core”
      • “stm32cubef4-stm32f407vg”: “kubostech/stm32cubef4-stm32f407vg”

        • “cmsis-core”: “kubostech/cmsis-core#”
  • “kubos-rt”: “kubostech/kubos-rt”

    • “freertos”: “kubostech/freertos”
    • “csp”: “kubostech/libcsp”
    • “kubos-hal”: “kubostech/kubos-hal”
    • “kubos-core”: “kubostech/kubos-core”
  • “stm32cubef4”: “kubostech/stm32cubef4”

    • “stm32cubef4-stm32f405rg”: “kubostech/stm32cubef4-stm32f405rg”

      • “cmsis-core”: “kubostech/cmsis-core”
    • “stm32cubef4-stm32f407vg”: “kubostech/stm32cubef4-stm32f407vg”

      • “cmsis-core”: “kubostech/cmsis-core”
  • “telemetry”: “kubostech/telemetry”

    • “ipc”: “kubostech/ipc”

    • “kubos-core”: “kubostech/kubos-core”

    • “telemetry-linux”: “kubostech/telemetry-linux”

      • “ipc”: “kubostech/ipc”
      • “kubos-core”: “kubostech/kubos-core”
      • “telemetry”: “kubostech/telemetry”
      • “tinycbor”: “kubostech/tinycbor”
    • “telemetry-rt”: “kubostech/telemetry-rt”

      • “ipc”: “kubostech/ipc”
      • “kubos-core”: “kubostech/kubos-core”
      • “kubos-rt”: “kubostech/kubos-rt”
  • “telemetry-aggregator”: “kubostech/telemetry-aggregator”

    • “telemetry”: “kubostech/telemetry”
  • “telemetry-storage”: “kubostech/telemetry-storage”

    • “kubos-core”: “kubostech/kubos-core”
    • “telemetry”: “kubostech/telemetry”
    • “kubos-rt”: “kubostech/kubos-rt”
  • “tinycbor”: “kubostech/tinycbor”