BlinkStick AmbiLight - A real AmbiLight for Flex and Pro

I’m having the same issue. I have a laptop with a disabled built-in display, and two external monitors connected to it. Disabling monitors so that it is only outputting to one monitor did not work, however, unplugging the two external monitors and using the internal laptop display works just fine, I just have to physically unplug the monitors.

My system:

  • AMD Athlon 64-bit
  • AMD Ultimate Vision GPU w/ 1g DDR3
  • Windows 10 64bit
  • 4g Ram

Leads me to believe it is a problem related to dual monitors.

Thanks for your response.
Sadly it is not that easy. IĀ“ve also tried it on 2 different systems with dual monitors. No problems there. It must be some mix out of screen resolution, multi monitor and DirectX…

Hey p0ke,

This looks fantastic, great job! Do you know if we can use this setup with prismatik for android? I can see they have api https://github.com/arvydas/blinkstick-android
Thanks!

Hey Andy and welcome to the forums,

it is a great idea to connect BlinkStick to Prismatik. I“m not sure if this could be possible, does Prismatik have some kind of PlugIn Engine for different devices than Lightpack?
So this question should also go to the BlinkStick founder @arvydas :smile:

I believe that it could work. Prismatik simply captures color information in a very similar way to how you are doing it and streams the RGB data on localhost:portnumber. I wrote a little python script a while back that read the information, flipped the values, converted to hex and from there was able to interact with my keyboard led driver for a fully functional ambilight effect. I wanted to skip Prismatik entirely but fell short on gui and averaging color. I could convert for blinkstick but don’t have one to test (yet!).

Hey Andy,
sounds nice, I will definitly give it a try.
I know that the Prismatik devs already have a lot of experiences in ambilight. So using the engine would avoid reinventing the wheel :wink:

Would you like to share your python script? We could start a new small project here in the forums.

Hey p0ke

I have something for you. I’ve dug out that code and created a repo for the project for you to see. It’s intended for clevo keyboard but virtual LED is the same. Take a little look at lfx.py in the Source folder, I’ve added some comments for increased readability. Happy for you to create a new thread and repo for this

Thanks, have taken a look in it. It should be easy to add BlinkStick support for python. But I have no experiences for android and stuff, also no device for testing it.
First of all I“m thinking about to build a connection to Prismatik for my BlinkStick Ambilight. Depends on the time I will have :wink:

Youre welcome, I hope it can be of some use. It should be pretty straight forward. I’ve got a custom version of Pris in the ā€œPā€ folder, much faster build.

(Turn on directx hooking for games) I guess it would be nice to have a blinkstick plugin for Pris?

I haven’t had a look at blink stick api yet but I’m assuming its rgb which means that you wouldn’t need half the functions I used. If you use prismatik’s profile setup wizard, be sure to set to ā€œVirtual LED Deviceā€. You can define all of your leds in there too.

Regarding hardware. What’s the best flex strip approach for a tv? 32 led may be enough but depending on the spacing… Potential for power supply/powered hub and multiple strips?

It took me 18 months but I’m now trying this. Is the GitHub source code up to date? It looks like it is missing packages.config so it’s not building as it is. Any chance you could take a look at it @p0ke?

Wow, already 2 years ago I“ve added it to github.
Well I“ve just added the missing packages.config. Hope it helps.

1 Like

Thanks for the quick turn around. In the meantime I had already resolved the missing packages myself and got it working. It awesome by the way. Then and to avoid conflict issues with your fork I thought I’ll fetch your fix but it turns out it’s still missing half of the packages. I think I’ll just work on it for a while on my side as it seems you have not been developing it for a while.

Yea, feel free to do so!

1 Like

Does it support multiple BlinkStick? Say if I want to use like two Flex for one screen?

Not atm. I“ve thought about this but it is not implemented yet. Should be possible to build of course.

1 Like

There seems to be a major memory leak. After a minute or so it uses more than 2GB and GetImage throws an OOM exception. @p0ke again are you sure that’s the latest source code on GitHub? Is anyone using this successfully for more than a minute? Are there other AmbiLight solution for BlinkStick Flex on Windows? I really don’t mind improving that solution but if someone already did the work I really don’t feel like I need to reinvent the wheel.
@arvydas is the current BlinkStick client now supporting proper AmbiLight or still just full screen colour.

OK, there where some changes especially in the DirecX.cs
I’ve pushed it to github, compiled it again and canĀ“t see any memory leak here. If you still have the problems you can give me ur settings file, stored in C:\Users<username>\AppData\Roaming\BlinkStickAmbiLight

1 Like

Just took a look at your changes and I’m pretty sure they won’t fix the memory leak. Though they do catch the exception but you still get other uncaught null pointer exception further down the line. Looks like we are leaking the whole screen on every frame.

settings.zip (305 Bytes)

@p0ke I fixed the memory leak issues and created a pull request.

I’m not sure how anyone would be able to run it as it was for any length of time without getting OOM exceptions.
Yourself must have been running into that issue since you implemented those try catch blocks.
Maybe it could be that C# garbage collector is working differently in release builds.
I have only been running it in debug and the issue was pretty obvious.
Are you still using that application yourself? If you monitor its memory usage the leakage should be pretty obvious.

Now that it runs stable I’m gonna try gaming some. I’ve earned it tonight :wink: