diff --git a/Directory.Build.props b/Directory.Build.props index 9353a43ae7..4fd97c58e9 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,6 +12,7 @@ MIT $(MSBuildThisFileDirectory)src/System.Device.Gpio/ enable + README.md diff --git a/Documentation/README.md b/Documentation/README.md index 668736d34b..a0bfc58448 100644 --- a/Documentation/README.md +++ b/Documentation/README.md @@ -48,7 +48,7 @@ While contributing, you should read the [coding guidelines section](https://gith * [Configuring Remote Debugging from Dev machine to Raspberry Pi on ARM](https://www.hanselman.com/blog/RemoteDebuggingWithVSCodeOnWindowsToARaspberryPiUsingNETCoreOnARM.aspx) * [.NET Core Documentation](https://docs.microsoft.com/dotnet/) -* [Install .NET Core on Raspberry Pi](https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md) +* [Deploy .NET apps on ARM single-board computers](https://learn.microsoft.com/en-us/dotnet/iot/deployment) * [.NET Core ARM64 Status](https://github.com/dotnet/announcements/issues/82) * [.NET Core Docker Samples](https://github.com/dotnet/dotnet-docker/tree/master/samples) * [How to Prepare a Publish Profile](How-to-Deploy-an-IoT-App.md) diff --git a/README-nuget.md b/README-nuget.md new file mode 100644 index 0000000000..4f80fc95fe --- /dev/null +++ b/README-nuget.md @@ -0,0 +1,56 @@ +# .NET IoT Libraries + +.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. + +You might want to start with our [official documentation](https://docs.microsoft.com/dotnet/iot/). + +This 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/) and [Hummingboard](https://www.solid-run.com/nxp-family/hummingboard/). + +The 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. + +## Hardware requirements + +While 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. + +## .NET Versions + +Both libraries `System.Device.Gpio` (this one) and [Iot.Device.Bindings](https://www.nuget.org/packages/Iot.Device.Bindings) are cross-targeting .NET Standard 2.0, .NET Core 3.1, and .NET 6.0. They can be used from any project targeting .NET Core 2.0 or higher, and also from .NET Framework or mono. If you are looking at a Micro Controller Unit (MCU) support, check [.NET nanoFramework](https://github.com/nanoframework/). + +The 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). + +## How to Install + +From Visual Studio, you can just add a nuget by searching for `System.Device.Gpio` and `Iot.Device.Bindings`. + +## Getting started + +After installing, please see the following areas to learn more: + +* [Official Documentation](https://docs.microsoft.com/dotnet/iot/) - Concepts, quickstarts, tutorials, and API reference documentation. +* [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. +* [Microsoft Learn interactive learning module](https://docs.microsoft.com/learn/modules/create-iot-device-dotnet/) +* [Let's Learn .NET: IoT livestream (September 2021)](https://www.youtube.com/watch?v=sKaSBh1M4M4) +* [.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. +* [Hardware Documentation](https://github.com/dotnet/iot/blob/main/Documentation/README.md) - Resources related to electronics, devices, vendors, software and other IoT topics. +* [Samples](https://github.com/dotnet/iot/blob/main/samples/README.md) - Step-by-step instructions on building your first app. + +All 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. + +## Community + +This project has adopted the code of conduct defined by the [Contributor Covenant](https://contributor-covenant.org/) +to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). + +## Contributing + +We welcome PR and contributions. We are primarily interested in the following: + +* Improving quality and capability of the drivers for supported boards. +* Implementations for additional boards. +* [.NET device bindings](https://github.com/dotnet/iot/tree/main/src/devices) for a wide variety of sensors, chips, displays and other components. +* Request a device binding or protocol that you need for your project ([file an issue](https://github.com/dotnet/iot/issues)). +* 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)). + +## License + +.NET (including the iot repo) is licensed under the [MIT license](https://github.com/dotnet/iot/blob/main/LICENSE). diff --git a/README.md b/README.md index 833f364d54..3b87b2614f 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,15 @@ .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. -> **IMPORTANT**: This is the GitHub repo for the libraries. You might want to start with our [official documentation](https://docs.microsoft.com/dotnet/iot/). +> [!IMPORTANT] +> This is the GitHub repo for the libraries. You might want to start with our [official documentation](https://docs.microsoft.com/dotnet/iot/). This 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/) and [Hummingboard](https://www.solid-run.com/nxp-family/hummingboard/). The repository also contains [Iot.Device.Bindings](https://www.nuget.org/packages/Iot.Device.Bindings), a growing set of community-maintained [device bindings](src/devices/README.md) for IoT components. -> **NOTE**: This repository is still in experimental stage and all APIs are subject to changes. +> [!NOTE] +> This repository is still in experimental stage and all APIs are subject to changes. ## Hardware requirements @@ -26,7 +28,9 @@ The sample projects target the latest stable .NET Version. This applies to the s ## How to Install -You can install the latest daily pre-release build of the .NET System.Device.Gpio and Iot.Device.Bindings NuGet packages from the Azure artifacts feed. +From Visual Studio, you can just add a nuget by searching for `System.Device.Gpio` and `Iot.Device.Bindings`. + +If you need, you can also install the latest daily pre-release build of the .NET `System.Device.Gpio` and `Iot.Device.Bindings` NuGet packages from the Azure artifacts feed. ### NuGet.exe diff --git a/src/Iot.Device.Bindings.SkiaSharpAdapter/Iot.Device.Bindings.SkiaSharpAdapter.csproj b/src/Iot.Device.Bindings.SkiaSharpAdapter/Iot.Device.Bindings.SkiaSharpAdapter.csproj index ffd91bdf9d..7dba7af6bc 100644 --- a/src/Iot.Device.Bindings.SkiaSharpAdapter/Iot.Device.Bindings.SkiaSharpAdapter.csproj +++ b/src/Iot.Device.Bindings.SkiaSharpAdapter/Iot.Device.Bindings.SkiaSharpAdapter.csproj @@ -10,6 +10,7 @@ true true $(TargetsForTfmSpecificContentInPackage) + README.md @@ -22,6 +23,7 @@ + diff --git a/src/Iot.Device.Bindings/Iot.Device.Bindings.csproj b/src/Iot.Device.Bindings/Iot.Device.Bindings.csproj index 91a4f2c79c..7b12cf9982 100644 --- a/src/Iot.Device.Bindings/Iot.Device.Bindings.csproj +++ b/src/Iot.Device.Bindings/Iot.Device.Bindings.csproj @@ -15,7 +15,7 @@ $(NoWarn);SA1205 - + README.md @@ -28,6 +28,7 @@ + @@ -67,7 +68,7 @@ - + diff --git a/src/System.Device.Gpio/System.Device.Gpio.csproj b/src/System.Device.Gpio/System.Device.Gpio.csproj index 8cfbcd95b7..2b57462226 100644 --- a/src/System.Device.Gpio/System.Device.Gpio.csproj +++ b/src/System.Device.Gpio/System.Device.Gpio.csproj @@ -17,6 +17,7 @@ all + diff --git a/src/devices/README-nuget.md b/src/devices/README-nuget.md new file mode 100644 index 0000000000..8738b1a325 --- /dev/null +++ b/src/devices/README-nuget.md @@ -0,0 +1,34 @@ +# Device Bindings + +You will find a large variety of bindings in this nuget. You can [check the list on the repository](https://https://github.com/dotnet/iot/tree/main/src/devices). + +## Getting started + +Once you've installed the nuget, you're ready to go! Make sure you have a proper device that support GPIO. See the System.Device. + +Each binding has [detailed example](https://https://github.com/dotnet/iot/tree/main/src/devices) in the main repository. Each directory will contain a detailed README with the specific usage of each binding. It will also in the `/samples` folder contains a detailed and commented example. + +## Hardware requirements + +While 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. + +You will also need to have the binding you're interested in! Most README will contains schemas and instructions on how to connect your binding to your board. + +## Community + +This project has adopted the code of conduct defined by the [Contributor Covenant](https://contributor-covenant.org/) +to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). + +## Contributing + +We welcome PR and contributions. We are primarily interested in the following: + +* Improving quality and capability of the drivers for supported boards. +* Implementations for additional boards. +* [.NET device bindings](https://github.com/dotnet/iot/tree/main/src/devices) for a wide variety of sensors, chips, displays and other components. +* Request a device binding or protocol that you need for your project ([file an issue](https://github.com/dotnet/iot/issues)). +* 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)). + +## License + +.NET (including the iot repo) is licensed under the [MIT license](https://github.com/dotnet/iot/blob/main/LICENSE). diff --git a/src/devices/README.md b/src/devices/README.md index c086bd4e16..28aad0ce00 100755 --- a/src/devices/README.md +++ b/src/devices/README.md @@ -360,7 +360,7 @@ Our vision: the majority of .NET bindings are written completely in .NET languag ## Binding Distribution -These bindings are distributed via the [Iot.Device.Bindings](https://www.nuget.org/packages/Iot.Device.Bindings) NuGet package. Daily builds with the latest bindings are available on [MyGet](https://dotnet.myget.org/feed/dotnet-core/package/nuget/Iot.Device.Bindings). You can also consume the bindings as source. +These bindings are distributed via the [Iot.Device.Bindings](https://www.nuget.org/packages/Iot.Device.Bindings) NuGet package. Daily builds with the latest bindings are available on [Azure DevOps](https://pkgs.dev.azure.com/dotnet/IoT/_packaging/nightly_iot_builds/nuget/v3/index.json). Just add the URL as a new nuget feed. You can also consume the bindings as source. ## Contributing a binding