{"adoption": {"forks": 500, "observed_at": "2026-08-28T04:05:01.262279+00:00", "stars": 1543}, "canonical_url": "https://ross.abutalabs.com/products/xdrive", "card": {"archived": false, "artifact_type": "application", "description": "Stepper motor with multi-function interface and closed loop function. 具有多功能接口和闭环功能的步进电机。", "domain": ["embedded-systems", "hardware", "robotics"], "enriched": true, "function": ["embedded", "cryptography"], "health_score": 20, "homepage": null, "language": "C", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["unlir/XDrive"], "name": "unlir/XDrive", "platform": ["embedded", "c"], "pushed_at": "2024-05-12T12:47:00+00:00", "repo": "unlir/XDrive", "stars": 1543, "tags": ["stepper-motor", "closed-loop-control", "motor-driver", "encoder", "stm32", "bootloader", "usb-update"], "topics": [], "urls": [], "use_cases": ["build a closed-loop stepper motor driver", "flash stepper motor firmware over USB", "control stepper motors with encoder feedback", "customize motor controller firmware for CNC or 3D printers", "learn embedded motor control in C"], "what_it_is": "XDrive is open-source firmware (with hardware schematics and enclosure designs) for a stepper motor driver featuring a multi-function interface and closed-loop encoder-based control. It includes a main control application, a bootloader for USB firmware updates, circuit diagrams, and documentation.", "when_to_avoid": ["you need a plug-and-play commercial driver without soldering or flashing", "your project uses servo or DC brushless motors instead of steppers"], "when_to_choose": ["you want an open-source closed-loop stepper driver you can build and modify", "you need hardware schematics and firmware together for a motor controller project"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xdrive", "repo": "unlir/XDrive", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "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:05:01.262279+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.262279+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:30:42.409140+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0761871d43532a2bd3004e1c050a5867fed99c6efcd9388363a525c8b7d6c54", "fetched_at": "2026-08-28T04:05:01.262279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/unlir/XDrive"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2175, "days_push": 843, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}