Loading...
Made in cooperation with SKAARHOJ Aps
This module was created as an easy way to use a SKAARHOJ panel as a streamdeck and utilize buttons that you might not currently use on your controller, or maybe you want to have actual buttons instead of those on the Streamdeck.
The main requirement for this module to connect to a SKAARHOJ panel is to have the Unisketch core "Raw Panel" installed and run in server mode, but more info about this setup process can be found below.
Quick Notes:
When you add this module to your setup, it will present a set of configuration settings and let's take a look at what those do:
These are for the connection to the panel. Please use the panels IP. This will most of the time be visible on one of the displays on the panel when nothing is connected to it.
The port is set by default to "9923", but you have the option to change it depending on what settings you have put on the actual panel, but "9923" is the default for Raw Panel.
For a very basic setup, this is all you need to configure, but you might want to use the Companion satellite API for the best experience.
This setting does exactly that. It enables the use of the Satellite API in the module. This is used together with the "Banks 1-32" options to create a "virtual" streamdeck on your SKAARHOJ controller, and you have the total freedom of what buttons from the streamdeck you want where. This even allows for pages and feedback, just like on a native streamdeck.
This will also register a "virtual" streamdeck pr module that has all the standard settings like you are use to with a streamdeck XL.
An example of a panel that has been registered:

And an example of the option for the panel:

As shown, it will have the name of the Controller, as well as use the serial number for the device to ensure that you can use more than one of the same Controller type.
These options allow you to specify what button/HWC on your panel you want to match with any button on a streamdeck XL, and it will then work just like that with page up and down colour feedback on the button as well as text support on the screen.
If you have a button that doesn't have a screen attached, you can map a separate screen on the panel to work together with any button. Use a comma to split the two entries in the text field.
When filling in your HWCs IDs. The Format: "button_HWC, Screen_HWC" -> "1,10" is used, and if there is only one number, the screen will be assumed to be on the same HWC
Shown in this picture is two different bank's one with a button that has a screen included, and on "bank 2", we have a button that uses a separate screen:

Encoders, joysticks and faders can also be mapped as a button in these fields. Just type in the HWC id for that component, but the use might be a bit limiting in some cases.
Quick Note: "HWC" stands for "Hardware Component" on a SKAARHOJ panel, and you will see this ID in the WebUI for your controller. This is the unique identifier that all components have, be it a button, encoder, screen, led and so on.
Note that changing this setting will require a restart of Companion in most cases.
If this is enabled, all HWC's with an LED will light a dim white when the button is black in Companion (mimics normal SKAARHOJ behaviour). Turn this off if you want them to turn completely off. (This would be more in line with how Companion does it usually)
This does not affect the "light up" effect that all 32 of these API buttons support. They will light up bright when pressed/latched and light dim or off when not pressed/latched. Just like you will see the yellow bar on the standard streamdeck displays.
Usually, just leave this on its default value "5000" or 5 seconds, but this is how often the module will ping the panel and provide the max time before a disconnect is discovered. This setting can be set in the range: "1000 -> 300000" or "1 sec -> 5 min"
Backup LED Refresh does just that. It controls how often we should send the data to the screens if nothing else has done that, so this helps eliminate a case where you would be stuck with a blank panel. But this also can affect the performance on the panel, so, therefore, it's set as default at "30000" or 30 seconds, but you can set it down to every 5 seconds. This might be prefered if you swap a lot around with pages on your controller.
Only really change this if you often end up with blank screens, and if that still happens, you can also use the action "refresh displays" on a button or trigger.
The total range for this option is: "5000 -> 600000" or "5 sec -> 10 min"
Requires Companion to be restarted. But this will allow you the see what is being sent from the module and what is being received from the panel. This can be usefull when debugging problems.
When you look at the log tab, you will see what Companion sends out to the panel as an "Info" log and what we get back from the panel as a "Warning".
In this module, there is a set of actions that you can use if you want to, but you might find that you don't need to as most of this module happens as feedbacks, so these are more for controlling the panel itself than actually controlling Companion from a panel.
You can find more info about the "Raw Panel API" and what you can use as a custom command Here or via Direct Download
Once again, just like with Actions, you might find that you don't need any of these feedbacks. Because if you use the Companion Satellite API, these are not needed for those 32 buttons.
But these feedbacks allows you to tie specific HWC's on your panel to a button on one particular page in Companion. This also allows you to map up to 254 different HWC's instead of just the 32 regular Streamdeck/Companion buttons laid out on the configuration page. Most of these can even be mapped to more that one button, like 4-Way buttons and encoders.
We would suggest using these feedbacks primarily for stuff you don't want to move around on your panel, so this could be for the "Start / Stop Streaming" button or similar that you would typically need to have on more than one page on the Streamdeck.
Feedbacks in this module is actually not a "feedback" in the normal Companion way, but instead, they are used here as a way to tie a SKAARHOJ HWC to a specific button. This is done this way because it's the only way for a module to know both what button it is as well as the state of the button if, say, you change the button's background colour or the text changes on the display.
So What "feedback's" does this module include:
A set of "feedbacks" that allows you to control this Companion button from your SKAARHOJ panel
And a set of "feedbacks" that allows you to tie the feedback to the SKAARHOJ panel's LED's and Screens.
One thing these feedbacks will not do, is give you the status of latched companion buttons that is only supported on the 32 API buttons.
As some might have noticed, there is currently no "feedback" that allows you to tie a fader to a button, but all faders create a variable that can be used in modules that support it.
Variables are made in a dynamic fashion depending on what the controller connected has available. This means that if you connect a panel with a joystick, you will get an analogue variable for that HWC, and the same with faders and T-Bars.
All dynamic variables are made in the format: "HWC_id_type"
So as an example, here is a picture of the variables that are created when a Rack Fusion Live is connected to Companion via this module:

Other than the dynamic variables, it also has three static variables that get filled with info from the panel:
The serial number and device name are also what gets used when the panel gets added as a Satellite Device, so you will see this info under "Surfaces" as well.
Note that there will be no variable support with the current module version if used together with a "Blue Pill Inside" Controller.
Currently, there are no pre-made presets for this module, as it's normally used on top of buttons you already have defined, or that has actions from other modules on them already.
So in order to use this module in any way or form, you will need to set up the Controller you want to use together with Companion, which can be done in a couple of ways depending on what type of Controller and what your use-case is.
In short, there are three different control modes that have some different drawbacks and usabilities.
Unisketch Raw Panel: The normal way and most flexible way to use this module on Unisketch are via the "Raw Panel" core that you install in the Controllers firmware via the "Firmware Updater".
This gives you a set of positives:
And negatives:
Unisketch Blue Pill Mode: The second way to connect a Unisketch panel is via the "Blue Pill Mode" that has been introduced in all Unisketch firmware since late 2021, but you might not have seen or used it yet, as this is normally only used together with a SKAARHOJ Blue Pill. But this mode can also be used with this module as it uses the same Raw Panel API and setup. You can even see this as a separate default config on the config page for your panel.
Positives:
Negatives:
Blue Pill Inside: Blue pill Inside is something entirely different as this is a Controller that does not have Unisketch, but instead has a SKAARHOJ Blue Pill built it. These controllers can also be used with this module, but they require a bit more setup, and currently, variables are not supported with those Controllers. Other than that, the rest should work just fine, and they have the same flexibility as the normal "Raw Panel" mode mentioned above.
Dedicating the whole panel
If you want to dedicate the whole panel for use with Companion, the simple way is to open the "Online Configurator" for your panel and select the "Blue Pill Mode" config. This will give you the same control as the dedicated Blue Pill mode described below, but you can still specify a static IP if you want to.

After selecting this config, set up the IP settings you want and flash the new firmware. And wait for the panel to reboot.
Dedicating only some buttons or if used together with other cores
Start by opening the "Online Configurator" and selecting the config you want to use with Companion. Then add the "Raw Panel" device core to the chosen config.
This should look something like this:

After adding the device core, go back to "Controller Configuration" and scroll down to the "Raw Panel" core settings. Please set these settings so they match one of these images, depending on what if you are on what version is presented to you:


The necessary settings are:
You have now setup the core and if you were to flash this firmware now, Companion should be able to connect to it. But it would not be able to do anything other than system actions with it just yet.
So in order to allow buttons on your panel to be mapped and used inside companion please click on the HWC that you want to control via the webui.
Here you want to add either delete what is already on the HWC and/or add the action: "UniSketch Raw Panel: Tie To Remote HWC" and set the HWC to 0, then it will map the HWC that you have selected, just like this:

Note that this is also where you will see what the actual HWC ID is if you look at the top left of the picture, you will see that this is HWC 1 because of the naming #1
Repeat this process on all the buttons, encoders, joysticks, LED's, displays and so on that you want to use with Companion.
Last but not least, remember to check that the core is enabled and click "save" after changing these options. You will notice an IP field beside the enable/disable box. This IP field can be safely ignored as it's not used by the panel while using the core in server mode.

In order to enable or disable "Blue Pill" mode on a Uniskech controller, follow these steps:
Here is an example of how to enable Blue Pill mode:

To disable Blue Pill mode again, repeat the process above, and you should now see a white "wave" move across just like the blue one did before.
When a panel is in Blue Pill mode and nothing is connected, it will show its IP and Port that you need to use on one of its displays. If you only see a blank/black controller, this means that it's already connected to either Companion or something else.
Note if this does not work for you, update the controller to the latest version via the firmware updater, you don't need to change anything as this is included in all new firmwares
On a Blue Pill inside panel, go to the panels IP, open the "Packages" tab, and find the package "Hardware-Manager".

Click on the package and you should now see something like this, make sure to use the same settings:

Settings to look for in the "Hardware-Manager" package:
After you have set the settings, click "Save and restart", and go back and open the package "Ibeam-rwp-bridge" and check the settings there against the picture below:

Settings to look for in the "Ibeam-rwp-bridge" package:
Once again, after setting these settings, click "Save and restart" your controller should now be set up and ready to use with Companion.
The word "HWC" is used alot in this document and "HWC" stands for "Hardware Component" on a SKAARHOJ panel, and you will see this ID in the WebUI for your controller. This is the unique identifier that all components have, be it a button, encoder, screen, led and so on.
You can find more info about the "Raw Panel API" and what you can use as a custom command Here or via Direct Download
If you have questions or feel that something is missing in the module, then please create an issue and take a look those already made here on GitHub