{"adoption": {"forks": 322, "observed_at": "2026-08-28T04:04:42.984160+00:00", "stars": 1431}, "canonical_url": "https://ross.abutalabs.com/products/drehmflight", "card": {"archived": false, "artifact_type": "application", "description": "Teensy/Arduino flight controller and stabilization for small-scale VTOL vehicles", "domain": ["robotics", "autonomous-vehicles", "embedded-systems", "hardware", "education"], "enriched": true, "function": ["embedded", "robotics", "simulation"], "health_score": 21, "homepage": null, "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["nickrehm/dRehmFlight"], "name": "nickrehm/dRehmFlight", "platform": ["embedded", "cpp", "c"], "pushed_at": "2025-01-20T21:56:04+00:00", "repo": "nickrehm/dRehmFlight", "stars": 1431, "tags": ["flight-controller", "vtol", "teensy", "arduino", "drone", "pid-control", "imu", "radio-control", "stabilization", "hobbyist"], "topics": ["vtol", "teensy", "teensyduino", "drone", "drones", "flight", "controller", "arduino", "flight-controller", "drehmflight", "stabilization", "pid", "imu", "radio-control", "airplane", "helicopter", "microcontroller", "hardware"], "urls": [], "use_cases": ["stabilize a homemade VTOL drone with PID control", "learn flight control and aircraft stabilization concepts", "rapidly prototype a custom drone or flying creation", "teach flight control principles in a university course", "get started with flight controller code as an RC hobbyist", "control an airplane or helicopter with a Teensy-based controller"], "what_it_is": "dRehmFlight is an Arduino-compatible flight controller and stabilization codebase for small-scale VTOL aircraft, built on the Teensy 4.0 microcontroller and MPU6050 IMU. It is designed for hobbyists, researchers, and educators, with all code kept in one readable file for easy customization and learning of flight control concepts.", "when_to_avoid": ["you need a production-grade or commercially supported flight controller", "you want maximum performance or advanced features like GPS waypoint missions", "you need support for flight stacks other than Teensy/Arduino-compatible hardware"], "when_to_choose": ["you want simple, readable, all-in-one flight controller code you can modify", "you are prototyping a unique VTOL vehicle or teaching flight stabilization", "you already know Arduino and want to avoid complex build toolchains"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/drehmflight", "repo": "nickrehm/dRehmFlight", "role": "main", "score": 33}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "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:04:42.984160+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.984160+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:08.162396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee2faea28f3e2a657ab302adfd39f4668c235f1b11297a1038244b08e7984943", "fetched_at": "2026-08-28T04:04:42.984160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nickrehm/dRehmFlight"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 2, "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": 2411, "days_push": 590, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 33, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}