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.
What this chapter covers
- The Fleet Manager tab — central registry of every fleet device.
- Deploy Lite — push the aida-lite agent or a custom payload to many devices at once.
- 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.
- Serial Monitor, PLC Monitor, Protocol Wizard, Board Library Manager, Test Panel — supporting feature tabs.
Fleet Manager
Open from Fleet → Fleet Manager or the Fleet Manager toolbar button.
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 │
│ │ │
│ ├─────────────────────────────────────────────┤
│ │ Detail panel for selected device │
│ │ (Specs / Health / Logs / OTA history) │
└──────────────────┴─────────────────────────────────────────────┘
Adding a device
- 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).
- 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.
- Deploy Payload — pushes a file or directory.
- Update aida-lite — bumps the agent on every selected device to the version on disk.
- Restart —
sudo reboot. - Shutdown —
sudo shutdown -h now.
All bulk actions show a confirmation with the device count before running.
Specs and health
The detail panel 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.
Deploy Lite
Open from Fleet → Deploy Lite or the orange ⚡ Deploy ESP32 toolbar button.
The aida-lite is a small Python agent that runs on a device and reports back to your Fleet Manager. Deploy Lite is the workflow for getting it installed.
Steps:
- Select the target device(s) from the same group tree as Fleet Manager.
- Pick What to deploy:
- aida-lite agent (default).
- Custom payload — point at a local file or folder. - Connection method — SSH (Linux/Pi) or Serial (ESP32, microcontrollers via USB).
- 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.
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
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 and the device's aida-lite agent applies it.
Publishing an update
- Click New Release.
- Drag the build artefact (e.g. a
.zip,.tar.gz, ESP32 firmware.bin) into the drop zone. - AidaIDE signs the artefact with your OTA private key and generates a manifest. The expected upload URL is
updates.aidaide.app(the planned endpoint). - Choose roll-out scope — All / Group / Selected devices.
- Optionally stage as Canary — 10% of selected first, watch metrics, then promote.
- Click Publish.
Devices running aida-lite 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
Each device's detail panel in Fleet Manager has an OTA history subtab — what version they are on, what version they came from, when they 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.
Web Dashboard
Fleet → Web Dashboard.
Launches a local Flask server on port 5001 that serves a browser-friendly view of your fleet. Useful when you want to glance at fleet status from another machine on the LAN without opening AidaIDE there. Note: as of 2026-05-19, the launch button is wired but the Flask server is not auto-started on click — open it manually by running python web_server.py from the repo root, then browse to http://localhost:5001/fleet.
Terms & Setup
"I don't have a device yet"
You can exercise Fleet Manager end-to-end before any real hardware arrives:
- Bundled simulator. Tools → Protocol Wizard → Simulated Device spins up a virtual aida-lite that registers with Fleet Manager exactly like 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 aida-lite. From the VM, run the one-liner shown in Fleet → Deploy Lite and it appears in your fleet within a few seconds.
- A free Raspberry Pi OS image in QEMU. Download the latest Raspberry Pi OS Lite image, boot it with
qemu-system-aarch64, SSH in, then run the Deploy Lite one-liner. Same flow as a physical Pi. - Just the AidaIDE host itself. As a quick smoke test, install aida-lite on your AidaIDE workstation. It registers as
localhostand 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.
aida-lite
The lightweight agent that runs on a fleet device. Reports specs and health back to Fleet Manager and applies OTA updates. Per-device pricing applies (separate from the per-user AidaIDE license).
Fleet vs Connection Manager
Connection Manager is the registry of interactive SSH sessions you open by hand. Fleet Manager 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.
"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 device's aida-lite logs (
journalctl -u aida-liteon 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.
Pricing dimension
aida-lite is per-device. The AidaIDE IDE itself is per-user. So a device cap on a paid plan is a connection cap, not the per-device aida-lite price.
"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.