Ross ROSS = Recommend OSS · open-source software intelligence for agents

jrowberg/i2cdevlib

I2C device library collection for AVR/Arduino or other C++-based MCUs observed · 2026-08-28

github.com/jrowberg/i2cdevlib · homepage · C++ 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

Full methodology

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

Member repositories

RepositoryRoleHealth v2
jrowberg/i2cdevlibmain48

For agents

markdown · JSON · MCP: product_card(name="jrowberg/i2cdevlib")

Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem