Skip to main content
Version: 4.0

Integrating Acklio FullSDK

๐Ÿ”ค Acronyms? See the Glossary

๐Ÿ‘ค System Integrator, Embedded Application Developer

Acklio FullSDK Deliverables on GitLabโ€‹

Acklio FullSDK is hosted on our GitLab repository in two main folders:

Acklio FullSDK is a library that is a set of binary files containing the implementation that runs a stack.

It is hosted on our GitLab repository, where its content is shared among two main subfolders according to the two deployment possibilities:

  1. As embedded SDK within an AT Modem โ€“ Find the corresponding files in the subfolders named ATModem.
  2. As SDK deployed on a standalone device โ€“ Find the corresponding files in the subfolders named FreeRTOS_IPv6UDP.

Whatever the implementation is, each version contains the following:

  • Several header files corresponding to Acklio FullSDK interfaces (these header files are provided depending on the application use case).
  • A position independent static library
  • A reference implementation of the level 2 adaptation layer, provided in the delivery package.
  • The source code of a sample bare-metal application, provided in the delivery package.
  • Readme files with detailed documentation.

FullSDK Interfaces and Header Filesโ€‹

Open these folders on GitLab:

The following header files are provided for the SCHC interfaces, depending on the application use case.

File NameAPIOpensource Example
fullsdkmgt.hManagement interfaceAdd ATModem Reference Design using ST stack v2.1.0
fullsdkdtg.hDatagram interfaceFreeRTOS IPV6/UDP client and server
fullsdknet.hNetwork interfaceFreeRTOS IPV6/UDP client and server
fullsdkextapi.hNetwork configuration interfaceFreeRTOS IPV6/UDP client and server
fullsdkl2a.hLevel 2 adaptation (L2A) interfaceAdd ATModem Reference Design using ST stack v2.1.0
fullsdkstats.hFullSDK statistics interfaceAdd ATModem Reference Design using ST stack v2.1.0
fullsdkschc.hAdvanced SCHC configuration interfaceAdd ATModem Reference Design using ST stack v2.1.0

The Level 2 adaptation (L2A) interface is implemented by the integrator, since it depends on the layer being used.

Required Memoryโ€‹

Flash and RAM consumption (in bytes) are as follows.

Flashย sizeย (bytes)RAM size (bytes)
30000-350002500 + (4๏นก (max_mtu_size + max_app_payload_len + max_proto_size))
Application Specifics

The size required for Flash and RAM may vary depending on the extension interface which itself depends on the application.

The size required for RAM highly depends on:

  • The LPWAN maximum transmission unit (MTU)
  • The maximum application payload size For example, if LoRaWAN is used as L2 technology (whose maximum MTU is 242 bytes) and the application expects to send and receive 1KB of payload then 2500 + (4 * (242 + 1024 + 128)) = 8076 bytes of total RAM will be required.

Bare Metal Projectโ€‹

Bare metal refers to run a program or a software directly on the hardware level without the support of any operating system.

In a bare metal project where lowering power consumption is important, the application architecture is usually based on a main loop that enters sleep mode after initialization. It exits from sleep mode when an interrupt occurs.

Each interrupt service routine signals to the main loop that an event occured, and that some processing is required. It is then up to the main loop to call the function that performs such processing.

Once the required processing has been done, the main loop enters sleep mode again.

Bare Metal Project

info

Acklio FullSDK can easily be integrated in such an architecture. The callback called by the SDK to signal that processing must be performed can set a flag. This flag is checked by the main loop each time it comes out of sleep mode. If the flag is set, the main loop calls the associated processing function.

RTOS Projectโ€‹

Real-Time Operating System

In an RTOS project, the user can rely on various facilities provided by the RTOS: threads, semaphores, etc.

In such a project, Acklio FullSDK would run in one thread. This thread would wait on a semaphore (for example). The implementation of the callback requesting processing would give the semaphore.

info

The current version of Acklio FullSDK provides a reference multi-threaded UDP client application using FreeRTOS as a real time operating system and uIP as an IP stack.