Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

  1. Connections
  2. ETC - EOS

ETC

EOS

Communityv2.2.3Updated 8 months agoLighting
DocumentationReport an issueView on GitHub

Documentation

ETC Eos Module

Configure your console

EOS v3.1.x and earlier

Exit out of your console and enter the Eos Shell (Eos Configuration Utility).

Open Settings and click on Network. Make a note of your console's IP address.

console-ip

Scroll down to the Interface Protocols section and make sure the OSC TCP Format is TCP format for OSC 1.0 (packet length headers) (the default option). Save your changes by pressing the Accept button, then launch your console.

osc-1.0

Once your console has started, make sure the OSC RX and OSC TX options are enabled (they are by default). The location may vary depending on your console's version, but it should be somewhere close to Setup > System > Show Control > OSC.

enable-osc

Previous versions of this module asked you to change the OSC [UDP] RX Port. This is no longer required. You should reset the field back to 0 if you're not using it for another purpose.

EOS v3.2.x and later

You will find the network settings now in Setup > Device Settings > Network

console-ip-3.2.x

If you use the EOS software local on a Mac/PC with Streamdeck+ attached you no longer need an active network connection as long as the OS recognize a network card (WIFI or Ethernet). You can use the loopback address 127.0.0.1 instead.

You will find the OSC settings in Setup > System Settings > Show Control > OSC

enable-osc-3.2.x

Configure Companion

Add and configure the module in Companion.

The Target IP will be the IP address of your Eos console.

The User ID field lets you choose which user these commands should be executed under on your console. This user must first be setup on your console or your actions won't work. The default user in this module (and on your console) is User ID 1.

You should use a different User ID if someone will be running your console while it's being controlled through Companion (especially if you use the Custom Command action) otherwise your actions and command lines may conflict with each other.

A User ID of -1 refers to whichever user the console is currently set to.

The Use TCP SLIP setting will use port 3037 with TCP 1.1 SLIP protocol, otherwise it will use port 3032. This is a new option since EOS 3.1 for 3rd party connections.

The Labels to poll setting controls how many group_label_X, preset_label_X, and macro_label_X variables are created and actively queried from the console.

Actions

While it's not practical to create specific actions for every possible command available in your light console, some common actions/keys have been added, although the Custom Command action is the most flexible.

ActionDescription
Custom CommandRuns a custom command. See the section below for more information.
Custom Command (OSC)Sends a custom OSC command to Eos. See the Supported OSC Input section in the Eos Operations Manual for a list of commands. The paths should all start with /eos/. Use the Generic OSC module for more advanced OSC use.
Custom Command (OSC) with argsSends a custom OSC command to Eos with arguments. See the Supported OSC Input section in the Eos Operations Manual for a list of commands. The paths should all start with /eos/. Use the Generic OSC module for more advanced OSC use.
Key: BlackoutToggles the Blackout button.
Key: GoRuns the next cue in the current list.<br />This is the same as pressing the Go button on your console.
Key: Stop/BackPress once to stop the current cue (if it's running), and again to move back to the previous cue in the list.<br />This is the same as pressing the Stop/Back button on your console.
Run CueRuns a specific cue in a cue list.
Run MacroRuns a specific macro.
Press KeyPresses one of the console's keys. A full list of keys can be found in the latest Eos Family Operations Manual (links to v2.9.1); do a search for Eos OSC Keys (use the value from the first column).
Channel IntensitySets a channel's intensity to a percentage, or to a keyword: out, full, min, max.
Group IntensitySets a group's intensity to a percentage, or to a keyword: out, full, min, max.
Submaster IntensitySets a submaster's intensity to a percentage, or to a keyword: out, full, min, max.
Submaster BumpSimulates a submaster's bump button. The State property can be:<br /> - Press and Release<br /> - Press and Hold<br /> - Release<br /><br />Hint: Add this action to a down/on action to Press and Hold, and a Release action to up/off, then make the button Latch/Toggle.
Fire PresetRuns the preset given its number.

Dynamic variables

Dynamic variables are available to use in button's text and provide realtime information about your console.

For example, a button with this text Live Cue:\n$(etc-eos:cue_active_num) - $(etc-eos:cue_active_label) would show the active cue number and that cue's label.

Note: \n is used to put a new line in the button's text. It's unrelated to using a dynamic variable.

A list of the available variables is listed on the module's config page, and is also available below:

VariableDescriptionExample value
$(etc-eos:cue_active_list)The active cue list number1
$(etc-eos:cue_active_num)The active cue number30
$(etc-eos:cue_active_label)The active cue labelIntermission
$(etc-eos:cue_active_duration)The active cue duration in seconds3.0
$(etc-eos:cue_active_intensity)The active cue intensity percent100%
$(etc-eos:cue_pending_list)The pending cue list number1
$(etc-eos:cue_pending_num)The pending cue number40
$(etc-eos:cue_pending_label)The pending cue labelAct 3
$(etc-eos:cue_pending_duration)The pending cue duration in seconds3.0
$(etc-eos:show_name)The name of the showMy show
$(etc-eos:eos_version)The Eos software version3.3.0.273
$(etc-eos:fixture_library_version)The fixture library version3.3.0.102
$(etc-eos:gel_swatch_type)The gel swatch type0
$(etc-eos:cmd)The command line for the userLIVE: Cue 20 : Sub 1 @ 60 #
$(etc-eos:softkey_label_1)Soft key 1's labelAttributes
$(etc-eos:softkey_label_2)Soft key 2's labelFw/Hg
$(etc-eos:softkey_label_3)Soft key 3's labelAutoMark Off
$(etc-eos:softkey_label_4)Soft key 4's labelLink/Loop
$(etc-eos:softkey_label_5)Soft key 5's labelExecute
$(etc-eos:softkey_label_6)Soft key 6's label
$(etc-eos:softkey_label_7)Soft key 7's label
$(etc-eos:softkey_label_8)Soft key 8's label
$(etc-eos:softkey_label_9)Soft key 9's label
$(etc-eos:softkey_label_10)Soft key 10's label
$(etc-eos:softkey_label_11)Soft key 11's labelOffset
$(etc-eos:softkey_label_12)Soft key 12's labelAutoBlk Clean

Soft keys 7-12 are the alternates available when you toggle the {More SK} button.

Wheels - Distinct Parameters

These parameters are reported when working with a fixture. You must select the fixture by typing its number on the command line. If using next/last or other methods the EOS software does not consistently send updates on the values.

All of these variables are available in a string (integer) and a floating point format. Just append _stringval or _floatval to the end of the base name in the list below:

enc_intensity
enc_background_intensity
enc_zoom
enc_edge
enc_iris
enc_pan
enc_tilt
enc_x_focus
enc_y_focus
enc_z_focus
enc_red
enc_green
enc_blue
enc_red_main
enc_green_main
enc_blue_main
enc_white_main
enc_bgnd_red
enc_bgnd_grn
enc_bgnd_blu
enc_bgnd_whi
enc_white
enc_cyan
enc_magenta
enc_yellow
enc_amber
enc_lime
enc_indigo
enc_uv
enc_red_adj
enc_green_adj
enc_blue_adj
enc_white_adj
enc_cyan_adj
enc_magenta_adj
enc_yellow_adj
enc_amber_adj
enc_lime_adj
enc_indigo_adj
enc_hue
enc_cto
enc_ctb
enc_color_select
enc_color_mix_mspeed
enc_ctc
enc_shutter_strobe
enc_saturation
enc_diffusion
enc_diffusion_2
enc_edge_distance
enc_position_mspeed
enc_position_blink
enc_color_mix
enc_color_mix_2
enc_background_color_mix
enc_cmixmaft
enc_cmixmart
enc_color_temperature
enc_cri
enc_angle_a
enc_angle_b
enc_angle_c
enc_angle_d
enc_thrust_a
enc_thrust_b
enc_thrust_c
enc_thrust_d
enc_frame_assembly
enc_gobo_select
enc_gobo_ind_spd
enc_gobo_select_2
enc_gobo_ind_spd_2
enc_gobo_select_3
enc_gobo_ind_spd_3
enc_beam_fx_select
enc_beam_fx_ind_spd
enc_beam_fx_select_2
enc_beam_fx_ind_spd_2
enc_animation_select
enc_animation_ind_spd
enc_cooling_fan
enc_dim_curve
enc_global_mspeed
enc_lt_diffusion
enc_med_diffusion
enc_color_mix_mode
enc_edge_mode
enc_edge_adjust
enc_effect_macros
enc_form_mspeed
enc_tint
enc_color_temperature
enc_color_mix_mode_2
enc_color_crossfade
enc_cie_x
enc_cie_y
enc_cie_x_2
enc_cie_y_2
enc_cie_x_3
enc_cie_y_3
enc_cie_x_4
enc_cie_y_4
enc_cie_x_5
enc_cie_y_5
enc_cie_x_6
enc_cie_y_6
enc_cie_x_7
enc_cie_y_7
enc_cie_x_8
enc_cie_y_8

Wheels - By category

The encoder wheels are also available by category:

Category#Description
0Uncategorized
1Intensity
2Focus
3Color
4Image
5Form
6Shutter

Each category will have its own set of encoder wheels depending on the fixture selected

VariableDescription
catX_wheel_countHow many wheels are in this category
catX_wheel_Y_labelLabel for Wheel Y of Category X
catX_wheel_Y_stringvalString/Int for Wheel Y of Category X
catX_wheel_Y_floatvalFloat value for Wheel Y or Category X
catX_wheel_Y_oscnameOSC path value (from label)

There is a sample Stream Deck + configuration file in the github repository that demonstrates how this can be used effectively to manage all encoders on a single Stream Deck + page.

Group labels

To allow the use of buttons to select groups, and capture the group label for use on the buttons, there are a set of variables that hold this information.

The module captures group labels from group_label_1 up to your configured Labels to poll value.

By default this is:

group_label_1 through group_label_30

Feedbacks

Feedbacks let a button's style change when something happens. There are three feedbacks available:

FeedbackDescription
When cue is pendingChanges the button's foreground and background color when the cue that's pending on the console matches the one entered in the Cue List/Number fields.
When cue is activeChanges the button's foreground and background color when the cue that's active the console matches the one entered in the Cue List/Number fields.
When connection to console changesChanges the button's foreground and background color when Companion's connection to the Eos console changes (connected or disconnected).

Note: ETC Element consoles only have a single cue list: 1.

Presets

Presets help you quickly configure new buttons. There are several presets available:

CategoryNameDescription
CuesCue #Runs the cue number. Adds feedback to show whether this cue is active or is pending. Don't forget to change the cue number in the feedbacks too!
CuesGo [CUE] [INTENSITY%]The same as the "Go" button on your console. Also shows the pending cue number and the cue's intensity as the button's text.
CuesStop/BackThe same as the "Stop/Back" button on your console.
Status[CURRENT CUE NUMBER/LABEL]No action when pressed. Shows the number and label of the current cue.
Status[SHOW NAME]No action when pressed. Shows the name of the loaded show.
Status[COMMAND LINE]No action when pressed. Shows the command line for the user (set in the module's config).

Custom command

This can be used to run complex commands that aren't possible to create using the above actions.

Each custom command has three properties:

  • Before:
    • Clear command line of anything that may already be on it.
    • Keep command line and append this command to it.
  • Command: The command to run.
  • After:
    • Add to command line but don't run the command.
    • Run this command.

You can use these properties to create actions on different buttons and piece together complete commands from different button presses.

Examples

CommandEos Result
Go_to_cue 5Triggers cue 5 with its timing.
Chan 12 thru 16 at 100Sets intensity of channels 12-16 to 100%.
Chan 4 sneak 5Sneaks channel 4 over 5 seconds.
Chan 4 sneak 1:30Sneaks channel 4 over 1 minute 30 seconds.
Chan 1.1 thru 1.12 at 50Sets Channel 1 Cell 1 thru Chan 1 Cell 12 to 50%.
Group 1 at outGroup 1 intensity to 0%.
Chan 80 thru 100 Effect 150Runs effect 150 on channels 80-100.
Chan 80 thru 100 EffectStops effects on channels 80-100.

Details

Manufacturer
ETC
Product
EOS
Latest Version
v2.2.3
Authors
Steve Therrien
Steve Palm
Nic Rossmann
Contributors
n9yty(56)
Julusian(27)
peternewman(15)
SteveTherrien(14)
NRossmann(14)

Open Issues and Requests

anupamme#115 fix: upgrade brace-expansion to 5.0.8, 3.0.3, 2.1.3, 1.1.17 (CVE-2026-14257)anupamme#114 fix: upgrade brace-expansion to 5.0.7, 1.1.16, 2.1.2 (CVE-2026-13149)Raiden38#104 [Feature]: Current Cue Timecode313ctric#103 Rework Label PollingGeorgeEstep#97 [BUG] Eos module does not connect.

To file a new issue, you need to sign up for a user on GitHub.

Go to GitHub issues →

In other news

Buttons v1.8 Main with text

Buttons v1.8

October 2, 2026

Buttons v1.8 IBC award win

Bitfocus wins IBC2026 Best of Show Award for latest Buttons enhancements

September 21, 2026

Buttons v1.8 grey background

Biggest functionality boost yet makes Buttons the perfect platform for broadcast and media management

September 10, 2026

Vivid Buttons on screen

Bitfocus Buttons makes complex OB production feel simple

August 10, 2026

View all news →

More from ETC

Echo Integration Interface

ETC

Community
Lighting
View Connection

Paradigm

ETC

Community
Lighting
View Connection