CCSWE.nanoFramework.NeoPixel 1.0.13

dotnet add package CCSWE.nanoFramework.NeoPixel --version 1.0.13
NuGet\Install-Package CCSWE.nanoFramework.NeoPixel -Version 1.0.13
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="CCSWE.nanoFramework.NeoPixel" Version="1.0.13" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CCSWE.nanoFramework.NeoPixel --version 1.0.13
#r "nuget: CCSWE.nanoFramework.NeoPixel, 1.0.13"
#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 CCSWE.nanoFramework.NeoPixel as a Cake Addin
#addin nuget:?package=CCSWE.nanoFramework.NeoPixel&version=1.0.13

// Install CCSWE.nanoFramework.NeoPixel as a Cake Tool
#tool nuget:?package=CCSWE.nanoFramework.NeoPixel&version=1.0.13

Build License NuGet

CCSWE.nanoFramework.NeoPixel

A fast ESP32 RMT library for controlling LED chipsets (NeoPixel, WS2812B, etc.)

I was originally using the Ws28xx.Esp32 but it was taking 600-700ms to update a strip of 50 LEDs. This was not fast enough for my use case so I set out to find a faster solution.

The NeoPixelStripLowMemory sample code was much faster at 50-60ms to update the same strip so that's where I started. I've also been looking at the FastLED library as I've used that in the past and it is indeed fast.

I've never spent time learning how these LEDs actually work so I'm learning as I go along and would love feedback or contributions from others with more experience in this area.

Usage

See samples for more details.

Initialize the strip

// Configure the number of LEDs
ushort count = 47;

// Adjust the pin number
byte pin = 19;

// Choose the correct driver and color order
var driver = new Ws2812B(ColorOrder.GRB);

// Create the strip
var strip = new NeoPixelStrip(pin, count, driver);

Set the LEDs

// Set all LEDs
strip.Fill(Color.Pink);

for (var i = 0; i < strip.Count; i++)
{
    if (i % 2 == 0)
    {
        // Set an individual LED
        strip.SetLed(i, Color.Blue);
    }
}

// Send the data to update the strip
strip.Update();

Brightness scaling

Both the Fill and SetPixel methods have overloads that allow you to pass a brightness scaling factor. If you will be using the same color for multiple calls then it is more efficient to call ColorConverter.ScaleBrightness(Color, double) directly and use the pre-scaled Color across multiple calls.

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.13 0 5/25/2024
1.0.12 38 5/24/2024
1.0.11 40 5/23/2024
1.0.10 70 5/19/2024
1.0.9 87 5/17/2024
1.0.8 77 5/16/2024
1.0.7 82 5/15/2024
1.0.6 65 5/13/2024
1.0.5 73 5/11/2024
1.0.4 78 5/10/2024
1.0.3 67 5/10/2024
1.0.2 97 4/26/2024
1.0.1 88 4/25/2024
1.0.0 88 4/25/2024
0.3.17 86 4/11/2024
0.3.16 77 4/10/2024
0.3.15 81 4/9/2024
0.3.14 78 4/8/2024
0.3.13 89 4/5/2024
0.3.12 83 4/4/2024
0.3.11 82 4/3/2024
0.3.10 80 3/23/2024
0.3.9 111 2/3/2024
0.3.8 76 2/1/2024
0.3.7 83 1/28/2024
0.3.6 79 1/26/2024
0.3.5 76 1/25/2024
0.3.4 228 11/20/2023
0.3.3 114 11/16/2023
0.3.2 116 11/10/2023
0.3.1 100 11/10/2023
0.3.0 78 11/10/2023
0.2.4 103 11/9/2023
0.2.3 102 11/8/2023
0.2.2 113 11/4/2023
0.2.1 114 11/3/2023
0.2.0 106 11/3/2023
0.1.6 103 11/2/2023
0.1.5 104 11/2/2023
0.1.4 87 11/2/2023
0.1.2 99 11/2/2023
0.1.1 87 11/2/2023
0.1.0 90 11/1/2023