{"adoption": {"forks": 195, "observed_at": "2026-08-28T04:03:15.689758+00:00", "stars": 1021}, "canonical_url": "https://ross.abutalabs.com/products/arduinomenu", "card": {"archived": false, "artifact_type": "library", "description": "Arduino generic menu/interactivity system", "domain": ["embedded-systems", "iot", "developer-tools"], "enriched": true, "function": ["ui-components", "embedded", "gui"], "health_score": 80, "homepage": null, "language": "C++", "license": "LGPL-2.1", "license_family": "copyleft", "maturity": "active", "member_repos": ["neu-rah/ArduinoMenu"], "name": "neu-rah/ArduinoMenu", "platform": ["iot", "embedded", "cpp"], "pushed_at": "2026-08-25T22:00:37+00:00", "repo": "neu-rah/ArduinoMenu", "stars": 1021, "tags": ["menu-system", "lcd", "tft", "encoder-input", "non-blocking", "progmem", "esp8266", "avr"], "topics": ["progmem", "ram", "pcint", "avr", "system", "control", "lcd", "tft", "touch", "keys", "encoder", "buttons", "keyboard", "ansi", "esp8266", "web", "iot", "static", "menu", "arduino"], "urls": [], "use_cases": ["build a settings menu on an LCD or TFT with Arduino", "navigate menus with rotary encoder or buttons on embedded devices", "create input fields for adjusting parameters on ESP8266 projects", "add a non-blocking user interface to an AVR microcontroller", "handle keyboard or touch input for device configuration", "build an IoT device with an on-device control menu"], "what_it_is": "A generic menu and interactivity library for the Arduino framework, supporting menus, submenus, input fields, and event-driven handlers across many display and input devices. It is designed as a non-blocking polling system so user tasks can run concurrently with menu navigation.", "when_to_avoid": ["you need a full GUI framework with graphics and animations", "your project is not on the Arduino/embedded platform", "you need features only available in the in-development successor (OneMenu/HAPI)"], "when_to_choose": ["you need a menu system on Arduino with minimal RAM/flash usage", "you want support for many display and input hardware combinations", "you need non-blocking menus so other tasks keep running"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/arduinomenu", "repo": "neu-rah/ArduinoMenu", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "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:15.689758+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.689758+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:08:51.299489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ac17c9cae52ab6ba3df1e6aef0736e0176ac17413561082872d0b91a597d9ef", "fetched_at": "2026-08-28T04:03:15.689758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neu-rah/ArduinoMenu"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "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": 4400, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}