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¶
- Flash the Orin with JetPack 6.1 (Ubuntu 22.04 L4T).
- Install .NET 10 and the
consystence-edgeservice (see Orin Setup). -
Register the device with the site:
-
Configure PLC connections in
appsettings.json(gateway IP, CIP path, tag mappings). - 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 |