STATUS: DUAL-SENSOR INTEGRATION COMPLETE ✅
This directory contains the complete camera software suite for the Wombat night vision system, featuring both the original proven 30 FPS NoIR camera system and the new integrated thermal overlay capabilities.
wombat_dual_sensor.py- Main integrated dual-sensor systemwombat_dual_sensor.sh- Field-hardened launcher with comprehensive checksthermal_sensor.py- MLX90640 thermal camera interfacethermal_overlay.py- Real-time thermal overlay systemwombat_config.py- Field configuration managementwombat-dual-sensor.service- Production systemd service
wombat_night_vision.sh- Original 30 FPS libcamera launcherwombat_libcamera_direct.py- Python wrapper for hardware-accelerated night visionwombat_zerocopy.py- Fallback zero-copy processing implementationwombat-nightvision.service- Original systemd service
# Run system checks and start dual-sensor system
./wombat_dual_sensor.sh
# Apply mission-specific preset
python3 wombat_config.py preset woodland
# Check system status
./wombat_dual_sensor.sh --status
# Production deployment
sudo cp wombat-dual-sensor.service /etc/systemd/system/
sudo systemctl enable wombat-dual-sensor.service
sudo systemctl start wombat-dual-sensor.service# Make executable (first time only)
chmod +x wombat_night_vision.sh
# Run night vision system
./wombat_night_vision.sh# Hardware-accelerated version
python3 wombat_libcamera_direct.py
# Fallback version
python3 wombat_zerocopy.py# Copy service file to system directory
sudo cp wombat-nightvision.service /etc/systemd/system/
# Enable auto-start
sudo systemctl enable wombat-nightvision.service
# Start service now
sudo systemctl start wombat-nightvision.service
# Check status
sudo systemctl status wombat-nightvision.serviceThe core discovery from extensive testing is this optimal libcamera command:
libcamera-vid \
--width 720 \
--height 480 \
--framerate 30 \
--timeout 0 \
--exposure long \
--gain 12 \
--brightness 0.3 \
--contrast 1.5 \
--verbosePerformance achieved:
- ✅ 30 FPS hardware-accelerated
- ✅ 720x480 resolution
- ✅ Zero dropped frames
- ✅ Optimized for NoIR sensor
- Raspberry Pi Zero 2 WH
- Camera Module 3 NoIR (12MP)
- Proper camera cable connection
- Raspberry Pi OS (Bullseye or newer)
- libcamera-apps package
- Python 3.7+ (for Python scripts)
- OpenCV (for fallback script)
# Update system
sudo apt update && sudo apt upgrade -y
# Install libcamera tools
sudo apt install libcamera-apps
# Install Python dependencies (for Python scripts)
sudo apt install python3-opencv python3-numpy
# Enable camera
sudo raspi-config
# Navigate to Interface Options > Camera > Enable# Check camera connection
libcamera-hello --list-cameras
# Verify camera is enabled
vcgencmd get_camera# Monitor system resources
htop
# Check temperature
vcgencmd measure_temp
# Monitor GPU memory
vcgencmd get_mem gpu# Check service logs
sudo journalctl -u wombat-nightvision.service -f
# Restart service
sudo systemctl restart wombat-nightvision.serviceThese files represent the culmination of extensive testing documented in ../project-history.md. The key breakthrough was discovering the optimal libcamera parameters for 30 FPS performance on Pi Zero 2 WH hardware.
The software architecture provides multiple approaches:
- Shell script - Direct libcamera for maximum performance
- Python wrapper - Programmatic control with error handling
- Zero-copy fallback - Alternative processing when needed
- Systemd service - Production deployment with auto-start