10.2. Custom Hardware Support

Anjay can be used on several different platforms. By default, the library targets POSIX-like operating systems and their standard interfaces for networking, multithreading, etc., which means that Anjay can be easily compiled to run on many OSs, including:

  • Linux,

  • macOS,

  • FreeBSD,

  • Windows (compiled using MSYS2).

For embedded platforms, AVSystem provides a couple of integration layers and example applications for many popular SDKs and prototyping kits:

Target platform/SDK

Integration layer

Example application

Zephyr and nRF Connect SDK

Anjay-zephyr

Anjay-zephyr-client

mbedOS

Anjay-mbedos

Anjay-mbedos-client

STM32Cube w/ FreeRTOS and X-CUBE-CELLULAR

contained in the app

Anjay-freertos-client

STM32Cube w/ Azure RTOS and X-CUBE-CELLULAR

contained in the app

Anjay-stm32-azurertos-client

ESP-IDF

Anjay-esp-idf

Anjay-esp32-client

Raspberry Pi Pico SDK

contained in the app

Anjay-pico-client

If the desired platform isn’t listed above, it means that custom implementation for time, threading, networking and (D)TLS APIs must be provided as described in Porting guide for non-POSIX platforms. Integrating with networking peripherals and APIs (e.g. cellular modems) is often non-trivial, thus AVSystem is open to providing help with developing code tailored for a specific platform. In such case, please visit our contact page.

Examples of application aspects that need custom integration with a software platform:

  • Device Object that gathers various hardware and software parameters,

  • FOTA integration with platform NVM memory (Flash, EEPROM) drivers and bootloader,

  • Connectivity-related LwM2M Objects implementations that rely on data exchanged with the modem (e.g. Connectivity Monitoring or APN Connection Profile),

  • GPS Location data acquired by GNSS modem,

  • Factory provisioning with PC-based tools that communicate with the device via serial UART port and pre-configure the device with connectivity credentials,

  • Security based on a Hardware Security Module that’s not PKCS11 or PSA standards compliant (see: HSM Commercial Feature).

During the development process, AVSystem can also include your custom hardware in CI/CD pipeline to ensure proper performance, configuration and interoperability. Such continuous integration testing is an extension of Custom Hardware Support included in Anjay Support Packages.

We can also assist with making many improvements and optimizations, even if the basic functionality works out of the box. For example, Anjay-zephyr contains code specific to the nRF9160 SoC which is capable of encrypting network traffic directly on the modem instead of using an additional (D)TLS library, which normally is a part of the application. Thanks to that we were able to completely remove mbedTLS library, saving 80 kB of flash memory, and use nRF9160’s ability to cache (D)TLS sessions over power cycles, greatly reducing the overhead of secure connections.