{"adoption": {"forks": 836, "observed_at": "2026-08-28T04:06:23.673107+00:00", "stars": 2186}, "canonical_url": "https://ross.abutalabs.com/products/opentx", "card": {"archived": false, "artifact_type": "application", "description": "OpenTX custom firmware for Transmitters", "domain": ["hardware", "embedded-systems", "cross-platform"], "enriched": true, "function": ["embedded"], "health_score": 76, "homepage": null, "language": "C++", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["opentx/opentx"], "name": "opentx/opentx", "platform": ["embedded", "cpp", "cross-platform"], "pushed_at": "2026-07-23T21:10:23+00:00", "repo": "opentx/opentx", "stars": 2186, "tags": ["rc-transmitters", "firmware", "lua-scripting", "radio-control", "hobby"], "topics": ["firmware", "transmitter"], "urls": [], "use_cases": ["replace stock firmware on my RC transmitter", "custom firmware for FrSky Taranis radio", "program mixes and telemetry on my RC transmitter", "run Lua scripts on my radio transmitter", "open source firmware for RC hobby transmitters"], "what_it_is": "OpenTX is open-source custom firmware for RC radio transmitters, written in C++. It replaces stock transmitter firmware to provide advanced mixing, telemetry, and Lua scripting capabilities for hobbyist radio control.", "when_to_avoid": ["your transmitter model is not supported by OpenTX", "you need manufacturer warranty or official support", "you are uncomfortable flashing custom firmware onto hardware"], "when_to_choose": ["you want advanced mixing, telemetry, and scripting on a supported RC transmitter", "you prefer open-source, community-driven transmitter firmware", "you want to customize your radio beyond stock manufacturer features"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opentx", "repo": "opentx/opentx", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "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.673107+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.673107+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:47:55.393188+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a671d9144d6f72b6fb1059f71a0e0a13fdaaa90b9ebd0685e57b769f54423cf", "fetched_at": "2026-08-28T04:06:23.673107+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentx/opentx"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4660, "days_push": 41, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}