Home › Documentation › Fleet Management
Chapter 5 Chapter 5 of the official user guide

Chapter 5 — Fleet Management

When you have more than two or three devices, single-host workflows stop scaling. Fleet management is AidaIDE's answer to "I have 50 Raspberry Pis on a network and need to update all of them." The whole Fleet menu and the orange ⚡ toolbar button live here.

The core SSH/SFTP workspace is agentless. Terminal, SFTP, and LCOT need only standard SSH/SFTP on the remote host — no on-device agent is required for a normal session. Deploy Lite is optional and additive: a Fleet menu that installs an on-device agent (agent name TBD) for fleet OTA and health. We don’t sell “AidaIDE Lite” as a separate product.

What this chapter covers

  • The Fleet Command Center — central registry of every fleet device. The device panel is a full device page.
  • Edit Device — a device password. Leave it blank to keep the stored password. Clearing it uses clear_password. The audit line DEVICE_LOGIN_SET never carries the password.
  • Devices marked Camera — listed and viewable on the Cameras screen (from_fleet, device_id, never a password). Removing one says to change its category.
  • Wi-Fi Surveys... — on a site's Fleet-tab right-click menu. Phone Send to PC files surveys under the site. The desktop Wi-Fi Survey window covers bands, overlap, four heatmaps, site spectrum, and CSV. Six routes under /api/fleet/sites/<site>/wifi-surveys.
  • Fleet Map — towers and devices on a map. Open it from Wireless → Fleet Map (towers + devices)..., the Fleet Manager toolbar Fleet Map, or the Fleet Map workbench tab. OSM device pins, USGS 3DEP terrain and line of sight, RF coverage, and LiDAR canopy when available. On the desktop map, Offline… downloads the area on screen for offline use.
  • Deploy Lite — optional Fleet menu that installs an on-device agent (agent name TBD) or a custom payload. Not an AidaIDE Lite SKU, and not required for agentless SSH/SFTP.
  • Discover Devices — scan a subnet for new candidates to add.
  • Device Dashboard — status grid of everything in your fleet.
  • OTA Update Manager — sign and roll out over-the-air firmware updates to devices that have the optional fleet agent.
  • Serial Monitor, PLC Monitor, Protocol Wizard, Board Library Manager, Test Panel — supporting feature tabs.
  • Web Dashboard — browser pages from the built-in web server (default port 5001), including /fleet/map and the device Router/Firewall tab. Router and switch reads and router actions sign in with the device's own password, falling back to the site's sign-in. A refused login answers 502 with needs_login.

Fleet Manager

This tab is the Fleet Command Center. Open it from Fleet → Fleet Manager or the Fleet Manager toolbar button. The same toolbar has Fleet Map, covered in the next section.

The tab has three regions:

┌────────────────────────────────────────────────────────────────┐
│ Toolbar: Add Device | Import CSV | Bulk Action | Refresh       │
├──────────────────┬─────────────────────────────────────────────┤
│ Group tree       │  Device table (Name, IP, OS, Status, Last)  │
│  All             │  ─────────────────────────────────────────  │
│  ├ Production    │  pi-01    10.0.0.11   Pi OS    ●online      │
│  ├ Lab           │  pi-02    10.0.0.12   Pi OS    ○offline     │
│  └ Edge          │  esp32-A  10.0.0.40   FreeRTOS ●online      │
│                  │                                              │
│                  ├─────────────────────────────────────────────┤
│                  │  Device panel (full device page)             │
│                  │  ~550 px default; drag the left edge         │
└──────────────────┴─────────────────────────────────────────────┘

Adding a device

  1. Click Add Device. Fill in Name, IP, SSH port, username, credential reference (pulls from the Connection Manager vault), device type (Pi / ESP32 / generic Linux / Windows / network gear).
  2. Click Save. AidaIDE attempts a connection on save and marks it online/offline.

Importing in bulk

Import CSV accepts a file with columns name,host,port,username,type. The credentials are not in the CSV — link them after import.

Groups

Drag devices between groups. Bulk actions (next section) scope to the selected group.

Bulk actions

Select multiple devices in the table (Shift+click or Ctrl+click), then Bulk Action:

  • Run Command — runs the same shell command on every selected device in parallel. Output is collected per-device. This uses agentless SSH.
  • Deploy Payload — pushes a file or directory.
  • Update optional fleet agent — bumps the optional on-device agent (agent name TBD) on every selected device to the version on disk. The bulk-action label in the app is Update aida-lite. That label is the implementation name, not an AidaIDE Lite SKU.
  • Restart — sudo reboot.
  • Shutdown — sudo shutdown -h now.

All bulk actions show a confirmation with the device count before running.

Device panel

The device panel is a full device page. The default width is about 550 px. Drag the left edge to resize it.

It shows what AidaIDE has fetched about the device — uptime, kernel, CPU/MEM, disk free, last error in journal. Refresh with the small ↻ icon. Behind the scenes this calls _fetch_specs and _refresh_status over SSH; both use the device's configured SSH port. Specs over SSH do not require the optional fleet agent.

Edit Device

Edit Device takes a device password. Leave it blank to keep the stored password. Clearing it uses clear_password. The audit line DEVICE_LOGIN_SET never carries the password.

Camera devices

Devices marked Camera are listed and viewable on the Cameras screen (from_fleet, device_id, never a password). Removing one says to change its category.

Cards view

Cards view draws one canvas per section. Manage, or a double-click, opens the device panel. The tab paints before the deferred load finishes.

Wi-Fi Surveys

A site's Fleet-tab right-click menu includes Wi-Fi Surveys....

Phone Send to PC files surveys under the site.

The desktop Wi-Fi Survey window covers bands, overlap, four heatmaps, site spectrum, and CSV.

Six routes live under /api/fleet/sites/<site>/wifi-surveys.

Fleet Map

Fleet Map plots towers and fleet devices. Open it from any of these entry points — the names match the desktop app:

  • Menubar: Wireless → Fleet Map (towers + devices)...
  • Fleet Manager toolbar: Fleet Map
  • Workbench opener and notebook tab: Fleet Map

The tab title and label are Fleet Map.

OSM device pins

The default basemap is OpenStreetMap. Fleet devices are pinned where AidaIDE has a location: a GPS fix, a location you set by hand, or the wireless-cache location.

USGS 3DEP terrain and line of sight

Switch the basemap to Terrain (USGS 3DEP / The National Map). Line of Sight opens a profile between two points and classifies the path as CLEAR, GRAZING, or BLOCKED.

RF coverage and address check

Coverage turns the RF coverage heatmap on or off. The toolbar control is labeled Coverage: On/Off. Address and serviceability dialogs on the map:

  • Compute coverage
  • Find an address
  • Find + check service
  • Can we serve here?

LiDAR canopy when available

The line-of-sight Canopy control uses real tree heights from USGS 3DEP point clouds (EPT) when that coverage exists for the path. When point-cloud coverage is not available, canopy heights are left out and the profile still runs on terrain. The map does not fill in a tree layer that the survey did not provide.

Offline areas (desktop Fleet Map)

Offline… on the desktop Fleet Map toolbar, or a right-click Download this area for offline…, saves the area on screen for offline use. The dialog shows a tile count and a size estimate in MB. When the area is more than about 12,000 tiles, AidaIDE asks you to confirm before it downloads.

This download is on the desktop Fleet Map only. It is not on the browser map at /fleet/map.

Deploy Lite

Open from Fleet → Deploy Lite or the orange ⚡ Deploy ESP32 toolbar button.

We don’t sell “AidaIDE Lite” as a separate product. Deploy Lite is a Fleet menu that installs an on-device agent (agent name TBD).

That install is an optional on-device agent, or a custom payload. It is additive for fleet OTA and health. The core SSH/SFTP workspace stays agentless and does not need this agent.

Steps:

  1. Select the target device(s) from the same group tree as the Fleet Command Center.
  2. Pick What to deploy:
    - Optional fleet agent (default; agent name TBD). The picker label in the app is aida-lite agent. That string is the implementation name, not a separate SKU.
    - Custom payload — point at a local file or folder.
  3. Connection method — SSH (Linux/Pi) or Serial (ESP32, microcontrollers via USB).
  4. Click Deploy. Progress is per-device in a log panel.

For ESP32, Deploy Lite drives esptool.py under the hood. You need a USB-connected device showing up as a COM port (Windows) or /dev/tty.usbserial* (macOS) or /dev/ttyUSB* (Linux).

For SSH targets, the payload is copied via SFTP into /opt/aida-lite/ and a systemd unit is installed and enabled. /opt/aida-lite/ is an on-disk path, not a product name.

Discover Devices

Open from Fleet → Discover Devices.

Scans the subnet for devices that respond to known protocols:

  • ICMP (ping sweep).
  • mDNS / Bonjour service announcements.
  • SSH banner grab on port 22.
  • Common embedded ports (ESP-IDF web, Pi-hole, etc.).

Found devices appear in a results table. Tick the ones you want to add and click Add to Fleet — they pre-fill the Add Device dialog.

You can scope the scan to a CIDR range (default: your machine's local subnet) and set per-protocol toggles.

Device Dashboard

Open from Fleet → Device Dashboard (or Tools → Device Monitoring → Device Dashboard).

A real-time grid of cards, one per device, showing:

  • Online indicator (green dot pulsing, or red).
  • CPU and memory usage bars.
  • Last command run.
  • Quick actions: Open Terminal, Open Files, Restart.

Click a card to open a connection tab for that device. Card refresh interval is configurable in Settings → Network → Polling.

OTA Update Manager

Deep dive: OTA Updates (sign, canary, history, keys).

Open from Fleet → OTA Update Manager or Tools → Device Monitoring → OTA Update Manager, or the red OTA Update toolbar button.

OTA pushes a signed payload to fleet devices. The optional fleet agent (agent name TBD) applies it on devices where that agent is installed. Agentless SSH/SFTP does not apply OTA and does not need the agent.

Publishing an update

  1. Click New Release.
  2. Drag the build artefact (e.g. a .zip, .tar.gz, ESP32 firmware .bin) into the drop zone.
  3. AidaIDE signs the artefact with your OTA private key and generates a manifest. The expected upload URL is updates.aidaide.app (the planned endpoint).
  4. Choose roll-out scope — All / Group / Selected devices.
  5. Optionally stage as Canary — 10% of selected first, watch metrics, then promote.
  6. Click Publish.

Devices running the optional fleet agent poll the manifest at the configured interval (default 5 minutes). When they see a newer version targeted at their group, they download, verify the signature, and apply.

OTA history

The Fleet Command Center device panel has an OTA history subtab — what version the device is on, what version it came from, and when it last applied.

Signing keys

The OTA signing keypair is generated on first OTA Manager launch and stored in the vault. To rotate, OTA Update Manager → Settings → Rotate Signing Key. Old releases remain verifiable as long as the old public key is still on devices; new releases require the new key to be deployed first.

Serial Monitor

Open from Tools → Device Monitoring → Serial Monitor.

A serial console for COM-port-attached devices (ESP32, Arduino, USB-to-UART debugs).

  • Port dropdown — auto-populated with available COM ports.
  • Baud — 9600 / 115200 / 921600 are presets; you can type any number.
  • Line ending — None / CR / LF / CR+LF.
  • Echo local — see what you type before it goes out.

Send commands with the input box at the bottom. Output streams to the main pane. Save the buffer with Save Log….

PLC Monitor

For industrial users. Open from Tools → Device Monitoring → PLC Monitor.

Connects to PLCs over Modbus TCP/RTU, Ethernet/IP (Allen-Bradley), Siemens S7, and OPC UA. Lets you read holding registers, coils, tags, and write back where allowed.

WRITE operations on PLCs are gated by a confirmation prompt (same pattern as LCOT WRITE scripts) — these can run motors and open valves.

Protocol Wizard

Tools → Protocol Wizard (Ctrl+Shift+W).

A 4-step guided dialog that builds connection code for a given protocol against a given device library. Picks a protocol (HTTP, MQTT, CoAP, Modbus, OPC UA, BLE, etc.), a target board, an interaction (read sensor / send command / subscribe topic), and emits ready-to-run code into a new editor tab.

Board Library Manager

Tools → Board Library Manager.

Browse and install board support packages. Each entry has board name, vendor, supported protocols, GPIO pin map, and a "Install Library" button which downloads stubs and example sketches into your project root.

Test Panel

Tools → Test Panel.

Runs hardware-in-the-loop test suites against a connected device. Comes with starter tests for Pi GPIO, I²C/SPI, ESP32 Wi-Fi, and serial loopback.

Related: Hardware Lab (virtual HIL). Fleet Test Panel runs hardware-in-the-loop test suites against a connected device. It is not the marketing Hardware Lab workspace (virtual board, timeline scenarios, Bench, Run on Device, Record). See Hardware Lab and the citation-ready definition What is Hardware Lab?.

Web Dashboard

Fleet → Web Dashboard.

AidaIDE auto-starts the built-in web server when you launch the app. Fleet → Web Dashboard opens the browser at http://localhost:5001/fleet, or at that same path on the configured web port. The default port stays 5001.

Browser map (/fleet/map)

These tools are on the web map in the browser, at /fleet/map. They are separate from the desktop Fleet Map tab earlier in this chapter.

  • Line of sight over USGS 3DEP.
  • Coverage heatmaps.
  • An address or spot check: can we serve it?
  • Mast heights, and Measure from LiDAR.

Router/Firewall (/fleet/device)

The device page at /fleet/device has a Router/Firewall tab.

  • RouterOS — AidaIDE shows a plan, then applies it only after you type a confirmation.
  • EdgeOS — read-only.

Router and switch reads, and router actions, sign in with the device's own password, falling back to the site's sign-in. A refused login answers 502 with needs_login.

Terms & Setup

"I don't have a device yet"

You can exercise the Fleet Command Center end-to-end before any real hardware arrives. Normal SSH practice stays agentless; Deploy Lite below is only for the optional fleet agent.

  • Bundled simulator. Tools → Protocol Wizard → Simulated Device spins up a stand-in for the optional fleet agent (agent name TBD) that registers with the Fleet Command Center the way a real Pi would. Use it to walk the Add → Discover → Deploy Lite → OTA flow before you have a board on the desk.
  • A virtual Linux box. Any local Linux VM (VirtualBox, VMware, QEMU, WSL2, Multipass) will accept the optional fleet agent. From the VM, run the one-liner shown in Fleet → Deploy Lite and it appears in your fleet within a few seconds. SSH into the VM still works with no agent installed.
  • A free Raspberry Pi OS image in QEMU. Download the latest Raspberry Pi OS Lite image (the Raspberry Pi OS image name, not an AidaIDE product), boot it with qemu-system-aarch64, SSH in, then run the Deploy Lite one-liner only if you want the optional fleet agent. Same flow as a physical Pi.
  • Just the AidaIDE host itself. As a quick smoke test, use Deploy Lite to install the optional fleet agent on your AidaIDE workstation. It registers as localhost and lets you exercise grouping, tagging, and OTA without leaving your desk.

When you do have hardware, see Ch. 2 — SSH Devices §"I do not have an SSH server" — setup paths for getting sshd running on it, then return here for Add Device or Discover Devices. Agentless SSH is enough until you want fleet OTA or health from the optional agent.

aida-lite

On-disk and service name of the optional fleet agent (agent display name TBD). It is not a product called AidaIDE Lite, and the core SSH/SFTP workspace does not require it. When installed, it reports specs and health back to the Fleet Command Center and applies OTA updates. Paths on the device — not SKUs — include /opt/aida-lite/ and the systemd unit aida-lite (journalctl -u aida-lite).

Fleet vs Connection Manager

Connection Manager is the registry of interactive SSH sessions you open by hand. Fleet Command Center is the registry of devices you want to manage in bulk. The two overlap — a device can be in both — and credentials are shared via the same vault, so adding a device in Fleet automatically gives you a Connection Manager entry too. Those SSH sessions are agentless.

"Discover Devices" found nothing

  • Confirm your CIDR scope matches the LAN your devices are on.
  • Some routers block mDNS or ICMP across VLANs.
  • Some ESP32 firmwares do not advertise via mDNS. Try a SSID-scan instead: Tools → Protocol Wizard → BLE/Wi-Fi.

"OTA Update succeeded but the device did not change"

  • Check the optional fleet agent's logs. Where Deploy Lite installed the systemd unit, the unit name is aida-lite (an implementation path, not a SKU): journalctl -u aida-lite on the device.
  • Verify the device is in the target group on the release.
  • Verify the device has the current signing public key — see OTA Update Manager → Devices → Key Status.

"Deploy Lite for ESP32 cannot find my device"

  • The device must be in bootloader mode for esptool to flash. Hold BOOT, tap RST, release BOOT.
  • The USB cable must support data (not charge-only).
  • On Windows, install the CP210x or CH340 driver matching your dev board.

"Industrial PLC: how do I find my register addresses?"

Vendor docs. AidaIDE's PLC Monitor shows the canonical Modbus register layout (40001-49999 holding registers, 30001-39999 input registers, etc.) and lets you probe. Mismatched addresses = silent zeros. Always cross-check the PLC's own programming software.

Ready to try it? Free forever SSH workspace — Pro AI suite optional at $19/mo.

Sign up free