45
Studio
Camera
Control
Protocol
Blackmagic
Video
Device
Embedded
Control
Protocol
Version 1.1
You can use the Video Device Embedded Control Protocol to control Blackmagic URSA Mini
and Blackmagic Studio Cameras using your Arduino shield and construct devices that integrate
with our products. Here at Blackmagic Design, our approach is to open up our protocols and we
eagerly look forward to seeing what you come up with!
Overview
This document describes an extensible protocol for sending a uni-directional stream of small
control messages embedded in the non-active picture region of a digital video stream.
The video stream containing the protocol stream may be broadcast to a number of devices.
Device addressing is used to allow the sender to specify which device each message is
directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritise and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
Destination device (uint8)
Device addresses are represented as an 8 bit unsigned integer. Individual
devices are numbered 0 through 254 with the value 255 reserved to
indicate a broadcast message to all devices.
Command length (uint8)
The command length is an 8 bit unsigned integer which specifies the length
of the included command data. The length does NOT include the length of
the header or any trailing padding bytes.
Command id (uint8)
The command id is an 8 bit unsigned integer which indicates the message
type being sent. Receiving devices should ignore any commands that they
do not understand. Commands 0 through 127 are reserved for commands
that apply to multiple types of devices. Commands 128 through 255 are
device specific.
Reserved (uint8)
This byte is reserved for alignment and expansion purposes. It should be
set to zero.
Command data (uint8)
The command data may contain between 0 and 60 bytes of data.
The format of the data section is defined by the command itself.
Summary of Contents for Design 3G-SDI Arduino Shield
Page 30: ...2017 11 Blackmagic 3G SDI Arduino Shield...
Page 58: ...Manuel d utilisation et d installation novembre 2017 Fran ais Blackmagic 3G SDI Arduino Shield...
Page 86: ...Installations und Bedienungsanleitung November 2017 Deutsch Blackmagic 3G SDI Arduino Shield...
Page 142: ...2017 11 Blackmagic 3G SDI Arduino Shield...
Page 170: ...168 2017 11 Blackmagic 3G SDI Arduino Shield...