Standalone Setup

Standalone mode turns a single OWL into a self-contained unit — it creates its own WiFi hotspot and runs its own dashboard. Connect your phone, tablet, or laptop to the OWL’s WiFi to monitor and control it. No existing network or router required.

Haven’t run the installer yet?

Complete the Two-Step Install first, then return here when prompted for dashboard setup.

Example standalone controller interface

How it works

The OWL creates a WiFi hotspot (like a mobile phone sharing its connection). You connect your device to this hotspot and open the dashboard in a browser. Everything runs locally on the OWL Pi — no internet connection needed.

Component

What it does

WiFi hotspot

Creates a network at 10.42.0.1 that your phone/laptop connects to

MQTT broker

Local message system for communication between detection and dashboard

Dashboard

Web interface with live video, detection stats, start/stop controls, and configuration

Nginx + SSL

Secure web server that serves the dashboard and video feed

Note

For managing multiple OWLs from a single screen, see Networked Setup instead.

Run the setup

Choose standalone mode

During the OWL installation (bash owl_setup.sh), the installer will ask if you want a web dashboard. Say yes, then select Standalone mode:

Do you want to add a web dashboard for remote control? (y/n): y
[INFO] Select OWL Operation Mode:
  1) Standalone - Create WiFi hotspot with local MQTT broker and dashboard
  2) Networked  - Connect to existing WiFi network with remote MQTT broker

Select mode (1 or 2): 1
[INFO] Standalone mode selected

Then configure your hotspot:

Enter OWL ID number (default: 1): 1
[INFO] Configuring WiFi Hotspot (Standalone Mode)
Enter WiFi hotspot name/SSID (default: OWL-1): OWL-1
Enter WiFi hotspot password (min 8 characters): ********
Re-enter WiFi password to confirm: ********
Confirm and save this password? (y/n): y

Setting

Default

Description

OWL ID

1

Unique identifier — sets the hostname to owl-1

Hotspot SSID

OWL-1

WiFi network name others will see

Hotspot Password

(none)

Minimum 8 characters

Review and confirm

Check the configuration summary and confirm:

[INFO] Standalone Configuration Summary:
  Mode: Standalone
  Hostname: owl-1
  WiFi Hotspot SSID: OWL-1
  Hotspot IP: 10.42.0.1/24
  MQTT Broker: localhost:1883 (local)
  Dashboard: https://owl-1.local/

Continue with these settings? (y/n): y

Warning

If you’re connected via SSH: The Pi will switch from your current WiFi to creating its own hotspot. Your SSH connection will drop. After setup completes and the Pi reboots, connect to the new hotspot (e.g., OWL-1) to regain access.

The installation runs automatically. Watch for [OK] messages — if everything passes, you’ll see:

[INFO] OWL Setup Summary:
[OK] System Packages
[OK] MQTT Configuration
[OK] Network Configuration
[OK] Hostname Configuration
[OK] UFW Firewall Configuration
[OK] Fan Control Permissions
[OK] Service Control Permissions
[OK] Nginx Configuration
[OK] SSL Certificate Generation
[OK] Avahi Service Configuration
[OK] Service Management
[OK] OWL Config Files

[COMPLETE] OWL setup completed successfully!
What to expect during installation (click to expand)

The script installs and configures each component in order:

[INFO] Installing required system packages...
[INFO] Installing MQTT broker and clients (standalone mode)...
[OK] Installing system packages completed successfully.
[INFO] Configuring MQTT broker (standalone mode)...
[INFO] Testing MQTT configuration...
[OK] MQTT configuration syntax is valid
[INFO] Restarting MQTT service...
[OK] MQTT service is running
[INFO] Testing MQTT broker...
[OK] Mosquitto service is running
[OK] Mosquitto is listening on port 1883
[INFO] Testing local MQTT connection...
[OK] Local MQTT connection successful (attempt 1)
[OK] MQTT configuration file is correct
[OK] MQTT broker core functionality verified
[OK] MQTT broker configuration and testing completed successfully.
[INFO] Setting up WiFi hotspot: OWL-1...
[OK] WiFi hotspot configuration completed successfully.
[INFO] Configuring firewall (UFW)...
[OK] UFW firewall configuration completed successfully.
[INFO] Setting hostname to owl-1...
[OK] Setting hostname completed successfully.
[INFO] Configuring sudo permissions for Pi 5 fan control...
[OK] Fan control sudo permissions completed successfully.
[INFO] Configuring sudo permissions for OWL service control...
[OK] Service control sudo permissions completed successfully.
[INFO] Generating SSL certificates...
[OK] SSL certificate generation completed successfully.
[INFO] Setting up Nginx web server...
[OK] Nginx configuration is valid
[OK] Nginx configuration completed successfully.
[INFO] Configuring Avahi for .local domain resolution...
[OK] Avahi service configuration completed successfully.
[INFO] Starting and enabling services...
[OK] Starting services completed successfully.
[INFO] Creating systemd service for OWL Dashboard...
[OK] OWL Dashboard service started successfully
[OK] Creating and starting dashboard service completed successfully.
[INFO] Updating OWL configuration files with network settings...
[OK] OWL config files updated.
[INFO] Performing final system validation...
[INFO] Final MQTT connectivity validation...
[OK] MQTT broker ready for OWL communication
[OK] MQTT broker ready for network clients
[INFO] Testing dashboard service...
[OK] Dashboard service is responding

The network MQTT test (10.42.0.1) may show a warning during setup — this is normal because the hotspot isn’t fully active yet. It resolves after the reboot.

When prompted, reboot the OWL:

Reboot now? (y/n): y

Tip

If you need to re-run just the network/dashboard setup later (without reinstalling everything), use:

sudo bash ~/owl/controller/shared/setup.sh

If any steps show [FAIL]

The summary will show error details. Review the specific error, fix the issue, and re-run:

sudo bash ~/owl/controller/shared/setup.sh

Connect to the dashboard

After the reboot:

  1. On your phone, tablet, or laptop, look for the WiFi network (e.g., OWL-1)

  2. Connect using the password you set during setup

  3. Open a browser and go to https://owl-1.local/ or https://10.42.0.1/

The actual address uses your OWL ID — so owl-2 would be at https://owl-2.local/.

Note

Your browser will show a security warning because the SSL certificate is self-generated. This is normal and safe to click through — the connection is encrypted.

The dashboard provides live video with detection overlay, real-time statistics, start/stop controls, configuration adjustments, and wireless data downloads.

Using the dashboard

Controls

The Dashboard tab has large toggle buttons for the main functions:

  • Detection / Tracking — tap to start or stop. Shows ON/OFF state

  • Recording — shows a blinking red dot when active (like a camera record indicator). Tap to toggle

  • All Nozzles — turns green when engaged (blanket spray mode). Tap to toggle

  • Sensitivity — switch between Low, Medium, and High detection presets

  • Fan — Auto or 100% manual override

Using a wired controller

If you have a wired controller (UTE or Advanced) connected, the dashboard only locks the controls that the hardware switch manages. Everything else stays interactive:

Controller

What the hardware controls

What you can still use on the dashboard

UTE

Recording

Detection, tracking, nozzles, sensitivity, fan

Advanced

Recording, detection, sensitivity

Tracking, nozzles, fan

Locked controls show a small lock icon. Use the physical switch to change them.

GPS and image tagging

If you open the dashboard on a phone with GPS enabled, captured images are automatically tagged with your location. This is useful for mapping weed hotspots — you can plot geotagged images on a map later.

To use GPS:

  1. Open the dashboard on your phone (GPS must be allowed in the browser)

  2. The GPS toggle in the dashboard shows your accuracy

  3. While GPS is active, every saved image includes location coordinates

Tip

GPS tagging relies on your phone’s browser sending location updates. If you close the browser, switch to another app, or lose signal, tagging stops within a few seconds. Reopen the dashboard to resume.

If you have a wired controller connected, a GPS status LED on the controller box shows the current state:

LED pattern

Meaning

Solid on

GPS lock — images are being tagged

Regular flashing

Acquiring — waiting for signal

Double flash, pause

Error or stale — phone disconnected or no signal

Off

GPS not active

Downloading recorded images

Important

You need a USB drive plugged into the OWL to record images. See USB drive requirements for recommended drives.

When recording is enabled, the OWL saves images to the USB drive in date-based folders (e.g., 20260315/). You can download these wirelessly without unplugging the drive.

The downloads page

Open https://owl-1.local/downloads in your browser, or tap “Download sessions as ZIP” at the bottom of the Storage tab.

The page lists each recording session by date, with image count and total size. From here you can:

  • Preview images — tap a session to expand a thumbnail grid. Tap any thumbnail to see the full image

  • Download as ZIP — downloads all images from that session as a single file

  • Delete a session — permanently removes the images from the USB drive

A storage bar at the bottom shows how full the USB drive is.

Warning

Deleting a session permanently removes the images from the USB drive. There is no undo. Download the data first if you need it.

Troubleshooting

Hotspot or dashboard not working

# Check if the hotspot is active
nmcli con show --active

# If the hotspot isn't listed, start it manually
sudo nmcli con up "OWL-1"

# Check all services are running
sudo systemctl status owl-dash nginx mosquitto

# Restart everything
sudo systemctl restart NetworkManager
sudo systemctl restart owl-dash nginx mosquitto

# View dashboard logs
journalctl -u owl-dash -f

OWL service or camera problems

# Check the detection service
sudo systemctl status owl.service
journalctl -u owl.service -f

# Test the camera
rpicam-hello --list-cameras

# If "No cameras available":
# 1. Check the ribbon cable connection
# 2. Enable camera in raspi-config:
sudo raspi-config
# Interface Options > Camera > Enable

For more help, see the full Troubleshooting Guide.

Reference

Configuration files

The setup script writes these automatically — you should not need to edit them manually.

File

Location

Purpose

GENERAL_CONFIG.ini

~/owl/config/

Detection parameters, sensitivity presets, relay mapping

CONTROLLER.ini

~/owl/config/

MQTT settings, network mode, dashboard port

Network config summary

/opt/owl-dash-config.txt

Human-readable record of your setup choices

System services

Service

Purpose

owl.service

Weed detection and camera

owl-dash

Dashboard web application

mosquitto

MQTT message broker

nginx

Web server (SSL, video proxy)

Common commands:

# Check status
sudo systemctl status owl.service owl-dash mosquitto

# Restart detection or dashboard
sudo systemctl restart owl.service
sudo systemctl restart owl-dash

# View live logs
journalctl -u owl.service -f
journalctl -u owl-dash -f

MQTT topics

In standalone mode, topics use a simple structure (no device ID prefix):

Topic

Purpose

owl/state

Full device state (detection mode, algorithm, settings)

owl/commands

Control commands (start, stop, config changes)

owl/status

Heartbeat and connectivity

owl/detection

Weed detection events

To test MQTT:

# Subscribe to all OWL messages
mosquitto_sub -h localhost -t "owl/#" -v

# Send a test message
mosquitto_pub -h localhost -t "owl/test" -m "hello"

Next steps

See also