Skip to content

Edge Devices

Edge device deployment covers provisioning Nvidia Orin hardware, connecting it to a site, and keeping it updated.

Provisioning

Edge devices are provisioned during hardware commissioning. The process binds the device to a specific site and activates its edge licence.

Steps

  1. Flash the Orin with JetPack 6.1 (Ubuntu 22.04 L4T).
  2. Install .NET 10 and the consystence-edge service (see Orin Setup).
  3. Register the device with the site:

    consystence edge register \
      --site-server https://site-server.local:5000 \
      --edge-id orin-north-01 \
      --licence-key CST-EDGE-XXXX-XXXX-XXXX
    
  4. Configure PLC connections in appsettings.json (gateway IP, CIP path, tag mappings).

  5. Start the service and verify connectivity.

Licence activation

The edge licence is burned during registration. The licence key is validated against the cloud licence service (or an offline licence file for air-gapped sites) and bound to the device's hardware fingerprint.

Configuration

Edge device configuration is stored in appsettings.json and managed through the site server:

{
  "SiteServer": {
    "Url": "https://site-server.local:5000",
    "EdgeId": "orin-north-01"
  },
  "Plc": {
    "Protocol": "ab_eip",
    "Gateway": "192.168.1.1",
    "Path": "1,0",
    "PollIntervalMs": 100
  },
  "Buffer": {
    "RetentionDays": 7,
    "MaxSizeMb": 1024
  },
  "ML": {
    "ModelDirectory": "/opt/consystence/models",
    "InferenceIntervalMs": 1000
  }
}

When connected, configuration changes pushed from the site server are applied automatically without restarting the edge service.

OTA updates

When the edge device is connected to the site server, software and model updates are delivered over the air:

sequenceDiagram
    participant Cloud as Cloud Tier
    participant Server as Site Server
    participant Edge as Edge Device

    Cloud->>Server: New edge version available (10.2.0)
    Server->>Edge: Update notification
    Edge->>Server: Download update package
    Edge->>Edge: Validate signature
    Edge->>Edge: Apply update + restart
    Edge->>Server: Report new version

Update policy

  • Updates are offered, not forced — the site admin approves updates before they are pushed to edge devices.
  • The edge service restarts gracefully — PLC communication is paused, the buffer captures any data during the restart window, and sync resumes after restart.
  • Rollback is supported — if the new version fails health checks, the previous version is restored automatically.

Offline deployment

For air-gapped sites, updates are delivered manually via USB:

Software update

# Copy the update package to USB
cp consystence-edge-10.2.0.tar.gz /media/usb/

# On the Orin
tar xzf /media/usb/consystence-edge-10.2.0.tar.gz -C /opt/consystence/
sudo systemctl restart consystence-edge

Configuration update

# Export site config (includes edge device settings)
consystence site export --output /media/usb/site-config.cssite

# On the Orin
consystence edge import --file /media/usb/site-config.cssite

ML model update

# Copy model files to the Orin
cp /media/usb/models/*.engine /opt/consystence/models/

# The edge service detects and hot-loads new models automatically

Monitoring

The site server tracks edge device health:

Metric Source Alert Threshold
Connection status gRPC heartbeat Offline > 5 minutes
Buffer depth SQLite row count > 10,000 records
CPU / memory System metrics CPU > 90% sustained
GPU utilisation nvidia-smi < 10% (model not loading)
PLC poll latency libplctag timing > 50ms average