Skip to main content

Device Management Tools

NE503 device management has two sides: the device continuously broadcasts its own information on the LAN (the CT-Disc protocol, implemented by the device-discovery service), while your computer uses the official ct-disc tool to discover and manage those devices; for details on a single device, use the on-device aipc-cli. Pick by what you're trying to do:

Your taskUse
Find the IPs and SNs of every device on the segment during bulk deploymentct-disc CLI or GUI (runs on your computer)
Watch devices come online/offline, send remote commandsct-disc
Change a device's network configuration remotelyct-disc GUI
Manage apps, streams, models, lens on one deviceaipc-cli (device-builtin, runs on the device)

CT-Disc Device Discovery

Typical scenario: bulk deployment without hunting IPs

Deploying 10 NE503s? Instead of matching MACs to IPs in the router one by one, run a single scan from any computer on the same segment — every device's IP, SN, and firmware version in one table:

$ ct-disc scan
MAC SN PRODUCT IP PORT FW CAPS LAST_SEEN
aa:bb:cc:00:11:22 CT503A001234 NE503 192.168.1.101 443 1.12.0 ai,camera,http 2026-08-20 10:32:01
aa:bb:cc:00:11:23 CT503A001235 NE503 192.168.1.102 443 1.12.0 ai,camera,http 2026-08-20 10:32:01

2 device(s) found.

This works because of what the protocol does underneath — mechanism first, then the full command set.

How the Protocol Works

Each device keeps announcing itself on the LAN: the device-discovery service sends a ct-announce JSON packet via UDP multicast 239.255.255.250:19850 every 5 seconds. The packet carries:

FieldWhat you can do with it
sn / macUniquely identify a device; bulk asset registration
productDistinguish product models (e.g., NE503)
ip / portGo straight to the web console
fwCheck firmware versions; spot devices needing upgrades
capsCapability list (e.g., ai,camera,http,mqtt)
hwHardware platform

The management side learns about devices two ways: passively, by listening on the multicast address; or actively, by sending ct-probe packets that trigger immediate responses. Two further packet types exist:

  • ct-set-network — remotely deliver network configuration (DHCP/static IP, gateway, DNS) to a specific device, sent unicast + multicast + broadcast to guarantee delivery;
  • CAT1 cellular devices bypass UDP and register over MQTT, with command topic ct/cmd/{sn} and response ct/resp/{sn}.

The ct-disc CLI

A cross-platform CLI (Windows / Linux / macOS), source at tools/ct-disc/ in the neoruntime repo:

cd tools/ct-disc && make build        # local build; make build-all produces binaries for all platforms

Five subcommands, one job each:

CommandWhat it doesWhen to use
ct-disc scanSend probes, collect responses immediatelyNeed the device list right now
ct-disc listListen silently for a few seconds, then listDevices are already announcing; no probes needed
ct-disc watchContinuously watch online/offlineMonitoring deployment stability
ct-disc sendSend a command by SN over MQTTManaging CAT1 cellular devices
ct-disc announceSimulate device announcementsDebugging your own management software
ct-disc scan --timeout 3                        # scan 3 s; --count probes (default 3)
ct-disc list --product NE503 --timeout 5 # NE503 only; also filterable by --sn / --mac
ct-disc watch # offline after 30 s without announcements; Ctrl+C to stop
ct-disc send <sn> reboot --broker tcp://broker:1883 # command a CAT1 device
ct-disc announce --product NE503 --interval 5 # simulate a device on a test machine

All commands support -o json / -o yaml (default table) for scripts, plus --iface to pick a network interface and --timeout to control the wait.

The NE503 web console itself has no CT-Disc scanning UI; scanning is done by these tools or by host software integrating the protocol. Packet definitions live in the source at tools/ct-disc/pkg/discover/announce.go.

CT-Disc GUI

Prefer not to use the command line? The repo also ships a graphical version (tools/ct-disc/gui/ct-disc-gui/, a Wails desktop app; build with make gui). It covers the CLI's scanning, watching, and command sending, plus one extra practical capability: remotely reading/writing device network configuration — pick a device and change its IP mode, gateway, or DNS right in the GUI, without logging into the device's web page first (backed by the device API GET/POST /api/v1/network/config).

aipc-cli Command-Line Tool

aipc-cli manages a single device: app start/stop, stream status, model registration, lens control, and more. Two entry points:

  • Web terminal: console Maintenance → Terminal, right in the browser;
  • SSH: ssh root@<device-ip> and run it from the shell.

The most common commands, grouped by task:

# Overall device state
aipc-cli system info # device info
aipc-cli system health # health check

# Apps
aipc-cli app list # list apps
aipc-cli app start <id> # start / aipc-cli app stop <id> stop
aipc-cli app logs <id> -f # follow app logs (first stop when debugging)

# Streams
aipc-cli stream list # stream status (check here first when pulling fails)
aipc-cli stream url <id> # get a stream's RTSP URL

# Lens
aipc-cli device zoom in 5 # zoom (in / out / stop, speed 1-10)
aipc-cli device focus auto # autofocus

# Models
aipc-cli model list # list / aipc-cli model register <path> register a new model

Output also supports -o table (default) / -o json / -o yaml. The full command tree is authoritative in aipc-cli --help and each subcommand's <command> --help.