Skip to content

Commit 3258275

Browse files
committed
Release v3.3.0
1 parent 8d052b2 commit 3258275

File tree

452 files changed

+338458
-9661
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

452 files changed

+338458
-9661
lines changed

CHANGELOG.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [v3.3.0] 2023-05-31
8+
9+
### Added
10+
11+
* [general] Support of LR1121 radio (target: lr1121)
12+
* [makefile] Provide a way to change any LBM define values in make command (use `EXTRAFLAGS` )
13+
* [utilities] Add a porting on NUCLEO-L073 board using LL drivers for minimal flash usage
14+
* [utilities] Add a porting tool in main examples to help during mcu porting
15+
16+
### Changed
17+
18+
* [lr11xx_driver] Update to version `v2.3.0`
19+
* [sx126x_driver] Update to version `v2.2.0`
20+
* [makefile] Default Regional Parameters option is now RP2-1.0.3 LoRaWAN® Regional Parameters (previous was RP2-1.0.1)
21+
* [utilities] Add response code assert in exti example
22+
* [utilities] Remove temperature from exti example and replace it with 32b counter
23+
* [utilities] Remove unused implementations and calls of uart4 related functions in smtc_hal_l4
24+
* [modem] Add randomness before any modem task that need to uplink something
25+
* [alarm] Clamp alarm timer to 864000s ie 10 days
26+
* [stack] Set minimal default reception window size to 16ms instead of 6 ms to avoid ping slots issue in FSK (can be changed be overriding `MIN_RX_WINDOW_DURATION_MS` define)
27+
28+
### Fixed
29+
30+
* Issue [#5](https://github.com/Lora-net/SWL2001/issues/5): Correct typo on MCU_FLAGS in makefile
31+
* Issue [#6](https://github.com/Lora-net/SWL2001/issues/6): Example does not override EUI and Keys in case code is built with `CRYPTO=LR11XX_WITH_CREDENTIALS`
32+
* Issue [#7](https://github.com/Lora-net/SWL2001/issues/7): Remove ARM-specific flag from common.mk
33+
* Issue [#9](https://github.com/Lora-net/SWL2001/issues/9): Fix size error in smtc_secure_element_get_pin()
34+
* [LBT] Fix lbt issue when tcxo startup delay is greater than default `RP_MARGIN_DELAY` value (8ms)
35+
* [LRFHSS] Correct tx done timestamp with known bit padding delay to avoid issue with following rx windows (principally seen on US and AU regions)
36+
* [AU915/US915] Fix LoRaWAN Link Adr Request issue (channel mask control case 5 missing impact on 500kHz bank)
37+
* [utilities] In exti example, fix evaluation kit blue button missing pin in irq configuration
38+
739
## [v3.2.4] 2022-08-23
840

941
### Added
@@ -38,8 +70,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
3870
* [LBT] Moved log print after enqueued the sniffing task in Radio Planer to avoid to add a delays
3971
* [ADR] In case a MAC command `link_adr_req` with a new channel mask is received, it is now accepted if the custom datarate profile is enabled and configured with the highest datarate of the corresponding region
4072
* [LFU/Stream] In case of reception of rejoin request from DAS, reset LFU and stream services properly
41-
*[ClockSyncService/MAC] Fixed an issue where the Clock Synchronization Service was not reloaded when DeviceTimeAns was not received
42-
*[DeviceTimeReq/MAC] Fixed an issue where the GPS epoch time became invalid if DeviceTimeAns not received
73+
* [ClockSyncService/MAC] Fixed an issue where the Clock Synchronization Service was not reloaded when DeviceTimeAns was not received
74+
* [DeviceTimeReq/MAC] Fixed an issue where the GPS epoch time became invalid if DeviceTimeAns not received
4375

4476
## [v3.1.7] 2022-04-22
4577

Makefile

100644100755
Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ LOG_MEM ?= yes
3333
RADIO ?= nc
3434

3535
#MCU - Must be provided by user
36-
MCU_FLAGS =? nc
36+
MCU_FLAGS ?= nc
3737

3838
#-----------------------------------------------------------------------------
3939
# Internal LBM features management
@@ -72,7 +72,7 @@ USE_GNSS ?= yes
7272
# default action: print help
7373
#-----------------------------------------------------------------------------
7474
help:
75-
$(call echo_help_b, "Available TARGETs: sx128x lr1110 lr1120 sx1261 sx1262 sx1268")
75+
$(call echo_help_b, "Available TARGETs: sx128x lr1110 lr1120 lr1121 sx1261 sx1262 sx1268")
7676
$(call echo_help, "")
7777
$(call echo_help_b, "-------------------------------- Clean -------------------------------------")
7878
$(call echo_help, " * make clean_<TARGET> : clean basic_modem for a given target")
@@ -81,7 +81,7 @@ help:
8181
$(call echo_help_b, "----------------------------- Compilation ----------------------------------")
8282
$(call echo_help, " * make basic_modem_<TARGET> MCU_FLAGS=xxx : build basic_modem on a given target with chosen mcu flags")
8383
$(call echo_help, " * MCU_FLAGS are mandatory. Ex for stm32l4:")
84-
$(call echo_help, " * MCU_FLAGS=\"-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard\"")
84+
$(call echo_help, " * MCU_FLAGS=\"-mcpu=cortex-m4 -mthumb -mabi=aapcs -mfpu=fpv4-sp-d16 -mfloat-abi=hard\"")
8585
$(call echo_help, "")
8686
$(call echo_help_b, "---------------------- Optional build parameters ---------------------------")
8787
$(call echo_help, " * REGION=xxx : choose which region should be compiled (default: all)")
@@ -96,7 +96,7 @@ help:
9696
$(call echo_help, " * - RU_864")
9797
$(call echo_help, " * - US_915")
9898
$(call echo_help, " * - WW_2G4 (to be used only for lr1120 and sx128x targets)")
99-
$(call echo_help, " * RP_VERSION=xxx : choose wich regional paramerter version should be compiled (default: RP2_101) ")
99+
$(call echo_help, " * RP_VERSION=xxx : choose wich regional paramerter version should be compiled (default: RP2_103) ")
100100
$(call echo_help, " * - RP2_101")
101101
$(call echo_help, " * - RP2_103 (LR-FHSS support)")
102102
$(call echo_help, " * CRYPTO=xxx : choose which crypto should be compiled (default: SOFT)")
@@ -125,6 +125,10 @@ ifeq ($(RADIO),lr1120)
125125
-include makefiles/lr11xx.mk
126126
endif
127127

128+
ifeq ($(RADIO),lr1121)
129+
-include makefiles/lr11xx.mk
130+
endif
131+
128132
ifeq ($(RADIO),sx1261)
129133
-include makefiles/sx126x.mk
130134
endif
@@ -148,7 +152,7 @@ endif
148152
.PHONY: FORCE
149153
FORCE:
150154

151-
all: basic_modem_sx128x basic_modem_lr1110 basic_modem_lr1120 basic_modem_sx1261 basic_modem_sx1262
155+
all: basic_modem_sx128x basic_modem_lr1110 basic_modem_lr1120 basic_modem_lr1121 basic_modem_sx1261 basic_modem_sx1262
152156

153157
#-----------------------------------------------------------------------------
154158
# Clean
@@ -165,6 +169,9 @@ clean_lr1110:
165169
clean_lr1120:
166170
$(MAKE) clean_target RADIO=lr1120
167171

172+
clean_lr1121:
173+
$(MAKE) clean_target RADIO=lr1121
174+
168175
clean_sx1261:
169176
$(MAKE) clean_target RADIO=sx1261
170177

@@ -186,6 +193,9 @@ basic_modem_lr1110:
186193
basic_modem_lr1120:
187194
$(MAKE) basic_modem RADIO=lr1120 $(MTHREAD_FLAG)
188195

196+
basic_modem_lr1121:
197+
$(MAKE) basic_modem RADIO=lr1121 $(MTHREAD_FLAG)
198+
189199
basic_modem_sx1261:
190200
$(MAKE) basic_modem RADIO=sx1261 $(MTHREAD_FLAG)
191201

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ The LoRaWAN version that is currently implemented in LoRa Basics Modem is v1.0.4
1010

1111
LoRa Basics Modem supports the following LoRaWAN regions:
1212

13-
* AS_923 (AS923-1, AS923-2, AS923-3)
13+
* AS_923 (AS923-1, AS923-2, AS923-3, AS923-4)
1414
* AU_915
1515
* CN_470
1616
* CN_470_RP_1_0
@@ -24,7 +24,7 @@ LoRa Basics Modem supports an emulation of LoRaWAN protocol for the 2.4GHz globa
2424

2525
### LoRaWAN regional parameters
2626

27-
Default regional parameters version supported by LoRa Basics Modem is rp2-1.0.1. It is possible to switch to rp2-1.0.3 at compile time.
27+
Default regional parameters version supported by LoRa Basics Modem is rp2-1.0.3. It is possible to switch back to rp2-1.0.1 at compile time.
2828

2929
### LoRaWAN class
3030

@@ -41,7 +41,7 @@ LoRa Basics Modem supports the following services:
4141
* Large files upload
4242
* ROSE Streaming
4343
* Application-Layer Clock synchronization
44-
* Almanac Update
44+
* Almanac Update for LoRa Edge
4545

4646
## LoRa Basics Modem API
4747

@@ -61,8 +61,9 @@ The Hardware Abstraction Layer of LoRa Basics Modem is defined in the `smtc_mode
6161

6262
LoRa Basics Modem supports the following transceivers:
6363

64-
* LR1110 with firmware 0x0307.
65-
* LR1120 with firmware 0x0101
64+
* LR1110 with firmware 0x0308.
65+
* LR1120 with firmware 0x0102
66+
* LR1121 with firmware 0x0102
6667
* SX1261
6768
* SX1262
6869
* SX1280
@@ -73,13 +74,11 @@ LoRa Basics Modem supports the following transceivers:
7374
* [LFU] In case LoRa Basics Modem is acting in US915 region with datarate DR0, files smaller than 13 bytes are not properly sent and cannot be reconstructed on LoRa Cloud side
7475
* [charge] Values returned by `smtc_modem_get_charge()` for regions CN470 and CN470_RP1 are not accurate
7576
* [charge] Values returned by `smtc_modem_get_charge()` for the LR-FHSS based datarate are not accurate
76-
* [multicast_class_b] Starting a class B multicast session with frequency equal to 0 will always return SMTC_MODEM_RC_INVALID even in the case lbm is acting in regions with frequency hopping beacon
77-
* [LBT] In case LBT is used (by user's choice or imposed by regional parameters) and if TCXO start time is greater than default RP_MARGIN_DELAY value (8ms), uplinks will never be sent.
78-
Workaround: At makefile level define RP_MARGIN_DELAY value to `TCXO start time + 3ms`. The consequence is that before rx1 and rx2 windows opening the mcu will be running and waiting during extra time.
77+
* [time] In case ALC_SYNC time service is used, when a valid time is received, the generated `SMTC_MODEM_EVENT_TIME` event will show a ghost missed event.
7978

8079
## Disclaimer
8180

82-
This software has been extensively tested when targeting LR1110 / LR1120 / SX1261 / SX1262 / SX1280 / SX1281 for LoRaWAN regions mentioned in [this paragraph](#lorawan-region). For all other combinations of features this software shall be considered an Engineering Sample.
81+
This software has been extensively tested when targeting LR1110 / LR1120 / LR1121 / SX1261 / SX1262 / SX1280 / SX1281 for LoRaWAN regions mentioned in [this paragraph](#lorawan-region). For all other combinations of features this software shall be considered an Engineering Sample.
8382

8483
Modem trace prints can only be used for debug purpose and shall be deactivated for production release.
8584

lora_basics_modem_version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ extern "C" {
5656
* --- PUBLIC TYPES ------------------------------------------------------------
5757
*/
5858
#define LORA_BASICS_MODEM_FW_VERSION_MAJOR 3
59-
#define LORA_BASICS_MODEM_FW_VERSION_MINOR 2
60-
#define LORA_BASICS_MODEM_FW_VERSION_PATCH 4
59+
#define LORA_BASICS_MODEM_FW_VERSION_MINOR 3
60+
#define LORA_BASICS_MODEM_FW_VERSION_PATCH 0
6161

6262
/*
6363
* -----------------------------------------------------------------------------

makefiles/common.mk

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,17 @@ BUILD_DIR_MODEM := $(BUILD_DIR_MODEM)_lr11xx_crypto_with_cred
9999
endif # LR11XX_WITH_CREDENTIALS
100100
endif # lr1120
101101

102+
ifeq ($(RADIO),lr1121)
103+
ifeq ($(CRYPTO),LR11XX)
104+
TARGET_MODEM := $(TARGET_MODEM)_lr11xx_crypto
105+
BUILD_DIR_MODEM := $(BUILD_DIR_MODEM)_lr11xx_crypto
106+
endif # LR11XX
107+
ifeq ($(CRYPTO),LR11XX_WITH_CREDENTIALS)
108+
TARGET_MODEM := $(TARGET_MODEM)_lr11xx_crypto_with_cred
109+
BUILD_DIR_MODEM := $(BUILD_DIR_MODEM)_lr11xx_crypto_with_cred
110+
endif # LR11XX_WITH_CREDENTIALS
111+
endif # lr1121
112+
102113
ifeq ($(MIDDLEWARE),yes)
103114
TARGET_MODEM := $(TARGET_MODEM)_middleware
104115
BUILD_DIR_MODEM := $(BUILD_DIR_MODEM)_middleware
@@ -178,7 +189,6 @@ WFLAG += \
178189
-Wno-unused-parameter \
179190
-Wpedantic \
180191
-fomit-frame-pointer \
181-
-mabi=aapcs \
182192
-fno-unroll-loops \
183193
-ffast-math \
184194
-ftree-vectorize \
@@ -266,8 +276,9 @@ COMMON_C_DEFS += \
266276
-DADD_SMTC_ALC_SYNC
267277
endif
268278

279+
EXTRAFLAGS ?=
269280

270-
CFLAGS += -fno-builtin $(MCU_FLAGS) $(BOARD_C_DEFS) $(COMMON_C_DEFS) $(MODEM_C_DEFS) $(BOARD_C_INCLUDES) $(COMMON_C_INCLUDES) $(MODEM_C_INCLUDES) $(OPT) $(WFLAG) -MMD -MP -MF"$(@:%.o=%.d)"
281+
CFLAGS += -fno-builtin $(MCU_FLAGS) $(BOARD_C_DEFS) $(COMMON_C_DEFS) $(MODEM_C_DEFS) $(EXTRAFLAGS) $(BOARD_C_INCLUDES) $(COMMON_C_INCLUDES) $(MODEM_C_INCLUDES) $(OPT) $(WFLAG) -MMD -MP -MF"$(@:%.o=%.d)"
271282
CFLAGS += -falign-functions=4
272283
CFLAGS += -std=c17
273284

makefiles/lr11xx.mk

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,25 @@ endif
77
ifeq ($(RADIO),lr1120)
88
TARGET = lr1120
99
endif
10-
10+
ifeq ($(RADIO),lr1121)
11+
TARGET = lr1121
12+
endif
1113

1214
#-----------------------------------------------------------------------------
1315
# Common sources
1416
#-----------------------------------------------------------------------------
1517

16-
ifeq ($(USE_GNSS),yes)
17-
SMTC_MODEM_SERVICES_C_SOURCES += \
18-
smtc_modem_core/smtc_modem_services/src/almanac_update/almanac_update.c
19-
endif
20-
18+
ifeq ($(RADIO),lr1121)
19+
USE_GNSS=no
20+
RADIO_DRIVER_C_SOURCES += \
21+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_bootloader.c\
22+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_crypto_engine.c\
23+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_driver_version.c\
24+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_radio.c\
25+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_regmem.c\
26+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_system.c\
27+
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_lr_fhss.c
28+
else
2129
RADIO_DRIVER_C_SOURCES += \
2230
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_bootloader.c\
2331
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_crypto_engine.c\
@@ -31,6 +39,11 @@ ifeq ($(USE_GNSS),yes)
3139
RADIO_DRIVER_C_SOURCES += \
3240
smtc_modem_core/radio_drivers/lr11xx_driver/src/lr11xx_gnss.c
3341
endif
42+
ifeq ($(USE_GNSS),yes)
43+
SMTC_MODEM_SERVICES_C_SOURCES += \
44+
smtc_modem_core/smtc_modem_services/src/almanac_update/almanac_update.c
45+
endif
46+
endif
3447

3548
SMTC_RAL_C_SOURCES += \
3649
smtc_modem_core/smtc_ral/src/ral_lr11xx.c
@@ -82,12 +95,8 @@ endif # soft_crypto
8295
#-----------------------------------------------------------------------------
8396
MODEM_C_DEFS += \
8497
-DLR11XX\
85-
-DLR11XX_TRANSCEIVER
86-
87-
ifeq ($(RADIO),lr1120)
88-
MODEM_C_DEFS += \
89-
-DLR1120
90-
endif
98+
-DLR11XX_TRANSCEIVER\
99+
-DLR11XX_DISABLE_WARNINGS
91100

92101
ifeq ($(CRYPTO),LR11XX)
93102
MODEM_C_DEFS += \

makefiles/regions.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ endif # REGION
3737
#-----------------------------------------------------------------------------
3838

3939
ifndef RP_VERSION
40-
MODEM_C_DEFS += -DRP2_101
40+
MODEM_C_DEFS += -DRP2_103
4141
endif
4242

4343
ifeq ($(RP_VERSION),RP2_103)

0 commit comments

Comments
 (0)