From e960a6ff57dbf7d579a076b7076a2a49902960ae Mon Sep 17 00:00:00 2001 From: Daniel Esteban Date: Thu, 16 Apr 2026 20:12:27 +0200 Subject: [PATCH] fix issue #858 --- ws2812/ws2812.go | 7 ++++--- ws2812/ws2812_init_other.go | 2 +- ws2812/ws2812_rp2_pio.go | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ws2812/ws2812.go b/ws2812/ws2812.go index 6e1ed35..2066e03 100644 --- a/ws2812/ws2812.go +++ b/ws2812/ws2812.go @@ -35,9 +35,10 @@ func NewWS2812(pin machine.Pin) Device { return newWS2812Device(pin) } -// New returns a new SK6812(RGBA) driver. -// It does not touch the pin object: you have -// to configure it as an output pin before calling New. +// NewSK6812 returns a new SK6812W/RGBW driver (4 channels, GRBW order, 32-bit protocol), for the 3 channels version use NewWS2812 +// Use this for SK6812W strips that have a dedicated white channel controlled via color.A. +// It does not touch the pin object: you have to configure it as an output pin before +// calling this. func NewSK6812(pin machine.Pin) Device { return Device{ Pin: pin, diff --git a/ws2812/ws2812_init_other.go b/ws2812/ws2812_init_other.go index 8d312de..4ba363a 100644 --- a/ws2812/ws2812_init_other.go +++ b/ws2812/ws2812_init_other.go @@ -6,5 +6,5 @@ import "machine" // newWS2812Device creates a WS2812 device using the bit-bang driver. func newWS2812Device(pin machine.Pin) Device { - return Device{Pin: pin, writeColorFunc: writeColorsRGB} + return Device{Pin: pin, brightness: 255, writeColorFunc: writeColorsRGB} } diff --git a/ws2812/ws2812_rp2_pio.go b/ws2812/ws2812_rp2_pio.go index ffd4d0a..2cc29e1 100644 --- a/ws2812/ws2812_rp2_pio.go +++ b/ws2812/ws2812_rp2_pio.go @@ -15,11 +15,11 @@ import ( func newWS2812Device(pin machine.Pin) Device { sm, err := pio.PIO0.ClaimStateMachine() if err != nil { - return Device{Pin: pin, writeColorFunc: writeColorsRGB} + return Device{Pin: pin, brightness: 255, writeColorFunc: writeColorsRGB} } ws, err := piolib.NewWS2812B(sm, pin) if err != nil { - return Device{Pin: pin, writeColorFunc: writeColorsRGB} + return Device{Pin: pin, brightness: 255, writeColorFunc: writeColorsRGB} } return Device{ Pin: pin,