nanoFramework.Hardware.Esp32.Rmt 2.0.5

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package nanoFramework.Hardware.Esp32.Rmt --version 2.0.5                
NuGet\Install-Package nanoFramework.Hardware.Esp32.Rmt -Version 2.0.5                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="nanoFramework.Hardware.Esp32.Rmt" Version="2.0.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add nanoFramework.Hardware.Esp32.Rmt --version 2.0.5                
#r "nuget: nanoFramework.Hardware.Esp32.Rmt, 2.0.5"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install nanoFramework.Hardware.Esp32.Rmt as a Cake Addin
#addin nuget:?package=nanoFramework.Hardware.Esp32.Rmt&version=2.0.5

// Install nanoFramework.Hardware.Esp32.Rmt as a Cake Tool
#tool nuget:?package=nanoFramework.Hardware.Esp32.Rmt&version=2.0.5                

Quality Gate Status Reliability Rating NuGet #yourfirstpr Discord

nanoFramework logo


Welcome to the .NET nanoFramework Hardware.Esp32.Rmt Library repository

RMT (Remote Control) is an ESP32 module driver that is, originally, intended to be used with infrared remote control signals. However, the module and APIs are generic enough that they can used to send/receive other types of signals.

Getting Started

Our samples repository contains commented code showcasing how to use the RMT module in ESP32 MCUs to control various types of devices using nanoFramework. The RMT samples can be found Here.

A detailed explanation about the RMT module can be found here.

Migrating from v1 to v2

There are breaking changes in the managed API surface. If you have existing code that depends on v1.x of this library you will need to refactor it so it works with the new API surface in v2.x.

The changes are mostly around how receive/transmit channels are initialized. The other APIs from v1.x remain as they are.

Please update the code as follows:

V1.x API Surface

// creating a transmit channel
var txChannel = new TransmitterChannel(TxPinNumber);
txChannel.ClockDivider = 80;
txChannel.CarrierEnabled = false;
txChannel.IdleLevel = false;
txChannel.AddCommand(new RmtCommand(20, true, 15, false));
// add more commands...

txChannel.Send(false);

// creating a receive channel
var rxChannel = new ReceiverChannel(RxPinNumber);
rxChannel.ClockDivider = 80; // 1us clock ( 80Mhz / 80 ) = 1Mhz
rxChannel.EnableFilter(true, 100); // filter out 100Us / noise 
rxChannel.SetIdleThresold(40000);  // 40ms based on 1us clock
rxChannel.ReceiveTimeout = new TimeSpan(0, 0, 0, 0, 60); 
rxChannel.Start(true);

In V2.x, the above code must be rewritten as:

var txChannelSettings = new TransmitChannelSettings(-1, TxChannelPinNumber)
{
  ClockDivider = 80,
  EnableCarrierWave = false,
  IdleLevel = false
};

var txChannel = new TransmitterChannel(txChannelSettings);
txChannel.AddCommand(new RmtCommand(20, true, 15, false));
// add more commands...

txChannel.Send(false);


var rxChannelSettings = new ReceiverChannelSettings(pinNumber: RxChannelPinNumber)
{
  EnableFilter = true,
  FilterThreshold = 100,
  IdleThreshold = 40_000,
  ReceiveTimeout = new TimeSpan(0, 0, 0, 0, 60)
};

using var rxChannel = new ReceiverChannel(rxChannelSettings);
rxChannel.Start(clearBuffer: true);

Build status

Component Build Status NuGet Package
nanoFramework.Hardware.Esp32.Rmt Build Status NuGet

Feedback and documentation

For documentation, providing feedback, issues and finding out how to contribute please refer to the Home repo.

Join our Discord community here.

Credits

The list of contributors to this project can be found at CONTRIBUTORS.

License

The nanoFramework Class Libraries are licensed under the MIT license.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behaviour in our community. For more information see the .NET Foundation Code of Conduct.

.NET Foundation

This project is supported by the .NET Foundation.

Product Compatible and additional computed target framework versions.
.NET Framework net is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on nanoFramework.Hardware.Esp32.Rmt:

Package Downloads
nanoFramework.Iot.Device.Ws28xx.Esp32

This package includes the .NET nanoFramework binding Ws28xx (specific for ESP32 devices) for .NET nanoFramework C# projects.

nanoFramework.M5StickC

This package includes the nanoFramework.M5StickC assembly for .NET nanoFramework C# projects.

nanoFramework.M5StickCPlus

This package includes the nanoFramework.M5StickCPlus assembly for .NET nanoFramework C# projects.

nanoFramework.Iot.Device.Hcsr04.Esp32

This package includes the .NET IoT Core binding Iot.Device.Hcsr04.Esp32 for .NET nanoFramework C# projects.

nanoFramework.Iot.Device.Dhtxx.Esp32

This package includes the .NET IoT Core binding Iot.Device.Dhtxx.Esp32 for .NET nanoFramework C# projects. Only working with ESP32.

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on nanoFramework.Hardware.Esp32.Rmt:

Repository Stars
nanoframework/Samples
🍬 Code samples from the nanoFramework team used in testing, proof of concepts and other explorational endeavours
nanoframework/nanoFramework.IoT.Device
📦 This repo includes .NET nanoFramework implementations for various sensors, chips, displays, hats and drivers
nanoframework/nanoFramework.M5Stack
:package: Board support package for M5Stack, M5StickC and M5StickCPlus for .NET nanoFramework
Version Downloads Last updated
2.0.13 5,554 7/17/2024
2.0.10 3,066 5/13/2024
2.0.7 5,385 11/9/2023
2.0.5 146 11/9/2023
2.0.1 19,810 2/10/2023
1.3.6 8,158 12/27/2022
1.3.3 13,393 10/24/2022
1.2.3.5 94,344 5/20/2022
1.2.2 36,991 3/29/2022
1.2.2-preview.12 142 3/29/2022
1.2.2-preview.10 284 3/18/2022
1.2.2-preview.9 239 3/14/2022
1.2.2-preview.8 359 2/18/2022
1.2.2-preview.6 499 1/28/2022
1.2.2-preview.5 224 1/21/2022
1.2.2-preview.3 265 12/29/2021
1.2.1 1,152 12/23/2021
1.2.1-preview.14 212 12/3/2021
1.2.1-preview.12 154 12/2/2021
1.2.1-preview.10 163 12/1/2021
1.2.1-preview.7 362 11/13/2021
1.2.1-preview.5 274 10/18/2021
1.2.0 903 7/15/2021
1.2.0-preview.6 200 7/14/2021
1.2.0-preview.4 181 7/14/2021
1.2.0-preview.2 213 6/20/2021
1.1.28 198 6/8/2021
1.1.26 228 6/7/2021
1.1.24 249 6/6/2021
1.1.22 236 5/31/2021
1.1.21 219 5/31/2021
1.1.20 227 5/31/2021
1.1.19 232 5/30/2021
1.1.18 257 5/20/2021
1.1.17 195 5/14/2021
1.1.16 186 5/12/2021
1.1.15 209 5/11/2021
1.1.5 232 3/3/2021
1.1.2 425 2/4/2021
1.0.24 199 2/4/2021
1.0.21 289 12/1/2020
1.0.19 290 10/21/2020
1.0.17 289 10/2/2020
1.0.15 854 10/1/2020
1.0.13 493 7/6/2020
1.0.11 284 9/28/2020
1.0.9 276 7/7/2020
1.0.7 351 7/7/2020
1.0.6 474 7/6/2020
1.0.4 502 7/6/2020
1.0.2 280 9/19/2020