iot
Copilot instructions2.4k starsChanged 6 years agoMITView on GitHub
ALWAYS reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here. This repository contains the .NET IoT libraries: System.Device.Gpio (low-level GPIO APIs) and Iot.Device.Bindings (130+ device drivers/bindings for sensors, displays, motors, etc.). Code runs across different operating systems and hardware platforms. If Azure DevOps feeds are inaccessible: Build will fail with "Could not resolve SDK Microsoft.DotNet.Arcade.Sdk" errors. Document this as a known limitation requiring network access…
- Installs packages
We split this copilot-instructions.md into the rules it gives an agent
35 rules. About 0 are common, 21 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈21
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Install .NET 8.0.300 SDK: Use ./dotnet.sh --version to verify the exact version from global.json is available
- Distinctive: line 16
Run these commands in order:
- Distinctive: line 34
When main build fails due to network restrictions:
- Distinctive: line 92
Build validation: Ensure your changes don't break the overall build
- Distinctive: line 93
Sample execution: Run relevant sample projects to verify functionality
- Distinctive: line 95
Cross-platform considerations: Verify code works on Linux, Windows, and embedded systems
- Distinctive: line 136
Package not found: Check if using correct NuGet sources in NuGet.config
- Very specific: line 137
Memory issues: Use /maxCpuCount:1 to disable parallel builds if needed
- Distinctive: line 142
Test results: Published in CI, available in pipeline artifacts
- Very specific: line 148
API Design: Use TryRead* methods for sensor readings, clear property names
- Distinctive: line 152
Samples: Always include runnable sample demonstrating typical usage
- Distinctive: line 172
Iot.Device.Bindings: - All device bindings in single package
- Distinctive: line 184
Focus on hardware abstraction: - use System.Device.* APIs exclusively
- Distinctive: line 208
Treat public APIs as experimental but stable-in-spirit: prefer additive changes, avoid breaking patterns unless maintainers direct …
- Very specific: line 214
Build: Use repository build scripts (build.sh/Build.cmd) for full builds.
- Distinctive: line 215
Tests: prefer unit tests for logic that can be isolated from hardware.
- Very specific: line 223
Follow the repo's .editorconfig and standard .NET naming rules (PascalCase for public members/types, camelCase for locals/fields.
- Distinctive: line 224
Prefer clarity over cleverness: braces for all control flow, avoid long chained expressions.
- Very specific: line 227
Avoid unnecessary allocations in hot paths.
- Very specific: line 239
When adding or updating a device binding under src/devices/<DeviceName>:
- Distinctive: line 244
Avoid singletons and implicit global state.
- Very specific: line 247
Prefer TryRead* methods that return bool and set out parameters for sensor readings (e.g., TryReadTemperature(out Temperature value)).
- Very specific: line 249
Keep synchronous APIs predictable.
- Distinctive: line 260
Use System.Device abstractions (controllers, drivers) instead of P/Invoke or OS-specific syscalls.
- Very specific: line 263
Add a sample demonstrating typical usage (samples/ and/or src/devices/<DeviceName>/samples).
- Distinctive: line 264
Add or update a README for the device with wiring notes, required pull-ups, expected ranges/units, and example code.
- Very specific: line 269
Don't propose board-specific hacks or hardcoded paths to /sys/proc unless the existing pattern does so via an abstraction.
- Very specific: line 270
Don't capture Console I/O in library code (leave printing/logging to samples/apps).
- Distinctive: line 271
Don't add hidden thread‑static caches or background threads without clear ownership and disposal.
- Distinctive: line 272
Don't change package versions, TFMs, or CI configuration unless requested.
- Distinctive: line 273
Don't introduce breaking API changes to public types without a strong justification and maintainer direction.
- Distinctive: line 289
Use explicit, repo‑aware prompts.
- Very specific: line 299
Abstractions: use System.Device.Gpio, System.Device.I2c, System.Device.Spi, System.Device.Pwm where possible.
- Very specific: line 300
Docs: check Documentation/ for contribution guidelines.
- Distinctive: line 306
If a binding requires vendor blobs/firmware, keep them out of the repo.
≈ “Common” is an estimate: at least 1 in 5 of the 3,669 Copilot instructions files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
.NET IoT — GitHub Copilot Coding Agent Instructions
ALWAYS reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
This repository contains the .NET IoT libraries: System.Device.Gpio (low-level GPIO APIs) and Iot.Device.Bindings (130+ device drivers/bindings for sensors, displays, motors, etc.). Code runs across different operating systems and hardware platforms.
Working Effectively with Fresh Clone
Required Dependencies and Setup
- CRITICAL: This repository requires Azure DevOps feeds access to build. If you get SDK resolution errors, this is due to network restrictions.
- Install .NET 8.0.300 SDK: Use
./dotnet.sh --versionto verify the exact version from global.json is available - Build command:
./build.sh --restore --build(Linux/macOS) orBuild.cmd(Windows) - NEVER CANCEL: Full repository build takes 30-45 minutes. Set timeout to 60+ minutes.
Bootstrap and Build Process
Run these commands in order:
# 1. Ensure correct .NET SDK version (may download SDK automatically)
./dotnet.sh --version
# 2. Full repository build - NEVER CANCEL, takes 30-45 minutes
./build.sh --restore --build --configuration Release
# 3. Build with packages (for testing distribution)
./build.sh --restore --build --pack --configuration Release
# 4. Run tests - NEVER CANCEL, takes 15-30 minutes
./build.sh --test --configuration ReleaseIf Azure DevOps feeds are inaccessible: Build will fail with "Could not resolve SDK Microsoft.DotNet.Arcade.Sdk" errors. Document this as a known limitation requiring network access to Azure DevOps.
Alternative Build Approaches
When main build fails due to network restrictions:
# Build individual samples (these use public NuGet packages)
cd samples/led-blink
../../dotnet.sh build
# Test basic .NET IoT functionality
./dotnet.sh new console -o test-project
cd test-project
./dotnet.sh add package System.Device.Gpio
./dotnet.sh add package Iot.Device.Bindings
./dotnet.sh build && ./dotnet.sh runRepository Structure and Navigation
Key Directories
src/System.Device.Gpio/- Core GPIO library (pins, controllers, drivers)src/devices/- 130+ device-specific bindings (sensors, displays, motors)samples/- Standalone example projects demonstrating usageDocumentation/- Comprehensive docs, contribution guidelines, tutorialstools/- Build tools, Arduino C# compiler, code generators
Important Files
global.json- Specifies required .NET SDK version (8.0.300)build.sh/Build.cmd- Main build scripts using Microsoft Arcade SDKazure-pipelines.yml- Official CI/CD pipeline configurationDirectory.Build.props- Shared MSBuild properties and package references
Finding Device Bindings
# List all 130+ available device bindings
ls src/devices/
# Find specific device (e.g., temperature sensors)
find src/devices -name "*temp*" -o -name "*dht*" -o -name "*bmp*"
# Each device has: library code, samples/, tests/, README.md
ls src/devices/Dhtxx/ # Example: DHT temperature sensorTesting and Validation
Running Tests
# Run all tests - NEVER CANCEL, takes 15-30 minutes
./build.sh --test --configuration Release
# Run specific test project
./dotnet.sh test src/devices/Dhtxx/tests/
# Test count: 31 test projects across the repository
find . -name "*Test*.csproj" | wc -lManual Validation Scenarios
ALWAYS run these validation steps after making changes:
- Build validation: Ensure your changes don't break the overall build
- Sample execution: Run relevant sample projects to verify functionality
- Hardware-independent testing: Focus on parsing, calculation, and protocol logic
- Cross-platform considerations: Verify code works on Linux, Windows, and embedded systems
Validation for Device Bindings
# After modifying a device binding (e.g., Dhtxx):
cd src/devices/Dhtxx
../../../dotnet.sh build
# Test the sample
cd samples
../../../../dotnet.sh build
# Note: Hardware may not be available, verify compilation and logic
# Check for hardware abstraction compliance
grep -r "Environment.OSVersion\|DllImport\|P/Invoke" . # Should be minimal/noneCommon Commands and Expected Timing
| Command | Expected Time | Timeout Setting |
./build.sh --restore --build | 30-45 minutes | 60+ minutes |
./build.sh --test | 15-30 minutes | 45+ minutes |
| Individual device build | 1-3 minutes | 10 minutes |
| Sample project build | 30-60 seconds | 5 minutes |
| Full CI pipeline | 45-60 minutes | 90+ minutes |
Linting and Code Quality
# Run markdown linting (used in CI)
npm install -g markdownlint-cli
markdownlint -c .markdownlint.json .
# Code follows .editorconfig and built-in analyzers
# Warnings/errors will appear during build - fix themDebugging Build Issues
Common Issues and Solutions
- SDK resolution errors: Azure DevOps feeds inaccessible - document as network limitation
- Package not found: Check if using correct NuGet sources in NuGet.config
- Memory issues: Use
/maxCpuCount:1to disable parallel builds if needed - Cross-platform issues: Device bindings should use System.Device.* abstractions only
Log Locations
- Build logs:
artifacts/log/{Configuration}/ - Test results: Published in CI, available in pipeline artifacts
Working with Device Bindings
Device Binding Patterns (follow existing conventions)
- Constructor: Accept
I2cDevice,SpiDevice,GpioControlleretc. from caller - API Design: Use
TryRead*methods for sensor readings, clear property names - Resource Management: Implement
IDisposable, dispose hardware resources properly - Error Handling: Validate inputs, handle hardware failures gracefully
- Documentation: XML docs with units (°C, Pa, %RH), README with wiring info
- Samples: Always include runnable sample demonstrating typical usage
Quick Device Binding Development
# Create new device binding using template
cd src/devices
# TODO: Use template when available, or copy from existing device
# Essential files for new device:
# - DeviceName.csproj
# - DeviceName.cs (main class)
# - samples/DeviceName.samples.csproj
# - samples/Program.cs
# - README.mdPackage and Distribution
NuGet Packages Produced
- System.Device.Gpio - Core GPIO abstractions and drivers
- Iot.Device.Bindings - All device bindings in single package
- Iot.Device.Bindings.SkiaSharpAdapter - Graphics/display adapter
Package Sources
- Release builds: NuGet.org (public)
- Nightly builds: GitHub Packages (requires authentication)
- Development: Local artifacts/packages/{Configuration}/
Important Notes for Copilot Coding Agent
DO
- Build early and often - catch issues before they compound
- Focus on hardware abstraction - use System.Device.* APIs exclusively
- Test compilation even without hardware - logic should be testable
- Follow existing patterns - browse src/devices/ for examples
- Document thoroughly - XML docs, README files, units in comments
- Handle disposal correctly - hardware resources must be properly released
DON'T
- Cancel long-running builds - they may take 45+ minutes normally
- Hardcode platform-specific paths - maintain cross-platform compatibility
- Skip sample projects - they're essential for demonstrating usage
- Introduce breaking changes - this is experimental but stable-in-spirit API
- Use P/Invoke or OS-specific APIs - defeats hardware abstraction purpose
Critical Success Factors
- Network Access: Azure DevOps feeds required for full build capability
- Patience: Builds are lengthy due to large codebase (130+ bindings)
- Hardware Awareness: Code should work without hardware for testing
- Cross-platform Mindset: Support Linux, Windows, embedded systems equally
Scope & context (what this repo is)
- This repo contains the low-level System.Device.Gpio APIs and a large collection of device drivers under Iot.Device.Bindings.
- Code is used across different OSes and boards. Prefer hardware-agnostic code, with platform-specific behavior isolated behind drivers/abstractions.
- Treat public APIs as experimental but stable-in-spirit: prefer additive changes, avoid breaking patterns unless maintainers direct otherwise.
Build, test, and layout (how to work here)
- Solution layout: library code lives under
src/(e.g.,src/System.Device.Gpio,src/devices/<DeviceName>); runnable examples live undersamples/and often under each device's folder. - Build: Use repository build scripts (
build.sh/Build.cmd) for full builds. Individual projects can use./dotnet.sh buildwhen network allows. - Tests: prefer unit tests for logic that can be isolated from hardware. For hardware-only functionality, ensure samples (and documentation) make manual verification straightforward.
- Docs: device-specific docs/README typically live next to the device code; repo-wide docs live under
Documentation/.
Copilot: when proposing commands or CI steps, use repository build scripts first, then individual
./dotnet.sh buildcommands. Do not bump target frameworks or change solution structure unless explicitly asked.
Coding style & conventions (how to write code)
- Follow the repo's .editorconfig and standard .NET naming rules (PascalCase for public members/types, camelCase for locals/fields; interfaces start with
I). - Prefer clarity over cleverness: braces for all control flow, avoid long chained expressions; add small helper methods if they improve readability.
- Enable and fix compiler warnings/analyzers; keep
usingdirectives tidy. - Nullability: write null-safe code and validate inputs (
ArgumentNullException,ArgumentOutOfRangeException, etc.). - Avoid unnecessary allocations in hot paths; prefer spans/stackalloc/pooled buffers when reading/writing registers or doing tight loops.
Resource management (very important for hardware)
- Any type that owns hardware resources (GPIO pins, I2C/SPI devices, file handles, PWM, etc.) must implement
IDisposableand release resources promptly. - Dispose/close transports (
I2cDevice,SpiDevice,GpioController) you create. If a transport is passed in by the caller, do not dispose it unless documented as owned. - Design for failure: ensure exceptions (or
Try*patterns) leave the device in a consistent state; clean up on error.
Device binding design (patterns Copilot should follow)
When adding or updating a device binding under src/devices/<DeviceName>:
- Constructor & dependencies
- Accept dependencies that the caller can configure, e.g.
I2cDevice,SpiDevice,GpioController, pin numbers, bus addresses, etc. - Provide sensible defaults (e.g., common I²C addresses), but never hardcode board-specific details.
- Avoid singletons and implicit global state.
- Accept dependencies that the caller can configure, e.g.
- API shape
- Prefer
TryRead*methods that returnbooland setoutparameters for sensor readings (e.g.,TryReadTemperature(out Temperature value)). - For settings and commands, use clear methods (e.g.,
Reset(),EnableHeater(bool)) or strongly-typed properties. Use enums/flags for registers, modes, scales. - Keep synchronous APIs predictable; only introduce
asyncif there's genuine I/O concurrency or long waits.
- Prefer
- Timing & reliability
- Respect datasheet timing: enforce minimal delays between transactions; document any polling limits.
- Validate checksums/status bits where appropriate and surface failures clearly.
- Error handling
- Guard against misuse (invalid pins, uninitialized device) with
ArgumentException/InvalidOperationExceptionand descriptive messages. - For transient hardware issues, either throw or return
falseinTry*patterns—never return bogus data silently.
- Guard against misuse (invalid pins, uninitialized device) with
- Cross-platform
- Use System.Device abstractions (controllers, drivers) instead of P/Invoke or OS-specific syscalls. If a feature is platform-only, guard it and fail gracefully elsewhere.
- Samples & docs
- Add a sample demonstrating typical usage (
samples/and/orsrc/devices/<DeviceName>/samples). Keep samples small, readable, and disposable-friendly. - Add or update a README for the device with wiring notes, required pull-ups, expected ranges/units, and example code.
- Add a sample demonstrating typical usage (
Don'ts (things Copilot should avoid suggesting)
- Don't propose board-specific hacks or hardcoded paths to
/sys/proc unless the existing pattern does so via an abstraction. - Don't capture
ConsoleI/O in library code (leave printing/logging to samples/apps). - Don't add hidden thread‑static caches or background threads without clear ownership and disposal.
- Don't change package versions, TFMs, or CI configuration unless requested.
- Don't introduce breaking API changes to public types without a strong justification and maintainer direction.
Review checklist for new/updated bindings (use this before finishing a PR)
- Public API follows repo naming/style; members are XML-documented with units (°C, Pa, %RH, lux, etc.).
- Constructor accepts caller‑provided transports and documents ownership.
- Implements
IDisposable; all hardware resources released. - Uses enums/consts for registers/addresses; no unexplained magic numbers.
- Validates timing and checksums;
Try*methods return accurate success/failure. - Adds/updates samples and device README.
- Adds tests for logic that can be isolated from hardware (e.g., framing/parsing functions).
Good prompt patterns (how to ask Copilot)
Use explicit, repo‑aware prompts. Examples:
- "Create a new I2C temperature sensor binding under
src/devices/AcmeTempwith aTryReadTemperature(out Temperature t)method and a sample app. Constructor should accept anI2cDeviceand an optional address (default 0x48). ImplementIDisposableand document units." - "Refactor existing SPI display code to avoid per-frame allocations. Suggest a pooled buffer approach using
Span<byte>and show before/after microbenchmarks." - "Add XML docs and a README section for BMP280 explaining oversampling settings and expected units. Update the sample to dispose controllers correctly."
Where to look in this repo (for Copilot context)
- Patterns: browse
src/devicesfor existing sensor/display bindings; mirror their constructors, enums, andTry*APIs. - Abstractions: use
System.Device.Gpio,System.Device.I2c,System.Device.Spi,System.Device.Pwmwhere possible. - Docs: check
Documentation/for contribution guidelines; keep wording and tone consistent.
Security, licensing, and compliance
- Code is under MIT; include appropriate headers where needed and avoid copying vendor code without license compatibility.
- If a binding requires vendor blobs/firmware, keep them out of the repo; link to vendor downloads and document setup.
One‑liner summary (what Copilot should optimize for)
Write clear, disposable-correct, hardware-agnostic device code that matches existing patterns, surfaces failures honestly, and ships with samples and docs.
Trending
Quiet since March.about the whole repository
Who's talking about dotnet/iot
- dotnet/sdk“.NET 8: Make `Microsoft.NET.Test.Sdk` an implicit reference”GitHub · Jun 2, 2022 · 20 reactions
- dotnet/runtime“[API Proposal]: Alternative span/memory/string splitting API”GitHub · Sep 26, 2022 · 15 reactions
- dotnet/sdk“Using .cs files like .py files”GitHub · Sep 19, 2022 · 9 reactions
- Stack Overflow“Raspberry PI - I2C not writing data”Stack Overflow · Aug 10, 2019 · 5 votes
- microsoft/vstest“VSTest is printing using Console.WriteLine instead of using the logger”GitHub · Oct 14, 2019 · 4 reactions
The biggest 5 of 64 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 64
Talked about on GitHub and Stack Overflow (64 times).
On GitHub · 50
- Jun 2, 2022.NET 8: Make `Microsoft.NET.Test.Sdk` an implicit reference — dotnet/sdk20 reactions · 40 comments
- Sep 26, 2022[API Proposal]: Alternative span/memory/string splitting API — dotnet/runtime15 reactions · 27 comments
- Sep 19, 2022Using .cs files like .py files — dotnet/sdk9 reactions · 3 comments
- Oct 14, 2019VSTest is printing using Console.WriteLine instead of using the logger — microsoft/vstest4 reactions · 8 comments
- Jan 18, 2022Adding Build HAT .NET documentation — raspberrypi/documentation3 reactions · 8 comments
45 more on GitHub
- Dec 10, 2020Grow the .NET ecosystem — dotnet/core3 reactions · 1 comment
- Dec 1, 2020Components should allow for nesting — Azure/opendigitaltwins-dtdl2 reactions · 1 comment
- Jul 3, 2025Make SpiDevice and I2cDevice abstract/virtual and make current implementations a subclass — nanoframework/Home1 reaction · 4 comments
- Feb 17, 2023Mifare improvements (copy-paste from dotnet.iot repo) — nanoframework/nanoFramework.IoT.Device1 reaction · 4 comments
- Mar 7, 2022Add Pcx857x — nanoframework/nanoFramework.IoT.Device1 reaction
- Mar 4, 2022No package validation coverage for runtime.native.System.IO.Ports — dotnet/runtime1 reaction · 4 comments
- Sep 20, 2021Add comparison document of .NET nanoFramework and .NET Core IoT — nanoframework/nanoframework.github.io1 reaction · 3 comments
- May 28, 2021Fix Vl53L0X to support proper change in I2C address — nanoframework/nanoFramework.IoT.Device1 reaction
- May 22, 2021Adding Charlieplex — nanoframework/nanoFramework.IoT.Device1 reaction
- May 18, 2021Remove the multiplexing timeout implementation — npgsql/npgsql1 reaction · 4 comments
- Aug 3, 2020Change namespace to System.Device — nanoframework/Windows.Devices.Gpio1 reaction · 3 comments
- Aug 3, 2020Rename namespace from Devices to Device — nanoframework/System.Device.Dac1 reaction · 2 comments
- Aug 6, 2019dotnet/iot getting simultaneous arcade PRs per day — dotnet/arcade1 reaction · 7 comments
- Jul 5, 2019Building with SourceLink fails when there is no Git remote named "origin" — dotnet/arcade1 reaction · 10 comments
- Mar 27, 2026Bump Iot.Device.Bindings from 4.1.0 to 4.2.0 — montague247/NetSentinel0 reactions · 1 comment
- Feb 2, 2026Bump Iot.Device.Bindings from 2.2.0 to 3.2.0 — hallipr/mickeypi0 reactions
- Mar 7, 2024Update Dispose method for https://github.com/dotnet/iot/pull/2270 — byte-burner/bb-core0 reactions
- Sep 26, 2023[FR] Add support for PN5180 - RFID — letscontrolit/ESPEasy0 reactions · 8 comments
- Oct 22, 2022FYI: C# Implementation — DFRobot/DFRobot_HX711_I2C0 reactions
- Oct 12, 2022Bump Iot.Device.Bindings from 2.0.0 to 2.2.0 in /samples/led-more-blinking-lights — ibebbs/iot0 reactions
- Oct 12, 2022Bump System.Device.Gpio from 2.0.0 to 2.2.0 in /samples/led-more-blinking-lights — ibebbs/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 2.0.0 to 2.2.0 in /samples/led-matrix-weather — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 2.0.0 to 2.2.0 in /samples/led-more-blinking-lights — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 2.0.0 to 2.2.0 in /samples/serialport-arduino — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 2.0.0 to 2.2.0 in /samples/force-sensitive-resistor — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 2.0.0 to 2.2.0 in /samples/led-more-blinking-lights — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 2.0.0 to 2.2.0 in /samples/serialport-arduino — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 2.0.0 to 2.2.0 in /samples/force-sensitive-resistor — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 2.0.0 to 2.2.0 in /samples/led-blink — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 2.0.0 to 2.2.0 in /samples/led-matrix-weather — ZhangGaoxing/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.1.0 to 2.2.0 in /samples/led-matrix-weather — SaDiablo/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.1.0 to 2.2.0 in /samples/serialport-arduino — SaDiablo/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.1.0 to 2.2.0 in /samples/led-more-blinking-lights — SaDiablo/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 1.1.0 to 2.2.0 in /samples/led-matrix-weather — SaDiablo/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 1.1.0 to 2.2.0 in /samples/led-more-blinking-lights — SaDiablo/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 1.1.0 to 2.2.0 in /samples/serialport-arduino — SaDiablo/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.1.0 to 2.2.0 in /samples/force-sensitive-resistor — SaDiablo/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.1.0 to 2.2.0 in /samples/led-blink — SaDiablo/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 1.1.0 to 2.2.0 in /samples/force-sensitive-resistor — SaDiablo/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.3.0 to 2.2.0 in /samples/serialport-arduino — skyhoshi/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 1.3.0 to 2.2.0 in /samples/serialport-arduino — skyhoshi/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.3.0 to 2.2.0 in /samples/led-matrix-weather — skyhoshi/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.3.0 to 2.2.0 in /samples/led-more-blinking-lights — skyhoshi/iot0 reactions
- Oct 5, 2022Bump System.Device.Gpio from 1.3.0 to 2.2.0 in /samples/led-blink — skyhoshi/iot0 reactions
- Oct 5, 2022Bump Iot.Device.Bindings from 1.3.0 to 2.2.0 in /samples/force-sensitive-resistor — skyhoshi/iot0 reactions
On Stack Overflow · 14
- Aug 10, 2019Raspberry PI - I2C not writing data5 votes · 1 answer
- Jul 8, 2020Does .Net Core 3.1 run on an Orange Pi Zero?2 votes
- Feb 14, 2021Is there a way to specifically set values to an LED pin using the library?1 vote
- Apr 21, 2020Porting Windows IoT Core UWP (C# / XAML) application to Linux1 vote
- Aug 27, 2019.Net Core 2.1 GPIO filesystemwatcher on Raspberry Pi1 vote
9 more on Stack Overflow
- Aug 20, 2019Run WinCE exe in Linux OS using mono command1 vote
- Jan 20, 2024Adafruit FT232H and C# : No GPIO controllers exist on this system0 votes
- Nov 30, 2021How to use the dotnet/iot Mfrc522 library0 votes · 1 answer
- Jun 27, 2021Raspberry Pi 3A+ with Mono C# to control SPI connection0 votes
- Nov 14, 2020.NET Core IOT (No Data coming from Seed Studio Grove DTH11 Sensor when using without Grove Shield)0 votes
- Sep 21, 2020IoT Edge on Raspberry Pi - using GPIO Driver0 votes
- Jul 8, 2020Dotnet iot System.Device.Gpio cannot open pin with Output mode0 votes
- Aug 10, 2019Docker Access to Raspberry Pi GPIO Pins0 votes
- Jul 10, 2019Can not find .create method using i2cdevice (following GrovePi samples .net core iot)0 votes · 1 answer
Where files are headingNew Copilot instructions files have more rules about branches and pull requests, and fewer about code style.
Of the Copilot instructions files we read, the 2,297 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

