Project Configuration#
Aliro example projects are assembled from Simplicity SDK Component (SLC) components rather than written as monolithic applications. Which components you install determines which transport the reader uses, whether a command-line interface (CLI) is present, how Bluetooth Low Energy (BLE) is shared with Matter, and how much power the device draws. This page describes the components that matter most in the stock examples, the BLE side-channel mechanism used by AliroMatterLock, and what it takes to move an example toward low-power operation.
Overview#
Components are managed from the Software Components tab of the Project Configurator in Simplicity Studio 6. Aliro components appear under the aliro package and Matter components under the matter package. Most components also contribute a configuration header that you edit through the Configuration Wizard or directly in the generated config/ directory.
The following best practices make component changes predictable:
Clean and rebuild after adding or removing components so that the generated catalog symbols, such as
SL_CATALOG_ALIRO_SHELL_PRESENTandSL_CATALOG_ALIRO_TEST_TASK_PRESENTmatch the new configuration. Application code branches on these symbols.Let Simplicity Studio resolve component conflicts rather than forcing a selection. Several power-related components in Enabling Low-Power Mode deliberately conflict with development components; accepting the proposed replacements is the intended path.
Configuration headers you are most likely to touch:
Header | Owning component | Controls |
|---|---|---|
|
| Reader application and transport selection |
|
| Reader idle poll and inter-transaction delays |
|
| Near Field Communication (NFC) task sizing and driver options |
|
| Credential and issuer key array capacities |
|
| Aliro log enable and level threshold |
|
| Board General-Purpose Input/Output (GPIO) and bus assignments |
|
| Intermittently Connected Device (ICD) idle and active mode timing |
Notable SLC Components in the Example Project#
The Aliro package components installed by the stock projects:
Component | Purpose | Used by | Optional |
|---|---|---|---|
| Core Aliro access protocol, cryptography, and transport logic | Both | No |
| Reader application and transport configuration headers | Both | No |
| Reader configuration model, config store, and shell command handlers | Both | No |
| Selects the reader transport; mutually exclusive | Both (one of) | No — pick one |
| Vendor-neutral | NFC builds | No |
| Reference ST25R frontend driver | NFC builds | Replaceable — see NFC Hardware and Porting |
| ST RF Abstraction Layer (RFAL) library for the chosen integrated circuit (IC) | NFC builds | Replaceable |
| EFR32 GPIO and hardware abstraction | Both | No |
| Access credential store and tap-time authorizer | Both | No |
| Issuer key store used by the step-up phase | Both | Yes, if the product does not support step-up |
| Basic Encoding Rules Tag-Length-Value (BER-TLV) and Concise Binary Object Representation (CBOR) encoding | Both | No |
| Shell engine and Aliro command handlers | Both | Yes |
| Standalone Universal Asynchronous Receiver-Transmitter (UART) CLI task and streamer | Aliro Minimal Reader | Yes |
| Certification test scenarios ( | Both | Yes |
| Matter BLE side-channel forwarder | AliroMatterLock | Required for BLE reader builds; inactive on NFC builds |
Supporting Simplicity SDK and Matter components that the examples depend on:
Component | Role |
|---|---|
| Non-volatile memory (NVM) backend for the Aliro storage layer (Aliro Minimal Reader; AliroMatterLock uses the Matter NVM path) |
| Board debug UART used by the shell and logs |
| Serial Peripheral Interface (SPI) bus to the ST25R expansion board (NFC builds) |
| Logical Link Control and Adaptation Protocol channel used by the Aliro BLE transport |
| Matter-side hook that lets a non-Matter BLE client share the stack |
| Door Lock and ICD Management clusters on AliroMatterLock |
| OpenThread Full Thread Device (FTD) stack in the stock AliroMatterLock projects |
| Development conveniences on AliroMatterLock; removed by the low-power component |
For guidance on which application source files you own and where product logic belongs, see Customizing the Application.
BLE Side Channel#
On AliroMatterLock, both Matter and the Aliro reader need the same Bluetooth radio and stack for different purposes. Matter uses BLE for commissioning. An Aliro BLE reader needs its own advertising, GATT attribute traffic, and an L2CAP credit-based channel to the credential device. The Matter extension resolves the shared-radio requirement with a BLE side channel: Matter remains the owner of the Bluetooth stack, and events it does not reserve for itself are offered to an injected side-channel implementation.
The mechanism is selected by installing the matter_ble_side_channel component from the Matter package. The Aliro side of it lives in aliro_matter_integration, which supplies the side-channel implementation and injects it into the Matter BLE manager during application startup. Both stock AliroMatterLock projects install the pair, but only BLE reader builds actually inject the channel — the call in app_init() is guarded on the BLE transport, so an NFC build carries the components without activating them.
Event routing is narrow by design. The Aliro side channel claims only the events the reader needs — connection opened and closed, the L2CAP channel open request, credit, and data events, and GATT server attribute writes — and forwards them to the Aliro reader BLE driver. Everything else stays with Matter. Aliro advertising and its GATT database remain owned by the Aliro reader driver rather than being configured through the side channel, so the side channel is a forwarder, not a second BLE stack.
Note: Sharing the radio requires a second advertising set, so the stock projects raise
SL_BT_CONFIG_USER_ADVERTISERSto2whenevermatter_ble_side_channelis present. Thebluetooth_feature_l2capcomponent is also required.
The standalone Aliro Minimal Reader has no Matter stack and therefore no side channel. The reader owns the Bluetooth stack outright, and neither matter_ble_side_channel nor aliro_matter_integration applies.
Enabling Low-Power Mode#
Neither example ships configured for low power. Both keep a debug UART active, run a shell, and, on AliroMatterLock, join the Thread network as a Full Thread Device (FTD) that must stay awake to route. Moving to low power is mostly a matter of component selection, and the work differs by application.
AliroMatterLock#
Three changes move the lock toward a battery-friendly configuration:
Switch the Thread stack to a Minimal Thread Device. Replace
ot_stack_ftdwithot_stack_mtd. A sleepy device cannot act as a Thread router, so this change is a prerequisite rather than an optimization.Install ICD server support. Add
matter_icd_core(ICD Server Configuration). It requires the ICD Management cluster — already present in the stock projects — andot_stack_mtd, and it conflicts withot_stack_ftd, so installing it drives the MTD switch in step 1. It contributessl_matter_icd_config.h, where the idle and active mode timing lives. The stock projects already carry the related values in their configuration (SL_IDLE_MODE_DURATION_S,SL_ACTIVE_MODE_DURATION_MS,SL_ACTIVE_MODE_THRESHOLD,SL_TRANSPORT_IDLE_INTERVAL,SL_TRANSPORT_ACTIVE_INTERVAL); they apply once ICD is enabled.Install the low-power component. Add
matter_platform_low_power(Low Power Mode). This component works by conflicting with the development components that keep peripherals awake, so installing it removes Matter Shell, the OpenThread CLI, the display and QR code components, Matter UART, and logging to UART.
Plan for what installing matter_platform_low_power takes away. Removing Matter Shell also removes the host for the Aliro CLI commands that aliro_shell_core bridges into it, and removing the display removes the commissioning QR code and status screens. Provisioning and commissioning therefore need a different path — a manufacturing-time NVM record, or commissioning from a QR code obtained another way. Because it makes debugging considerably harder, treat installing matter_platform_low_power as the last step before power measurement rather than a default.
For ICD behavior, check-in protocol, and the trade-off between idle duration and responsiveness, see the Silicon Labs Matter ICD documentation.
Aliro Minimal Reader#
The standalone reader has no Thread stack or ICD concept, so the reductions are simpler:
Remove the CLI. Uninstall
aliro_shelland thealiro_shell_coreengine it pulls in, plusaliro_test_taskif you no longer need the certification commands. This removes the shell task, its UART streamer, and the interactive provisioning path — so provision the reader configuration and credentials into NVM by other means first.Disable Aliro logging. Set
ALIRO_LOG_ENABLEto0inaliro_log_config.h, or raiseAPP_LOG_LEVEL_FILTER_THRESHOLDtoALIRO_LOG_LEVEL_ERRORif you want to keep errors. Aliro logs are emitted on the same Virtual COM Port (VCOM) UART as the shell, so leaving them on keeps that peripheral busy after the shell is gone.
With both removed, nothing in the Aliro application drives the debug UART, so uartdrv_eusart can normally be dropped as well — confirm first that no other component in your project uses the VCOM instance.
Related Topics
Customizing the Application — Application source ownership and product logic placement
CLI Setup and Commands — Enable the CLI and use Aliro shell commands
Getting Started — Environment setup, hardware, and demos
NFC Hardware and Porting — Replace or keep the reference ST25R NFC stack