CCSWE.nanoFramework.NeoPixel 1.0.38

There is a newer version of this package available.
See the version list below for details.
dotnet add package CCSWE.nanoFramework.NeoPixel --version 1.0.38                
NuGet\Install-Package CCSWE.nanoFramework.NeoPixel -Version 1.0.38                
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.38" />                
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.38                
#r "nuget: CCSWE.nanoFramework.NeoPixel, 1.0.38"                
#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.38

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

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 (1)

Showing the top 1 popular GitHub repositories that depend on CCSWE.nanoFramework.NeoPixel:

Repository Stars
nanoframework/Samples
🍬 Code samples from the nanoFramework team used in testing, proof of concepts and other explorational endeavours
Version Downloads Last updated
1.0.56 76 8/31/2024
1.0.55 76 8/31/2024
1.0.54 79 8/29/2024
1.0.53 90 8/11/2024
1.0.52 63 8/11/2024
1.0.51 79 8/7/2024
1.0.50 47 8/5/2024
1.0.49 54 8/2/2024
1.0.48 56 8/2/2024
1.0.47 73 7/26/2024
1.0.46 80 7/25/2024
1.0.45 59 7/24/2024
1.0.44 83 7/18/2024
1.0.43 67 7/18/2024
1.0.42 74 7/17/2024
1.0.41 81 7/16/2024
1.0.40 72 7/15/2024
1.0.39 78 7/13/2024
1.0.38 73 7/13/2024
1.0.37 80 7/12/2024
1.0.36 87 7/1/2024
1.0.35 91 6/29/2024
1.0.34 97 6/26/2024
1.0.32 74 6/26/2024
1.0.25 80 6/21/2024
1.0.24 89 6/14/2024
1.0.23 83 6/13/2024
1.0.22 82 6/12/2024
1.0.21 84 6/5/2024
1.0.20 76 6/5/2024
1.0.18 84 6/4/2024
1.0.17 74 6/3/2024
1.0.16 76 6/3/2024
1.0.15 70 6/3/2024
1.0.14 84 6/3/2024
1.0.13 83 5/25/2024
1.0.12 81 5/24/2024
1.0.11 85 5/23/2024
1.0.10 80 5/19/2024
1.0.9 97 5/17/2024
1.0.8 88 5/16/2024
1.0.7 91 5/15/2024
1.0.6 74 5/13/2024
1.0.5 83 5/11/2024
1.0.4 89 5/10/2024
1.0.3 75 5/10/2024
1.0.2 110 4/26/2024
1.0.1 100 4/25/2024
1.0.0 92 4/25/2024
0.3.17 96 4/11/2024
0.3.16 83 4/10/2024
0.3.15 89 4/9/2024
0.3.14 87 4/8/2024
0.3.13 101 4/5/2024
0.3.12 88 4/4/2024
0.3.11 90 4/3/2024
0.3.10 92 3/23/2024
0.3.9 119 2/3/2024
0.3.8 91 2/1/2024
0.3.7 89 1/28/2024
0.3.6 87 1/26/2024
0.3.5 82 1/25/2024
0.3.4 233 11/20/2023
0.3.3 118 11/16/2023
0.3.2 121 11/10/2023
0.3.1 108 11/10/2023
0.3.0 84 11/10/2023
0.2.4 108 11/9/2023
0.2.3 108 11/8/2023
0.2.2 124 11/4/2023
0.2.1 119 11/3/2023
0.2.0 114 11/3/2023
0.1.6 110 11/2/2023
0.1.5 109 11/2/2023
0.1.4 102 11/2/2023
0.1.2 107 11/2/2023
0.1.1 92 11/2/2023
0.1.0 96 11/1/2023