{"id":16064709,"url":"https://github.com/eldruin/driver-examples","last_synced_at":"2025-03-16T08:32:08.939Z","repository":{"id":144893881,"uuid":"169973203","full_name":"eldruin/driver-examples","owner":"eldruin","description":"Rust example programs for many of my hardware device drivers running on STM32F3 Discovery, STM32F103 \"Blue Pill\", RaspberryPi and micro:bit boards","archived":false,"fork":false,"pushed_at":"2024-04-18T07:59:40.000Z","size":346,"stargazers_count":94,"open_issues_count":2,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-16T05:29:03.193Z","etag":null,"topics":["driver","embedded","embedded-hal","embedded-hal-driver","example","i2c","no-std","rust","spi"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eldruin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-10T11:58:02.000Z","updated_at":"2024-10-12T09:09:17.000Z","dependencies_parsed_at":"2024-02-12T09:35:03.492Z","dependency_job_id":"afd53ec5-6890-4004-92fa-332d156e019f","html_url":"https://github.com/eldruin/driver-examples","commit_stats":{"total_commits":276,"total_committers":1,"mean_commits":276.0,"dds":0.0,"last_synced_commit":"117dbe81e9d1927af1d1b0139ad31477dee23a2c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fdriver-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fdriver-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fdriver-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fdriver-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eldruin","download_url":"https://codeload.github.com/eldruin/driver-examples/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243806070,"owners_count":20350775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["driver","embedded","embedded-hal","embedded-hal-driver","example","i2c","no-std","rust","spi"],"created_at":"2024-10-09T05:09:12.635Z","updated_at":"2025-03-16T08:32:08.356Z","avatar_url":"https://github.com/eldruin.png","language":"Rust","readme":"# Additional example programs for several rust drivers\n\n[![Build Status](https://github.com/eldruin/driver-examples/workflows/Build/badge.svg)](https://github.com/eldruin/driver-examples/actions?query=workflow%3ABuild)\n\nThis repository includes examples of using devices through these drivers:\n\n| Device driver    | Description                                               | Interface | Introductory blog post            |\n|------------------|-----------------------------------------------------------|-----------|-----------------------------------|\n|[Ad983x]          | Waveform generator / direct digital synthesizer (DDS).    | SPI       | [Intro blog post][blog-ad983x]    |\n|[Ads1x1x]         | 12/16-bit Analog-to-digital (ADC) converters.             | I2C       | [Intro blog post][blog-ads1x1x]   |\n|[Apds9960]        | Digital proximity, ambient light, RGB and gesture sensor. | I2C       |                                   |\n|[Bmi160]          | Inertial measurement unit (IMU) (accelerometer + gyro).   | I2C / SPI |                                   |\n|[Ds1307]          | Real-time clock (RTC) / calendar.                         | I2C       | [Intro blog post][blog-ds1307]    |\n|[Ds323x]          | Extremely accurate real-time clock (RTC) / calendar.      | I2C / SPI |                                   |\n|[Eeprom24x]       | 24x series serial EEPROM devices.                         | I2C       | [Intro blog post][blog-eeprom24x] |\n|[Embedded-Ccs811] | Digital gas sensor for monitoring indoor air quality.     | I2C       | [Intro blog post][blog-ccs811]    |\n|[Hdc20xx]         | Temperature and humidity sensors.                         | I2C       |                                   |\n|[iAQ-Core]        | Indoor air quality sensor.                                | I2C       |                                   |\n|[Isl29125]        | RGB color light sensor with IR blocking filter.           | I2C       |                                   |\n|[Kxcj9]           | Tri-axis MEMS accelerometer.                              | I2C       | [Intro blog post][blog-kxcj9]     |\n|[Lm75]            | Temperature sensor and thermal watchdog.                  | I2C       |                                   |\n|[Lsm303agr]       | Tri-axis accelerometer and tri-axis magnetometer.         | I2C / SPI |                                   |\n|[Max170xx]        | Fuel-gauge for lithium-ion (Li+) batteries.               | I2C       |                                   |\n|[Max3010x]        | Pulse oximeter and heart-rate sensor.                     | I2C       |                                   |\n|[Max44009]        | Ambient light sensor.                                     | I2C       |                                   |\n|[Mcp4x]           | Digital potentiometers.                                   | SPI       |                                   |\n|[Mcp49xx]         | 8/10/12-bit Digital-to-analog (DAC) converters.           | SPI       |                                   |\n|[Mcp794xx]        | Real-time clock (RTC) / calendar.                         | I2C       | [Intro blog post][blog-mcp794xx]  |\n|[Mlx9061x]        | Non-contact infrared (IR) thermometer.                    | I2C       |                                   |\n|[Mma8x5x]         | Tri-axis MEMS accelerometers.                             | I2C       |                                   |\n|[Opt300x]         | Ambient light sensor.                                     | I2C       | [Intro blog post][blog-opt300x]   |\n|[Pcf857x]         | 8/16-pin I/O port expanders.                              | I2C       |                                   |\n|[Pwm-Pca9685]     | 16-pin PWM port expander / LED driver.                    | I2C       | [Intro blog post][blog-pca9685]   |\n|[Si4703]          | FM radio turners (receivers).                             | I2C       | [Intro blog post][blog-si4703]    |\n|[Tcs3472]         | RGBW light color sensor with IR filter.                   | I2C       |                                   |\n|[Tmp006]          | Non-contact infrared (IR) thermopile temperature sensor.  | I2C       | [Intro blog post][blog-tmp006]    |\n|[Tmp1x2]          | Temperature sensors.                                      | I2C       | [Intro blog post][blog-tmp1x2]    |\n|[Veml6030]        | Ambient light sensor.                                     | I2C       | [Intro blog post][blog-veml6030]  |\n|[Veml6040]        | RGBW light color sensor.                                  | I2C       |                                   |\n|[Veml6070]        | Ultraviolet A (UVA) light sensor.                         | I2C       |                                   |\n|[Veml6075]        | Ultraviolet A (UVA) and B (UVB) light sensor.             | I2C       | [Intro blog post][blog-veml6075]  |\n|[W25]             | Winbond's W25 serial flash memory devices.                | SPI       |                                   |\n|[Xca9548a]        | TCA9548A/PCA9548A I2C switches/multiplexers.              | I2C       |                                   |\n\nThese examples use several boards: STM32F3-Discovery, STM32F103 \"Blue pill\", Raspberry Pi\nand Micro:bit V2. These are classified in different folders.\n\nAt the beginning of each example the setup and behavior is described.\nMany of them also use an SSD1306 OLED display.\nYou can get most of the modules used here on [AliExpress] generally for a very small price.\n\nThese examples are guaranteed to build with the latest Rust stable release.\nIf you get a build error, try updating your Rust installation.\n\nTo run the examples, clone this repository, go to the appropriate folder and run\neither `cargo embed` or `cargo run`. Look in the README of each folder for instructions.\n```\ngit clone https://github.com/eldruin/driver-examples\ncd driver-examples/stm32f1-bluepill\n# ...\n```\n\n## License\n\nLicensed under either of:\n\n * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or\n   http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or\n   http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contributing\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n\n[Ad983x]: https://crates.io/crates/ad983x\n[Ads1x1x]: https://crates.io/crates/ads1x1x\n[Apds9960]: https://crates.io/crates/apds9960\n[Bmi160]: https://crates.io/crates/bmi160\n[Ds1307]: https://crates.io/crates/ds1307\n[Ds323x]: https://crates.io/crates/ds323x\n[Kxcj9]: https://crates.io/crates/kxcj9\n[Eeprom24x]: https://crates.io/crates/eeprom24x\n[Embedded-Ccs811]: https://crates.io/crates/embedded-ccs811\n[Hdc20xx]: https://crates.io/crates/hdc20xx\n[Isl29125]: https://crates.io/crates/isl29125\n[iAQ-Core]: https://crates.io/crates/iaq-core\n[Lm75]: https://crates.io/crates/lm75\n[Lsm303agr]: https://crates.io/crates/lsm303agr\n[Max170xx]: https://crates.io/crates/max170xx\n[Max3010x]: https://crates.io/crates/max3010x\n[Max44009]: https://crates.io/crates/max44009\n[Mcp4x]: https://crates.io/crates/mcp4x\n[Mcp49xx]: https://crates.io/crates/mcp49xx\n[Mcp794xx]: https://crates.io/crates/mcp794xx\n[Mlx9061x]: https://crates.io/crates/mlx9061x\n[Mma8x5x]: https://crates.io/crates/mma8x5x\n[Opt300x]: https://crates.io/crates/Opt300x\n[Pcf857x]: https://crates.io/crates/pcf857x\n[Pwm-Pca9685]: https://crates.io/crates/pwm-pca9685\n[Si4703]: https://crates.io/crates/si4703\n[Tcs3472]: https://crates.io/crates/tcs3472\n[Tmp006]: https://crates.io/crates/tmp006\n[Tmp1x2]: https://crates.io/crates/tmp1x2\n[Veml6030]: https://crates.io/crates/veml6030\n[Veml6040]: https://crates.io/crates/veml6040\n[Veml6070]: https://crates.io/crates/veml6070\n[Veml6075]: https://crates.io/crates/veml6075\n[W25]: https://github.com/eldruin/w25-rs\n[Xca9548a]: https://crates.io/crates/xca9548a\n\n[blog-ad983x]: https://blog.eldruin.com/ad983x-waveform-generator-dds-driver-in-rust/\n[blog-ads1x1x]: https://blog.eldruin.com/ads1x1x-analog-to-digital-converter-driver-in-rust/\n[blog-ccs811]: https://blog.eldruin.com/ccs811-indoor-air-quality-sensor-driver-in-rust/\n[blog-ds1307]: https://blog.eldruin.com/ds1307-real-time-clock-rtc-driver-in-rust/\n[blog-eeprom24x]: https://blog.eldruin.com/24x-serial-eeprom-driver-in-rust/\n[blog-kxcj9]: https://blog.eldruin.com/kxcj9-kxcjb-tri-axis-mems-accelerator-driver-in-rust/\n[blog-mcp794xx]: https://blog.eldruin.com/mcp794xx-real-time-clock-rtc-driver-in-rust\n[blog-opt300x]: https://blog.eldruin.com/opt300x-ambient-light-sensor-driver-in-rust/\n[blog-pca9685]: https://blog.eldruin.com/pca9685-pwm-led-servo-controller-driver-in-rust/\n[blog-si4703]: https://blog.eldruin.com/si4703-fm-radio-receiver-driver-in-rust/\n[blog-tmp006]: https://blog.eldruin.com/tmp006-contact-less-infrared-ir-thermopile-driver-in-rust/\n[blog-tmp1x2]: https://blog.eldruin.com/tmp1x2-temperature-sensor-driver-in-rust/\n[blog-veml6030]: https://blog.eldruin.com/veml6030-ambient-light-sensor-driver-in-rust/\n[blog-veml6075]: https://blog.eldruin.com/veml6075-uva-uvb-uv-index-light-sensor-driver-in-rust/\n\n[AliExpress]: https://www.aliexpress.com\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldruin%2Fdriver-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feldruin%2Fdriver-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldruin%2Fdriver-examples/lists"}