{"adoption": {"forks": 230, "observed_at": "2026-08-28T04:06:40.599936+00:00", "stars": 2355}, "canonical_url": "https://ross.abutalabs.com/products/awtrix3", "card": {"archived": false, "artifact_type": "application", "description": "Custom firmware for the Ulanzi Smart Pixel clock or self made awtrix. Getting started is easy as 1-2-3", "domain": ["iot", "embedded-systems", "hardware"], "enriched": true, "function": ["embedded", "iot", "http-server", "middleware"], "health_score": 88, "homepage": "https://blueforcer.github.io/awtrix3/", "language": "C++", "license": "NOASSERTION", "license_family": "other", "maturity": "abandoned", "member_repos": ["Blueforcer/awtrix3"], "name": "Blueforcer/awtrix3", "platform": ["embedded", "iot"], "pushed_at": "2026-08-07T23:26:35+00:00", "repo": "Blueforcer/awtrix3", "stars": 2355, "tags": ["esp32-firmware", "pixel-clock", "ulanzi-tc001", "matrix-display", "mqtt", "smarthome", "custom-firmware", "successor-awtrix-ng"], "topics": [], "urls": [], "use_cases": ["custom firmware for Ulanzi TC001 pixel clock", "display smarthome sensor data on a matrix clock", "push notifications and stats to a pixel display via MQTT", "show Home Assistant or Node-RED data on a desk clock", "build a DIY ESP32 LED matrix clock", "rotate custom info pages on a smart pixel display"], "what_it_is": "AWTRIX 3 is open-source custom firmware for the Ulanzi Smart Pixel clock TC001, DIY matrix clocks, and old AWTRIX 2 boards, built on ESP32. It displays time, date, weather, and custom pages pushed via MQTT or HTTP from smarthome systems like Home Assistant, Node-RED, or n8n. Development has ended; the successor is AWTRIX NG.", "when_to_avoid": ["you are starting a new project - use the successor AWTRIX NG instead", "you need bug fixes, new features, or active support"], "when_to_choose": ["you already own an AWTRIX 3 device and just want the existing stable firmware", "you need the archived firmware for compatibility with existing setups"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/awtrix3", "repo": "Blueforcer/awtrix3", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "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:40.599936+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.599936+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.996396+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4701d7a09dc2beb4936e5bca4420aa013b778276f6bc40b2d036176f20cb27", "fetched_at": "2026-08-28T04:06:40.599936+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Blueforcer/awtrix3"}, {"content_hash": "ed94c6b18d731256c53bcd79e5db9d7dc813ad15754c9b604fa5b92348615b71", "fetched_at": "2026-08-29T10:17:00.048304+00:00", "kind": "homepage", "missing": false, "url": "https://blueforcer.github.io/awtrix3/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 90, "rhythm": 40}, "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": 1265, "days_push": 26, "days_rel": 605, "gap_med": 12, "n_releases_24m": 2}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}