NAI Software Support Kit 1.X Package Guide
Edit this on GitLab
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:
.soand/or.a
-
-
Subdirectories may exist for specific architectures (e.g., ARM)
-
Applications link against these libraries at build time.
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
-
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.