Build error during 'west flash --erase' within nRF Connect terminal of VSCode on MacOS

I am encountering a build error while setting up a build environment.
Can you provide assistance as to what the issue I am encountering may be?

I am using VSCode on MacOS Tahoe Lake to build and flash a BM15C module.
The SDK/toolchain is set to nRF Connect SDK 3.1.1.
The board target is set to nrf54l15dk/nrf54l15/cpuapp.
The system build is set to use sysbuild.

When using the nRF Connect terminal and the 'west flash --erase' command, this is the output (indented):

Working directory: /Users/davidsnelling/Workspace/fw-Gen2_Locks/build
SDK: nRF Connect SDK v3.1.1
Toolchain: nRF Connect SDK Toolchain v3.1.1

davidsnelling@MTI-MAC-X52WQNR99J build % pwd
/Users/davidsnelling/Workspace/fw-Gen2_Locks/build
davidsnelling@MTI-MAC-X52WQNR99J build % cd ..
davidsnelling@MTI-MAC-X52WQNR99J fw-Gen2_Locks % west flash --erase
-- west flash: rebuilding
[0/13] Performing build step for 'mcuboot'
ninja: no work to do.
[1/13] Performing build step for 'fw-Gen2_Locks'
[79/230] Performing build step for 'chip-gn'
Starting Matter library build in /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/modules/connectedhomeip
Generating compile_commands took 107ms
Done. Made 5431 targets from 450 files in 658ms
ninja: no work to do.
Matter library build complete
[139/228] Building CXX object CMakeFiles/app.dir/src/app_task.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/app_task.cpp: In member function 'CHIP_ERROR AppTask::Init()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/app_task.cpp:792:41: warning: unused variable 'status' [-Wunused-variable]
792 | Protocols::InteractionModel::Status status;
| ^~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/app_task.cpp: In static member function 'static void AppTask::MatterDeviceEventHandler(const chip::DeviceLayer::ChipDeviceEvent*, intptr_t)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/app_task.cpp:1500:18: warning: unused variable 'isNetworkProvisioned' [-Wunused-variable]
1500 | bool isNetworkProvisioned =
| ^~~~~~~~~~~~~~~~~~~~
[140/228] Building CXX object CMakeFiles/app.dir/src/bolt_lock_manager.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/bolt_lock_manager.cpp: In member function 'void BoltLockManager::Unlock(OperationSource, const chip::app::DataModel::Nullable<unsigned char>&, const chip::app::DataModel::Nullable<long long unsigned int>&, const chip::app::DataModel::Nullable<AccessManager<62>::ValidatePINResult>&)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/bolt_lock_manager.cpp:173:37: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'BoltLockManager::OperationSource' {aka 'chip::app::Clusters::DoorLock::OperationSourceEnum'} [-Wformat=]
173 | printk("State data: source = 0x%x FabricId = 0x%x \n", newStateData.mSource, newStateData.mFabricIdx);
| ~^ ~~~~~~~~~~~~~~~~~~~~
| | |
| unsigned int BoltLockManager::OperationSource {aka chip::app::Clusters::DoorLock::OperationSourceEnum}
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/bolt_lock_manager.cpp:173:53: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'chip::app::DataModel::Nullable<unsigned char>' [-Wformat=]
173 | printk("State data: source = 0x%x FabricId = 0x%x \n", newStateData.mSource, newStateData.mFabricIdx);
| ~^ ~~~~~~~~~~~~~~~~~~~~~~~
| | |
| unsigned int chip::app::DataModel::Nullable<unsigned char>
[146/228] Building CXX object CMakeFiles/app.dir/src/mti_app_task.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp: In static member function 'static bool AppTask::GetThreadNetworkInfo(chip::app::Clusters::DoorLock::CredentialTypeEnum)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:356:30: warning: unused variable 'meshPrefix' [-Wunused-variable]
356 | const otMeshLocalPrefix *meshPrefix = otThreadGetMeshLocalPrefix(instance);
| ^~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:358:9: warning: unused variable 'i' [-Wunused-variable]
358 | int i = 0;
| ^
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp: In static member function 'static bool AppTask::GetMattterTimeAndDate()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:425:17: warning: unused variable 'instance' [-Wunused-variable]
425 | otInstance *instance = chip::DeviceLayer::ThreadStackMgrImpl().OTInstance();
| ^~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:426:14: warning: unused variable 'aNetworkTime' [-Wunused-variable]
426 | uint64_t aNetworkTime;
| ^~~~~~~~~~~~
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:16:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp: In static member function 'static void AppTask::GetMatterOnboardingCode(chip::app::Clusters::DoorLock::CredentialTypeEnum)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:880:23: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'uint32_t' {aka 'unsigned int'} [-Wformat=]
880 | mti_print_raw("\nPasscode : %ld\n", aPayload.setUpPINCode);
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
| |
| uint32_t {aka unsigned int}
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_logging.h:156:39: note: in definition of macro 'mti_print_raw'
156 | #define mti_print_raw(...) printk(__VA_ARGS__);
| ^~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_app_task.cpp:880:39: note: format string is defined here
880 | mti_print_raw("\nPasscode : %ld\n", aPayload.setUpPINCode);
| ~~^
| |
| long int
| %d
[150/228] Building CXX object CMakeFiles/app.dir/src/mti_src/flash/mti_matter_diagnostic-logs.cpp.obj
In file included from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/lib/support/CodeUtils.h:30,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/lib/core/Optional.h:32,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/ConcreteAttributePath.h:23,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/data-model/Decode.h:22,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/data-model/DecodableList.h:21,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/zzz_generated/app-common/clusters/shared/Attributes.h:23,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h:23,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/clusters/diagnostic-logs-server/DiagnosticLogsProviderDelegate.h:21,
from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_matter_diagnostic_logs.h:21,
from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_matter_diagnostic-logs.cpp:23:
In member function 'bool chip::ChipError::operator!=(const chip::ChipError&) const',
inlined from 'virtual CHIP_ERROR chip::app::Clusters::DiagnosticLogs::LogProvider::EndLogCollection(chip::app::Clusters::DiagnosticLogs::LogSessionHandle)' at /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_matter_diagnostic-logs.cpp:266:15:
/opt/nordic/ncs/v3.1.1/modules/lib/matter/src/lib/core/CHIPError.h:204:61: warning: 'error.chip::ChipError::mError' is used uninitialized [-Wuninitialized]
204 | bool operator!=(const ChipError & other) const { return mError != other.mError; }
| ^~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_matter_diagnostic-logs.cpp: In member function 'virtual CHIP_ERROR chip::app::Clusters::DiagnosticLogs::LogProvider::EndLogCollection(chip::app::Clusters::DiagnosticLogs::LogSessionHandle)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_matter_diagnostic-logs.cpp:265:16: note: 'error' declared here
265 | CHIP_ERROR error;
| ^~~~~
[153/228] Building CXX object CMakeFiles/app.dir/src/mti_src/common/mti_network_manager.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_network_manager.cpp: In static member function 'static void Mti::AppServices::MonitoringServicesHandler(k_timer*)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_network_manager.cpp:94:29: warning: the address of 'static bool Mti::BLEService::sAdvActive()' will never be NULL [-Waddress]
94 | if(!GetBLEService().sAdvActive){ // BLE is not advertising
| ~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_network_manager.cpp:7:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/ble_services/mti_ble_service.h:215:17: note: 'static bool Mti::BLEService::sAdvActive()' declared here
215 | static bool sAdvActive(void);
| ^~~~~~~~~~
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_network_manager.cpp:15:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h: At global scope:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:56:29: warning: 'Mti::ldo2' defined but not used [-Wunused-variable]
56 | static const struct device *ldo2 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo2));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:55:29: warning: 'Mti::ldo1' defined but not used [-Wunused-variable]
55 | static const struct device *ldo1 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo1));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:54:29: warning: 'Mti::regulators' defined but not used [-Wunused-variable]
54 | static const struct device *regulators = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_regulators));
| ^~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:53:29: warning: 'Mti::pmic' defined but not used [-Wunused-variable]
53 | static const struct device *pmic = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_pmic));
| ^~~~
[154/228] Building CXX object CMakeFiles/app.dir/src/mti_src/common/mti_main.cpp.obj
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_main.cpp:41:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:56:29: warning: 'Mti::ldo2' defined but not used [-Wunused-variable]
56 | static const struct device *ldo2 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo2));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:55:29: warning: 'Mti::ldo1' defined but not used [-Wunused-variable]
55 | static const struct device *ldo1 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo1));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:54:29: warning: 'Mti::regulators' defined but not used [-Wunused-variable]
54 | static const struct device *regulators = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_regulators));
| ^~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:53:29: warning: 'Mti::pmic' defined but not used [-Wunused-variable]
53 | static const struct device *pmic = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_pmic));
| ^~~~
[155/228] Building CXX object CMakeFiles/app.dir/src/mti_src/ble_services/mti_ble_service.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/ble_services/mti_ble_service.cpp:44:42: warning: 'BT_LE_ADV_OPT_CONNECTABLE' is deprecated [-Wdeprecated-declarations]
44 | constexpr uint32_t kAdvertisingOptions = BT_LE_ADV_OPT_CONNECTABLE;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/platform/Zephyr/CHIPDevicePlatformEvent.h:28,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/platform/nrfconnect/CHIPDevicePlatformEvent.h:27,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/include/platform/CHIPDeviceEvent.h:388,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/include/platform/ConnectivityManager.h:31,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/include/platform/CHIPDeviceLayer.h:28,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/CASESessionManager.h:27,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/server/Server.h:26,
from /opt/nordic/ncs/v3.1.1/modules/lib/matter/src/app/clusters/time-synchronization-server/time-synchronization-server.h:28,
from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/ble_services/mti_ble_service.cpp:12:
/opt/nordic/ncs/v3.1.1/zephyr/include/zephyr/bluetooth/bluetooth.h:707:9: note: declared here
707 | BT_LE_ADV_OPT_CONNECTABLE __deprecated = BIT(0),
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/ble_services/mti_ble_service.cpp: In static member function 'static void Mti::BLEService::PairingFailed(bt_conn*, bt_security_err)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/ble_services/mti_ble_service.cpp:976:13: warning: unused variable 'status' [-Wunused-variable]
976 | int status = bt_unpair(BT_ID_DEFAULT, remote_addr);
| ^~~~~~
[157/228] Building CXX object CMakeFiles/app.dir/src/mti_src/ble_services/mti_ble_time_sync.cpp.obj
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/ble_services/mti_ble_time_sync.cpp:18:
/opt/nordic/ncs/v3.1.1/zephyr/include/zephyr/sys/timeutil.h: In function 'bool timespec_is_valid(const timespec*)':
/opt/nordic/ncs/v3.1.1/zephyr/include/zephyr/sys/timeutil.h:341:51: warning: comparison of integer expressions of different signedness: 'const long int' and 'unsigned int' [-Wsign-compare]
341 | return (ts->tv_nsec >= 0) && (ts->tv_nsec < NSEC_PER_SEC);
[159/228] Building CXX object CMakeFiles/app.dir/src/mti_src/crypto/mti_irk.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_irk.cpp: In static member function 'static int Mti::CryptoService::RetrieveIRK()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_irk.cpp:148:10: warning: the address of 'Mti::CryptoService::preshared_irk' will never be NULL [-Waddress]
148 | if (!preshared_irk)
| ^~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_irk.cpp:46:9: note: 'Mti::CryptoService::preshared_irk' declared here
46 | uint8_t CryptoService::preshared_irk[MTI_IRK_SIZE] = {};
| ^~~~~~~~~~~~~
[160/228] Building CXX object CMakeFiles/app.dir/src/mti_src/crypto/mti_cert_gen.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_cert_gen.cpp: In static member function 'static int Mti::CryptoService::GenerateOrGetKeyinKmu(psa_key_id_t*)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_cert_gen.cpp:392:62: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'psa_key_id_t' {aka 'unsigned int'} [-Wformat=]
392 | printk("Key already exists in KMU slot %d (Key ID: %lu)\n", LOCK_PRIVARTE_KEY_KMU_SLOT_ID, *key_id);
| ~~^ ~~~~~~~
| | |
| long unsigned int psa_key_id_t {aka unsigned int}
| %u
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_cert_gen.cpp: In static member function 'static void Mti::CryptoService::ProcessCert(uint8_t*)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_cert_gen.cpp:1074:31: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'unsigned int'} and 'int' [-Wsign-compare]
1074 | if ((index + length + 16) > cert_data_index) // +16 for end marker
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_cert_gen.cpp: In static member function 'static void Mti::CryptoService::CertGenTasks(uint8_t*, size_t)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/crypto/mti_cert_gen.cpp:1361:18: warning: unused variable 'user_console' [-Wunused-variable]
1361 | UserConsole *user_console = UserConsole::Instance();
| ^~~~~~~~~~~~
[166/228] Building CXX object CMakeFiles/app.dir/src/mti_src/user_management/mti_user_management.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp: In static member function 'static int Mti::UserMgmt::UserAddModDel(uint8_t*)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp:1306:72: warning: narrowing conversion of '(((int)(*(input + 6))) + 255)' from 'int' to 'chip::FabricIndex' {aka 'unsigned char'} [-Wnarrowing]
1306 | .createdBy = static_cast<chip::FabricIndex>(*(input + 6)) + MTI_BLE_LOCK_FABRIC,
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp:1307:72: warning: narrowing conversion of '(((int)(*(input + 7))) + 255)' from 'int' to 'chip::FabricIndex' {aka 'unsigned char'} [-Wnarrowing]
1307 | .lastModifiedBy = static_cast<chip::FabricIndex>(*(input + 7)) + MTI_BLE_LOCK_FABRIC,
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp:1325:12: warning: unused variable 'totalCredential' [-Wunused-variable]
1325 | size_t totalCredential = 0x01;
| ^~~~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp: At global scope:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp:539:13: warning: 'bool userExists(chip::EndpointId, uint16_t)' defined but not used [-Wunused-function]
539 | static bool userExists(chip::EndpointId endpointId, uint16_t userIndex)
| ^~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_management/mti_user_management.cpp:256:15: warning: 'chip::Protocols::InteractionModel::Status clearUserInternal(chip::EndpointId, chip::FabricIndex, chip::NodeId, uint16_t, const EmberAfPluginDoorLockUserInfo&, bool)' defined but not used [-Wunused-function]
256 | static Status clearUserInternal(chip::EndpointId endpointId, chip::FabricIndex modifierFabricId, chip::NodeId sourceNodeId,
| ^~~~~~~~~~~~~~~~~
[168/228] Building CXX object CMakeFiles/app.dir/src/mti_src/user_console/mti_user_console.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_console/mti_user_console.cpp: In function 'uint16_t get_debug_id_voltage()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_console/mti_user_console.cpp:111:29: warning: unused variable 'saadc_adv_config' [-Wunused-variable]
111 | nrfx_saadc_adv_config_t saadc_adv_config = {
| ^~~~~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_console/mti_user_console.cpp: In member function 'void Mti::UserConsole::print_command_options()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/user_console/mti_user_console.cpp:846:10: warning: unused variable 'lock_MAC_address' [-Wunused-variable]
846 | char lock_MAC_address[LOCK_MAC_ADDRESS_STRING_LENGTH];
| ^~~~~~~~~~~~~~~~
[170/228] Building CXX object CMakeFiles/app.dir/src/mti_src/pmic/mti_matter_reporting.cpp.obj
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_matter_reporting.cpp:8:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_matter_reporting.cpp: In static member function 'static void Mti::BMS::UpdatePowerSourceClusterState()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_matter_reporting.cpp:75:67: warning: implicit conversion from 'float' to 'double' when passing argument to function [-Wdouble-promotion]
75 | mti_printk("Battery level measurement failed %f", Battery.voltage);
| ~~~~~~~~^~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_logging.h:148:51: note: in definition of macro 'mti_printk'
148 | #define mti_printk(...) Mti::mti_print_info(__VA_ARGS__)
| ^~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_matter_reporting.cpp:119:103: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
119 | static_cast<uint32_t>(Battery.voltage * 1000.0));
| ~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_matter_reporting.cpp:11:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h: At global scope:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:56:29: warning: 'Mti::ldo2' defined but not used [-Wunused-variable]
56 | static const struct device *ldo2 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo2));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:55:29: warning: 'Mti::ldo1' defined but not used [-Wunused-variable]
55 | static const struct device *ldo1 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo1));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:54:29: warning: 'Mti::regulators' defined but not used [-Wunused-variable]
54 | static const struct device *regulators = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_regulators));
| ^~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:53:29: warning: 'Mti::pmic' defined but not used [-Wunused-variable]
53 | static const struct device *pmic = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_pmic));
| ^~~~
[171/228] Building CXX object CMakeFiles/app.dir/src/mti_src/pmic/mti_npm1300.cpp.obj
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.cpp:32:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:56:29: warning: 'Mti::ldo2' defined but not used [-Wunused-variable]
56 | static const struct device *ldo2 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo2));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:55:29: warning: 'Mti::ldo1' defined but not used [-Wunused-variable]
55 | static const struct device *ldo1 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo1));
| ^~~~
[173/228] Building CXX object CMakeFiles/app.dir/src/mti_src/finger_print/mti_fp_sensor-u20.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/finger_print/mti_fp_sensor-u20.cpp: In static member function 'static int Mti::FPSensorService::ResetTouch()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/finger_print/mti_fp_sensor-u20.cpp:1184:26: warning: unused variable 'state' [-Wunused-variable]
1184 | enum pm_device_state state;
| ^~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/finger_print/mti_fp_sensor-u20.cpp: In static member function 'static int Mti::FPSensorService::TurnONVin()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/finger_print/mti_fp_sensor-u20.cpp:1204:9: warning: unused variable 'status' [-Wunused-variable]
1204 | int status = 0;
| ^~~~~~
[174/228] Building CXX object CMakeFiles/app.dir/src/mti_src/pmic/mti_fuel_gauge.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp: In static member function 'static int Mti::BMS::FuelGaugeUpdate(const device*, bool)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp:343:60: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
343 | static_cast<int>(Battery.voltage * 1000.0),
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp:344:60: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
344 | static_cast<int>(Battery.current * 1000.0),
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp:46:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp: In static member function 'static int Mti::BMS::FuelGaugeInit(const device*)':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp:454:22: warning: implicit conversion from 'float' to 'double' when passing argument to function [-Wdouble-promotion]
454 | max_charge_current, term_charge_current);
| ^~~~~~~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_logging.h:139:57: note: in definition of macro 'mti_debug_printk'
139 | #define mti_debug_printk(...) Mti::mti_print_info(__VA_ARGS__)
| ^~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp:454:42: warning: implicit conversion from 'float' to 'double' when passing argument to function [-Wdouble-promotion]
454 | max_charge_current, term_charge_current);
| ^~~~~~~~~~~~~~~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/common/mti_logging.h:139:57: note: in definition of macro 'mti_debug_printk'
139 | #define mti_debug_printk(...) Mti::mti_print_info(__VA_ARGS__)
| ^~~~~~~~~~~
In file included from /Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_fuel_gauge.cpp:42:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h: At global scope:
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:56:29: warning: 'Mti::ldo2' defined but not used [-Wunused-variable]
56 | static const struct device *ldo2 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo2));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:55:29: warning: 'Mti::ldo1' defined but not used [-Wunused-variable]
55 | static const struct device *ldo1 = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_ldo1));
| ^~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/pmic/mti_npm1300.h:54:29: warning: 'Mti::regulators' defined but not used [-Wunused-variable]
54 | static const struct device *regulators = DEVICE_DT_GET(DT_NODELABEL(npm1300_ek_regulators));
| ^~~~~~~~~~
[178/228] Building CXX object CMakeFiles/app.dir/src/mti_src/flash/mti_test_log_func.cpp.obj
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_test_log_func.cpp: In static member function 'static void Mti::FlashServices::Create_test_data()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_test_log_func.cpp:59:34: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
59 | else if (lock_status_d12 = 0x02)
| ~~~~~~~~~~~~~~~~^~~~~~
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_test_log_func.cpp: In static member function 'static void Mti::FlashServices::TestFunction()':
/Users/davidsnelling/Workspace/fw-Gen2_Locks/src/mti_src/flash/mti_test_log_func.cpp:165:16: warning: too many arguments for format [-Wformat-extra-args]
165 | printk("Time=%x,0%x,0%x,0%x lock_status=%x User=%x Credential=%x Index \n", event_record[0], event_record[1],
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[228/228] Linking CXX executable zephyr/zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 1206208 B 1244 KB 94.69%
RAM: 245456 B 256 KB 93.63%
IDT_LIST: 0 GB 32 KB 0.00%
Generating files from /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/zephyr/zephyr.elf for board: nrf54l15dk
image.py: sign the payload
image.py: sign the payload
[5/13] Generating new Factory Data...
FAILED: fw-Gen2_Locks/zephyr/factory_data.hex /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/zephyr/factory_data.hex
cd /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/_sysbuild && /opt/nordic/ncs/toolchains/561dce9adf/opt/[email protected]/bin/python3.12 /opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py --sn 11223344556677889900 --date 2026-02-12 --vendor_id 65521 --product_id 32774 --vendor_name Mobile\ Tech\ Inc --product_name Planet\ Fitness --hw_ver 1 --hw_ver_str Pre-Production --dac_cert /opt/nordic/ncs/v3.1.1/modules/lib/matter/credentials/development/attestation/Matter-Development-DAC-FFF1-8006-Cert.der --dac_key /opt/nordic/ncs/v3.1.1/modules/lib/matter/credentials/development/attestation/Matter-Development-DAC-FFF1-8006-Key.der --pai_cert /opt/nordic/ncs/v3.1.1/modules/lib/matter/credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der --spake2_it 1000 --spake2_salt U1BBS0UyUCBLZXkgU2FsdA== --discriminator 0xF00 --passcode 20202021 --include_passcode --overwrite --product_finish matte --product_color black --generate_onboarding --enable_key 00112233445566778899AABBCCDDEEFF -o /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/zephyr/factory_data -s /opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/nrfconnect_factory_data.schema --offset 0x144800 --size 0x144800
[INFO] Generating SPAKE2+ Verifier...
[WARNING] KEY password has not been provided. It means that DAC key is not encrypted.
[INFO] Validating JSON with schema...
[INFO] Validate OK
Traceback (most recent call last):
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 594, in <module>
main()
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 583, in main
generator.generate_json()
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 370, in generate_json
self._generate_onboarding_data()
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 431, in _generate_onboarding_data
qr = qrcode.make(setup_payload.generate_qrcode())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/qrcode/main.py", line 28, in make
return qr.make_image()
^^^^^^^^^^^^^^^
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/qrcode/main.py", line 363, in make_image
from qrcode.image.pil import Image, PilImage
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/qrcode/image/pil.py", line 2, in <module>
from PIL import Image, ImageDraw
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/PIL/Image.py", line 88, in <module>
from . import _imaging as core
ImportError: dlopen(/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/PIL/_imaging.cpython-312-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/libtiff/lib/libtiff.6.dylib
Referenced from: <4EA85D6A-C059-3275-B72C-006623C9FC52> /opt/nordic/ncs/toolchains/561dce9adf/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/PIL/_imaging.cpython-312-darwin.so
Reason: tried: '/opt/homebrew/opt/libtiff/lib/libtiff.6.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/libtiff/lib/libtiff.6.dylib' (no such file), '/opt/homebrew/opt/libtiff/lib/libtiff.6.dylib' (no such file)
ninja: build stopped: subcommand failed.
FATAL ERROR: re-build in /Users/davidsnelling/Workspace/fw-Gen2_Locks/build failed (no --build-dir given)
davidsnelling@MTI-MAC-X52WQNR99J fw-Gen2_Locks %

When building using the UI action button in the nRF Connect tab, this is the output (indented):

* Executing task: nRF Connect: Build [incremental]: fw-Gen2_Locks/build

Building fw-Gen2_Locks
west build --build-dir /Users/davidsnelling/Workspace/fw-Gen2_Locks/build /Users/davidsnelling/Workspace/fw-Gen2_Locks

[0/13] Performing build step for 'mcuboot'
ninja: no work to do.
[1/13] Performing build step for 'fw-Gen2_Locks'
[0/8] Performing build step for 'chip-gn'
Starting Matter library build in /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/modules/connectedhomeip
Generating compile_commands took 104ms
Done. Made 5431 targets from 450 files in 624ms
ninja: no work to do.
Matter library build complete
[5/13] Generating new Factory Data...
FAILED: fw-Gen2_Locks/zephyr/factory_data.hex /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/zephyr/factory_data.hex
cd /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/_sysbuild && /opt/nordic/ncs/toolchains/561dce9adf/opt/[email protected]/bin/python3.12 /opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py --sn 11223344556677889900 --date 2026-02-12 --vendor_id 65521 --product_id 32774 --vendor_name Mobile\ Tech\ Inc --product_name Planet\ Fitness --hw_ver 1 --hw_ver_str Pre-Production --dac_cert /opt/nordic/ncs/v3.1.1/modules/lib/matter/credentials/development/attestation/Matter-Development-DAC-FFF1-8006-Cert.der --dac_key /opt/nordic/ncs/v3.1.1/modules/lib/matter/credentials/development/attestation/Matter-Development-DAC-FFF1-8006-Key.der --pai_cert /opt/nordic/ncs/v3.1.1/modules/lib/matter/credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der --spake2_it 1000 --spake2_salt U1BBS0UyUCBLZXkgU2FsdA== --discriminator 0xF00 --passcode 20202021 --include_passcode --overwrite --product_finish matte --product_color black --generate_onboarding --enable_key 00112233445566778899AABBCCDDEEFF -o /Users/davidsnelling/Workspace/fw-Gen2_Locks/build/fw-Gen2_Locks/zephyr/factory_data -s /opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/nrfconnect_factory_data.schema --offset 0x144800 --size 0x144800
[INFO] Generating SPAKE2+ Verifier...
[WARNING] KEY password has not been provided. It means that DAC key is not encrypted.
[INFO] Validating JSON with schema...
[INFO] Validate OK
Traceback (most recent call last):
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 594, in <module>
main()
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 583, in main
generator.generate_json()
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 370, in generate_json
self._generate_onboarding_data()
File "/opt/nordic/ncs/v3.1.1/modules/lib/matter/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py", line 431, in _generate_onboarding_data
qr = qrcode.make(setup_payload.generate_qrcode())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/qrcode/main.py", line 28, in make
return qr.make_image()
^^^^^^^^^^^^^^^
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/qrcode/main.py", line 363, in make_image
from qrcode.image.pil import Image, PilImage
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/qrcode/image/pil.py", line 2, in <module>
from PIL import Image, ImageDraw
File "/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/PIL/Image.py", line 88, in <module>
from . import _imaging as core
ImportError: dlopen(/opt/nordic/ncs/toolchains/561dce9adf/lib/python3.12/site-packages/PIL/_imaging.cpython-312-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/libtiff/lib/libtiff.6.dylib
Referenced from: <4EA85D6A-C059-3275-B72C-006623C9FC52> /opt/nordic/ncs/toolchains/561dce9adf/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/PIL/_imaging.cpython-312-darwin.so
Reason: tried: '/opt/homebrew/opt/libtiff/lib/libtiff.6.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/libtiff/lib/libtiff.6.dylib' (no such file), '/opt/homebrew/opt/libtiff/lib/libtiff.6.dylib' (no such file)
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /opt/nordic/ncs/toolchains/561dce9adf/bin/cmake --build /Users/davidsnelling/Workspace/fw-Gen2_Locks/build

* The terminal process terminated with exit code: 1.
* Terminal will be reused by tasks, press any key to close it.

Parents
  • Hello,

    The error seems to be that the python package "Pillow" (needed for creating the QR code) relies on a specific version of the libtiff library that is not available on your system. Please try to either switch to toolchain v.3.2.1 and build with that, or update Pillow from version 10.3.0 to 11.3.0 in your current toolchain (11.3.0 is the version used in toolchain v3.2.1).

    To update the python module in the toolchain you can open the "nrf connect" terminal in VS code (make sure the correct toolchain version is selected", then run "pip install pillow==11.3.0"

    Best regards,

    Vidar

Reply
  • Hello,

    The error seems to be that the python package "Pillow" (needed for creating the QR code) relies on a specific version of the libtiff library that is not available on your system. Please try to either switch to toolchain v.3.2.1 and build with that, or update Pillow from version 10.3.0 to 11.3.0 in your current toolchain (11.3.0 is the version used in toolchain v3.2.1).

    To update the python module in the toolchain you can open the "nrf connect" terminal in VS code (make sure the correct toolchain version is selected", then run "pip install pillow==11.3.0"

    Best regards,

    Vidar

Children
No Data
Related