Build end-to-end secured LoRaWAN® networks with 99,9%+ availability

The Things Stack is a robust yet flexible LoRaWAN Network Server that caters to the needs of demanding LoRaWAN deployments, from covering the essentials to advanced security configurations and device life cycle management.

Added

  • Gateway antenna placement; unknown, indoor or outdoor. This can now be specified with CLI, e.g. for the first antenna: ttn-lw-cli gateways set <gateway-id> --antenna.index 0 --antenna.placement OUTDOOR. The antenna placement will be reported to Packet Broker Mapper.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.
  • Payload formatter length validation in the Console.
  • User session management (listing and deleting) in the Identity Server and the CLI.
  • Improved logging for the OAuth server.
  • LR-FHSS modulation
    • Additional fields for the Gateway and Rx Metadata API. This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.
    • Support for LR-FHSS fields when translating uplink messages with the UDP protocol.
  • Network Server now appends network identifiers in forwarded uplink messages. These are populated from the ns.net-id and the new ns.cluster-id configuration option.
    • See the new uplink_message.network_identifiers.net_id, uplink_message.network_identifiers.cluster_id and uplink_message.network_identifiers.tenant_id fields.
    • This can be useful for HTTP webhooks to determine the Network Server that received and forwarded an uplink message.
  • GetDefaultMACSettings RPC for requesting the default and desired MAC settings for a Band (Frequency Plan) and LoRaWAN regional parameters version.
  • Error handling for missing templates in device repository form in the Console.
  • Cache gateway entity responses for requests made to the IS by the GS. See the new gs.entity-registry-cache.size and gs.entity-registry-cache.timeout configuration options.
  • API for searching tenants.
  • End device first activation timestamp in the Identity Server end device store.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.
  • Azure IoT Hub integration via an application package.
  • Resilience to flakiness in upstream servers during gateway claiming.
  • Opt out of Packet Broker for individual gateways, see the new disable_packet_broker_forwarding gateway option.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.
    • This is only relevant when Packet Broker is enabled and configured by the network operator.
  • Gateways are now disconnected when settings affecting the connection with Gateway Server change. Use the gs.fetch-gateway-interval and gs.fetch-interval-jitter to configure how often the gateway is fetched from the entity registry.
  • Small UX improvements to the LoRaCloud DAS forms in the Console.
  • End device first activation timestamp in the Identity Server end device store.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.
  • AppJs interface for applications to get the LoRaWAN AppSKey directly from the Join Server.
  • Console support for DevEUI generation from the configured DevEUI address block.
    • This requires console.ui.dev-eui-issuing-enabled and console.ui.dev-eui-app-limit to be set with the same values as in the Identity Server configuration.

Changed

  • When a gateway uplink message contains duplicate data uplinks, only the one with the highest RSSI are forwarded.
  • The HTTP port now allows HTTP/2 connections over cleartext (h2c).
  • ttn-lw-stack ns-db migrate command records the schema version and only performs migrations if on a newer version.
    • Use the --force flag to force perform migrations.
  • Any authenticated user in the network can now list the collaborators of entities in the network.
  • The search RPCs no longer require fields to be specified in the field mask when those fields are already specified as filters.
  • When generating client configuration with the CLI use command, automatically set the correct Identity Server and OAuth Server addresses for The Things Stack Cloud and The Things Stack Community Edition.

Removed

  • The old log format.

Fixed

  • Network Server ADR algorithm data rate adjustment behavior on negative margin.
  • CLI gateway set --antenna.remove command failing to remove gateway antennas in some cases.
  • CLI gateway set --antenna.gain <gain> command crashing when no gateway antennas are present.
  • Webhook template path variable expansion of query parameters.
  • LBS LNS Auth Secret displays garbage value when updated.
  • Transmit confirmation messages for LoRa Basics Station gateways.
  • Instability and frequent crashes when internet connection is lost in the Console.
  • Rate limiting for TenantRegistry.GetTenantIdentifiersForGatewayEUI is now applied per gateway EUI.
  • Rate limiting for TenantRegistry.GetTenantIdentifiersForEndDeviceEUIs is now applied per end device EUI.
  • Panic in GCS when CUPS rotation is set without a key.
  • Rate limiting for GatewayRegistry.GetGatewayIdentifiersForEUI is now applied per gateway EUI.
  • Network Server ensures that the Band ID in the end device version identifiers match the configured Frequency Plan of the device.

See what's new in V3.14.0

->

Features

The Things Stack is comprised of an architecture of loosely coupled components which ensures the security, data routing and battery optimization of LoRaWAN end devices.

The Things Stack is a complete and open source LoRaWAN Network Server designed for various deployment scenarios, supporting all existing LoRaWAN versions (including 1.1), operation modes A, B and C, and all regional parameters as released by the LoRa Alliance.

Documentation

The Things Stack is an open source LoRaWAN Network Server suitable for global, geo-distributed public and private deployments as well as for small, local networks. The architecture follows the LoRaWAN Network Reference Model for standards compliancy and interoperability. This project is actively maintained by The Things Industries.

LoRaWAN is a protocol for low-power wide area networks. It allows for large scale Internet of Things deployments where low-powered devices efficiently communicate with Internet-connected applications over long range wireless connections.

Community

Thanks to a large developer community, The Things Stack is continuously being improved. There are many ways to contribute to the project, thinking of reporting issues, requesting and implementing new features and writing documentation. Read more on how to contribute in the LoRaWAN stack repository.

Hosted solutions, as well as commercial support and consultancy are offered by The Things Industries.