Have you ever heard of Elgato's Stream Deck, not to be confused with Steam 's Steamdeck? They are boxes covered with transparent buttons behind which there is a color screen. And these buttons are fully customizable. Since Elgato provides an SDK, we thought we'd try to make a little plugin that would allow us to drive Yoctopuce modules.
Part of the Elgato Stream Deck range
Is this really useful?
Of course, one might ask if this kind of device is really useful. We think that it is. The example that would speak to a maximum of people would be to configure a macro to insert in a professional email a signature with a closing formula written in the right language. With Stream Deck, setting up a macro that does this is a breeze. The main use is of course to use it to run predefined macros in many programs.
That said, in the case of Yoctopuce modules, the interest is to have physical buttons to easily control Yoctopuce actuators. Perhaps the most obvious application is to switch Yoctopuce relays to easily turn on or off devices from one's desk, but we had other ideas.
You can use a Stream Deck with a lot of Yoctopuce modules
Features of the Yoctopuce plugin
Currently, the plugin supports the following features:
The buzzer function is present on the Yocto-Buzzer and Yocto-MaxiBuzzer. The plugin allows you to make a sound pulse or to play a small melody.
The ColorLedCluster function is present on the Yocto-Color-V2, the Yocto-MaxiBuzzer, and the Yocto-MaxiKnob. The plugin allows you to turn on or off a group of LEDs or to switch them from one color to another. You can use the rotary knobs of Stream Deck+ to adjust the R, G and B components.
The CurrentLoopOuput function is present on the Yocto-4-20mA-Tx. The plugin allows you to toggle the current output between two pre-configured values. You can use the rotary knobs of the Stream Deck+ to adjust the output current.
The Relay function is present on Yocto-Relay, Yocto-PowerRelay (V1,V2,V3), Yocto-MaxiPowerRelay, Yocto-LatchedRelay, and Yocto-MaxiCoupler. The plugin allows you to switch relays from one state to another.
The Servo function is present on the Yocto-Servo. The plugin allows you to toggle the position of a model servo between two pre-configured values. You can use the rotary knobs of the Stream Deck+ to directly adjust the position of a servo.
The VoltageOuput function is present on the Yocto-0-10V-Tx. The plugin allows you to toggle the output voltage between two pre-configured values. You can use the rotary knobs of the Stream Deck+ to adjust the output voltage.
The WakeUpMonitor function is present on the YoctoHub-Wireless-n and the YoctoHub-GSM-4G. The plugin allows you to put the module to sleep. If it looks oddly specific, it's because we needed this feature internally.
You can control some of the functions with the rotary knobs of the Stream Deck+
Until we can publish it directly to the Elgato store, the plugin can be downloaded directly from here. If you already have the Stream Deck application installed on your computer, simply double-click on the com.yoctopuce.modules.streamDeckPlugin file and the plugin installs itself. You can find the list of available actions in the Yoctopuce section.
Keep in mind that the plugin can only control Yoctopuce modules connected through VirtualHub or a YoctoHub. It cannot control native USB modules because it is written in TypeScript. Therefore, if your modules are connected directly to your computer via USB, make sure you have VirtualHub running. Once you have assigned an action from the Yoctopuce Plugin to a Stream Deck key, you need to:
- Specify the IP address of the hub or a remote VirtualHub instance connected to the module. In case of a local VirtualHub instance, use 127.0.0.1. In fact, this parameter is common to all actions, but you can enter a comma-separated list of IP addresses.
- Once connected to the hubs, the plugin presents you the list of functions compatible with the chosen action. It's up to you to choose one of them.
- Then you just have to choose the parameters of the action
In the screenshot below, we have configured a relay controlled by a local instance of VirtualHub so that it toggles from one state to another each time the corresponding Stream Deck key is pressed.
Configuration for the use of a relay
What we think of the Stream Deck range
Although it is rather cheap hardware, we were pleasantly surprised by the overall quality of the various Stream Deck devices. The application that drives them works rather well, but we were a little disappointed by the necessity to have at least Windows 10 to install it. On the other hand, the documentation for the Elgato SDK is not really up to par with the rest. Despite appearing to be comprehensive, it leaves out important details about the architecture and operation of the plugins. Support questions are supposed to be asked on a Reddit forum where there are clearly more questions than answers. Because of these problems, developing this plugin was more of a treasure hunt than the quick and easy project we initially imagined.
We hope this little plugin will be as useful to you as it will be for us. If you have any problems using it, don't hesitate to contact Yoctopuce support, we will be sure to answer you. If you are wondering what the source code of the plugin looks like, you can find it here.