Integrator Resources

The official home for NAI Support

Not sure where to start? Try Quick Start Guide or ask a question below!

Toggle Components with Visual Button
JavaScript Form Processing

NAI Software Support Kit 1.X Package Guide

NAI Software Support Kit (SSK) 1.x Package Guide

Overview

This guide explains the general structure of the North Atlantic Industries (NAI) Software Support Kit (SSK) version 1.x, the purpose of each top-level directory, and the key differences between operating system and architecture-specific SSK packages.

This document is intended for engineers who are new to NAI hardware and the SSK and may not yet know which SSK version they need or how the contents of the SSK are organized.



What is the NAI Software Support Kit (SSK)?

The NAI Software Support Kit (SSK) is the software interface used to develop applications that communicate with North Atlantic Industries hardware.

The SSK provides:

  • A consistent C/C++ API across supported platforms

  • Abstraction of board- and module-level hardware details

  • Device drivers and runtime libraries

  • Example applications and source code

  • Documentation describing usage and workflows

Using the SSK, applications can:

  • Discover and connect to NAI boards

  • Configure hardware modules

  • Read and write I/O

  • Handle interrupts and protocol messaging

The SSK 1.x family supports specific NAI board families and is distributed in multiple OS- and architecture-specific variants, including Windows, Linux, Linux ARM, VxWorks, and LabVIEW.


General SSK 1.x Architecture

Although directory layouts vary slightly by platform, all SSK 1.x packages share the same conceptual architecture:

Your Application
    ↓
NAI SSK API (headers + libraries)
    ↓
OS / Driver / Transport Layer
    ↓
NAI Hardware (boards, modules, channels)

Across all SSK 1.x variants, you will always find:

  • API definitions (what functions your code can call)

  • Library implementations (how the API communicates with hardware)

  • Sample applications demonstrating correct usage

  • Documentation explaining configuration and workflows

The primary differences between SSK versions are how these components are packaged and built, not what the API fundamentally does.


Top-Level Directories in the SSK 1.x

This section describes the most common top-level directories found in SSK 1.x packages and how they are typically used.


App/

Purpose

Contains precompiled example applications that demonstrate how to connect to and interact with NAI hardware.

Usage
  • Run these applications first to confirm:

    • Drivers are installed correctly

    • Libraries are usable

    • The board responds as expected

  • Useful for quick functional validation before writing custom code

Tip
If an example application runs successfully, your environment is generally configured correctly.

AppSrc/

Purpose

Contains the source code for the example applications.

Usage
  • Learn correct API usage patterns

  • Copy and adapt examples to create custom applications

  • Review how to:

    • Open a board

    • Enumerate modules

    • Read and write channels

    • Handle error conditions

This directory is typically the best starting point for new development.


Documentation/

Purpose

Provides offline documentation that supplements the content on docs.naii.com.

Contents often include: * SSK 1.x API Library * Usage notes and quick-start guides * Release notes


Drivers/

Purpose

Contains operating system-level drivers required for the OS to recognize and access NAI hardware.

Notes
  • Most relevant for Windows- and Linux-based systems

  • Embedded or RTOS targets may handle drivers differently

Without the appropriate drivers (where required), applications cannot communicate with the hardware.


include/

Purpose

Contains the public API header files for the SSK.

Contents include: * Function declarations * Data structures * Constants and enumerations

Usage

Applications must include these headers when compiling.


Lib/

Purpose

Contains the compiled libraries that implement the API defined in include/.

Notes
  • Library formats vary by platform:

    • Windows: .lib

    • Linux and ARM Linux: .so and/or .a

  • Subdirectories may exist for specific architectures (e.g., ARM)

Applications link against these libraries at build time.


src/

Purpose

Contains source code for the internal implementation of the SSK.

Notes
  • Typically reference-only for most users

  • Useful for advanced debugging or deeper understanding

  • Not normally modified for application development


Libraries/

Purpose

Contains rebuildable library source code and build scripts.

Notes
  • Most commonly used for embedded or cross-compilation workflows

  • Allows rebuilding the SSK libraries with a specific toolchain

  • Not all SSK variants rely on this directory


Choosing the Right SSK 1.x Bundle

An SSK 1.x bundle is provided after order based on:

  • Target operating system (Linux, PetaLinux 2014.2, LabView, VxWorks 6.9)

  • Target processor architecture (x86_64, ARM, PowerPC)

  • Target NAI board family

Each SSK 1.x bundle contains the same core components but is preconfigured for a specific deployment environment.


What’s Unique to Each SSK 1.x Version

All SSK 1.x packages share the same conceptual structure, but each variant includes platform-specific components.


Windows SSK (1.x)

Unique characteristics
  • Windows-specific device drivers

  • Visual Studio-oriented project files

  • Libraries provided as .lib

  • Example applications often precompiled as .exe

Best used when
  • Developing on a Windows PC

  • Performing bench testing or system integration

  • Running applications locally targeting NAI hardware over Ethernet


Linux SSK (1.x, x86/x64)

Unique characteristics
  • Libraries built for native Linux hosts or target boards (e.g. 75INT2)

  • Source-centric build workflow (Makefiles, gcc)

  • Fewer precompiled binaries than Windows

Best used when
  • Applications run on a Linux host system

  • Deploying to Linux-based environments


Linux ARM SSK (1.x)

Unique characteristics
  • Designed for ARM-based Linux target boards (e.g. 75G5)

  • ARM-specific libraries provided in a dedicated subdirectory (e.g., Lib/Linux_ARM)

  • Includes both:

    • Prebuilt ARM libraries for immediate use

    • Rebuildable library source (typically under Libraries/) for cross-compilation

  • Intended for a cross-compile workflow:

    • Code is built on a host PC using an ARM toolchain

    • Binaries are deployed to the ARM target system

Best used when
  • Applications run directly on an ARM Linux NAI board

  • Custom toolchains or rebuilds are required

  • Working in embedded Linux environments


VxWorks SSK (1.x)

Unique characteristics
  • Targeted at real-time operating systems

  • Integrated into the VxWorks BSP and system image

  • Driver handling tightly coupled to platform configuration

Best used when
  • Deterministic, real-time operation is required

  • VxWorks is mandated by the platform or program


LabVIEW SSK (1.x)

Unique characteristics
  • Includes LabVIEW-specific libraries and VIs

  • Wraps the same underlying SSK API

  • Focuses on graphical programming instead of C/C++

Best used when
  • Developing test systems or automated test equipment (ATE)

  • Using LabVIEW as the primary development environment


Choosing the Right SSK (Quick Summary)

Use Case Recommended SSK

Windows PC development

Windows SSK

Linux host system

Linux SSK

ARM Linux target board

Linux ARM SSK

Real-time embedded system

VxWorks SSK

Graphical test environment

LabVIEW SSK


Final Takeaway

For SSK 1.x:

  • The directory names and concepts remain consistent across platforms

  • The operating system and CPU determine how libraries and drivers are packaged

  • ARM targets add cross-compilation and rebuild support, but do not change the API

For new users, becoming familiar with the function of the sample applications, NAI libraries, and platform-specific documentation will provide all the details you will need to deploy an application targeting NAI hardware. Consult the Software Development Guide 1.x for step-by-step instructions on setting up your environment and starting development with SSK 1.x.

Help Bot

X