You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Rust i2cdev crate seeks to provide full access to the Linux i2cdev
driver interface in Rust without the need to wrap any C code or directly make
low-level system calls. The documentation for the i2cdev interace can
be found at https://www.kernel.org/doc/Documentation/i2c/dev-interface and
in the lm-sensors projects.
Device driver developers should consider building on top of the
embedded-hal traits rather than
directly coupling to this library. An implementation of those generic traits for
Linux can be found in
linux-embedded-hal which, at
present, uses this crate as the backend for I2C.
Example/API
The source includes an example of using the library to talk to a Wii
Nunchuck (which has an i2c interface).
Go View the Example.
The Documentation contains a quick overview of how to get started with an i2c device.
In addition to the Read/Write traits, the following methods are
available via the I2CDevice trait.
Features
The following features are implemented and planned for the library:
Implement the Read trait
Implement the Write trait
Implement SMBus Methods
Add Tests/Example for SMBus Methods
Add sensor library for handy sensors (and examples)
Add higher-level APIs/Macros for simplifying access to devices
with large register sets
Add Support for Non-SMBus ioctl methods
Add examples for non-smbus ioctl methods
Unit Testing
Cross Compiling
Most likely, the machine you are running on is not your development
machine (although it could be). In those cases, you will need to
cross-compile. See https://github.com/cross-rs/cross for pointers.
Minimum Supported Rust Version (MSRV)
This crate is guaranteed to compile on stable Rust 1.65.0 and up. It might
compile with older versions but that may change in any new patch release.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
Code of Conduct
Contribution to this crate is organized under the terms of the Rust Code of
Conduct, the maintainer of this crate, the Embedded Linux Team, promises
to intervene to uphold that code of conduct.
About
Rust library for interfacing with i2c devices under Linux