• Save 15% on ALL SFF Network merch, until Dec 31st! Use code SFF2024 at checkout. Click here!

Stalled Iris 16 - RGB Vandal Button

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
In the lighting software I use (hog 4), there are cues and cue lists.

These "Cue Lists" have a bunch of cues with the following features:
  • Name (not necessary....)
  • Fade In Time(.e.g it adds an intensity multiplier to the cues values. might not be necessary for this system)
  • Wait time (how long from previous cue before we start this cue. Values include "manual", time in seconds, and "follow"
    • Manual is because this is used in theatres and the operator hits next
    • Time in seconds is useful if u want to start playing cue2 while cue1 is still fading in
    • follow plays the cue as soon as the previous one has finished fading in
  • "Go list": this is where you enter in a previously defined cue to actually fade up.
    • Go list: start a list
    • Release list: all lights that this list was touching now get "nulled"
    • Other things but probably not relevant for now.

So imagine you already have a cue for rotation clock wise, then another cue for rotation clockwise, you have a "cue list"

Cue List 1
Cue1: RotationClockwise cue / FadeTime 0s/ WaitTime 0s

Cue List 2
Cue1: RotationCCW cue / FadeTime 0s/ WaitTime 0s

Cue List 3
Cue1: FadeTime 0s / Wait Time 0s / GO LIST "Cue List 1"
Cue2: FadeTime 0s / Wait Time 1s / RELEASE LIST "Cue LIST 1" GO LIST "CUE LIST 2"
Cue3: Wait Time 1s / Release List "CUE LIST 2"

Hope that makes sense!
------------------------------------------------------------------
Another solution could be to add double-hooped "mark-on" curve that is parameterized to have delays. Though this is fairly specific. With the whole heavyweight cuelist system, you can play arbitrary cues in arbitrary orders with stacking.

Awesome, that sounds extremely powerful! And as you say, this allows stacking as well, so there's no need for having a separate mechanism that allows playing multiple animations at once, including the "partially specified" colour fades we discussed before.

I'll try to find an efficient way to implement this in byte-code. Do you have a link to the documentation of that language? Or just a name what the language is called?

Also, holy shit, the Hog 4 is an awesome machine. Wonder what keycaps they are using on their switches? Looks like X D A at the top and some uniform cylindrical profile for the pull-out keyboard.

 
Last edited:

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Hi!

Great idea and nice planning on this! Any estimate on when I could buy one of these? It would be perfect for my build :thumb:

Hi, thanks a lot! If you want one as soon as possible, you could sign up for one of the pre-production units here, but those might have some kinks to iron out, and because they are much more expensive to make than I anticipated, I don't know how many of these I'll be able to make.

Otherwise, I was hoping for launching the Kickstarter towards the end of May, but I'm not sure I'll make that, as I want to have at least one working prototype at that point and should generate some media coverage during that as well.
 
  • Like
Reactions: Biowarejak

XeaLouS

Cable-Tie Ninja
Dec 29, 2015
180
123
Awesome, that sounds extremely powerful! And as you say, this allows stacking as well, so there's no need for having a separate mechanism that allows playing multiple animations at once, including the "partially specified" colour fades we discussed before.

I'll try to find an efficient way to implement this in byte-code. Do you have a link to the documentation of that language? Or just a name what the language is called?

Also, holy shit, the Hog 4 is an awesome machine. Wonder what keycaps they are using on their switches? Looks like XDA at the top and some uniform cylindrical profile for the pull-out keyboard.


There's the manual but most of it would probably not be relevant.
https://www.highend.com/pub/support/controllers/documents/H4_manual.pdf

One good thing is you can download the software (google hog4pc) + a light emulator (google Capture Polar) and actually use the software on PC.

Totally overkill though, but might help you get a gist of how it works.

Unrelated to the thread:
The desk is really nice, i'm not sure if it uses cherry switches for the keys, but my favourite switch is actually the little ones near the sliders (they're called pb86 and are industry standard buttons in lighting console world).
 
  • Like
Reactions: Biowarejak

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Have you looked into using NeoPixel Jewel + Gemma? I think you can make a nice 22mm button prototype with those parts.

While those are cool products, the LEDs I'm using are much smaller and fundamentally different in the way they're driven to the WS2812s Adafruit is using here. The whole point of a prototype is to see whether an idea can work the way it's imagined, so I have to go all in on that.

I'm working on a prototype of the web-based configurator right now (which will take a while since I've never coded JS before) while the ring prototype is being manufactured, so hopefully you'll have something to play around with within the next few weeks. :)
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Quick and dirty teaser of what I've been working on:



I've spent the last week reading the MDN Javascript tutorials just to be able to get to this point. This is the first time I'm ever doing any sort of web development, so it's a slow process but I'm learning a lot.

There's also a small issue with the PCB assembly process that I need to figure out, that should be done by the end of the week, though.
 

zovc

King of Cable Management
Jan 5, 2017
852
603
Does this mean my RGB power button is going to have its own web server?!?!

But can it really be a RGB configurator website if I can't configure the site's RGB colors, too? :p
 

Arboreal

King of Cable Management
Silver Supporter
Oct 11, 2015
819
814
Amazing iF, really pleased to see that it's going well.
In case my wallet suddenly gets an unexpected boost, are there any spaces left on the trial batch?
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Update! Visualizer 0.1 release and lookout on online configurator!

Today, I proudly present version 0.1 of the Freilite Iris Visualizer, an online tool to try out potential configurations.

This version is by no means final, but it's a good framework for testing what's possible and what isn't with the data format I'm planning to use. (Big thanks to @XeaLouS for his ideas on this!) As usual, feedback of any kind is very welcome!

In the future, this will be extended into an online configurator tool, so you won't have to install any software to modify the animations. More on that below.



Basic functionality:

TL;DR: Just try it out, it's fun!

On the left, you can see the live preview, on the right is the configuration UI, where you can modify Cues. Cues consist of multiple parameters that define how the LEDs change colour and are the basic building blocks of animations. In the future, you'll be able to chain multiple Cues together into Cue Lists.
Right now, only a single cue can be displayed at any given time. The parameters of each Cue are as follows (more will follow in the future):
  • Start Color: Colour each LED will start its transition at.
  • End Color: Colour each LED will end its transition at.The hue of this colour is capped at 359° in the visualiser to make it easier to achieve the rainbow animation you can see above.
  • Duration: Time one full cycle of the animation will take. When the Time Divisor is lowered, this value should be increased to keep the same velocity.
  • Time Divisor: Describes the value the Duration is divided by to calculate the temporal offset between neighbouring LEDs. Basically, this means that each LED counterclockwise of its neighbour will reach the End Colour earlier by (Duration/Time Divisor). This means that if a single dot is displayed, you can just reduce the Time Divisor to 6 to see two dots, 4 to see three dots and so on.
  • Ramp Type: Specifies how the transition between Start Color and End Color is calculated. Currently, there are only three options. They are explained below.
  • Ramp Parameter: Changes the behaviour of the Ramp Type. The basic concept is that it changes which time the "peak" of the functions happens at, but the practical implications are different for each Ramp Type.
  • Reverse: Self explanatory.
The three Ramp Types are explained below. In the future, they will be illustrated in the Visualizer to make them easier to understand.
  • Linear HSL: Moves on a linear path through the HSL colourspace, first from the Start Color to the End Color, and then back. I recommend this for most scenarios, especially when transitioning between two colours.
    The Ramp Parameter in this case specifies the position of the "peak" of the transition function. When it is 1, an LED will jump down to the Start Color immediately after reaching the End Color. When it is 0.5, it will take equal time to transition forth and back. Try it out to see if you can tell the difference! If you're coming from a music background, you can also think of it as the ratio between attack and release if decay and sustain are both 0.
  • Linear RGB: Included for comparisons sake. In some cases this will also look better when transitioning between a regular colour and black or white. The Ramp Parameter has no effect in version 0.1, I just couldn't get it to work properly.
  • Jump: Just jumps from Start Color to End Color and then back down. Very simple effect, I'm personally not really a fan of it, but it can look quite cool with a Ramp Parameter of 0.5 and lower Time Divisors. The Ramp Parameter works similarly as before, but it effectively changes the width of the spinning dot.
Wow, that was quite a bit of information. So, where will this go in the future?

Future Online configurator:

TL;DR: Razer is stupid.

In the future, you will be able to download an animation you've designed on the Visualizer as a .hex file. The Iris 16 will be acting as a Mass Storage device similar to an SD card or Flash drive. To load the animation onto it, you simply open it in your file manager and copy the .hex file directly onto it. This means that you will not need to install any additional software and that the Iris 16 will be usable on every OS on the planet, no matter how obscure.

Additionally, none of this will be required after setting the button up once. All animations are stored on the Iris 16 itself, so even when putting it in a different machine, all the animations will be just where they were.
It will also be possible to upload a previously stored animation to modify it again. This means that you need no online account and don't have to enable cookies to save animations. And, you can share them with others in any way imaginable. Via e-mail, Pastebin, Google drive, even morse code if you're so inclined.

Makes you wonder why not more companies do it this way.

Thanks for reading and have fun breaking my software!

I'll implement downloading animations as soon as possible so you can start sharing your ideas.
 
Last edited:

|||

King of Cable Management
Sep 26, 2015
775
759
In the future, you will be able to download an animation you've designed on the Visualizer as a .hex file. The Iris 16 will be acting as a Mass Storage device similar to an SD card or Flash drive. To load the animation onto it, you simply open it in your file manager and copy the .hex file directly onto it. This means that you will not need to install any additional software and that the Iris 16 will be usable on every OS on the planet, no matter how obscure.

...so long as it can read the device in as a storage volume in the first place.
 
  • Like
Reactions: ricochet