awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jrowberg avatar

jrowberg/i2cdevlib

0
View on GitHub↗
4,251 estrellas·7,433 forks·C++·7 vistaswww.i2cdevlib.com↗

I2cdevlib

i2cdevlib es una colección de controladores de periféricos y capas de abstracción de hardware diseñadas para dispositivos I2C. Proporciona una colección de controladores de sensores, una base de datos de mapas de registros y un gestor de periféricos para coordinar la comunicación entre microcontroladores y componentes de hardware.

El proyecto utiliza una capa de abstracción de hardware para desacoplar la lógica del dispositivo del hardware específico del microcontrolador y las bibliotecas de cableado. Esta abstracción de la capa de transporte permite que los mismos controladores de dispositivo permanezcan portátiles a través de diferentes arquitecturas de hardware.

La biblioteca cubre una amplia gama de integración de hardware, incluyendo sensores de movimiento e inerciales, monitores ambientales, relojes de tiempo real y detección táctil capacitiva. También incluye soporte para expansión GPIO, conversión de analógico a digital y el control de pantallas OLED y medidores digitales.

El sistema incluye herramientas para la depuración del protocolo I2C y análisis de tráfico, permitiendo la correlación de datos brutos de analizadores lógicos con definiciones de mapas de registros legibles por humanos.

Features

  • I2C Bus Interfaces - Provides standardized software interfaces for connecting microcontrollers to peripherals via the I2C protocol.
  • Hardware Porting - Adapts the codebase to run across different microprocessor systems by abstracting transport operations.
  • Bus Transport Interfaces - Implements a generic transport interface for bus operations, enabling driver portability across different hardware architectures.
  • Hardware Abstraction Layers - Implements hardware abstraction layers to decouple device driver logic from specific microcontroller hardware.
  • Peripheral Abstractions - Wraps I2C peripheral behaviors into standardized C++ classes to simplify interaction with diverse hardware.
  • Hardware Peripheral Drivers - Provides a collection of specialized driver layers for various I2C sensors and peripherals.
  • I2C Register Maps - Maintains a repository of bitfield definitions and register maps used to generate drivers and analyze bus traffic.
  • Sensor Drivers - Provides a comprehensive set of drivers for reading data from accelerometers, gyroscopes, and pressure sensors.
  • Transport Abstraction Layers - Decouples high-level device logic from low-level hardware communication libraries to ensure portability.
  • Hardware Register Databases - Maintains a comprehensive database of register maps and bitfield definitions for a wide variety of I2C hardware.
  • I2C I/O Expansion - Increases the number of available general-purpose input and output pins via an external 24-bit I2C expander.
  • I2C Port Expanders - Increases available digital input and output pins using external I2C port expanders.
  • Gyroscope Data Capture - Retrieves angular velocity measurements across three axes from a gyroscope sensor via the I2C protocol.
  • Multi-Bus Management - Coordinates multiple communication objects to enable simultaneous interaction with several hardware buses.
  • I2C Traffic Analysis - Analyzes I2C bus traffic and correlates raw data packets with register maps to troubleshoot communication.
  • Inertial Measurement Unit Interfaces - Collects combined acceleration and rotation measurements from 6-axis or 9-axis inertial measurement units.
  • Magnetometer Interfaces - Measures terrestrial magnetism and magnetic flux density across three axes to determine heading and 3D orientation.
  • Real-Time Clock Management - Implements a standardized I2C interface to read and write time and date information to hardware real-time clocks.
  • Register-Map Driver Generation - Automatically produces functional driver code and bitfield access patterns based on predefined hardware register specifications.
  • Register-to-Human Mappings - Provides tools to correlate raw I2C bus traffic with human-readable register map definitions for easier debugging.
  • Triaxial Acceleration Measurement - Provides drivers to retrieve high-resolution 3-axis acceleration and gravity measurements for detecting motion, shock, or tilt.
  • Driver Code Generators - Automatically creates functional management code and bitfield access patterns using defined register map specifications.
  • Bus Traffic Correlation - Correlates raw logic analyzer data with register maps to display human-readable names instead of hexadecimal values.
  • Capacitive Touch Sensing - Provides the ability to read touch and proximity data from capacitive sensors via I2C to detect user interaction.

Historial de estrellas

Gráfico del historial de estrellas de jrowberg/i2cdevlibGráfico del historial de estrellas de jrowberg/i2cdevlib

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a I2cdevlib

Proyectos open-source similares, clasificados según cuántas características comparten con I2cdevlib.
  • raspberrypi/pico-examplesAvatar de raspberrypi

    raspberrypi/pico-examples

    3,835Ver en GitHub↗

    This project is a reference library of firmware examples and a development framework for creating embedded C applications on the RP2040 microcontroller. It provides a collection of hardware peripheral drivers and foundational patterns for managing system resources in resource-constrained environments. The library features reference implementations for programmable I/O state machines, allowing for the creation of custom hardware-level protocols. It also provides a multicore embedded framework to distribute computational workloads across multiple processor cores using symmetric processing. The

    C
    Ver en GitHub↗3,835
  • rwaldron/johnny-fiveAvatar de rwaldron

    rwaldron/johnny-five

    13,401Ver en GitHub↗

    Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots and IoT devices. It provides a standardized library for managing pins, motors, and displays across various microcontroller platforms, allowing developers to control sensors and actuators using a consistent JavaScript API. The framework is distinguished by its use of a plugin-based hardware abstraction system, which enables communication with diverse hardware platforms and protocols. It supports real-time hardware manipulation and debugging through a read-eval-print loop that a

    JavaScript1-wireadcarduino
    Ver en GitHub↗13,401
  • hybridgroup/gobotAvatar de hybridgroup

    hybridgroup/gobot

    9,425Ver en GitHub↗

    Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT applications. It provides a hardware abstraction layer with standardized drivers to interact with GPIO, I2C, SPI, and PWM interfaces across various single-board computers and microcontrollers. The framework functions as an IoT device orchestrator and BLE device manager, enabling the coordination of multiple sensors, actuators, and Bluetooth Low Energy peripherals. It includes specialized interfaces for drone control, allowing for the management of flight maneuvers and video streams

    Goarduinobeaglebonebeaglebone-black
    Ver en GitHub↗9,425
  • petoicamp/opencat-quadruped-robotAvatar de PetoiCamp

    PetoiCamp/OpenCat-Quadruped-Robot

    4,891Ver en GitHub↗

    OpenCat-Quadruped-Robot is a development framework and motion control API for building four-legged robots. It provides a comprehensive environment for quadruped robot development, featuring tools for locomotion gait design, inverse kinematics, and a layered control architecture that separates high-level intelligence from low-level motion. The project distinguishes itself as an embedded AI deployment tool, allowing users to train, quantize, and deploy machine learning models to vision modules for tasks such as object detection and visual target tracking. It further supports complex human-robot

    C++aiarduinoblock-coding
    Ver en GitHub↗4,891
Ver las 30 alternativas a I2cdevlib→

Preguntas frecuentes

¿Qué hace jrowberg/i2cdevlib?

i2cdevlib es una colección de controladores de periféricos y capas de abstracción de hardware diseñadas para dispositivos I2C. Proporciona una colección de controladores de sensores, una base de datos de mapas de registros y un gestor de periféricos para coordinar la comunicación entre microcontroladores y componentes de hardware.

¿Cuáles son las características principales de jrowberg/i2cdevlib?

Las características principales de jrowberg/i2cdevlib son: I2C Bus Interfaces, Hardware Porting, Bus Transport Interfaces, Hardware Abstraction Layers, Peripheral Abstractions, Hardware Peripheral Drivers, I2C Register Maps, Sensor Drivers.

¿Qué alternativas de código abierto existen para jrowberg/i2cdevlib?

Las alternativas de código abierto para jrowberg/i2cdevlib incluyen: raspberrypi/pico-examples — This project is a reference library of firmware examples and a development framework for creating embedded C… rwaldron/johnny-five — Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots… hybridgroup/gobot — Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT… petoicamp/opencat-quadruped-robot — OpenCat-Quadruped-Robot is a development framework and motion control API for building four-legged robots. It provides… embassy-rs/embassy — Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It… riot-os/riot — RIOT is a real-time operating system designed for resource-constrained microcontrollers. It provides a kernel for…