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 |
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:
On your phone, tablet, or laptop, look for the WiFi network (e.g.,
OWL-1)Connect using the password you set during setup
Open a browser and go to
https://owl-1.local/orhttps://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:
Open the dashboard on your phone (GPS must be allowed in the browser)
The GPS toggle in the dashboard shows your accuracy
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 |
|---|---|---|
|
|
Detection parameters, sensitivity presets, relay mapping |
|
|
MQTT settings, network mode, dashboard port |
Network config summary |
|
Human-readable record of your setup choices |
System services¶
Service |
Purpose |
|---|---|
|
Weed detection and camera |
|
Dashboard web application |
|
MQTT message broker |
|
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 |
|---|---|
|
Full device state (detection mode, algorithm, settings) |
|
Control commands (start, stop, config changes) |
|
Heartbeat and connectivity |
|
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
Networked Setup - Connect multiple OWLs to a shared network
Configuration Guide - Fine-tune detection parameters
Operation Guide - Understand detection algorithms
Use Cases - Mounting and application examples
Controllers - Wired and wireless controller options