{"id":13765575,"url":"https://github.com/dotnet/iot","last_synced_at":"2026-01-24T12:19:58.036Z","repository":{"id":37751950,"uuid":"151623607","full_name":"dotnet/iot","owner":"dotnet","description":"This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.","archived":false,"fork":false,"pushed_at":"2026-01-16T23:17:38.000Z","size":104943,"stargazers_count":2336,"open_issues_count":91,"forks_count":609,"subscribers_count":299,"default_branch":"main","last_synced_at":"2026-01-17T09:09:18.056Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotnet.png","metadata":{"files":{"readme":"README-nuget.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-04T19:15:33.000Z","updated_at":"2026-01-16T20:22:10.000Z","dependencies_parsed_at":"2022-07-08T04:54:42.561Z","dependency_job_id":"4d0ac9a2-a78b-4ce4-a5df-f2e51865978c","html_url":"https://github.com/dotnet/iot","commit_stats":{"total_commits":1532,"total_committers":181,"mean_commits":8.464088397790055,"dds":0.7265013054830287,"last_synced_commit":"e78918a98f3ac4d0c6c12fc809021846d736ad6b"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/dotnet/iot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fiot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fiot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fiot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fiot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnet","download_url":"https://codeload.github.com/dotnet/iot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fiot/sbom","scorecard":{"id":353143,"data":{"date":"2025-08-11","repo":{"name":"github.com/dotnet/iot","commit":"7bfaaa507faa6a56d21d5600aa0a567021431f18"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.1,"checks":[{"name":"Maintained","score":10,"reason":"7 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Code-Review","score":6,"reason":"Found 7/11 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/arduino.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/arduino.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/dotnet/iot/arduino.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/locker.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/dotnet/iot/locker.yml/main?enable=pin","Warn: containerImage not pinned by hash: samples/led-blink/Dockerfile:1","Warn: containerImage not pinned by hash: samples/led-blink/Dockerfile:12: pin your Docker image by updating mcr.microsoft.com/dotnet/runtime:5.0-buster-slim-arm32v7 to mcr.microsoft.com/dotnet/runtime:5.0-buster-slim-arm32v7@sha256:047090bfed44d7e759e5551d91d3222a5a2c6777b90a8f7bd80d822c43e2b32a","Warn: nugetCommand not pinned by hash: samples/led-blink/Dockerfile:6: pin your dependecies by either enabling central package management (https://learn.microsoft.com/nuget/consume-packages/Central-Package-Management) or using a lockfile (https://learn.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies)","Warn: npmCommand not pinned by hash: .github/workflows/locker.yml:32","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   0 out of   1 nugetCommand dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-18T08:49:24.821Z","repository_id":37751950,"created_at":"2025-08-18T08:49:24.821Z","updated_at":"2025-08-18T08:49:24.821Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28727523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-08-03T16:00:41.751Z","updated_at":"2026-01-24T12:19:58.019Z","avatar_url":"https://github.com/dotnet.png","language":"C#","readme":"# .NET IoT Libraries\n\n.NET can be used to build applications for [IoT](https://en.wikipedia.org/wiki/Internet_of_things) devices and scenarios. IoT applications typically interact with sensors, displays and input devices that require the use of [GPIO pins](https://en.wikipedia.org/wiki/General-purpose_input/output), serial ports or similar hardware.\n\nYou might want to start with our [official documentation](https://docs.microsoft.com/dotnet/iot/).\n\nThis repository contains the [System.Device.Gpio](https://www.nuget.org/packages/System.Device.Gpio) library and implementations for various boards like [Raspberry Pi](https://www.raspberrypi.org/).\n\nThe repository also contains [Iot.Device.Bindings](https://www.nuget.org/packages/Iot.Device.Bindings), a growing set of community-maintained [device bindings](https://github.com/dotnet/iot/tree/main/src/devices/README.md) for IoT components.\n\n## Hardware requirements\n\nWhile most of the bindings and examples in this project require and are designed to support specific hardware (such as [LCD displays](https://github.com/dotnet/iot/tree/main/src/devices/CharacterLcd), [temperature sensors](https://github.com/dotnet/iot/tree/main/src/devices/Dhtxx), [single-board computers](https://github.com/dotnet/iot/tree/main/src/devices/Board/RaspberryPiBoard.cs), [microcontrollers](https://github.com/dotnet/iot/tree/main/src/devices/Arduino), etc.), the library itself tries to be as hardware-independent as possible. Some bindings are even written to showcase the use of IOT interfaces with hardware that is already present in normal desktop computers (such as [keyboards](https://github.com/dotnet/iot/tree/main/src/devices/Board/KeyboardGpioDriver.cs) or [CPU temperature sensors](https://github.com/dotnet/iot/tree/main/src/devices/HardwareMonitor)). So to get started, you do not need expensive hardware. Or you can start out with cheap stuff, such as an Arduino Uno. You can also use [FT232H](https://github.com/dotnet/iot/tree/main/src/devices/Ft232H) or [FT4222](https://github.com/dotnet/iot/tree/main/src/devices/Ft4222) on a Windows, Linux or MacOS traditional laptop or desktop.\n\n## .NET Versions\n\nBoth libraries `System.Device.Gpio` (this one) and [Iot.Device.Bindings](https://www.nuget.org/packages/Iot.Device.Bindings) are targeting .NET 8.0. They can be used from any project targeting .NET 8.0. If you are looking at a Micro Controller Unit (MCU) support, check [.NET nanoFramework](https://github.com/nanoframework/). If you need to support Mono or .NET Standard 2.0, you can use the 3.X versions of these libraries.\n\nThe sample projects target the latest stable .NET Version. This applies to the sample projects with each device as well as the [example projects](https://github.com/dotnet/iot/tree/main/samples).\n\n## How to Install\n\nFrom Visual Studio, you can just add a nuget by searching for `System.Device.Gpio` and `Iot.Device.Bindings`.\n\n## Getting started\n\nAfter installing, please see the following areas to learn more:\n\n* [Official Documentation](https://docs.microsoft.com/dotnet/iot/) - Concepts, quickstarts, tutorials, and API reference documentation.\n* [API Documentation](https://docs.microsoft.com/dotnet/api/?view=iot-dotnet-1.5) - Direct link to API reference documentation for all public interfaces. Be sure to choose the library version you are using.\n* [Microsoft Learn interactive learning module](https://docs.microsoft.com/learn/modules/create-iot-device-dotnet/)\n* [Let's Learn .NET: IoT livestream (September 2021)](https://www.youtube.com/watch?v=sKaSBh1M4M4)\n* [.NET IoT 101 (Jan 2020)](https://channel9.msdn.com/Series/IoT-101) - An introduction series on how to create .NET IoT applications with a Raspberry Pi.\n* [Hardware Documentation](https://github.com/dotnet/iot/blob/main/Documentation/README.md) - Resources related to electronics, devices, vendors, software and other IoT topics.\n* [Samples](https://github.com/dotnet/iot/blob/main/samples/README.md) - Step-by-step instructions on building your first app.\n\nAll bindings (in `src/devices`) contains a `samples` folder where you will find examples on how to use each of the devices, sensor, displays and other components.\n\n## Community\n\nThis project has adopted the code of conduct defined by the [Contributor Covenant](https://contributor-covenant.org/)\nto clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).\n\n## Contributing\n\nWe welcome PR and contributions. We are primarily interested in the following:\n\n* Improving quality and capability of the drivers for supported boards.\n* Implementations for additional boards.\n* [.NET device bindings](https://github.com/dotnet/iot/tree/main/src/devices) for a wide variety of sensors, chips, displays and other components.\n* Request a device binding or protocol that you need for your project ([file an issue](https://github.com/dotnet/iot/issues)).\n* Links to blog posts or tweets that showcase .NET Core being used for great IoT scenarios ([file an issue](https://github.com/dotnet/iot/issues)).\n\n## License\n\n.NET (including the iot repo) is licensed under the [MIT license](https://github.com/dotnet/iot/blob/main/LICENSE).\n","funding_links":[],"categories":["others","Framework","C\\#","C# #"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet%2Fiot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnet%2Fiot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet%2Fiot/lists"}