WLED and Govee Prism (SM16825)

Hey everyone! I am wanting to convert my Govee Prism lights over to WLED. I have seen a few do this on youtube and have hooked up a GLEDOPTO controller to a string not installed yet. Everything setup fine and I went to LED & Hardware, selected the SM16825 LED profile and set my length correctly. I have control over the lights but something is not right with the brightness on the RED channel only. Green and Blue are as bright as they should be but Red is probably half what it should be. I can swap over to the WS2805 profile and select Green and the Red channel goes to full brightness. Obviously that is not the right profile so the controls are off but I know WLED can tell the Prism Red channel to go to full brightness. I have tried everything I can think of from using Automatic Brightness Limiter, adjusting the global brightness factor % and no matter what I do red is always way less bright than Green, Blue, Warm White and Cool White. It makes effects with red useless and color mixing with red difficult. I have even tried going to different firmware versions of WLED on my controller and testing different ESP32 WLED controllers with the same result. Anyone have any ideas on why this may be happening? It does not appear to be that way if I look at the few people on youtube that have converted these to WLED.

Here is the brightness difference between Govee app and WLED for red. None of the other colors do this and all effects run fine except for the red channel brightness.

Have been playing with this more and I found something very odd. If I put the white channel all the way up brightness and then tune the white temperature to about halfway and leave the red channel up the lights go to 100% red at full brightness. I am using a gledopto 2D-exmu, have a 36V 4A power supply for my 4 test pucks and a 36V - 12V step down converter for the controller.

My setup

The below color setting in wled produces full brightness red.


This setting is just red and it’s half brightness


I’ve had the same issue ever since they came out, never was able to figure it out and just gave up on it. Another thing is if the rgb+white slider are both on fully it sometimes would start flickering despite having no power issue.

Can you please test if the new driver I am working on does anything differen (or works at all)?
you can find the binaries here:

you may need to go to settings and check that its all correct, it is still a work in progress so there may be bugs. I was not yet able to test the SM16825 on actual hardware so it may not work at all.

@dedehai sorry if this is a dumb question but how to do I download the ESP32-ethernet binary to load to my controller and test? Thanks for commenting and putting something out to try! Really want to get this to work as the wled effects and level of control is so awesome.

you press the download button on the right next to the firmware-ESP32_Ethernet bin, AFAIK you need to be logged in to github to download. This link downloads the zip for me.

Ah I was not logged in haha, thanks. Downloading this now and giving it a test.

This seems more stable as a whole on the prism but red still has the brightness issue. Interesting with this driver I had to set the color order different (RGB instead of GRB) from the current stable 16.0 firmware and swap WW and CW. Red is still half brightness unless set like the below.

Correct led settings with this driver

thanks for testing. So this seems to be a special property of these Govees or they used a different chip version as the protocol is implemented as it sais in the datasheet.

the new driver you now have installed allowes for “custom configuration” in the LED setting, you can try if that has any configuration that works: you need to enable advanced settings and choose “custom digital” as the LED type. Then you can configure the data that will be sent. The timing for the SM16825 is this:

or
t0h t0l t1h t1l reset_us = { 300, 900, 900, 300, 80 }

they are 16bit with 5 color channels. What the custom driver does not support is the suffix data that these LEDs need, I have no idea what they will do or if they will even work if that “config data” is skipped but you can try. So what you would do in the configuration is try if using “invert” on the red channel makes it any better (do not invert on the data line, that will just flicker, so just the check next to the color channels).

Thanks @dedehai . I had a single puck from the install so I pulled the led board out but was not able to tell what LED it’s using as I don’t see it marked anywhere. I thought dialing the WW Channel in at 5% would give me a work around as I can get solid red 100% when doing that but as soon as you run an effect it acts really weird with varying levels of red brightness and it will flash between full bright and the half bright. I also could not figure out how to edit palettes so that red had 5% WW in it to see if that would make it work.

After putting it in custom digital and turning on show advanced settings where do I mess with the data being sent? Maybe I just was not looking in the right place. Hoping there is something that can be done to figure this out as WLED is so much more powerful than the Govee app. My neighbor took over his outdoor Pro’s and is using the same SM16825 driver. It’s definitely strange as I’ve seen some people on YouTube do wled takeover of prism and their red did not have this issue.


From the looks of that I don’t think that is actually an SM16825 - which would be a single chip, instead I see three chips? Can you read the numbers on those chips? since you do get a chain of them to light up almost correctly it can’t be just three RGB chips as that would result in 3x3 channels, so it could be 2xRGB and an RGBW chip with 8bits each or some other combination and they used some tricks to extend that.
in the custom bus settings you should be able to set the timing of the pulses, the number of color channels and the bits per channel. I may need to extend that to have more options, not sure that is feasible.

The Prism’s are really three single LED pucks in one. The lens on the front has one LED angled straight down, one angled left and one angled right. So theoretically its three SM16825 chips and you can individually control each one to create different effects as all three are angled differently with the lens over them. When you use segments in WLED you can turn off the outter two LEDs and just have the center LED with a light beam straight down, or you can turn off the center and have the outer two on creating two beams angled out with a gap in the middle. Its really cool and WLED makes it so much more powerful.

Where would the number on the chips be? I scoured it top and bottom to see if I could find it as it should be on there so I can tell what it is.

The only thing I see when I enable advanced settings under custom digital drive is Driver: and LED timing:

It’s SM8605G @dedehai

Unfortunately there is zero useful information on that SM8605G chip. It must be a variant of the SM16825, similiar but not identical.

the UI actually had a bug, I just pushed an update to that PR that fixes it again.
it is supposed to look like this:

Awsome thanks @dedehai I found the same thing as well as I could not find anything on SM8605G on Shenzhen Microelectronics. Ill load your latest version and try messing with the above to see what I can get.

you can also try disabling the 16bit output and set channels to 6, that can give some insight in how the colors are ordered, then you can set the color channels to red, green, green, blue, blue, white for example and see what you get.
the goal is to figure out how the channels are actually being used, i.e. if red only uses 8bit and the others use 16bit or if there is a byte swap in red: you can also try red, red, … and invert the second red channel and things like that.

Ugh it’s really weird. @dedehai 16bit has to be enabled or everything is way out of whack. The only settings that made any sense are these and it still flickered some when changing colors but was stable one a color was dialed in. Also had to have 5 channels any other channel count caused chaos.

To get full brightness red I had to have the blue channel up slightly.

Same with green, this was full bright green

I could not find a way to get full brightness blue. So unfortunate that I can’t figure out how this driver is setup.

that is some weird data layout. Maybe it uses a per-LED current command or something. Really need a datasheet or someone to decode the original data stream.