{"id":18604817,"url":"https://github.com/avsystem/anjay-freertos-client","last_synced_at":"2025-04-10T20:30:52.595Z","repository":{"id":45232093,"uuid":"291032614","full_name":"AVSystem/Anjay-freertos-client","owner":"AVSystem","description":"LwM2M client based on Anjay and FreeRTOS for STM32 devices.","archived":false,"fork":false,"pushed_at":"2025-02-28T14:01:17.000Z","size":88067,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-25T03:41:33.659Z","etag":null,"topics":["embedded","freertos","iot","lwm2m","lwm2m-client","stm32"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AVSystem.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-28T11:44:48.000Z","updated_at":"2025-02-28T14:01:19.000Z","dependencies_parsed_at":"2025-02-28T15:21:20.012Z","dependency_job_id":"937b7f6c-93ef-43c0-b9d9-0adf1a430cd3","html_url":"https://github.com/AVSystem/Anjay-freertos-client","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVSystem%2FAnjay-freertos-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVSystem%2FAnjay-freertos-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVSystem%2FAnjay-freertos-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVSystem%2FAnjay-freertos-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AVSystem","download_url":"https://codeload.github.com/AVSystem/Anjay-freertos-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248290019,"owners_count":21078923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded","freertos","iot","lwm2m","lwm2m-client","stm32"],"created_at":"2024-11-07T02:19:05.320Z","updated_at":"2025-04-10T20:30:47.573Z","avatar_url":"https://github.com/AVSystem.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anjay-freertos-client [\u003cimg align=\"right\" height=\"50px\" src=\"https://avsystem.github.io/Anjay-doc/_images/avsystem_logo.png\"\u003e](http://www.avsystem.com/)\n\n\n## Supported hardware and overview\n\nThis repository contains LwM2M Client application based on open-source [Anjay](https://github.com/AVSystem/Anjay) library and [X-Cube-Cellular](https://www.st.com/en/embedded-software/x-cube-cellular.html) package which includes cellular modem drivers, [FreeRTOS](https://www.freertos.org) as well as [mbedtls](https://github.com/ARMmbed/mbedtls). This example supports the following configurations:\n\n| Project Path | Board | Modem |\n|--------------|-------|-------|\n| Projects/STM32L496G-DISCO/UserApp/BG96 | [P-L496G-CELL02 Discovery kit](https://www.st.com/en/evaluation-tools/p-l496g-cell02.html) | [Quectel BG96](https://www.quectel.com/product/lpwa-bg96-cat-m1-nb1-egprs) default modem provided with kit |\n| Projects/B-L462E-CELL1/UserApp/TYPE1SC | [B-L462E-CELL1 Discovery kit](https://www.st.com/en/evaluation-tools/b-l462e-cell1.html) | [Murata TYPE 1SE](https://www.murata.com/en-eu/products/connectivitymodule/lpwa/overview/lineup/type-1se) module with built-in eSIM (ST4SIM-200M)|\n| Projects/B-L462E-CELL1/UserApp/TYPE1SC-AIBP | [B-L462E-CELL1 Discovery kit](https://www.st.com/en/evaluation-tools/b-l462e-cell1.html) | [Murata TYPE 1SE](https://www.murata.com/en-eu/products/connectivitymodule/lpwa/overview/lineup/type-1se) module with built-in eSIM (ST4SIM-200M) \u003cbr /\u003e Supports AI Bridging Protocol.|\n| Projects/B-U585I-IOT02A/BG96\u003cbr\u003e | [B-U585I-IOT02A Discovery kit](https://www.st.com/en/evaluation-tools/b-u585i-iot02a.html) | [Quectel BG96](https://www.quectel.com/product/lpwa-bg96-cat-m1-nb1-egprs) (provided with P-L496G-CELL02 devkit)\n\nThe project was developed using [STM32Cube tools](https://www.st.com/en/ecosystems/stm32cube.html) ([STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html) in particular).\n\nThe following LwM2M Objects are supported:\n\n- Security (/0),\n- Server (/1),\n- Device (/3),\n- Firmware Update (/5) (`STM32L496G-DISCO` and `B-L462E-CELL1` projects),\n- Temperature (/3303),\n- Humidity (/3304),\n- Accelerometer (/3313),\n- Magnetometer (/3314),\n- Barometer (/3315),\n- Gyrometer (/3334),\n- Multiple Axis Joystick (/3345).\n\n\n## Cloning the repository\n\n```\ngit clone --recursive https://github.com/AVSystem/Anjay-freertos-client\n```\n\n## Compilation guide\n\n - Download [STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html)\n - Import the cloned project to your workspace\n - In the Project Explorer navigate to one of the [Project Path] taken from the table above, depending on the hardware you use.\n - To build and run the project:\n   - For `B-U585I-IOT02A` board: simply build and run `Anjay-freertos-client-B-U585I-IOT02A-BG96` configuration.\n   - For `STM32L496G-DISCO` and `B-L462E-CELL1` boards: please follow the instructions in `Projects/STM32L496G-DISCO/README.md` and `Projects/B-L462E-CELL1/README.md` respectively.\n\n## Connecting to the LwM2M Server\n\nTo connect to [Coiote IoT Device Management](https://www.avsystem.com/products/coiote-iot-device-management-platform/) LwM2M Server, please register at https://eu.iot.avsystem.cloud/. Then have a look at the Configuration menu to configure security credentials.\n\nIf you use BG96-based configuration, you must upgrade the firmware of the modem to at least `BG96MAR02A08M1G` revision. Older versions may cause an unexpected loss of connection.\n\n[Guide showing basic usage of Coiote DM](https://iotdevzone.avsystem.com/docs/Coiote_IoT_DM/Quick_Start/Connect_device_quickstart/) is available on IoT Developer Zone.\n\n\n## Configuration menu\n\nWhile connected to a serial port interface, and during bootup, the device shows:\n\n```\nPress any key in 3 seconds to enter config menu...\n```\n\nYou can then press any key on your keyboard to enter the configuration menu. After that, you'll see a few configuration options that can be altered and persisted within the flash memory for future bootups.\n\n## Module persistence\n\nThis application features persistence of the Security object, Server object and\nclient's Attribute Storage to retain the configuration of those modules over\npower cycles, to e.g. keep bootstrapped server configuration.\n\nTo enable module persistence, set properly \"Use persistence\" option in the\nshell config menu. The application will attempt to load those modules from a\nnon-volatile memory. Configuration of those modules from the shell will be\nignored unless the application fails to restore the state from the memory.\n\nThe persisted state of the aforementioned modules may be cleared using the\n\"Clear module persistence\" option.\n\n## Core Persistence (commercial feature)\n\nThis application features **Core Persistence** that allows to retain the core\nlibrary state over power cycles, to e.g. keep the TLS session valid.\n\n**This feature is available only with releases of Anjay that include the *Core\nPersistence* commercial feature.** To use the Core Persistence feature, make\nsure that the `ANJAY_WITH_CORE_PERSISTENCE` option is enabled, which requires\nalso to enable `ANJAY_WITH_OBSERVE` in `Application/Inc/anjay/anjay_config.h`,\n`AVS_COMMONS_WITH_AVS_PERSISTENCE` in\n`Application/Inc/avsystem/commons/avs_commons_config.h` and\n`WITH_AVS_COAP_OBSERVE_PERSISTENCE` in\n`Application/Inc/avsystem/coap/avs_coap_config.h`\n\nIf the Core Persistence is compiled in, it works on a similar basis in terms of\nenabling/disabling and clearing it as the module persistence.\n\n## SIM Bootstrap (commercial feature)\n\n`STM32L496G-DISCO-BG96` and `B-U585I-IOT02A/BG96` projects now feature the\n**SIM Bootstrap** that allows bootstrapping the device using the SIM Smartcard.\n**This feature is available only with releases of Anjay that include the\n*bootstrapper* commercial feature.** To use the SIM Bootstrap feature, define\n`USE_SIM_BOOTSTRAP` in the `STM32L496G-DISCO-BG96` or `B-U585I-IOT02A-BG96`\nproject settings and make sure that the `ANJAY_WITH_MODULE_BOOTSTRAPPER` and\n`ANJAY_WITH_MODULE_SIM_BOOTSTRAP` options are enabled in\n`Application/Inc/anjay/anjay_config.h`.\n\n## SMS Trigger (commercial feature)\n\nEvery project now features the **SMS Trigger**. **This feature is available\nonly with releases of Anjay that include the *SMS* commercial feature.** To use\nthe SMS Trigger feature, define `USE_SMS_TRIGGER` in the project settings and\nmake sure that the `ANJAY_WITH_SMS` option is enabled in\n`Application/Inc/anjay/anjay_config.h`.\n\nTo enable the SMS trigger, set the \"Use SMS trigger\" option to `y` in the shell\nconfig menu. Then set local's and server's MSISDN numbers properly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favsystem%2Fanjay-freertos-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favsystem%2Fanjay-freertos-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favsystem%2Fanjay-freertos-client/lists"}