Razer Chroma Connect to WLED (updated)

With a little push in the right direction from the people in this group (Thanks Aircookie and Blazoncek), I’ve been able to make this little app. It connects to Razer Synapse as a Chroma Connected Device and sends the colors to WLED over UDP. If you’re interested, check out the app on github:

fu-raz/Razer-Chroma-WLED-Connect-App (github.com)

To use this, you’ll need a Razer App Id. I can’t provide you with one, but maybe you can borrow one from the OpenChromaConnect ChromaBroadcastAPI header files. :wink: :wink:

Nice work!

This would be so cool integrated into Project Aurora. GitHub - antonpup/Aurora: Unified lighting effects across multiple brands and various games.

I am trying your app now and razer seems to be controlling WLED, but it keeps flashing back to the color set in WLED. I have my color in WLED on purple and Razer is set to green. My lights are flashing between purple and green lol. Any ideas? It’s like they are fighting for control.

Ouch, thanks for letting me know! We don’t want to trigger any epileptic seizures obviously.
Hmmm, what kind of ESP are you using and how strong is the WIFI connection? The app updates the colors in real-time via UDP (this should show up in the WLED web interface), but I have also noticed that whenever I stop sending the packets… the WLED changes back to the colors it was set to. It might be that we’re dropping packets?

Maybe I need to limit the packet amount sent to WLED?

I am working on an update where when Razer only has a static color, it sets the color in stead of doing the real-time updates. This should fix that problem I think.

Also it should be fairly easy to connect this to any other app, or for them to integrate this themselves. The sample application provided with the Broadcast API is already everything they need. They just need the Razer id :wink: But perhaps we can make it a little easier for them by providing a websocket server or something in the future :slight_smile:

haha. It’s more of a slow blink from one to the other. Wifi is super strong the esp is maybe 7ft from the router 100% -36db. It’s a d1 mini style esp8266 that I was testing with. Razer was indeed set to a solid color so that may be the issue. That instance of WLED is still on 13.0.b6. I also enabled the minimize button on the app :wink:

One other thing that I ran into is that when I X out the app it does not seem to close out. In Task Man’ it goes from the running app list to running processes when hitting the X. It never seems to close. Have you had that issue? I have done some limited programming in vb6 years ago but never anything in .net/c so the code is not super native to me. I did see your //End comment in the code though.

WOW the list of razer id’s that were to be found in that undisclosed location lol.

Still a cool lil’ app. Thanks!

Thanks for the info about your device. I’m building one of those myself, so I can test it with the same hardware. The app doesn’t actually close until you close the app from the tray. It needs to run in the background if you want to keep syncing Synapse to WLED :wink: So the X just hides the window until you open it again from the tray.

wled-razer-chroma-tray

I’m actually working on an updated version where you can sync multiple WLEDs to the same Razer instance. In this version I will change the way I set the colors (sort of) and it should work better with static colors.

It’s a shame I can’t really detect what effect Razer is using, I just get the colors. So I kinda have to guess if the effect is static by checking if there have been no changes to the colors for a period of time.

1 Like

I updated the app! You now have more control over which Razer LEDs/colors are used to sync to WLED. Also you can choose to blend the colors or not.


Hopefully it’ll work a little better with static colors as well. I’m getting my new ESP hardware on friday, so I’ll test it in another setting, with other hardware soon.

Cool update. Only 1 problem every time I run the built .exe it opens (tray icon appears) and force closes. It does this even if I start it from within VS. The actual window never pops up.

Ok. Got an error. When I run it from the run triangle on the left of the name in VS it is giving an error. Pic attached.

1 Like

Yeah, I’ve updated it a few minutes ago. Forgot to initialize an empty list in my settings. My bad oops

1 Like

Woo-hoo! It seems to be working, but is still doing the slow blink from WLED color to razer color over and over. If I get some time I’ll try it with an esp32 and see how that goes.

Hmmmm, it should have stayed in ‘LIVE’ mode. So it’s weird that it still does that. I’ll see if I can try another approach. I blew up my ESP-12 yesterday, so all I have left is ESP-32s.

Update:
I’ve pushed an update to Github, the drops should be a thing of the past. I had set the timeout to 1 second, but I’ve set it to infinite now. Also I’ve added a check that if we’re only doing one color, we use a different real-time UDP method.

1 Like

I’ll check it out. Just saw something weird from your previous build. When I turned my pc on tonight somehow the program started with windows even though I have never checked the box for it lol. I looked in the settings and it was still unchecked yet it somehow started itself. I will try out your updated version and report back if I see that happening w/it lol. Thanks!

Alright, just tested the new version and my razer color is staying lit wooohooo! I just made sure the start when windows boots was unchecked (never did check it still) and powered off my pc and restarted it. The program again loaded @ boot lol.

I looked into it a lil further and noticed a few things.
When opening the program I think you need to have the on boot call defaulted to the checkboxRunAtBootDisable value unless it finds a saved enabled value in the settings file or someplace. Right now it’s as if the default value is enabled even though the check box looks to be unchecked.

Another bug with that check box: If I go into the settings window and check the box to enable the run on boot and click save closing the settings window, when going back into settings the box is again displayed as unchecked even though I had checked it. The value remains checkboxRunAtBootEnable as when looking in the registry the program is still listed.

The context menu from the tray icon seems to update correctly when changing settings in the settings window but when doing the check/unchecked state in the context menu the state is not changing on the settings window.

Sorry to seem like a pest. Just trying to point out any bugs I see.

-Cheers!

Good to hear the lights stay lit now! :slight_smile:

Thanks for the bug report, no worries about being a pest! I’ve never been really happy with the way I made the ‘start on boot’ part. So you just gave me a reason to fix it. I’ll get back to you.

1 Like

I made a new version. I’ve changed the way the “run at boot” is handled. And also did some other changes. Like finding wleds via mDNS and more. I also added you to the readme.md :slight_smile:

Aww lol. Thanks for sticking me in the readme.

Now the dreaded part :face_with_hand_over_mouth: Searching for WLED’s did not seem to find any. Not a big deal… However clicking Add WLED Instance is force closing. Error in pic.


Looks like no instance was set.

Thank you for testing it again and finding another bug hahaha. It has been fixed :slight_smile:

:zipper_mouth_face: When I add the WLED instance IP and click connect it is not connecting. The status on the main window is going from disabled to disconnected when I tick the Enabled box on the settings window. The connected status check box on the settings window stays empty. I have tried 2 different WLED devices (IP’s). Good Luck LOL

I think I’ve fixed it. It now loads the led settings if you check the ‘enabled’ box. I also found another small error and fixed it. Also the app should check every 60 seconds if a WLED is enabled but not connected.

Same issue. It is not connecting to WLED.

Do you see the new ‘whole strip’ radio button in the settings and is it checked?