{"adoption": {"forks": 517, "observed_at": "2026-08-28T04:06:23.715757+00:00", "stars": 2186}, "canonical_url": "https://ross.abutalabs.com/products/dji-firmware-tools", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Tools for handling firmwares of DJI products, with focus on quadcopters.", "domain": ["embedded-systems", "hardware", "security", "reverse-engineering"], "enriched": true, "function": ["reverse-engineering", "parser", "developer-tools", "cli"], "health_score": 76, "homepage": null, "language": "C", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["o-gs/dji-firmware-tools"], "name": "o-gs/dji-firmware-tools", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-07-21T10:32:06+00:00", "repo": "o-gs/dji-firmware-tools", "stars": 2186, "tags": ["dji", "drones", "firmware-modding", "quadcopter", "ambarella", "elf", "drone-repair", "linux", "macos"], "topics": ["firmware", "dji", "elf", "ambarella", "phantom", "inspire", "modding", "tools", "reverse-engineering", "mavic", "spark"], "urls": [], "use_cases": ["extract and repack DJI drone firmware images", "modify flight controller parameters from the command line", "trigger gimbal calibration after repairing a drone", "identify drone boards and components before opening the device", "lift hard-coded firmware limits or enable unused hardware features", "analyze communication between drone modules and the remote controller"], "what_it_is": "A collection of C command-line tools for extracting, modifying, and repacking firmware of DJI drones such as Phantom, Mavic, Inspire, and Spark. It also supports sending custom packets to drones for calibration, parameter changes, and hardware research.", "when_to_avoid": ["you need a GUI tool for routine drone firmware updates", "you work with non-DJI drone firmware", "you are unwilling to risk bricking a device by flashing modified firmware"], "when_to_choose": ["you need to unpack, patch, or repackage DJI drone firmware binaries", "you repair DJI drones and need calibration or parts identification help", "you research DJI hardware and want to inspect module communication", "your platform lacks official DJI Assistant software for parameter changes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dji-firmware-tools", "repo": "o-gs/dji-firmware-tools", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.715757+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.248239+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb7660885eaa317a130143e934366af86facfd2c666b7da8bee88fbddc0d2f05", "fetched_at": "2026-08-28T04:06:23.715757+00:00", "kind": "readme", "missing": false, "url": "https://github.com/o-gs/dji-firmware-tools"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3682, "days_push": 43, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}