Skip to main content
Version: 9

Running Offline Without an Internet Connection

In order to validate your license key, by default MoveIt Pro requires an internet connection every time it runs. However, if you need your license to be more robust to periodic internet connection issues, you can set up MoveIt Pro for offline authentication.

note

Offline activation requests are fingerprinted to the system they will work on. See Configure Licensing for the hardware identity and container-access requirements.

License Types and Offline Duration

MoveIt Pro uses license policies with different offline limits. An online activation that later loses connectivity is governed by the license's server-sync grace or floating-seat lease. An offline request/response activation has its own policy-specific validity window.

Use these default policy values for deployment planning:

License typePurposeDefault offline duration
RuntimeTied to a robot or deployment computerApproximately six months
DeveloperFloating seat for development and testingApproximately one hour after the last successful lease renewal

A Developer license renews its floating lease while it can reach the license server. It is not intended for extended offline operation because it stops working shortly after its lease can no longer be renewed.

These are the default policy values. The exact server-sync grace, floating-seat lease, and offline-response validity are configured in the issued license policy. Contact support@picknik.ai to confirm a license's limits or request a Runtime license for an offline deployment.

Simple: Using the moveit_pro_license Application

The moveit_pro_license application automates license provisioning and offline activation. It is distributed as a Debian package versioned alongside MoveIt Pro.

Regenerate offline activation when you upgrade to 9.4.2

Upgrading an offline installation to 9.4.2 requires a new request and response. Install the moveit_pro_license package matching the Runtime release you are activating, then generate the request again. Your existing offline response stays bound to the previous identity and will not activate 9.4.2.

An installation that can reach the license server is not affected. It re-activates on its first start with 9.4.2 and needs nothing from this page.

The hardware fingerprint changed in 9.4.2. From 9.4.2 the tool derives it from a TPM endorsement key, falls back to a permanent hardware NIC MAC, and records the chosen source in a pin file. Earlier 9.x releases derive it differently. 9.3.0 through 9.4.1 use the eth0 MAC address, CPU model, and architecture. 9.0.0 through 9.2.1 use Cryptlex's own device fingerprint.

A request built by a 9.4.1 package against a 9.4.2 or newer Runtime is bound to a fingerprint that Runtime never computes, so the response cannot activate it. For the full upgrade procedure, including what to do with the pre-upgrade files, see Upgrade MoveIt Pro. The rest of this section describes 9.4.2 and newer.

Installation

sudo apt install curl
curl -fLo /tmp/moveit-pro-license_9.4.2_amd64.deb https://download.picknik.ai/license/moveit-pro-license_9.4.2_amd64.deb
sudo apt install /tmp/moveit-pro-license_9.4.2_amd64.deb

These commands install moveit-pro-license 9.4.2. If you are activating a different 9.x Runtime, substitute its version in both the file name and the URL so the package and the Runtime agree on the fingerprint.

Setup

Create an activation file at ~/.config/moveit_pro/activation.txt with the following contents:

{
"api_key": "your-api-key",
"email": "user@example.com",
"robot_serial_number": ""
}

This file holds your API key, so keep it readable only by you:

chmod 600 ~/.config/moveit_pro/activation.txt
note

Some API keys are authorized for license provisioning while others are only authorized for offline activation. Please contact support@picknik.ai to get an API key.

API keys are different from your license key.

FieldRequiredDescription
api_keyyesAPI key issued to the customer by PickNik
emailyesEmail of the organization user
robot_serial_numbernoRobot serial number stored as license metadata
license_typenoannual or perpetual; omit to take the default, annual

The application also reads MOVEIT_LICENSE_KEY from your MoveIt Pro configuration file at ~/.config/moveit_pro/moveit_pro_config.9.yaml. When it provisions a license it writes the key back to that file.

Usage

If the machine does not have a license key yet, provision one and write it to the MoveIt Pro configuration file:

moveit_pro_license --provision --no-offline

While the machine can reach the PickNik licensing service, generate and exchange the offline request. The helper uses LexActivator and the same tiered hardware fingerprint as the MoveIt Pro Runtime: TPM endorsement key, then a permanent hardware NIC MAC. If the machine must remain disconnected, use Manual Activation via Email instead.

moveit_pro_license --offline

Run with no flags and it prompts before doing the offline exchange.

The following flags are available:

FlagDescription
--provisionMint a new license (requires an API key authorized for provisioning)
--offlineGenerate an offline request and exchange it for a response
--no-provisionTurn --provision back off; later flags win
--no-offlineTurn --offline back off; moveit_pro_license --provision --no-offline provisions and stops
--config-file PATHOverride the MoveIt Pro configuration file
--license-type TEXTProvision an annual or perpetual license; overrides activation.txt
--helpShow the full usage message

Hardware Access

Required Version
This feature requires MoveIt Pro version 9.4.2 or newer.

The offline request is bound to the same hardware identity the Runtime activates against, so the tool must be able to read the same identity source. See Configure Licensing for what that identity is and how a container is given access to it.

On a machine with a TPM, the Runtime anchors the license to it. If /dev/tpmrm0 is present but the tool cannot open it, and the machine has not activated yet, the tool stops instead of falling back to a network interface, because a request built on the other source produces a response the Runtime cannot use. Add the invoking user to the group that owns the device:

sudo usermod -aG "$(stat -c '%G' /dev/tpmrm0)" "$USER"

Log out and back in for the new group to take effect.

Prefer group membership over running the tool with sudo. The tool reads activation.txt and writes the activation files under the invoking user's home directory, so running it as another user moves both away from the directory MoveIt Pro reads.

Once a machine has activated, <data-dir>/licensing/fingerprint_pin records the source that was used, and the tool reuses that source instead of choosing again.

How It Works

  1. Reads activation.txt for API credentials.
  2. Reads MOVEIT_LICENSE_KEY from the MoveIt Pro configuration file. If no key is found and --provision is set, it provisions a new Runtime license and writes the key back to that file.
  3. Reads an existing request, or uses LexActivator to generate one with the Runtime's tiered fingerprint ladder. Request, response, and fingerprint-pin files use $MOVEIT_HOST_DATA_DIR, or ~/.local/share/moveit_pro/ when that variable is unset. Files left over from an earlier Runtime installation are renamed with a .stale-<timestamp> suffix so they cannot be mistaken for current ones.
  4. Sends the request to the PickNik licensing service and writes offlineResponse_<license_key>.dat beside it.
note

The request and response files are bound to the hardware fingerprint of the machine that runs MoveIt Pro. Do not generate the request on another machine.

Manual: Offline Activation via Email

There are two parts to the offline license activation:

  • An offline request file.
  • An offline response file.

Both files are exchanged through the licensing data directory: $MOVEIT_HOST_DATA_DIR, or ~/.local/share/moveit_pro/ when that variable is unset. The paths below assume the default; substitute your own if you have overridden it.

To setup offline activation:

  1. Launch MoveIt Pro without an internet connection; it will automatically generate an offline request on your host system at ~/.local/share/moveit_pro/.

  2. Email the offline activation request file (offlineRequest_<license_key>.dat) to support@picknik.ai so that we can generate an offline response file for you.

  3. Once you receive the offline response file (offlineResponse_<license_key>.dat) from PickNik support, download and place it in ~/.local/share/moveit_pro/ on your system that will run MoveIt Pro.

note

The system will still require periodic NTP time syncs, but if the system fails to contact the license server it will use the offline response file to authenticate.

warning

Using the offline license on a Single Board Computer (SBC) that does not have an onboard battery to keep the clock running will likely result in a license activation failure. This is because even though the offline activation is designed to work without an internet connection it still encodes the time window for the license expiry in the offline activation. As a result, if the computer believes and reports a current time far in the past (2018, 1970, etc) then the offline activation will fail because it is outside the license time window.

Deactivating an Offline License for MoveIt Pro

Once an offline activation file has been created, the offline response file is only valid on the machine the offline request was generated on. To use the offline license on a different machine, it must be deactivated first. An activated license can be deactivated by emailing support@picknik.ai. Once deleted, new offline request files can be used to activate offline.