jrowberg/i2cdevlib
I2C device library collection for AVR/Arduino or other C++-based MCUs observed · 2026-08-28
Health v2 · maintenance only
48/100
- Activity 35
- Release rhythm 35
- Longevity 100
Flags: no_releases no_license
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: n/a
- age_days: 5517
- days_rel: n/a
- days_push: 394
- n_releases_24m: 0
Adoption not part of the score
4266 stars · 7421 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
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.
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
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.
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.
Facets
library · maturity stable
embedded iot embedded-systems iot hardware embedded cpp cross-platform iot arduino i2c device-drivers sensors mpu6050 avr microcontroller hardware-interface register-maps
2 sources
- readme: https://github.com/jrowberg/i2cdevlib · fetched 2026-08-28 · ab91524b2a3f
- homepage: http://www.i2cdevlib.com · fetched 2026-08-29 · 82717d430469
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| jrowberg/i2cdevlib | main | 48 |
For agents
markdown · JSON · MCP: product_card(name="jrowberg/i2cdevlib")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem