Nvidia Orin Setup¶
This guide covers provisioning a Nvidia Jetson Orin module as a Consystence edge device.
Hardware specifications¶
| Spec | Value |
|---|---|
| Module | Nvidia Jetson Orin |
| JetPack | 6.1 |
| OS | Ubuntu 22.04 (L4T) |
| RAM | 7.6 GB |
| Storage | 233 GB eMMC |
| GPU | Ampere (for TensorRT inference) |
Network configuration¶
Edge devices are dual-homed with two network interfaces:
| Interface | Purpose | Network |
|---|---|---|
WiFi (wlan0) | Workshop LAN / upstream to site server | DHCP from site network |
Ethernet (eth0) | Dedicated PLC link | Static: 192.168.1.0/24 |
The PLC Ethernet interface must not become the default route — all upstream traffic (gRPC to site server, NTP, updates) goes over WiFi.
Configure with NetworkManager¶
Set the PLC Ethernet connection to never use its gateway as the default route:
# Set static IP on PLC Ethernet
sudo nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses 192.168.1.10/24 \
ipv4.never-default true
# Restart the connection
sudo nmcli connection down "Wired connection 1"
sudo nmcli connection up "Wired connection 1"
Warning
The ipv4.never-default true setting is critical. Without it, the PLC subnet gateway may become the default route, cutting off connectivity to the site server.
Verify routing¶
# Default route should be via WiFi
ip route show default
# Expected: default via 10.0.0.1 dev wlan0 ...
# PLC subnet should be via Ethernet
ip route show 192.168.1.0/24
# Expected: 192.168.1.0/24 dev eth0 ...
# Test PLC connectivity
ping -c 3 192.168.1.1
Install .NET 10¶
JetPack includes Docker but not the .NET SDK. Install .NET using the official install script (user-scoped, no sudo required):
# Download and run the install script
curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 10.0
# Add to PATH in ~/.bashrc
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
source ~/.bashrc
# Verify
dotnet --version
Tip
The user-scoped install keeps the system Python and JetPack tooling untouched. No sudo required.
Install the edge service¶
Clone and build the edge device service:
git clone https://github.com/consystence/consystence-edge.git
cd consystence-edge
dotnet restore
dotnet build -c Release
Configure the edge service¶
Create the configuration file:
Edit appsettings.json with your site server address and PLC details:
{
"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
}
}
Run the edge service¶
For production, register as a systemd service:
sudo cp consystence-edge.service /etc/systemd/system/
sudo systemctl enable consystence-edge
sudo systemctl start consystence-edge
Docker (alternative)¶
JetPack ships with Docker pre-installed. You can run the edge service in a container:
docker run -d --name consystence-edge \
--network host \
--runtime nvidia \
-v /path/to/appsettings.json:/app/appsettings.json \
consystence/edge:latest
The --network host flag is required for direct access to the PLC Ethernet interface. The --runtime nvidia flag enables GPU access for TensorRT inference.