Blackmagic Design ATEM Protocol
mush
I programme in the dark!
G'day all,
Has anyone done any work with the Blackmagic Design ATEM equipment?
If so would you be willing to share your findings?
I have a TV Studio on my bench that I am supposed to write a control module for but I have not been able to find the protocol spec anywhere.
Cheers
Mush
Has anyone done any work with the Blackmagic Design ATEM equipment?
If so would you be willing to share your findings?
I have a TV Studio on my bench that I am supposed to write a control module for but I have not been able to find the protocol spec anywhere.
Cheers
Mush
Comments
-
Try here...
http://www.blackmagicdesign.com/au/support/detail?sid=3962&pid=3973&leg=false&os=win
There's a 53MB operators manual and support notes. I think there are details in there. -
There is also an SDK available if you can't get native control (there is a bit of talk in their forums about intergrators unable to control them as the protocol wasn't available - things may have changed since though) and try to roll your own PC (or even RaspberryPI) based proxy interface between the ATEM and AMX master.
http://www.blackmagicdesign.com/au/support/sdks -
Thanks for the feedback guys but I've already been down those paths.
The SDK does not describe the protocol.
Several companies have reversed engineered the protocol using the SDK and/or packet sniffing.
I can and will reverse engineer the protocol if I have to but I'm hoping that I can avoid doing so.
It doesn't seem unreasonable as it appears to be a very popular protocol. -
I have now reverse engineered the protocol twice for the ATEM switchers using Wireshark. It's a giant pain in the butt. There is a constant heartbeat you have to send and acknowledge, which includes an iterator with each packet. I say I've done this twice, because both units we have used have behaved in slightly different ways.
As much as I love the switcher itself, the fact that it doesn't have an integrator friendly API is a deal-breaker.
If you're still interested in going down that path, I'll try to answer any questions you may have. -
If you're still interested in going down that path, I'll try to answer any questions you may have.
G'day Nick,
Yes, still very much interested.
Any documentation, code examples etc. that you would be willing to share would be awesome.
I've sent you a PM with my email address.
Cheers
Mush -
If you're still interested in going down that path, I'll try to answer any questions you may have.
G'day Nick,
I have a BMD TVS in front of me right now.
Are you able to help with the protocol?
Specifically, establishing and maintaining a connection?
Thanks in advance.
Mush -
Here's the last rev of the module I developed. Give this a shot.
Boilerplate:
This code is provided without warranty, and I bear no liability for it's use. Blah blah blah... -
Hi Nick,
I tried to control the ATEM-2 M/E using the same code, you provided however it didn't respond on the command sent to the vdev, not even with error response however when I connect at first it gives me the following:
Line 1 (14:02:06):: CIpEvent::OnLine 0:5:1
Line 2 (14:02:06):: BlackMagic ATEM Comm: *** Client Socket ONLINE ***
Line 3 (14:02:06):: CIpEvent::OnLine 0:6:1
Line 4 (14:02:06):: BlackMagic ATEM Comm: *** Server Socket ONLINE ***
Line 5 (14:02:06):: BlackMagic ATEM Comm: Program Source = 0
Line 6 (14:02:06):: BlackMagic ATEM Comm: Preview Source = 110
Line 7 (14:02:06):: BlackMagic ATEM Comm: Program Source = 13
Line 8 (14:02:06):: BlackMagic ATEM Comm: Preview Source = 140
Line 9 (14:02:06):: BlackMagic ATEM Comm: Program Source = 13
Line 10 (14:02:06):: BlackMagic ATEM Comm: Program Source = 0
Line 11 (14:02:06):: BlackMagic ATEM Comm: Preview Source = 110
Line 12 (14:02:06):: BlackMagic ATEM Comm: Program Source = 45
Line 13 (14:02:06):: BlackMagic ATEM Comm: Preview Source = 140
Line 14 (14:02:06):: BlackMagic ATEM Comm: Program Source = 45
Line 15 (14:02:06):: BlackMagic ATEM Comm: Program Source = 0
Line 16 (14:02:06):: BlackMagic ATEM Comm: Preview Source = 110
Line 17 (14:02:06):: BlackMagic ATEM Comm: Program Source = 45
Line 18 (14:02:06):: BlackMagic ATEM Comm: Preview Source = 140
Line 19 (14:02:06):: BlackMagic ATEM Comm: Program Source = 45
Line 20 (14:02:06):: BlackMagic ATEM Comm: Program Source = 0
the same SDK is provided for all switchers so I assumed for at least the inputs from 1-6 we should at least be able to control through your code, have you worked around the ATEM 2 and what do you think I can do to troubleshoot more?
I appreciate your help. -
Dear Nick,
Thank you for your code, I understood that every time you connect to this mixer parts in each command will change, and you need to track through wireshark at least the initiation command in order to get the correct responses. -
Late to this post, but check this out by "Skaarjog" http://skaarhoj.com/fileadmin/BMDPROTOCOL.html They've created their own SDK that runs on an $35 Arduino. I have this up and running with a bit of coding on both the Arduino side and on the AMX side. Much easier than the BMD SDK.
-
Late to this post, but check this out by "Skaarjog" http://skaarhoj.com/fileadmin/BMDPROTOCOL.html They've created their own SDK that runs on an $35 Arduino. I have this up and running with a bit of coding on both the Arduino side and on the AMX side. Much easier than the BMD SDK.
Would you care to share your code? -
Yeah, that Skaarjog library is awesome for any of your BMD interfacing needs. Everything you need is up on their GitHub account. They've also got some tutorials to help you get started.
Just one thing to keep in mind, it's GPL licensed. If you do build anything on it, don't be a douche and ignore the license, make sure you open up the source of the resulting system. -
Here's the last rev of the module I developed. Give this a shot.
Boilerplate:
This code is provided without warranty, and I bear no liability for it's use. Blah blah blah...
Nick and others,
has anyone developed a working AMX source code?
An ATEM protocol document is not released yet (since years), and it seems to be changed as in the Nickm sample, he was expecting $31 as byte position #10 instead here I receive $20.
Anyhow, even chaning that byte, the dialog starts and goes fine for some seconds
Besides that, the main problem for me is to understand the meaning of byte position #10 inside the hexadecimal 80 0c message.
Explaining a little better .... I am sniffing packets between ATEM Software Control and ATEM Television Studio
ATEM SOFT.CONTROL -> 10 14 2e 07 00 00 00 00 00 ec 00 00 01 00 00 00 00 00 00 00 (HELLO)
ATEM TVS -> 10 14 2e 07 00 00 00 00 00 20 00 00 02 00 00 33 00 00 00 00 (HELLO RESPONSE: yes, tell me more)
ATEM SOFT.CONTROL -> 80 0c 2e 07 00 00 00 00 00 ab 00 00 (STARTING DIALOG:I am here - PLEASE LOOK AT THE ab)
ATEM TVS -> 30 14 2e 07 00 00 00 00 00 20 00 00 02 00 00 33 00 00 00 00 (HELLO RESPONSE: yes, tell me more - SECOND REQUEST)
ATEM SOFT.CONTROL -> 80 0c 2e 07 00 00 00 00 00 f9 00 00 (STARTING DIALOG:I am here - PLEASE LOOK AT THE f9)
..... ATEM Software and ATEM TVS exchanges data .....
It seems that ab and f9 are strictly depending on the uuid 2e 07
So, what does that byte means? and how can I calculate if the uuid is different ?
Thank you very much
Fabrizio Lorenzini
-
I've recently integrated my ATEM 2 M/E switcher into my AMX system and I'm happy to provide the code. I'm using the Skaarhoj protocol system running on an Arduino acting as a interface between the AMX and the ATEM. Essentially I telnet into the Arduino, execute commands, Shaarhoj library talks to ATEM and provides feedback on the Arduino for the AMX.
Leave a Comment
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums