
155
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.
Padding (uint8[])
Messages
must
be
padded
up
to
a
32
bit
boundary
with
0x0
bytes.
Any padding
bytes
are
NOT
included
in
the
command
length.
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...