Skip to content

cradlepoint/sdk-samples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,391 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ericsson Cradlepoint NCOS SDK

Extend your Ericsson routers with custom Python applications.

The NCOS SDK enables developers to build and deploy Python applications that run directly on Ericsson Cradlepoint NetCloud OS (NCOS) routers. Create custom logic for connectivity management, IoT data collection, monitoring, automation, and more—without replacing hardware.


Why Custom Applications on Ericsson Routers?

  • Extend without hardware changes — Add new capabilities through software while your existing Ericsson/Cradlepoint fleet stays in place.
  • Access router internals — Query modem signal strength, WAN status, GPS, connected clients, and system metrics via a Python API.
  • Integrate with your stack — Push data to cloud platforms (Azure IoT, Splunk, MQTT), trigger alerts, or automate workflows based on router state.
  • Deploy at scale — Build once, distribute via NetCloud Manager to thousands of devices with group-based assignment.
  • Standard Python — Use familiar libraries and patterns; the SDK provides a simple cp module for router interaction.

Resources

Resource Link
Pre-built sample apps Releases — built_apps
NCOS SDK Developers Guide Documentation
NetCloud Manager — SDK apps Tools Tab

Sample Applications

Ready-to-use applications you can install from the releases page. Each app includes source code for reference and customization.

Application Catalog

Sample Application Descriptions



Development Environment Setup

1. Install Python

Install Python 3.8 or later from python.org if you don't already have it.

2. Clone and set up

git clone https://github.com/cradlepoint/sdk-samples.git
cd sdk-samples

Windows

python make.py setup

macOS / Linux

python3 make.py setup

This creates a .venv virtual environment and installs all Python dependencies from requirements.txt.

Using Kiro? See docs/SETUP.md for a guided walkthrough — the Python environment is set up automatically.

3. System-level dependencies (one-time, manual)

The setup scripts handle Python libraries. These system tools are needed for app signing and device deployment:

Windows

Install OpenSSL (Light version) from slproweb.com. Choose Win64 or Win32 based on your machine.

macOS

brew install openssl
brew install hudochenkov/sshpass/sshpass

If you don't have Homebrew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Linux (Debian/Ubuntu)

sudo apt-get install libffi-dev libssl-dev sshpass

Quick Start — make.py

The make.py tool manages the full lifecycle of SDK applications: create, build, install, and maintain.

Usage

python make.py <action> [app_name]

Actions

Action Description
create Create a new application from the app_template directory. Example: python3 make.py create my_new_app
build Produce a distributable application archive (.tar.gz). Use all to build every app.
install Securely copy the built archive to a locally connected NCOS device (requires SDK DEV mode).
status Retrieve and print the current status of the app on the device.
uninstall Remove the application from the locally connected NCOS device.
purge Remove all installed applications from the device.
update Update core SDK helper files (cp.py, cp_methods_reference.md, make.py, etc.) from the upstream repository.

Examples

# Create a new app
python3 make.py create my_new_app

# Build a single app
python3 make.py build my_new_app

# Build all apps
python3 make.py build all

# Clean artifacts for all apps
python3 make.py clean all

Prerequisites

  • Python 3 is required.
  • SSH access (scp/ssh) to the target NCOS device is required for install, start, stop, uninstall, purge, and status.
  • The NCOS device must be in SDK DEV mode — enabled via NetCloud Manager (not the router UI).
  • Any directory containing a package.ini file is treated as an application.
  • Run python3 make.py help for full help from the tool.

Build Ignore File (buildignore)

You can exclude files and directories from the built app package by placing a buildignore file in the app directory. This works similarly to .gitignore — one entry per line.

Default Exclusions

The following are always excluded, even without a buildignore file:

  • __pycache__/
  • buildignore
  • .DS_Store

Format

  • One filename or directory per line
  • Directories must end with /
  • Lines starting with # are comments
  • Blank lines are ignored

Example buildignore

# Development files
test_data.json
requirements.txt

# Directories
tests/
docs/

Key Files

File Description
cp.py The Python library used in applications to communicate with the router (NCOS).
cp_methods_reference.md Reference for all available methods/functions when importing cp.py.
make.py The main tool for managing application packages: create, build, install, uninstall, start, stop, purge, and update.
sdk_settings.ini Configuration settings used by make.py (device connection, app name, etc.).
tools/bin Contains pscp.exe for Windows-based transfers.

Code Example

import cp

# Get router uptime
uptime = cp.get_uptime()
cp.log(f"Router uptime: {uptime} seconds")

# Get connected clients
clients = cp.get_ipv4_lan_clients()
cp.log(f"Total clients: {len(clients)}")

# Get device location
lat_long = cp.get_lat_long()
if lat_long:
    cp.log(f"Device location: {lat_long}")

# Get connected WANs
wans = cp.get_connected_wans()
cp.log(f"Connected WANs: {len(wans)}")

# Get SIM information
sims = cp.get_sims()
cp.log(f"SIM details: {sims}")

See the cp_methods_reference for the full API.


License

This software, including any sample applications, and associated documentation (the "Software"), are subject to the Cradlepoint Terms of Service and License Agreement available at https://cradlepoint.com/terms-of-service ("TSLA").

NOTWITHSTANDING ANY PROVISION CONTAINED IN THE TSLA, CRADLEPOINT DOES NOT WARRANT THAT THE SOFTWARE OR ANY FUNCTION CONTAINED THEREIN WILL MEET CUSTOMER'S REQUIREMENTS, BE UNINTERRUPTED OR ERROR-FREE, THAT DEFECTS WILL BE CORRECTED, OR THAT THE SOFTWARE IS FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT ANY WARRANTIES OF ANY KIND. ANY USE OF THE SOFTWARE IS DONE AT CUSTOMER'S SOLE RISK AND CUSTOMER WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE, LOSS OR EXPENSE INCURRED AS A RESULT OF OR ARISING OUT OF CUSTOMER'S USE OF THE SOFTWARE. CRADLEPOINT MAKES NO OTHER WARRANTY, EITHER EXPRESSED OR IMPLIED, WITH RESPECT TO THE SOFTWARE. CRADLEPOINT SPECIFICALLY DISCLAIMS THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT.

Copyright © 2018 Cradlepoint, Inc. All rights reserved.

About

Cradlepoint team sample code and tools

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors