DuckWild Wildlife Tracking System
Sept. 2025 - Present
A low-power wildlife monitoring system that uses on-device computer vision and a LoRa mesh network to detect and identify animals without relying on cellular or Wi-Fi connectivity.
Project Overview
DuckWild is an off-grid wildlife monitoring system that combines edge AI and long-range mesh networking. The system uses a Raspberry Pi, motion sensing, and an infrared camera to detect animals, identify species locally, and transmit lightweight data packets over a LoRa mesh network using the ClusterDuck Protocol. The goal is to enable wildlife tracking in remote environments without relying on cellular, Wi-Fi, or manual SD card retrieval.
The Problem
- Traditional wildlife cameras store images locally, requiring physical retrieval
- Cellular models are expensive and unreliable in remote areas
- Most capture far more useless data than actionable insight
System Architecture
- Edge node
- Raspberry Pi + IR camera + PIR motion sensor
- AI pipeline
- MegaDetector → SpeciesNet for species classification
- Networking
- LoRa radio (SX1262) using the ClusterDuck Protocol
- Mesh routing
- Packets hop node-to-node until reaching a gateway (PapaDuck)
What We’ve Built So Far
- Python-based ClusterDuck implementation for Raspberry Pi
- Successful serialization and transmission of ClusterDuck-compatible packets over LoRa
- Working computer vision pipeline running fully on-device
- ~94% species classification accuracy on a real trail-camera dataset
- Power-aware design decisions keeping average consumption under ~5W
Key Technical Decisions
- Reimplemented ClusterDuck in Python instead of modifying upstream C++ for maintainability and reuse
- Implemented fault-tolerant control software with watchdog timers and thread health monitoring to automatically detect and recover from failures, with systemd ensuring reliable system bring-up on boot and after power loss
- Dropped hardware AI accelerators due to power cost
- Motion-triggered, event-driven inference so AI only runs when needed
Development on the Raspberry Pi Zero 2 W
After initially developing our project on the Raspberry Pi 5, we decided to port it to the Raspberry Pi Zero 2 W for better power performance, however, the Raspberry Pi Zero's smaller memory and slower operating speeds led to much slower inference and photo capture times. To address this, we kept the SpeciesNet model loaded in memory and replaced the per-capture camera initialization with a persistent subprocess, eliminating cold-start overhead on every motion detection event.
My Contributions
- Wrote Bash setup script which installs required packages, enables SPI interface, and installs and activates a systemd service
- Wrote systemd script for automatic software start on boot up and after power loss
- Helped design the system state machine and overall software flow
- Responsible for motion sensing -> camera capture pipeline
- Implemented a systemd service to manage dependencies, start the networking stack on boot, and automatically restart on failure, enabling reliable system bring-up
- Contributed to ClusterDuck packet handling and Raspberry Pi compatibility
- Made power and architecture decisions based on power measurements
Current Focus / What’s Next
- Full integration of AI pipeline + mesh networking
- Solar and battery system bring-up
- Weatherproof enclosure design
- Long-range field testing with multiple nodes
- Public demo video + open-source release