{"adoption": {"forks": 7421, "observed_at": "2026-08-28T04:08:40.721454+00:00", "stars": 4266}, "canonical_url": "https://ross.abutalabs.com/products/i2cdevlib", "card": {"archived": false, "artifact_type": "library", "description": "I2C device library collection for AVR/Arduino or other C++-based MCUs", "domain": ["embedded-systems", "iot", "hardware"], "enriched": true, "function": ["embedded", "iot"], "health_score": 41, "homepage": "http://www.i2cdevlib.com", "language": "C++", "license": null, "license_family": "other", "maturity": "stable", "member_repos": ["jrowberg/i2cdevlib"], "name": "jrowberg/i2cdevlib", "platform": ["embedded", "cpp", "cross-platform", "iot"], "pushed_at": "2025-08-04T23:42:03+00:00", "repo": "jrowberg/i2cdevlib", "stars": 4266, "tags": ["arduino", "i2c", "device-drivers", "sensors", "mpu6050", "avr", "microcontroller", "hardware-interface", "register-maps"], "topics": [], "urls": [], "use_cases": ["read accelerometer and gyroscope data from an MPU-6050 in an Arduino sketch", "C++ driver library for talking to I2C sensors on a microcontroller", "read magnetometer or barometric pressure sensor data over I2C", "interface an ADS1115 ADC or I/O expander with an AVR microcontroller", "drive an SSD1308 OLED display from an embedded project", "abstract low-level I2C register reads and writes across multiple sensor devices", "connect multiple IMUs or I2C devices using several Wire buses without mux chips"], "what_it_is": "A collection of uniform, Doxygen-documented C++ classes providing interfaces to a wide range of I2C peripheral devices such as accelerometers, gyroscopes, magnetometers, pressure sensors, ADCs, real-time clocks, and OLED drivers, targeting Arduino/AVR and other C++-based microcontrollers. Each device class builds on a generic I2Cdev abstraction that handles bit- and byte-level I2C communication, making the drivers easy to port across platforms like Arduino, PIC, MSP430, or bit-banged GPIO.", "when_to_avoid": ["Your specific device is not in the supported device list and you would rather write a small bespoke driver.", "You need a pure C, non-object-oriented interface; the procedural version is still under development.", "You expect standard IDE or package-manager library installation; the monorepo layout requires manually copying folders or creating symlinks.", "You target a platform with no C++ compiler or no ported I2Cdev communication backend."], "when_to_choose": ["You use Arduino, AVR, or another C++-capable MCU and need ready-made, well-documented drivers for supported I2C sensors and peripherals.", "You want complete register-level coverage of a supported device plus example sketches and online HTML documentation.", "You need a lightweight, statically-used core class to manage multiple I2C devices or multiple I2C transceivers in one project."]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/i2cdevlib", "repo": "jrowberg/i2cdevlib", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "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:08:40.721454+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.721454+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:02.842757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab91524b2a3f77f0c14c54c50bb4e1aa4137a1dd192c8a1375502d04c337c953", "fetched_at": "2026-08-28T04:08:40.721454+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jrowberg/i2cdevlib"}, {"content_hash": "82717d43046988cb93ed89e383d9753ea944a7ab1c81e0315b31b04a3c9de3da", "fetched_at": "2026-08-29T09:11:36.366274+00:00", "kind": "homepage", "missing": false, "url": "http://www.i2cdevlib.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 35, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5517, "days_push": 394, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}