{"adoption": {"forks": 73, "observed_at": "2026-08-28T04:03:17.260450+00:00", "stars": 1028}, "canonical_url": "https://ross.abutalabs.com/products/x1plus", "card": {"archived": false, "artifact_type": "application", "description": "Custom firmware for Bambu Lab X1 and X1 Carbon 3D printers", "domain": ["embedded-systems", "hardware"], "enriched": true, "function": ["embedded", "security"], "health_score": 87, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["X1Plus/X1Plus"], "name": "X1Plus/X1Plus", "platform": ["embedded", "python"], "pushed_at": "2026-06-16T05:39:32+00:00", "repo": "X1Plus/X1Plus", "stars": 1028, "tags": ["3d-printing", "custom-firmware", "bambu-lab", "x1-carbon", "iot-hacking", "automation", "linux", "docker"], "topics": [], "urls": [], "use_cases": ["install custom firmware on a Bambu Lab X1 Carbon", "unlock extra features on my Bambu 3D printer", "root and modify the printer's firmware", "get rid of cloud dependency on my Bambu printer", "customize the X1 printer interface and settings"], "what_it_is": "X1Plus is custom open-source firmware for Bambu Lab X1 and X1 Carbon 3D printers, replacing the stock firmware with extended features and control. It is built with a Docker-based toolchain and installed on the printer over SSH.", "when_to_avoid": ["you want to keep the manufacturer warranty and stock firmware untouched", "you are uncomfortable with SSH, flashing firmware, or risk of bricking your printer"], "when_to_choose": ["you own a Bambu Lab X1 or X1 Carbon and want community firmware features", "you want local control and customization of your printer beyond stock firmware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/x1plus", "repo": "X1Plus/X1Plus", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "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:03:17.260450+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.260450+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:43.623796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4124c78017f832913455729dab67eb5d5a54353e062abd293fa2fefa21ba973", "fetched_at": "2026-08-28T04:03:17.260450+00:00", "kind": "readme", "missing": false, "url": "https://github.com/X1Plus/X1Plus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "longevity": 64, "rhythm": 32}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 900, "days_push": 78, "days_rel": 373, "gap_med": 69, "n_releases_24m": 2}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}