diff --git a/docs/build_mkdocs.md b/docs/build_mkdocs.md index 9313992..bd0dd38 100644 --- a/docs/build_mkdocs.md +++ b/docs/build_mkdocs.md @@ -7,7 +7,7 @@ tags: - developer-guide --- -# Developer Guide — Building the Docs +# Developer Guide: Building the Docs This page explains how to build and preview the SPARROW documentation site locally. @@ -37,7 +37,7 @@ To build the static site without serving it: mkdocs build ``` -Output goes to `site/` (gitignored — never commit this directory). +Output goes to `site/` (gitignored, never commit this directory). ## Deploy to GitHub Pages diff --git a/docs/cite.md b/docs/cite.md index 409504f..d8d14c5 100644 --- a/docs/cite.md +++ b/docs/cite.md @@ -1,5 +1,5 @@ --- -description: "How to cite SPARROW — software citation and BibTeX entry for the SPARROW edge AI wildlife monitoring system by Microsoft AI for Good Lab." +description: "How to cite SPARROW: software citation and BibTeX entry for the SPARROW edge AI wildlife monitoring system by Microsoft AI for Good Lab." tags: - SPARROW - citation diff --git a/docs/edge-ai-wildlife-monitoring.md b/docs/edge-ai-wildlife-monitoring.md new file mode 100644 index 0000000..583607e --- /dev/null +++ b/docs/edge-ai-wildlife-monitoring.md @@ -0,0 +1,67 @@ +--- +title: "Edge AI Biodiversity Monitoring with SPARROW" +description: "SPARROW is a solar-powered edge AI wildlife monitoring device that runs detection on-device on an NVIDIA Jetson and uplinks results over Starlink." +tags: + - edge-ai + - wildlife-monitoring-device + - SPARROW + - biodiversity + - jetson-orin-nano + - remote-monitoring +--- + +# Edge AI Biodiversity Monitoring with SPARROW + +SPARROW is a wildlife monitoring device that brings AI to the field instead of sending raw data home for processing. A unit sits in the landscape, gathers images and sound from its sensors, runs the AI on the spot, and sends only the results back. That design is what makes biodiversity monitoring practical in places with no grid power and no cell coverage. + +This page explains what edge AI buys you for conservation fieldwork, who SPARROW is built for, and how its on-device approach differs from a traditional camera-trap-plus-cloud pipeline. + +## Why run the AI at the edge? + +Most camera-trap workflows collect images first and analyze them later, often weeks after retrieval. SPARROW inverts that order. Each unit carries an NVIDIA Jetson Orin Nano that runs the models locally, so detection and species classification happen within minutes of capture rather than after a field season ends. + +Doing the work on-device has three practical payoffs in remote deployments: + +- **Bandwidth that fits a satellite link.** Running inference locally means only detections and metadata travel over the network, not gigabytes of raw frames. That keeps a low-Earth-orbit uplink usable even where bandwidth is scarce. +- **Insight while it still matters.** Because results arrive in near real time, a poaching event or a rare-species sighting can surface the same day instead of after the cards come back from the field. +- **Privacy before anything leaves the box.** SPARROW screens for human images on-device and removes them before upload, so sensitive frames never enter the pipeline. + +## What a SPARROW unit is + +A SPARROW unit is a self-contained, solar-powered enclosure that combines sensing, compute, power, and connectivity in one weatherproof box: + +- **Sensing.** Up to 150 solar WiFi camera traps, an AudioMoth acoustic sensor, and I²C environmental sensors for temperature, humidity, and pressure. +- **Compute.** An NVIDIA Jetson Orin Nano serving models through NVIDIA Triton Inference Server. +- **Power.** Solar panels feeding a LiFePO4 battery through an MPPT charge controller, with scheduling that keeps the unit running through nights and cloudy stretches. +- **Connectivity.** A Starlink Mini satellite uplink for sites beyond cellular or WiFi reach. + +For the full parts list and how the pieces fit together, see the [hardware and architecture](hardware.md) page. + +## Who SPARROW is for + +SPARROW is aimed at researchers and conservation teams who need to monitor wildlife where the usual infrastructure does not reach: + +- **Field ecologists** running long, unattended deployments far from power and roads. +- **Protected-area managers** who want detections surfaced quickly rather than after retrieval. +- **Conservation technologists** who would rather assemble from a documented bill of materials than build an edge stack from scratch. + +If a site has reliable mains power and a wired or cellular connection, a simpler camera-trap setup may be enough. SPARROW earns its complexity precisely where that infrastructure is missing. + +## The AI that runs on the device + +SPARROW serves wildlife models built on [PyTorch-Wildlife](https://github.com/microsoft/Pytorch-Wildlife), exported to ONNX and run through Triton on the Jetson GPU. The default deployment ships with three models: MegaDetector v6 for animal, person, and vehicle detection, an Amazon Basin species classifier, and a bird-specific detector. The [software setup](setup.md) page covers how those models are deployed and served. + +## Where to go next + +- **[Hardware and architecture](hardware.md)**: components, power, connectivity, and how the system is wired together. +- **[Field deployment guide](field-deployment.md)**: siting, power planning, connectivity, and maintenance for a remote install. +- **[Limitations and field considerations](limitations.md)**: the conditions that constrain an autonomous, off-grid unit. +- **[Software setup](setup.md)**: the one-click Jetson script, Docker stack, and AI models. + +## Related Microsoft biodiversity AI projects + +SPARROW is the field-hardware layer of a larger open-source toolkit from the Microsoft AI for Good Lab. The [Microsoft Biodiversity hub](https://microsoft.github.io/Biodiversity/) ties the ecosystem together. + +- **[MegaDetector](https://microsoft.github.io/MegaDetector/)**: the camera-trap detector that locates animals, people, and vehicles in images; SPARROW runs it on-device. +- **MegaDetector-Acoustic (documentation coming soon)**: the project that analyzes and classifies audio recordings; SPARROW collects sound in the field and leaves audio classification to it. +- **[PyTorch-Wildlife](https://microsoft.github.io/Pytorch-Wildlife/)**: the AI framework whose detection and classification models SPARROW packages for the edge. diff --git a/docs/field-deployment.md b/docs/field-deployment.md new file mode 100644 index 0000000..e6461d8 --- /dev/null +++ b/docs/field-deployment.md @@ -0,0 +1,74 @@ +--- +title: "Remote Wildlife Monitoring: SPARROW Field Deployment Guide" +description: "Plan a remote wildlife monitoring deployment with SPARROW: siting, solar power, Starlink wildlife connectivity, camera-trap networking, and field maintenance." +tags: + - remote-wildlife-monitoring + - field-deployment + - starlink + - solar-powered + - SPARROW + - camera-trap +--- + +# Remote Wildlife Monitoring: SPARROW Field Deployment Guide + +Getting a SPARROW unit to run unattended for months in a remote location is mostly a planning problem. This guide walks through the field-side decisions: where to put the unit, how to size its power, how its connectivity behaves over Starlink, how to lay out the camera-trap network, and what maintenance looks like once it is live. + +It assumes the unit is already built and flashed. For parts and wiring see [hardware and architecture](hardware.md); for the software stack see [software setup](setup.md). + +## Siting the unit + +The SPARROW enclosure has to satisfy three things at once: sun for the panels, sky for the satellite dish, and radio reach to the cameras. + +- **Sun exposure.** The solar panels are the unit's only power source, so the mounting spot needs as much unobstructed daylight as the site allows. The 45-inch tilt brackets let you angle the panels toward the sun's seasonal arc. +- **Clear sky for Starlink.** The Starlink Mini dish needs an open view overhead to hold a link to the low-Earth-orbit constellation. Site it away from dense canopy or terrain that blocks the sky. +- **WiFi reach to the cameras.** The Jetson runs a WiFi hotspot that the camera traps join, so cameras need to sit within radio range of the enclosure. A long-range outdoor antenna is an option when the camera network spreads out. +- **Weather and physical security.** The electronics live in an IP65-rated weatherproof junction box built for outdoor field use. Choose a mounting point that protects the panels and dish from the worst of the local weather and keeps the unit out of easy reach. + +## Power planning + +SPARROW is built to run off-grid indefinitely on solar, but only if power generation and storage are matched to the site. + +- **Generation.** Two 100W monocrystalline panels feed an MPPT charge controller wired for a 24V configuration. MPPT tracking squeezes more usable energy out of the panels than a simpler controller would, which matters on short or overcast days. +- **Storage.** A 24V LiFePO4 battery carries the unit through nights and cloudy stretches. The bill of materials lists a 50Ah to 100Ah cell; pick capacity for your latitude, season, and how much cloud the site sees. Longer dark periods call for more storage. +- **Demand management.** SPARROW actively manages its own draw. It monitors the charge controller and battery state and schedules components dynamically, throttling or pausing power-hungry tasks to ride out low-charge periods rather than draining the battery flat. + +!!! tip "Size for the worst week, not the average" + Solar autonomy is set by your cloudiest stretch, not by typical conditions. When in doubt, favor more battery capacity and panel headroom for the darkest part of the deployment season. + +## Connectivity over Starlink + +SPARROW uses a Starlink Mini kit for its uplink, which is what lets it report from places with no cellular or terrestrial WiFi. Connectivity is treated as intermittent by design. + +- **Satellite uplink.** A dedicated `starlink` service watches the satellite link, logs signal metrics, and triggers a data sync when the uplink is up. +- **Store and forward.** When the link is down the unit keeps working: data is recorded to local storage and synced automatically once connectivity returns, so a connectivity gap does not cost you observations. +- **Scheduled link windows.** The unit pulls a Starlink sleep-window schedule from the dashboard, so the satellite terminal can be powered down during set hours to conserve energy rather than drawing current around the clock. + +Because inference runs on-device, only detections and metadata cross the satellite link, which keeps data volumes within what a remote uplink can carry. + +## Camera-trap network + +A single SPARROW unit can act as the hub for a sizeable camera network, up to 150 solar WiFi cameras. During setup the Jetson is configured with a persistent WiFi hotspot that the cameras join, and the unit polls them, pulls new images, and deduplicates before running detection. For larger or more spread-out deployments, a higher-gain outdoor WiFi antenna extends the usable range. + +## Maintenance and operation + +Once a unit is live, most operation is hands-off, but a few things are worth planning around: + +- **Pairing and data flow.** The unit pairs to a SPARROW dashboard account with an access key; detections, audio, and system metrics upload there when connectivity allows. Register and obtain a key at [dashboard.sparrow-earth.com](https://dashboard.sparrow-earth.com/). +- **Health telemetry.** Environmental sensors and system metrics are uploaded alongside detections, giving you a remote read on how the unit is faring without a site visit. +- **Storage headroom.** A 2TB NVMe SSD buffers images and audio locally so the unit can keep recording through extended offline periods; plan visits or sync windows so the buffer does not fill during a long connectivity gap. +- **Privacy.** Human images are screened and removed on-device before upload, and the dashboard applies its own scrubbing as a second pass. + +## Related pages + +- **[Edge AI biodiversity monitoring](edge-ai-wildlife-monitoring.md)**: what SPARROW is and why on-device AI suits remote work. +- **[Hardware and architecture](hardware.md)**: the components behind every choice on this page. +- **[Limitations and field considerations](limitations.md)**: the constraints to weigh before committing a site. + +## Related Microsoft biodiversity AI projects + +SPARROW is part of an open-source biodiversity toolkit from the Microsoft AI for Good Lab; the [Microsoft Biodiversity hub](https://microsoft.github.io/Biodiversity/) is the umbrella for the projects below. + +- **[MegaDetector](https://microsoft.github.io/MegaDetector/)**: the camera-trap detection model SPARROW runs on captured images in the field. +- **MegaDetector-Acoustic (documentation coming soon)**: handles analysis and classification of the audio SPARROW records. +- **[PyTorch-Wildlife](https://microsoft.github.io/Pytorch-Wildlife/)**: the framework supplying SPARROW's on-device wildlife models. diff --git a/docs/hardware.md b/docs/hardware.md index 65bf0c7..7cc8fee 100644 --- a/docs/hardware.md +++ b/docs/hardware.md @@ -1,35 +1,49 @@ --- -description: "SPARROW hardware assembly guide — bill of materials for NVIDIA Jetson Orin Nano, Starlink satellite, solar power, AudioMoth acoustic sensor, and Reolink camera trap edge AI system." +title: "SPARROW Hardware and Architecture: Solar Camera Trap on NVIDIA Jetson" +description: "SPARROW hardware and architecture: a solar powered camera trap and NVIDIA Jetson camera trap edge unit with Starlink wildlife connectivity and LiFePO4 power." tags: - SPARROW - hardware - jetson-orin-nano + - solar-powered-camera-trap + - nvidia-jetson-camera-trap + - starlink-wildlife - bill-of-materials - - starlink - - solar-powered - audiomoth - camera-trap - assembly --- -# Hardware Setup +# SPARROW Hardware and Architecture SPARROW is a solar-powered edge AI computing unit built around the **NVIDIA Jetson Orin Nano**. It collects data from camera traps, acoustic sensors, and environmental monitors, processes it on-device using PyTorch-Wildlife models via the NVIDIA Triton Inference Server, and transmits results via Starlink satellite. -This page summarizes the hardware components needed to build a SPARROW unit. For full step-by-step assembly instructions, wiring diagrams, and part numbers, download the official guides: +This page summarizes the hardware that goes into a SPARROW unit and how the subsystems fit together. For the bigger-picture rationale see [edge AI biodiversity monitoring](edge-ai-wildlife-monitoring.md), and for planning a live install see the [field deployment guide](field-deployment.md). -- 📋 **[SPARROW Bill of Materials](https://aka.ms/sparrowbom)** — full component list with recommended vendors and quantities -- 🏗️ **[SPARROW Assembly and Setup Guide](https://aka.ms/sparrowassembly)** — step-by-step wiring and assembly instructions +## How the subsystems fit together + +A SPARROW unit groups into five subsystems that share one weatherproof enclosure: + +- **Compute** is the NVIDIA Jetson Orin Nano, which runs the AI models and every SPARROW service, making this a Jetson-based camera trap that does its detection on the spot. +- **Power** is the solar chain: panels, an MPPT charge controller, and a LiFePO4 battery feeding the Jetson, which is what makes it a true solar powered camera trap rather than a battery-swap device. +- **Network** is the Starlink Mini uplink for offsite reporting plus an internal WiFi link to the cameras, the combination that delivers Starlink wildlife connectivity from sites with no cellular service. +- **Audio** is the AudioMoth sensor, used here for field data collection. +- **Camera and enclosure** are the WiFi camera traps and the IP65 box that houses the electronics. + +The sections below list the components in each subsystem. For full step-by-step assembly instructions, wiring diagrams, and part numbers, download the official guides: + +- 📋 **[SPARROW Bill of Materials](https://aka.ms/sparrowbom)**: full component list with recommended vendors and quantities +- 🏗️ **[SPARROW Assembly and Setup Guide](https://aka.ms/sparrowassembly)**: step-by-step wiring and assembly instructions --- ## Hardware Components by Category -### Brain — Compute +### Brain: Compute | Component | Role | |---|---| -| NVIDIA Jetson Orin Nano Super Developer Kit | Primary edge compute unit — runs AI models and all SPARROW services | +| NVIDIA Jetson Orin Nano Super Developer Kit | Primary edge compute unit: runs AI models and all SPARROW services | | 2TB PCIe Gen 4 NVMe SSD | Local image/audio storage for offline operation | | DS3231M RTC (I²C) | Real-time clock for accurate timestamps in remote deployments | | BME688 Environmental Sensor (I²C) | Temperature, humidity, pressure, and gas sensing | @@ -42,19 +56,19 @@ This page summarizes the hardware components needed to build a SPARROW unit. For --- -### Power — Solar + Battery +### Power: Solar + Battery | Component | Role | |---|---| | MPPT Solar Charge Controller (24V/15A+) | Maximizes solar panel harvest; recommended: Victron SmartSolar MPPT 100/20 | -| 100W Monocrystalline Solar Panels (×2) | Primary power source — wired in 24V series configuration | +| 100W Monocrystalline Solar Panels (×2) | Primary power source: wired in 24V series configuration | | 24V 50–100Ah LiFePO4 Battery | Energy storage for overnight and cloudy-day operation | | Solar Panel Mount Brackets (45") | Tiltable mounting for optimal sun angle | | 10AWG Weatherproof Cabling | Solar panel → charge controller → battery wiring | --- -### Network — Satellite Connectivity +### Network: Satellite Connectivity | Component | Role | |---|---| @@ -66,7 +80,7 @@ This page summarizes the hardware components needed to build a SPARROW unit. For --- -### Audio — Acoustic Monitoring +### Audio: Acoustic Monitoring | Component | Role | |---|---| @@ -78,7 +92,7 @@ This page summarizes the hardware components needed to build a SPARROW unit. For | Component | Role | |---|---| -| Solar WiFi Camera Trap (×1+) | Camera traps for wildlife image capture — SPARROW supports **up to 150 cameras** per unit; recommended: Reolink Argus Eco+ | +| Solar WiFi Camera Trap (×1+) | Camera traps for wildlife image capture: SPARROW supports **up to 150 cameras** per unit; recommended: Reolink Argus Eco+ | --- @@ -94,14 +108,25 @@ This page summarizes the hardware components needed to build a SPARROW unit. For ## Assembly Process Overview -1. **Enclosure preparation** — drill gland holes, mount DIN rail or panel -2. **Power wiring** — solar panels → charge controller → battery → Jetson -3. **Sensor installation** — connect I²C boards (RTC, BME688, SHTC3, relay) to Jetson GPIO via Click Shield -4. **Camera network** — mount outdoor WiFi antenna(s); configure camera trap SSIDs -5. **Starlink setup** — weatherproof cable routing and dish alignment -6. **AudioMoth** — connect via USB; configure recording schedule -7. **Final check** — verify all connections before first power-up +1. **Enclosure preparation**: drill gland holes, mount DIN rail or panel +2. **Power wiring**: solar panels → charge controller → battery → Jetson +3. **Sensor installation**: connect I²C boards (RTC, BME688, SHTC3, relay) to Jetson GPIO via Click Shield +4. **Camera network**: mount outdoor WiFi antenna(s); configure camera trap SSIDs +5. **Starlink setup**: weatherproof cable routing and dish alignment +6. **AudioMoth**: connect via USB; configure recording schedule +7. **Final check**: verify all connections before first power-up For detailed instructions with photos and wiring diagrams, see the [SPARROW Assembly and Setup Guide](https://aka.ms/sparrowassembly). -Once hardware is assembled, proceed to [Software Setup](setup.md). +Once hardware is assembled, proceed to [Software Setup](setup.md). To plan where and how to install the finished unit, see the [field deployment guide](field-deployment.md), and review the [limitations and field considerations](limitations.md) before committing a site. + +!!! note "AudioMoth here is for capture, not analysis" + The AudioMoth sensor is part of SPARROW's data-collection hardware. Analyzing and classifying the recorded audio is handled by MegaDetector-Acoustic (documentation coming soon), not by SPARROW. + +## Related Microsoft biodiversity AI projects + +SPARROW is the field-hardware layer of an open-source biodiversity toolkit from the Microsoft AI for Good Lab; the [Microsoft Biodiversity hub](https://microsoft.github.io/Biodiversity/) connects the projects below. + +- **[MegaDetector](https://microsoft.github.io/MegaDetector/)**: the camera-trap detection model SPARROW runs on the Jetson. +- **MegaDetector-Acoustic (documentation coming soon)**: analyzes and classifies the audio SPARROW captures in the field. +- **[PyTorch-Wildlife](https://microsoft.github.io/Pytorch-Wildlife/)**: the AI framework whose models SPARROW packages for edge inference. diff --git a/docs/index.md b/docs/index.md index 6fb1bd2..6b23092 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,5 @@ --- -description: "SPARROW — Solar-Powered Acoustic and Remote Recording Observation Watch. Microsoft AI for Good Lab's open-source edge AI system for wildlife monitoring with NVIDIA Jetson, Starlink, and PyTorch-Wildlife." +description: "SPARROW: Solar-Powered Acoustic and Remote Recording Observation Watch. Microsoft AI for Good Lab's open-source edge AI system for wildlife monitoring with NVIDIA Jetson, Starlink, and PyTorch-Wildlife." tags: - SPARROW - edge-ai @@ -17,7 +17,11 @@ tags: **SPARROW** (Solar-Powered Acoustic and Remote Recording Observation Watch) is Microsoft AI for Good Lab's open-source edge AI system for wildlife monitoring in the most remote regions of the world. -Solar-powered and equipped with multi-modal sensors, SPARROW collects biodiversity data from camera traps, acoustic monitors, and environmental sensors. It processes that data **on-device** using [PyTorch-Wildlife](https://github.com/microsoft/Pytorch-Wildlife) models running on the NVIDIA Jetson Orin Nano — no cloud required for inference — then transmits results via Starlink low-Earth-orbit satellites for near-real-time insights anywhere on the planet. +In one sentence: SPARROW is a solar-powered wildlife monitoring device that runs AI on-device and uplinks results over satellite, so you can collect and act on biodiversity data from places with no power and no cell coverage. + +Solar-powered and equipped with multi-modal sensors, SPARROW collects biodiversity data from camera traps, acoustic monitors, and environmental sensors. It processes that data **on-device** using [PyTorch-Wildlife](https://github.com/microsoft/Pytorch-Wildlife) models running on the NVIDIA Jetson Orin Nano, so inference needs no cloud, then transmits results via Starlink low-Earth-orbit satellites for near-real-time insights anywhere on the planet. + +New here? Start with [edge AI biodiversity monitoring](edge-ai-wildlife-monitoring.md) for what SPARROW is and who it is for, then the [field deployment guide](field-deployment.md) to plan a remote install. --- @@ -26,10 +30,10 @@ Solar-powered and equipped with multi-modal sensors, SPARROW collects biodiversi A single SPARROW unit autonomously: 1. **Collects data** from up to 150 solar WiFi camera traps, an AudioMoth acoustic sensor, and I²C environmental sensors (temperature, humidity, pressure) -2. **Runs AI models on-device** via NVIDIA Triton Inference Server — MegaDetector v6 for animal/human/vehicle detection, species classifiers for identification, and bird-specific detectors +2. **Runs AI models on-device** via NVIDIA Triton Inference Server: MegaDetector v6 for animal/human/vehicle detection, species classifiers for identification, and bird-specific detectors 3. **Manages power** intelligently using MPPT solar charging, LiFePO4 batteries, and dynamic component scheduling for continuous off-grid operation 4. **Transmits data** via Starlink satellite when connectivity is available; stores data locally when offline and syncs automatically on reconnect -5. **Scrubs privacy data** — automatically detects and removes human-related images before upload +5. **Scrubs privacy data**: automatically detects and removes human-related images before upload All services run in Docker containers on the Jetson, orchestrated by Docker Compose. @@ -39,10 +43,10 @@ All services run in Docker containers on the Jetson, orchestrated by Docker Comp | Capability | Details | |---|---| -| **On-device AI inference** | MegaDetector v6, Amazon species classifier, bird detector — all as ONNX models on NVIDIA Triton | +| **On-device AI inference** | MegaDetector v6, Amazon species classifier, bird detector: all as ONNX models on NVIDIA Triton | | **Camera trap support** | Up to 150 solar WiFi cameras per unit (e.g., Reolink Argus Eco+) | | **Acoustic monitoring** | AudioMoth integration for bioacoustics (birds, bats, insects) | -| **Global connectivity** | Starlink Mini satellite uplink — works in locations with no cellular or WiFi | +| **Global connectivity** | Starlink Mini satellite uplink: works in locations with no cellular or WiFi | | **Solar autonomous** | 24V LiFePO4 battery + MPPT solar controller; designed for months of unattended deployment | | **Environmental sensing** | Temperature, humidity, pressure, gas (BME688 + SHTC3 I²C sensors) | | **Privacy by design** | On-device human image scrubbing before any data leaves the device | @@ -80,10 +84,13 @@ All services run in Docker containers on the Jetson, orchestrated by Docker Comp ## Getting Started -1. **[Hardware Setup](hardware.md)** — Bill of materials, component overview, and assembly guide -2. **[Software Setup](setup.md)** — One-click Jetson setup script, Docker architecture, AI models -3. **[Cite Us](cite.md)** — How to cite SPARROW in publications -4. **[GitHub Repository](https://github.com/microsoft/SPARROW)** — Source code, issues, and contributions +1. **[Edge AI Biodiversity Monitoring](edge-ai-wildlife-monitoring.md)**: What SPARROW is, who it is for, and why it runs the AI at the edge +2. **[Hardware and Architecture](hardware.md)**: Bill of materials, the solar and connectivity subsystems, and how they fit together +3. **[Field Deployment Guide](field-deployment.md)**: Siting, power planning, Starlink connectivity, and maintenance for a remote install +4. **[Software Setup](setup.md)**: One-click Jetson setup script, Docker architecture, AI models +5. **[Limitations and Field Considerations](limitations.md)**: Power, connectivity, weather, and storage constraints to plan around +6. **[Cite Us](cite.md)**: How to cite SPARROW in publications +7. **[GitHub Repository](https://github.com/microsoft/SPARROW)**: Source code, issues, and contributions --- @@ -91,12 +98,12 @@ All services run in Docker containers on the Jetson, orchestrated by Docker Comp | Repository | Description | |---|---| -| [microsoft/Biodiversity](https://github.com/microsoft/Biodiversity) | Umbrella hub — PyTorch-Wildlife, MegaDetector, ecosystem overview | +| [microsoft/Biodiversity](https://github.com/microsoft/Biodiversity) | Umbrella hub: PyTorch-Wildlife, MegaDetector, ecosystem overview | | [microsoft/MegaDetector](https://github.com/microsoft/MegaDetector) | Animal/human/vehicle detector for camera traps | | [microsoft/Pytorch-Wildlife](https://github.com/microsoft/Pytorch-Wildlife) | Unified AI framework: detection + species classification | | [microsoft/MegaDetector-Acoustic](https://github.com/microsoft/MegaDetector-Acoustic) | Bioacoustic AI for audio-based wildlife detection and classification | | [microsoft/MegaDetector-Overhead](https://github.com/microsoft/MegaDetector-Overhead) | Wildlife detection in aerial and drone imagery | | [microsoft/MegaDetector-Sonar](https://github.com/microsoft/MegaDetector-Sonar) | Sonar-based wildlife detection for aquatic monitoring | -| [microsoft/MegaDetector-Classifier](https://github.com/microsoft/MegaDetector-Classifier) | Camera-trap species classification fine-tuning — adapt classifiers to your own datasets and geographic regions | -| [microsoft/SPARROW](https://github.com/microsoft/SPARROW) | This repo — solar-powered edge AI for wildlife monitoring | +| [microsoft/MegaDetector-Classifier](https://github.com/microsoft/MegaDetector-Classifier) | Camera-trap species classification fine-tuning: adapt classifiers to your own datasets and geographic regions | +| [microsoft/SPARROW](https://github.com/microsoft/SPARROW) | This repo: solar-powered edge AI for wildlife monitoring | | SPARROW Studio | Desktop application for all AI for Good Lab models | diff --git a/docs/limitations.md b/docs/limitations.md new file mode 100644 index 0000000..375da0d --- /dev/null +++ b/docs/limitations.md @@ -0,0 +1,57 @@ +--- +title: "SPARROW Limitations and Field Considerations" +description: "Honest limits of SPARROW remote wildlife monitoring: solar power constraints, intermittent Starlink connectivity, weather exposure, and local storage capacity." +tags: + - limitations + - remote-wildlife-monitoring + - solar-powered + - starlink + - SPARROW + - field-deployment +--- + +# SPARROW Limitations and Field Considerations + +SPARROW is built for hard places, and being honest about what that costs makes for better deployments. The system is designed to degrade gracefully rather than fail outright, but the physics of running off solar power in a remote location with an intermittent satellite link set real boundaries. This page lays out the main ones so you can plan around them before committing a site. + +## Power is set by sunlight + +The unit's only energy source is its solar panels. Generation falls with shorter days, low sun angles, heavy cloud, or anything shading the panels, and a long enough dark stretch can outlast the battery. + +SPARROW manages this actively. It tracks battery and charge-controller state and schedules components dynamically, easing off power-hungry work to protect charge during lean periods. The practical implication is that high latitudes, deep canopy, or long overcast seasons demand more panel and battery headroom, and that throughput may drop when the unit is conserving power. Size storage for the worst week of the season, not the average. See [power planning](field-deployment.md#power-planning) for sizing guidance. + +## Connectivity is intermittent + +The Starlink uplink makes remote reporting possible, but it is not a guaranteed always-on link. Coverage depends on a clear view of the sky, and the satellite terminal is deliberately powered down during scheduled sleep windows to save energy. + +SPARROW is built around this rather than fighting it: data is recorded locally and synced automatically when the link returns, so an outage delays reporting instead of losing observations. What it does mean is that "near real time" is bounded by the next available link window, and a site with poor sky visibility will see longer gaps between syncs. + +## Weather and the field environment + +The electronics are housed in an IP65-rated weatherproof junction box and wired with outdoor-rated, UV-resistant cabling, which is built for sustained outdoor exposure. No field enclosure is invulnerable, though. Extreme heat, persistent moisture, wildlife interference, and physical disturbance are all real risks over a months-long unattended deployment, so siting and mounting choices carry weight. + +## Storage is finite + +A 2TB NVMe SSD buffers images and audio on the unit so it can keep working through offline stretches. During a long connectivity gap that buffer can fill, so plan sync windows or site visits around your expected offline duration and capture volume rather than assuming unlimited local retention. + +## Scope boundaries + +SPARROW is the field-hardware and data-collection layer, not a complete analysis suite. A few things sit outside its job: + +- **Audio analysis lives elsewhere.** SPARROW records sound with its AudioMoth sensor as a data-collection function. Analyzing and classifying that audio is the job of MegaDetector-Acoustic (documentation coming soon), not SPARROW. +- **Detection models come from upstream.** The on-device models are built on [PyTorch-Wildlife](https://microsoft.github.io/Pytorch-Wildlife/) and [MegaDetector](https://microsoft.github.io/MegaDetector/); SPARROW packages and serves them rather than training them. +- **Recommended hardware is validated, alternatives are not.** The assembly guide is built and tested around a specific bill of materials. Substituting components, especially generic I²C boards, can require wiring and configuration changes the documentation does not cover. + +## Related pages + +- **[Field deployment guide](field-deployment.md)**: planning steps that work within these limits. +- **[Hardware and architecture](hardware.md)**: the components behind each constraint. +- **[Edge AI biodiversity monitoring](edge-ai-wildlife-monitoring.md)**: the design rationale for an on-device, off-grid approach. + +## Related Microsoft biodiversity AI projects + +SPARROW is one piece of the Microsoft AI for Good Lab biodiversity toolkit, gathered under the [Microsoft Biodiversity hub](https://microsoft.github.io/Biodiversity/). + +- **[MegaDetector](https://microsoft.github.io/MegaDetector/)**: camera-trap detection for the images SPARROW captures. +- **MegaDetector-Acoustic (documentation coming soon)**: the owner of audio analysis and classification. +- **[PyTorch-Wildlife](https://microsoft.github.io/Pytorch-Wildlife/)**: the model framework SPARROW deploys at the edge. diff --git a/docs/setup.md b/docs/setup.md index 8c465fa..f8918d1 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -1,5 +1,5 @@ --- -description: "SPARROW software setup — one-click Jetson setup script, Docker Compose architecture, NVIDIA Triton inference server, MegaDetector ONNX models, and SPARROW dashboard configuration." +description: "SPARROW software setup: one-click Jetson setup script, Docker Compose architecture, NVIDIA Triton inference server, MegaDetector ONNX models, and SPARROW dashboard configuration." tags: - SPARROW - software-setup @@ -13,7 +13,7 @@ tags: # Software Setup -SPARROW runs entirely in Docker containers orchestrated by Docker Compose. This page covers how to configure and launch the SPARROW software stack on a Jetson Orin Nano. +SPARROW runs entirely in Docker containers orchestrated by Docker Compose. This page covers how to configure and launch the SPARROW software stack on a Jetson Orin Nano. For the design rationale behind running the AI on-device, see [edge AI biodiversity monitoring](edge-ai-wildlife-monitoring.md). --- @@ -21,7 +21,7 @@ SPARROW runs entirely in Docker containers orchestrated by Docker Compose. This - Jetson Orin Nano with **JetPack 6.x** installed and flashed - Hardware assembled per the [Hardware Setup](hardware.md) guide -- SPARROW dashboard account and access key — register at [dashboard.sparrow-earth.com](https://dashboard.sparrow-earth.com/) +- SPARROW dashboard account and access key: register at [dashboard.sparrow-earth.com](https://dashboard.sparrow-earth.com/) --- @@ -103,13 +103,13 @@ Two containers run on the Jetson: ### `sparrow` -The main SPARROW service — handles: -- **Camera trap management** — WiFi camera polling, image download, deduplication -- **On-device inference** — submits images to Triton for MegaDetector detection + species classification -- **Power management** — monitors solar charge controller, battery state, dynamic component scheduling -- **Telemetry** — environmental sensor readings (BME688, SHTC3), system health metrics -- **Data sync** — FTP/HTTP upload to SPARROW dashboard when connectivity is available -- **Privacy scrubbing** — removes human-related images before upload +The main SPARROW service handles: +- **Camera trap management**: WiFi camera polling, image download, deduplication +- **On-device inference**: submits images to Triton for MegaDetector detection + species classification +- **Power management**: monitors solar charge controller, battery state, dynamic component scheduling +- **Telemetry**: environmental sensor readings (BME688, SHTC3), system health metrics +- **Data sync**: FTP/HTTP upload to SPARROW dashboard when connectivity is available +- **Privacy scrubbing**: removes human-related images before upload ### `starlink` @@ -161,3 +161,9 @@ Data collected and processed by SPARROW is uploaded to the [SPARROW Dashboard](h - Register for an account and obtain your access key at [dashboard.sparrow-earth.com](https://dashboard.sparrow-earth.com/) - Dashboard Terms & Conditions: [sparrow-earth.com/agreement](https://dev.sparrow-earth.com/agreement) + +--- + +## Next Steps + +With the software running, plan the physical install with the [field deployment guide](field-deployment.md), and review the [limitations and field considerations](limitations.md) for the power, connectivity, and storage trade-offs of a remote deployment. diff --git a/mkdocs.yml b/mkdocs.yml index f1ba828..0092903 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,6 +1,6 @@ site_name: SPARROW site_url: https://microsoft.github.io/SPARROW/ -site_description: "SPARROW — Solar-Powered Acoustic and Remote Recording Observation Watch. AI-powered edge computing for wildlife monitoring by Microsoft AI for Good Lab." +site_description: "SPARROW: Solar-Powered Acoustic and Remote Recording Observation Watch. AI-powered edge computing for wildlife monitoring by Microsoft AI for Good Lab." docs_dir: docs site_dir: site repo_url: https://github.com/microsoft/SPARROW @@ -72,8 +72,11 @@ theme: nav: - SPARROW: - Overview: index.md - - Hardware Setup: hardware.md + - Edge AI Biodiversity Monitoring: edge-ai-wildlife-monitoring.md + - Hardware & Architecture: hardware.md + - Field Deployment Guide: field-deployment.md - Software Setup: setup.md + - Limitations: limitations.md - Tags: tags.md - Cite Us: cite.md - Developer Guide: build_mkdocs.md