Capabilities

data class Capabilities(val firmwareVersion: String?, forceEnableAll: Boolean = isDebug)(source)

Defines the capabilities and feature support based on the device firmware version.

This class provides a centralized way to check if specific features are supported by the connected node's firmware. Add new features here to ensure consistency across the app.

Note: Properties are calculated once during initialization for efficiency.

Constructors

Link copied to clipboard
constructor(firmwareVersion: String?, forceEnableAll: Boolean = isDebug)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Ability to mute notifications from specific nodes via admin messages.

Link copied to clipboard

Ability to request neighbor information from other nodes. Gated to UNRELEASED until working reliably.

Link copied to clipboard

Ability to send verified shared contacts. Supported since firmware v2.7.12.

Link copied to clipboard

Ability to toggle device telemetry globally via module config. Supported since firmware v2.7.12.

Link copied to clipboard

Ability to toggle the 'is_unmessageable' flag in user config. Supported since firmware v2.6.9.

Link copied to clipboard
Link copied to clipboard

Support for ESP32 Unified OTA. Supported since firmware v2.7.18.

Link copied to clipboard

Support for runtime lockdown mode (per-connection passphrase auth). Supported since firmware v2.8.0. Note: lockdown is also hardware-gated (nRF52 only) — the device advertises real support by sending a LockdownStatus, which is the authoritative signal and drives the actual UI state.

Link copied to clipboard

Support for the LoRa region→preset compatibility map. Supported since firmware v2.8.0. Older firmware never sends the map, so the UI keeps the preset list unconstrained (preset availability is supportsPreset).

Link copied to clipboard

Support for the Mesh Beacon module (ModuleConfig.MeshBeaconConfig broadcast/listen). The proto is upstream but the firmware module traces to a community fork; gate the config editor to 2.8.0+ so older radios don't show a config they'd silently ignore.

Link copied to clipboard

Support for sharing contact information via QR codes. Supported since firmware v2.6.8.

Link copied to clipboard

Support for location sharing on secondary channels. Supported since firmware v2.6.10.

Link copied to clipboard

Support for Status Message module. Supported since firmware v2.8.0.

Link copied to clipboard

Support for TAK (ATAK) module configuration. Gated to firmware v2.8.0.

Link copied to clipboard

Support for the v2 TAK port (ATAK_PLUGIN_V2 = 78) with TAKPacketV2 + zstd dictionary compression. Supported since firmware v2.8.0. Firmware v2.7.x and earlier only support the legacy ATAK_PLUGIN port (72) with the original TAKPacket schema (PLI + GeoChat only, no compression), so the bridge falls back to that path for older nodes.

Functions

Link copied to clipboard

Whether this firmware's preset table contains preset (ChannelOption.minFirmware); older firmware silently falls back to LONG_FAST when sent an unknown preset, so the picker hides it.

Link copied to clipboard

Whether this firmware's region table contains region. Regions declare the release that introduced them via RegionInfo.minFirmware; older firmware would treat an unknown region code as UNSET, so the picker hides it.