From 35d4df382953a64e8cdcb852f59effab2a432dd5 Mon Sep 17 00:00:00 2001 From: Carl Chalmers <34172042+Clamps251@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:38:48 +0000 Subject: [PATCH 01/49] Add files via upload --- CODE_OF_CONDUCT.md | 10 + LICENSE | 21 + README.md | 371 + SECURITY.md | 14 + SUPPORT.md | 25 + docker-compose.yml | 44 + .../SPARROW_Assembly_and_Setup_Guide.pdf | Bin 0 -> 6158718 bytes .../SPARROW_Bill_of_Materials_-_BOM.pdf | Bin 0 -> 3918035 bytes setup script/sparrow_setup.sh | 824 + sparrow.env | 13 + sparrow/Dockerfile | 39 + sparrow/audio.py | 861 + sparrow/controller_settings.py | 230 + sparrow/email_server.py | 112 + sparrow/ftp_server.py | 76 + .../images/Test Cam New_00_20260202112950.txt | 1 + sparrow/inference.py | 638 + sparrow/logs/audio_script.log | 15921 ++++++ sparrow/logs/controller_settings.log | 3283 ++ sparrow/logs/ftp_server.log | 30 + sparrow/logs/inference.log | 772 + sparrow/logs/model_update.log | 2934 ++ sparrow/logs/restclient_logs.log | 7478 +++ sparrow/logs/rtc_sync.log | 18 + sparrow/logs/smtp_server.log | 42 + sparrow/model_update.py | 363 + sparrow/requirements.txt | 29 + sparrow/rest_client.py | 641 + sparrow/static/data/detections.csv | 1 + sparrow/static/data/metrics_backlog.jsonl | 0 sparrow/supervisord.conf | 67 + sparrow/tools/rtc_sync.py | 94 + sparrow/utils/dataset_dataloader.py | 31 + sparrow/utils/detection_utils.py | 210 + sparrow/utils/sensors.py | 321 + sparrow/utils/sparrow_id.py | 51 + starlink.env | 7 + starlink/Dockerfile.starlink | 32 + starlink/logs/starlink_metrics.log | 40533 ++++++++++++++++ starlink/logs/starlink_schedule.log | 11393 +++++ starlink/requirements.txt | 8 + starlink/starlink_metrics_logger.py | 219 + starlink/starlink_sleep_schedule.py | 398 + starlink/supervisord.conf | 13 + 44 files changed, 88168 insertions(+) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 SUPPORT.md create mode 100644 docker-compose.yml create mode 100644 documentation/SPARROW_Assembly_and_Setup_Guide.pdf create mode 100644 documentation/SPARROW_Bill_of_Materials_-_BOM.pdf create mode 100644 setup script/sparrow_setup.sh create mode 100644 sparrow.env create mode 100644 sparrow/Dockerfile create mode 100644 sparrow/audio.py create mode 100644 sparrow/controller_settings.py create mode 100644 sparrow/email_server.py create mode 100644 sparrow/ftp_server.py create mode 100644 sparrow/images/Test Cam New_00_20260202112950.txt create mode 100644 sparrow/inference.py create mode 100644 sparrow/logs/audio_script.log create mode 100644 sparrow/logs/controller_settings.log create mode 100644 sparrow/logs/ftp_server.log create mode 100644 sparrow/logs/inference.log create mode 100644 sparrow/logs/model_update.log create mode 100644 sparrow/logs/restclient_logs.log create mode 100644 sparrow/logs/rtc_sync.log create mode 100644 sparrow/logs/smtp_server.log create mode 100644 sparrow/model_update.py create mode 100644 sparrow/requirements.txt create mode 100644 sparrow/rest_client.py create mode 100644 sparrow/static/data/detections.csv create mode 100644 sparrow/static/data/metrics_backlog.jsonl create mode 100644 sparrow/supervisord.conf create mode 100644 sparrow/tools/rtc_sync.py create mode 100644 sparrow/utils/dataset_dataloader.py create mode 100644 sparrow/utils/detection_utils.py create mode 100644 sparrow/utils/sensors.py create mode 100644 sparrow/utils/sparrow_id.py create mode 100644 starlink.env create mode 100644 starlink/Dockerfile.starlink create mode 100644 starlink/logs/starlink_metrics.log create mode 100644 starlink/logs/starlink_schedule.log create mode 100644 starlink/requirements.txt create mode 100644 starlink/starlink_metrics_logger.py create mode 100644 starlink/starlink_sleep_schedule.py create mode 100644 starlink/supervisord.conf diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..686e5e7 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,10 @@ +# Microsoft Open Source Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +Resources: + +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns +- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/README.md b/README.md new file mode 100644 index 0000000..d4bc765 --- /dev/null +++ b/README.md @@ -0,0 +1,371 @@ + + + +
+ +
+
+
+
+
+
+
+
+
+ +| **System** | **Item** | **Description** | **Qty** | **Tested/Recommended** | +| -------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Brain | NVIDIA Jetson Orin Nano Super Developer Kit | AI Edge Compute Device | 1 | NVIDIA Jetson Orin Nano Super Developer Kit | +| | 2TB PCIe Gen 4 NVMe M.2 Internal Solid State Hard Drive | 2TB SSD Drive | 1 | Samsung 980 PRO SSD MZ-V8P2T0CW | +| | Pi 3 Click Shield | Pi 3 Click Shield converts the GPIO pins on the NVIDIA Jetson Orin Nano into two mikroBUSβ’ sockets | 1 | MIKROE-2756 | +| | mikroBUS Shuttle | Mikroe Shuttle is a small add-on board, which is intended to be used with Shuttle click, in order to expand the mikroBUSβ’ with additional stacking options. | 4 | MIKROE-2882 | +| | mikroBUS Shuttle Click | Shuttle click is a mikroBUS socket expansion board, which provides an easy and elegant solution for stacking up to four click boards\\ on a single mikroBUS | 2 | MIKROE-2880 | +| | DS3231M I2C Board | Real-time clock module which has an extremely low power consumption, allowing it to be used with a single button cell battery, for an extended period of time | 1 | MIKROE-3770 | +| | BME688 I2C Board | Compact add-on board that contains a four-in-one environmental measurement solution | 1 | MIKROE-4893 | +| | SHTC3 I2C Board | The SHTC3 sensors offers the complete measurement system: capacitive RH sensor, bandgap thermal sensor, analog and digital data processing, and the I2C communication interface | 1 | MIKROE-3331 | +| | I2C Relay Board | Relay board featuring at least one SRD-5VDC-SL-C relays | 1 | MIKROE-3357 | +| | | | | | +| Power | 24V 15A MPPT Solar Charge Controller | 24V 15A (at least) MPPT solar charge controller with load output control and usb interface | 1 | Victron Smart Solar MPPT 100V/20A SCC110020160R | +| | USB Solar Charge Controller Interface | Direct to USB interface connection to devices with a USB port | 1 | Victron Energy VE.Direct to USB interface ASS030530010 | +| | 100 Watt Solar Panels Monocrystalline Solar Panel | 100 Watt Monocrystalline Solar Panel (at least 2 required working in a 24V matrix) | 2 | ECO-WORTHY 100 Watt Solar Panel US-L02M100-B-1 | +| | 10AWG Solar Extension Cable 30A/1000V DC PV004, IP67 | Cables that go from the Solar Panels to the Solar Charge Controller (overall length subject to installation) | 1 | ECO-WORTHY 10FT 10AWG Solar Extension Cable 30A/1000V DC, IP67 Waterproof with Compatible Quick Connectors | +| | 45in Solar Panel Mount Brackets | 45in Solar Panel Mount Brackets, with Foldable Tilt Legs Suitable for 2pcs 100W | 1 | ECO-WORTHY 45in Solar Panel Mount Brackets US-L03TYNSJZJ4-1 | +| | 24V 50Ah or 100Ah LifePo4 Battery | 24V 50AhΒ 100Ah LifePo4 Battery (capacitiy depending on deployment conditions/location) | 1 | ECO-WORTHY 24V 100Ah LiFePO4 Lithium Battery US-L13070402010-1 | +| | SAE to O Ring 10AWG Battery Connector Terminal | Fused Battery Cable that goes from the Battery (O-Ring) to the Solar Controller Battery Cable (SAE) | 1 | iGreely 10 Gauge Wire SAE to O Ring Terminal | +| | 10AWG Solar Panel Connector Cable | Solar Controller Battery Cable (SAE), 10AWG SAE to PV Male & Female Adapter (overall length subject to installation, see assembly instructions on how to modify for this use case) | 1 | iGreely Solar Panel Connector Cable, 10AWG SAE to Male & Female Adapter | +| | | | | | +| Build | Outdoor Weatherproof IP65 Electrical Junction Box | Outdoor Weatherproof IP65 Electrical Junction Box, Ventilated Design,Β Use with Mounting Panel & Hinged Cover. Size: 17"x13"x7" | 1 | ANIMACYN Electrical Junction Box, Ventilated Design, Cable Grommets, Indoor/Outdoor Use with Mounting Panel & Hinged Cover. Waterproof IP 65. (Grey Cover, 17.7"x13.7"x7.9") | +| | 18AWG Speaker Wire (Black+Red) | 18AWG Copper Clad Aluminum Speaker Wire (Black + Red) | 1 | GEARit GEARit Speaker Wire 18 Gauge, Speaker Cable 18AWG | +| | Displayport Headless EDID Dongle | Displayport monitor emulator required to guarantee image output during remote control of Jetson unit | 1 | BKFK dp Dummy Plug - Display to hdmi Adapter, Luna Display Virtual Window for Home-edid Emulator-Dummy, displayport Headless dummie dongle(DP-1P) | +| | 5.5mm x 2.5mm 90 Degree Right Angle DC Barrel Male Plug Jack | 5.5mm x 2.5mm 90 Degree Right Angle DC Barrel Plug to Power the Jetson Unit | 1 | Fancasee DC Power Pigtail Cable, 10-Pack 5.5mm x 2.5mm 90 US-CAB-65 | +| | 5.5mm x 2.1mm DC Female Plug to Bare Wire | Starlink Mini Power DC Female Plug (you can use either a DC female plug to bare wire, or a fully assembled pig tail) | 1 | Tonton 16AWG DC Power Pigtails Cable - 3.3FT, Pure Copper, Orange - 5.5mm x 2.1mm DC Female Plug to Bare Wire Open End | +| | Zip Ties Assorted Size | Zip Ties Assorted Size, Double Sided Toothed,Heavy Duty Cable Wire Ties | 1 | JIANYANG Zip Ties Assorted Size, 8+12+14+18 Inch | +| | 10FT USB A to Micro USB Cable | Long Micro USB cable for the Audiomoth | 1 | MOVOYEE Long 10FT USB to Micro USB Cable | +| | PG7 PG9 PG11 PG13.5 PG16 PG19 Weatherproof Cable Gland Connectors | Weatherproof Cable Gland Connectors to route the cables going in and out of the electrical Junction Box | 1 | LISTENJIALE Cable Gland Waterproof 50 pcs | +| | | | | | +| Network | STARLINK Mini Kit | STARLINK Mini Kit - High-Speed Portable Internet for Remote and Mobile Use | 1 | Starlink Mini Antenna Kit | +| | Starlink Ethernet Adapter RJ45 Coupler Waterproof Compatible | Weatherproof Starlink Compatible RJ45 Coupler | 1 | EAZUSE RJ45 Starlink Ethernet Adapter Gen 3/Mini | +| | Cat 6 Outdoor Ethernet Cable from Jetson to Starlink | Cat 6 Outdoor Ethernet Cable, 24AWG 10Gbps Waterproof Direct Burial LLDPE UV Jacket (overall length subject to installation) | 1 | VOIETOLT Cat 6 Outdoor Ethernet Cable 30 ft, 24AWG 10Gbps Cat6 Cable Cord Waterproof Direct Burial LLDPE UV Jacket | +| | 2X WiFi Antenna with MHF4/IPEX to RP-SMA Pigtail Antenna WiFi Cable | Pair of 6dBi Dual Band WiFi RP-SMA Male Antenna +2 x 35CM RP-SMA IPEX MHF4 Pigtail Cable for M.2 NGFF WiFi WLAN Card | 1 | HIGHFINE 2 x 6dBi 2.4GHz 5GHz Dual Band WiFi RP-SMA Male Antenna+2 x 35CM RP-SMA IPEX MHF4 Pigtail Cable for M.2 NGFF WiFi WLAN Card | +| Optional | 10dBi Long Range Outdoor WiFi Fiberglass Antenna | Optional upgrade to improve overall WiFi Range. Requires additional glands to route the cables through the Junction Box Case, \*\*IMPORTANT NOTE: MHF4/IPEX to RP-SMA Pigtail Antenna WiFi Cable is REQUIRED and must be purchased separately\*\* | 2 | eifagur 10dBi Long Range Dual Band WiFi 2.4GHz 5GHz Fiberglass Antenna | +| | | | | | +| Audio | AudioMoth Dev Case | Weatherproof AudioMoth Case | 1 | AudioMoth Dev Case | +| | AudioMoth Dev Board | AudioMoth Dev board | 1 | AudioMoth Dev Board | +| | | | | | +| Camera | 2.4Ghz Solar WiFi Security Camera | Solar Weatherproof WiFi Cameras to be used as the SPARROW Camera Traps (you can use up to 150 cams per SPARROW main unit) | 1 | Reolink Argus Eco+ | + +
+ +Q9_bak-+e1D Ks((UO!D)BCGg00
zW881aJ_&vAjn?LjJP&ivZT+2aOF>G1>MmLssE)LeunSqExqeCHag?FVQN__Aevou;
zt@cZtlnK)M+r%bmmk8hMjEXj|_FDXvTN1F{Foh72*$#Nx=s| -jCc&8f4db*CPRc
z{8(;P_ZnvxnzyxX_oB*`Yfb#xaoCh!(MpGfPHyxNYrdQTTbuEqT&F2T^`~jYi*&eV
zcaFJardOd>cCp{!cb;!OZ%TdpAD~`F>g1Mq0)%t0J}hBH1kvf`HFZJ#gE>A*sd9T?
z<9GGti8R2g@vDTtRO<&7*1M06kLl2FzZH4ExEkmyy(Qv)FTzmeLh)&;TA2fNMAeSx
z6?pu?^b|;(y766UFNS8b8hY_M-$t0pLEN@Aq>XN|baAGK+vr*#!AGkrd1g9$pu3}F
zsLelfrJtLTyw>vk=<Vg7A
P*)rflU=V;_d>6QpLUAj&P9Z!a=e|1q9x626@JXHS<#e
zFm$!bz0QvUCY~m-jpSQD6?rPJ?bDP#l|DbAC>G+cPgVaK-!;2onNP~}qJ6Y~_iYhT
z3U8e+K-Y4CNfaBwaS}g{s%9`5#d@CTc=<5Ni}Nc@<+1(Cb7&f1ghxZ<(