Skip to main content

TCP Link for ATEM (on Blue Pill)

The Blue Pill app called dclink-tcp has a special mode to convert the Blackmagic Design ATEM protocol into simple TCP commands. The focus of this is to offer a relatively compatible and more comprehensive and powerful substitute to the long term SKAARHOJ product called "TCP Link for ATEM" (formerly known as "ATEM-TCP Link"). The command set and general workings makes it an almost drop-in replacement for existing installations that need support for the newer ATEM switchers. This page deals exclusively with that. However, if you are about to make a new integration with ATEM using dclink-tcp, please consider to use the more generic API offered instead of the special mode.

image.png

A more powerful and updated version of "TCP Link for ATEM" is available as a licensed application (dclink-tcp) that you can run on any Blue Pill device. In this mode, the application limits itself to a single device connection to a single ATEM switcher and maintains the legacy protocol.

Command Examples

Send "Cut" to ATEM M/E 1:

performCutME:0=1

Select Input 3 on Aux 1:

AuxSourceInput:0=3

Run Macro 1:

MacroAction:1=0

Generally, there is a quite nice method to spotting commands: Simply make a change in ATEM software control and a line with the change is returned in the TCP client. If you sent that line yourself, you would normally make that change to the switcher. Sending the line without the "=" will request the value (but you don't need that usually as you are "subscribed" to changes happening). Commands you can't spot like this would be such as "performCutME" since that is a one shot trigger command.

See the section below for more info on the commands and the compatibility differences.

Setup

On your Blue Pill, go to Packages and search it up, install it and start it

image.png

Check that devicecore-connector is also installed and running

image.png

image.png

Use nc, telnet or Putty to connect to port 8899 on your Blue Pill device

You should see a prompt about like this. Try to use ATEM software control to make a simple change to the inputs and you should see it reflected in the terminal window:

image.png

Commands

The original manual for ATEM TCP Link is found here. Not all commands are transferred over. Assuming you are only considering the legacy "TCP Link for ATEM" for drop-in replacement of the previous product, you should simply consider the commands you are using already and nothing more. Some will be available, others may not and yet others may work slightly differently. If you are changing your software anyway, it's highly recommended to use the more generic dclink-tcp interface to control your ATEM than the legacy command set.

  • If you send a command name without its parameters (those numbers separate from the command by a colon, aka "dimensions"), it will return the values of for all known parameters of that command. For example, sending "InputLongName" will return names for all input sources. This is not so on the original TCP Link for ATEM where you need to specify all parameters.
  • Some parameters can only be changed on Blue Pill when other features are enabled. For example, Wipe parameters can only be changed when the current transition is Wipe.

Confirmed compatibility table:

CommandComment
performAutoME

OK

performCutMEOK
performDownstreamKeyerAutoKeyerOK
performFadeToBlackMEOK
PreviewInputVideoSourceOK
ProgramInputVideoSourceOK 
AuxSourceInputOK
AtemConnectedOK
TransitionPositionOK
TransitionStyleOK
TransitionStyleNextOK
TallyBySourceTallyFlagsWorks slightly differently, where program and preview is not combined into bits in a single value but rather they are second parameters (dimensions) with 1/0 value.
TransitionMixRateOK
TransitionDipRateOK
TransitionDipInputOK
KeyerOnAirEnabledOK

DownstreamKeyerOnAir

OK

DownstreamKeyerTie

OK

TransitionNextTransition

Works differently with two parameters (dimensions) instead of one

MacroAction

OK