I first started using Blackmagic ATEM production video switchers in 2020 with the ATEM Mini Pro. One of the first things I noticed was that it lacked a physical button to turn on and off the Downstream Keyer (DSK). This is what prompted me to develop MixEffect in the first place. I wanted to toggle the DSK from my iPhone or iPad without having to use ATEM Software Control on my Mac.
By the time the ATEM Mini Extreme ISO — which has physical buttons for enabling just the first DSK — came out, MixEffect was well into development. With its customizable interface, I didn’t need to interact with the physical switcher anymore.
Over the years, however, it still nagged me that I wasn’t able to make better use of many of the buttons on my ATEM switchers, such as:
- Picture in Picture buttons
- Top-Left
- Top-Right
- Bottom-Left
- Bottom-Right
- Transition Duration buttons
- 0.5
- 1.0
- 1.5
- 2.0
- Transition Pattern
- Horizontal Wipe
- Vertical Wipe
- Transition DVE
- Push Right
- Squeeze Right
There may not have been an easy way to reprogram them back in 2020, but in 2024, Bitfocus Companion Triggers and MixEffect’s feedback variables, make this possible! Before we dive into the details, check out the animated GIF below where I press the Push Right and Squeeze Right buttons on the ATEM Mini Pro to turn on and off the DSK.

For those people who don’t have a Stream Deck, this can be a handy method to get extra use out of those unused buttons on their ATEM Mini or ATEM SDI switchers.
Requirements
- Bitfocus Companion (3.2 or higher)
- MixEffect with the HTTP Feedback Server enabled on your Switcher Connection
- MixEffect Module for Companion (ships with Companion)
Note: You may be able to replicate this with the built-in ATEM module for Companion, but this article uses the MixEffect Module with Companions Condition checks.
Companion Triggers
When you open up Companion’s web admin, there’s a tab at the top called Triggers. This is where you’ll create your trigger events, conditions, and actions.

In the screenshot above, I’ve created sixteen different triggers that operate when you press on twelve physical buttons on the ATEM Mini Pro. Let’s dive deeper into these triggers, starting with the Transition DVE Push Right -> DSK On trigger.
Turning the DSK On
This trigger will turn on the Downstream Keyer when the DVE: Push Right Transition Style button is pressed. That’s the button right above Mix on the ATEM Mini Pro.
Event
The first thing to configure is what kind of event Companion will be listening to. Options include:
- On any button depress
- On any button press
- On computer becoming locked
- On computer becoming unlocked
- On condition becoming false
- On condition becoming true
- On Sunrise/Sunset
- On variable change
For this trigger, we add the On condition becoming true event. You can create additional events and conditions, but for this trigger, we’ll only need one.

Condition
Next, we set up a condition to watch the value of the Transition: DVE: Style action from the MixEffect Companion Module. We set the Style parameter to Push Right since that is what is set when you press the physical button on the ATEM Mini Pro.

Actions
Finally, we configure the actions that should run when this trigger is executed. We do three things:
- Set the Transition: DVE Style to Push Top Left. We do this to reset the style to something other than what we’re triggering. This will allow us to press the button again (after a short period) and have the actions run again.
- Set the Transition: Style to Mix. I rarely use Pattern and DVE transitions, so I set the default transition style back to Mix (or Dip). If you didn’t set this and you press the Auto button, it would use the Push Top Left DVE transition style, which is probably not what you want.
- Set the DSK to On Air. This is what we wanted to do in the first place, activating the Downstream Keyer on the ATEM Mini Pro.
Reversing the Actions
To turn off the DSK, we create another trigger that runs when you press the physical button to set the Transition: DVE: Style to Squeeze Right. In the actions section, instead of turning on the DSK, we turn it off.

Selecting Next and Previous Stills
Selecting the next or previous still image via hardware buttons on the ATEM is something many people have asked for. Here’s how we accomplish this:
- Create two triggers tied to the Transition Pattern buttons on the ATEM.
- Transition Pattern Horizontal Wipe -> Previous Still
- Transition Pattern Vertical Wipe -> Next Still
- Set the event to On condition becoming true.
- Set the condition to use MixEffect Module’s Transition: Wipe: Pattern.
- Set the pattern to Left to Right Bar and Top to Bottom Bar for the two respective triggers.
- Configure the actions as follows:
- Media Player: Still Cycle
- Set the Transition: Wipe: Pattern to Horizontal Barn Door
- Set the Transition: Style back to Mix
The screenshot below shows how it should be configured for selecting the next still image:

Timing Considerations
It’s important to note that evaluating the triggers and running the actions are not instantaneous. Don’t press the buttons too quickly, as this may cause the Pattern style to get stuck on either Left to Right Bar or Top to Bottom Bar.
When this happens, you have to update the Transition: Wipe: Pattern to something other than those two monitored patterns in order for the triggers to work again. This is because the event and conditions we’re monitoring are when the pattern styles become active. If they are currently active, the trigger can’t run again!
Mix and Dip Times Two
The four Duration buttons on the ATEM Mini Pro can work with the Mix and Dip buttons to give you access to eight programmable buttons. This is because you can monitor the Transition: Dip: Rate and Transition: Mix: Rate values separately.

In the example above, we’re resetting the rate to 31 frames (1 second and 1 frame) so we can take advantage of using the 1.0 button on the ATEM. If you want your transitions to be 30 frames (1 second), keep in mind that you should not create a trigger for the 1.0 button on the switcher.
Picture in Picture Buttons
With the Picture in Picture buttons, we add three condition checks to each of the four triggers to make sure we’re running them when the buttons are pressed.

Each trigger checks the Position X, Position Y, and Size of the DVE to determine if one of the buttons has been pressed.
- Top-Left: Position X is -12.5, Position Y is 7, and Size is 0.2
- Top-Right: Position X is 12.5, Position Y is 7, and Size is 0.2
- Bottom-Left: Position X is -12.5, Position Y is -7, and Size is 0.2
- Bottom-Right: Position X is 12.5, Position Y is -7, and Size is 0.2
Use Only the Buttons You’re Never Using
If you frequently use the DVE on your ATEM, you probably shouldn’t create a trigger for the Picture in Picture buttons. For example, if your DVE is On Air, pressing the button will cause the following to occur.
- The DVE will reposition to the top-left, top-right, bottom-left, or bottom-right corner of your screen.
- The action will run.
- The DVE will increase in size from 0.20 to 0.21.
Obviously, this is not ideal. If you never use the DVE or if you are sure the DVE is not On Air when you press the button, however, then it may be okay to create a trigger for the PIP buttons.
Up to 16 Programmable Buttons on the ATEM Mini Pro
For the ATEM Mini Pro, I’ve created 16 different actions that run when I press 12 buttons on the ATEM Mini Pro. Four of those buttons perform eight actions depending on whether or not Mix or Dip is the currently selected Transition Style.
More Buttons on the ATEM Mini Extreme and ATEM SDI Extreme
If you have an ATEM Mini Extreme, ATEM Mini Extreme ISO, or ATEM SDI Extreme ISO, you have access to even more buttons with which to create triggers. There’s ten Transition Styles to choose from instead of four on the ATEM Mini Pro. And, there’s six Picture in Picture buttons on the larger ATEM switchers than their smaller brethren.
You can tie these buttons to run additional macros or recall SuperSource Presets in MixEffect. The skies the limit!
Troubleshooting
MixEffect Module Can Communicate With Multiple ATEMs
MixEffect can connect to multiple ATEMs, either at the same time or separately. If you have configured your OSC ports to be the same on each Switcher Connection entry in MixEffect, note that Companion will communicate to whatever ATEM MixEffect is currently connected to.
As a result, a trigger that should run only on the ATEM Mini Pro might inadvertently run on the ATEM Mini Extreme (and vice versa).

A future version of MixEffect and the MixEffect Module for Companion may include a switcher name with which you can add another condition in the trigger to prevent this from happening.
Concluding Thoughts
If you have an ATEM with a bunch of physical buttons that you never press, explore this method to reprogram them to do something you actually want!
Leave a comment down below if you found this article useful. And consider becoming a Labs member or subscribing to my YouTube Channel, where I have been posting videos showing people how to get the most of our MixEffect and ATEM switchers.

6 responses to “Reprogram Your ATEM Switcher Buttons Using MixEffect and Companion”
Hi Adam. Fantastic addition to the less used buttons on the Atem mini Pro.
Just curious about something.
I assume both companion, and mixeffect will need to be turned on in order to utilize these newly reprogrammed buttons?
Or can these buttons (once configured) be used without the use of companion & mix effect?
Thanks
Yes, both Companion and MixEffect are required for this to work. Note, if the ATEM Companion module has the right variables and conditions, you can use it just with Companion (no MixEffect). That said, there might be variables and conditions that MixEffect exposes to Companion Triggers that don’t exist in the ATEM Module (and vice versa).
Does this require MixEffect Pro, or does it run with MixEffect?
It requires the Pro upgrade to MixEffect (free to download on the App Store) or the paid-up front MixEffect Pro. If you’re on the trial, it will work until the trial runs out.
The buttons I’d like to re-use are the camera control and camera audio buttons on my Extreme Pro. Are there triggers for those?
Some of the camera audio buttons may be re-mappable. The problem with the buttons like Gain, Focus, and Shut is that they are momentary buttons. There’s no way that I know of to detect when the user presses those. The audio afv/on/off buttons should be accessible, but the MixEffect Module in Companion doesn’t expose them properly yet. You’ll have better luck using the ATEM Module in Companion to get your variables and conditions in the trigger.