You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This migration guide covers the transition from Sidewalk Add-on v1.0.1 to v1.1.0.
10
+
The main changes include:
11
+
12
+
- :ref:`Semtech radio <semtech_radio_migration>` - Add new radio, refactor the radio configuration (see ).
13
+
14
+
.. Important: Existing SX126x users can continue without changes,
15
+
but new features require migration to the shield system.
16
+
17
+
Breaking Changes
18
+
================
19
+
20
+
.. Important: These changes require code modifications
21
+
22
+
- **API Change**: ``get_radio_cfg()`` function signature changed from ``const radio_sx126x_device_config_t*`` to ``const void*``
23
+
- **File Deletion**: :file:`subsys/config/common/src/app_subGHz_config.c` removed and replaced with radio-specific files
24
+
- **Build System**: Radio drivers now use conditional compilation based on devicetree
25
+
26
+
.. _semtech_radio_migration:
6
27
7
28
Semtech radio
8
29
=============
9
30
10
-
Starting from this release, the direct board overlay configuration for Semtech SX126x radio only was replaced with standardized DTS bindings for Semtech SX126x and LR1110 radios.
31
+
Starting from this release, the direct board overlay configuration for Semtech SX126x radio only has been replaced with standardized DTS bindings for Semtech SX126x and LR1110 radios.
11
32
12
33
Key changes:
13
-
- **Architecture**: from single-radio to multi-radio architecture
14
-
- **Devicetree Sources**: from basic GPIO and SPI label to advanced radio description
15
-
- **Samples**: from board-specific to shield-based configuration
34
+
- **Architecture**: From single-radio to configurable radio architecture
35
+
- **Devicetree Sources**: From basic GPIO and SPI labels to advanced radio description
36
+
- **Samples**: From board-specific to shield-based configuration
16
37
17
38
Architecture
18
39
************
19
40
20
-
SubGHz radio configuration in Sidewalk is based on `Zephyr Devicetree Sources <https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-2-reading-buttons-and-controlling-leds/topic/devicetree>`_ with a hardware description. It a common approach for all nRF Connect SDK applications.
41
+
SubGHz radio configuration in Sidewalk is based on `Zephyr Devicetree Sources <https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-2-reading-buttons-and-controlling-leds/topic/devicetree>`_ with hardware description. It is a common approach for all nRF Connect SDK applications.
21
42
22
-
Starting from this release, Semtech radios devicetree bindings (YAML files) are based on `LoRa Basics Modem integration in Zephyr OS <https://github.com/Lora-net/LBM_Zephyr>`_. It standardize radio description and allows to faster transition form LoRaWAN to Sidewalk projects based on Zephyr OS.
43
+
Starting from this release, Semtech radio devicetree bindings (YAML files) are based on `LoRa Basics Modem integration in Zephyr OS <https://github.com/Lora-net/LBM_Zephyr>`_. This standardizes radio description and allows faster transition from LoRaWAN to Sidewalk projects based on Zephyr OS.
23
44
24
-
Sidewalk Platform Abstraction Layer for subGHz radio uses Sidewalkspecific implementation (different than Lora Basic Modem in Zephyr). Sidewalk drivers doesn't follow Zephyr Device Driver model, instead hardware configuration form devicetree sources is translated to Sidewalk driver configuration structures in app_subGHz_config files.
45
+
Sidewalk Platform Abstraction Layer for subGHz radio uses Sidewalk-specific implementation (different from LoRa Basic Modem in Zephyr). Sidewalk drivers do not follow the Zephyr Device Driver model. Instead, hardware configuration from devicetree sources is translated to Sidewalk driver configuration structures in app_subGHz_config files.
25
46
26
47
Semtech radio parameters configured in devicetree:
48
+
27
49
- GPIOs
28
50
- SPI
29
51
- TCXO config
30
-
- regulator mode
31
-
- rx boost
32
-
- rfswitch (lr110 only)
52
+
- Regulator mode
53
+
- RX boost
54
+
- RF switch (LR1110 only)
33
55
34
56
Semtech radio parameters configured only in app_subGHz_config file:
35
-
- lna gain
36
-
- state timings
37
-
- regional config
57
+
58
+
- LNA gain
59
+
- State timings
60
+
- Regional config
38
61
39
62
File changes
40
63
************
41
64
42
-
The following files was impacted by new radio approach:
43
-
- app_subGHz_config: ``subsys/config/common/src/app_subGHz_config.c ``was deleted and replaced with radio specyfic files: ``app_subGHz_config_lr11xx.c`` and ``app_subGHz_config_sx126x.c``.
44
-
- get_radio_cfg: ``const radio_sx126x_device_config_t* get_radio_cfg(void)`` was replaced with ``const void* get_radio_cfg(void);``. It affects sidewalk platform initialization in ``sidewalk_event_platform_init`` (from ``samples/sid_end_device/src/sidewalk_events.c``) and ``sid_pal_common_init``(from ``subsys/sal/sid_pal/src/sid_common.c``)
45
-
- Devicetree: Added radio hardware description in: ``dts/bindings/lora_lbm`` and ``include/zephyr/dt-bindings/lora_lbm``.
46
-
- Shields: Added Arduino compatible Semtech radio shields in ``sidewalk/boards/shields``
65
+
The following files were impacted by the new radio approach:
66
+
67
+
- **app_subGHz_config**: :file:`subsys/config/common/src/app_subGHz_config.c` was deleted and replaced with radio-specific files: :file:`app_subGHz_config_lr11xx.c` and :file:`app_subGHz_config_sx126x.c`.
68
+
- **get_radio_cfg**: ``const radio_sx126x_device_config_t* get_radio_cfg(void)`` was replaced with ``const void* get_radio_cfg(void);``. This affects sidewalk platform initialization in :file:`samples/sid_end_device/src/sidewalk_events.c` and :file:`subsys/sal/sid_pal/src/sid_common.c`.
69
+
- **Devicetree**: Added radio hardware description in: :file:`dts/bindings/lora_lbm` and :file:`include/zephyr/dt-bindings/lora_lbm`.
70
+
- **Shields**: Added Arduino-compatible Semtech radio shields in :file:`boards/shields`.
47
71
48
-
New radio lr1110
72
+
New radio LR1110
49
73
****************
50
74
51
-
The support for new Semtech radio was added. The major changes included:
75
+
Support for the new Semtech LR1110 radio was added. The major changes included:
@@ -173,11 +197,12 @@ Example dts code snippet for nRF54l15 and sx126x hardware are shown below.
173
197
174
198
Notes:
175
199
176
-
- Compatible with ``sidewalk/dts/bindings/lora_lbm``
200
+
- Compatible with :file:`dts/bindings/lora_lbm`
177
201
- Semtech radio ``chosen`` as zephyr lora transceiver
178
-
- Semtech radio is a sub-node for spi node
202
+
- Semtech radio is a sub-node for SPI node
179
203
180
204
.. tab:: Old GPIO and SPI labels
205
+
181
206
.. code-block:: dts
182
207
183
208
/{
@@ -234,17 +259,25 @@ Example dts code snippet for nRF54l15 and sx126x hardware are shown below.
234
259
Notes:
235
260
236
261
- SPI instance alias ``sid_semtech``
237
-
- Semtech gpios defined separately
262
+
- Semtech GPIOs defined separately
238
263
239
264
SPI driver from nrfx instead of Zephyr
240
265
**************************************
241
266
242
-
The ``spi_nrfx`` `snippet <https://docs.nordicsemi.com/bundle/ncs-3.0.0/page/zephyr/build/snippets/using.html>`_ in Sidewalk sample added necessary changes in kconfigs and dts to use nrfx spi driver. The nrfx spi driver is recommended on nRF52 design with FSK transport protocol.
243
-
It's important to add snippet to ``sid_end_device`` namespace only. In other case build issues in mcuboot image build fails.
267
+
The ``spi_nrfx`` `snippet <https://docs.nordicsemi.com/bundle/ncs-3.0.0/page/zephyr/build/snippets/using.html>`_ in Sidewalk sample adds necessary changes in Kconfigs and DTS to use nrfx SPI driver. The nrfx SPI driver is recommended on nRF52 designs with FSK transport protocol.
268
+
269
+
.. Important: It is important to add the snippet to the ``sid_end_device`` namespace only.
270
+
Otherwise, build issues in mcuboot image build will fail.
244
271
245
272
.. code-block:: console
246
273
247
-
west build -b nrf52840dk/nrf52840 -p -- -DSHIELD="semtech_sx1262mb2cas" -Dsid_end_device_SNIPPET="spi_nrfx"
274
+
west build -b nrf52840dk/nrf52840 -p -- -DSHIELD="semtech_sx126xmb2xxs" -Dsid_end_device_SNIPPET="spi_nrfx"
0 commit comments