Configuration Reference

The configuration options below are derived from the Zephyr Kconfig definitions but represent the full set of tunable parameters for the Hubble Network SDK. The same options apply to all supported ports — Zephyr, FreeRTOS, ESP-IDF, bare-metal, and other RTOSes — though the mechanism for setting them varies by platform.

On Zephyr, set these in your application’s prj.conf file. On other platforms, define the equivalent CONFIG_ macros in your build system or project header.

Counter source

Choice — select one of:

Selects how the SDK computes the time counter used for EID rotation and key derivation.

CONFIG_HUBBLE_COUNTER_SOURCE_UNIX_TIME [default]

Unix time counter source

Derive the time counter from Unix epoch time. The counter increments once per rotation period (CONFIG_HUBBLE_EID_ROTATION_PERIOD_SEC). Best for devices with access to real-time clocks or network time synchronization.

CONFIG_HUBBLE_COUNTER_SOURCE_DEVICE_UPTIME

Device uptime counter source

Derive the time counter from device uptime. No Unix time required. Best for devices without a real-time clock, reliable time source, or method to provision time.

CONFIG_HUBBLE_EID_ROTATION_PERIOD_SEC

EID rotation period in seconds

Type:

int

Default:

86400

Range:

86400 to 86400

Period in seconds between EID (Ephemeral Identifier) rotations. Each rotation derives new encryption keys and a new BLE address for privacy. Currently locked to 86400 (24 hours) for backend compatibility. Future versions may support shorter periods.

CONFIG_HUBBLE_SAT_NETWORK

Hubble Satellite Network Library [PRE-PRODUCTION]

Type:

bool

Enable the satellite communication module. This feature is in pre-production. APIs and behavior may change in future releases. Not recommended for production deployments.

CONFIG_HUBBLE_SAT_NETWORK_SMALL

Use smaller code size for fly-by calculation

Type:

bool

Depends on:

HUBBLE_SAT_NETWORK

Use polynomial approximations for trigonometric functions in satellite pass prediction code. Reduces code size at the cost of reduced numerical accuracy in pass window calculations. Suitable for constrained devices where code size is critical.

CONFIG_HUBBLE_SAT_NETWORK_DEVICE_TDR

Device time drift retry rate in PPM

Type:

int

Default:

500

Depends on:

HUBBLE_SAT_NETWORK

Compensates for clock drift by adding retransmission retries proportional to time elapsed since the last time sync. Value is in parts per million (PPM). Higher values add more retries for the same drift, increasing reliability but also power consumption. Default of 500 PPM is suitable for typical crystal oscillators.

CONFIG_HUBBLE_SAT_NETWORK_DTM_MODE

Enable DTM mode

Type:

bool

Depends on:

HUBBLE_SAT_NETWORK

Enable DTM mode in the SDK. It is intended to test the operation of radio.

Hubble Sat Network protocol

Choice — select one of:

Select the satellite communication protocol version. The protocol determines packet framing and channel hopping behavior during transmissions.

CONFIG_HUBBLE_SAT_NETWORK_PROTOCOL_V1 [default]

Use V1 protocol

First version of the satellite protocol. Uses channel hopping across 19 pre-computed channels within each transmission window. Includes Reed-Solomon forward error correction.

CONFIG_HUBBLE_BLE_NETWORK

Hubble BLE Network Library

Type:

bool

Enable the BLE advertisement module.

Hubble Network key size

Choice — select one of:

Select the master key size for AES encryption and CMAC authentication. Sets the derived symbol CONFIG_HUBBLE_KEY_SIZE used throughout the crypto layer for buffer sizing and key operations.

CONFIG_HUBBLE_NETWORK_KEY_256

Use 256 bits key size

Use AES-256 for encryption and CMAC operations.

CONFIG_HUBBLE_NETWORK_KEY_128

Use 128 bits key size

Use AES-128 for encryption and CMAC operations.

CONFIG_HUBBLE_NETWORK_SECURITY_ENFORCE_NONCE_CHECK

Enforce check in nonce used in cryptography

Type:

bool

Default:

y

Depends on:

HUBBLE_BLE_NETWORK || HUBBLE_SAT_NETWORK

Validates that the encryption nonce is unique before encrypting. Prevents nonce reuse, which would compromise AES-CTR confidentiality. Enabled by default. Disabling removes the runtime check but risks catastrophic security failure if nonces are ever repeated. Only disable for testing or when the application guarantees uniqueness by other means.

CONFIG_HUBBLE_NETWORK_SEQUENCE_NONCE_CUSTOM

Application-defined sequence counter

Type:

bool

Depends on:

HUBBLE_BLE_NETWORK || HUBBLE_SAT_NETWORK

Override the default auto-incrementing sequence counter with an application-provided implementation. Useful for deterministic testing or persisting counters across reboots.

CONFIG_HUBBLE_UPTIME_CUSTOM

Application-defined uptime implementation

Type:

bool

Depends on:

HUBBLE_BLE_NETWORK || HUBBLE_SAT_NETWORK

Override the default platform uptime function with an application-provided implementation. Primarily useful for unit testing where controlled time values are needed to verify time-dependent behavior.

Hubble Network crypto provider

Choice — select one of:

Select the cryptographic backend for AES-CTR encryption and CMAC authentication.

CONFIG_HUBBLE_NETWORK_CRYPTO_MBEDTLS

Use MbedTLS

Use the MbedTLS library directly for AES-CTR and CMAC.

CONFIG_HUBBLE_NETWORK_CRYPTO_PSA [default]

Use PSA Crypto

Use the PSA Crypto API for AES-CTR and CMAC. This is the recommended backend for Zephyr and nRF platforms. When building with TF-M, cryptographic operations are delegated to the secure processing environment.

CONFIG_HUBBLE_NETWORK_CRYPTO_CUSTOM

Custom crypto implementation

Provide a custom cryptographic backend. The application must implement all functions declared in <hubble/port/crypto.h>