wokwi / wokwi-features

Wokwi Feature requests & Bug Reports
https://wokwi.com
73 stars 17 forks source link

Simulation of Neopixel Ring WS8212 is too dark for low levels #847

Open georgik opened 3 months ago

georgik commented 3 months ago

Describe the bug Simulation of WS8212 smart leds is not visible when levels are "low".

To Reproduce Set Neopixel Ring color to (1,0,0), it won't be visible in Wokwi Simulation. If you use single Neopixel, then it's slightly visible. Here, see the first set of colors, it will be visible on Neopixel, but not on Ring https://wokwi.com/projects/404102270788810753

Expected behavior Real Neopixel is glowing brightly even when level is set to 1. When set to 255 it's super bright. Increase the baseline for visible color.

Additional context The problem was discovered when using Ring for simulation of Swift https://github.com/apple/swift-embedded-examples/blob/main/esp32-led-strip-sdk/main/LedStrip.swift#L40

sutaburosu commented 3 months ago

I see the RGB value of the pixels in the ring on my screen as (1, 1, 1), so Wokwi is passing through the Neopixel values unchanged.

This doesn't seem to work for rings, but for other addressable LEDs in Wokwi there are additional attributes that influence the mapping of LED values to screen values. matrixBrightness is a multiplication factor, and _temp_gamma is what you desire. See this sketch for an example of gamma at 0.66 on a strip of LEDs.

Issue #240 already covers work to unify all the addressable LED types, which should allow gamma correction to be used with rings too. Please vote it for it to see this work completed sooner.