Blackmagic 3G SDI Shield For Arduino Manual

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 262 [warning: Documents this large are best viewed by clicking the View PDF Link!]

Installation and Operation Manual
June 2018
Blackmagic
3G-SDI Shield
for Arduino
English, 日本, Français, Deutsch, Español,
中文, 한국어, Русский and Italiano.
Languages
To go directly to your preferred language, simply click on the hyperlinks listed in the
contents below.
English 3
日本31
Français 60
Deutsch 89
Español 118
中文 147
국어 176
Русский 205
Italiano 234
Welcome
Thank you for purchasing your new Blackmagic 3G-SDI Shield for Arduino.
We are always interested in new technologies and are excited by all the creative ways our SDI
products can be used. With your 3G-SDI Shield for Arduino, you can now integrate the Arduino
into your SDI workflow to get more control options with your Blackmagic Design equipment.
For example, ATEM switchers can control Blackmagic URSA Mini and Blackmagic Studio
Cameras via data packets embedded in the SDI signal. If you are not running an ATEM switcher,
but you would still like the ability to control your Blackmagic cameras, you can build custom
control solutions with your 3G-SDI Shield for Arduino. The shield gives you the SDI platform to
build upon, so you can loop the program return feed from your switcher, through the shield, and
into the program input on your Blackmagic Cameras.
Writing the code to send the commands to the camera is easy and all the supported commands
are included in this manual.
You can control the cameras using a computer, or you can add buttons, knobs and joysticks to
your shield and build dynamic hardware controllers for adjusting features such as lens focus
and zoom, aperture settings, pedestal and white balance control, the camera’s powerful built
in color corrector, and much more. Building your own custom controller is useful for production,
but it’s also a lot of fun!
We are excited by this technology and would love to hear about any SDI controllers you have
built for your 3G-SDI Shield for Arduino!
This instruction manual contains all the information you need to start using your
Blackmagic3G-SDI Shield for Arduino. Please check the support page on our website at
www.blackmagicdesign.com for the latest version of this manual and for updates to your
shield’s internal software. Keeping your software up to date will ensure you get all the latest
features! When downloading software, please register with your information so we can keep
you updated when new software is released. We are continually working on new features and
improvements, so we would love to hear from you!
Grant Petty
CEO Blackmagic Design
English
Getting Started 5
Attaching and Soldering Headers 5
Mounting to the Arduino Board 6
Plugging in Power 6
Connecting to SDI Equipment 7
Software Installation 8
Installing Internal Software 8
Installing Arduino Library Files 9
Blackmagic Shield for Arduino Setup 10
I2C Address 10
Video Format 11
Programming Arduino Sketches 11
Testing your Blackmagic Shield andLibrary Installation 12
LED Indicators 13
Attaching Shield Components 14
Communicating with yourBlackmagic Shield for Arduino 14
High Level Overview 14
I2C Interface 15
Serial Interface 15
Example Usage 15
Studio Camera Control Protocol 16
Blackmagic SDI Camera Control Protocol 17
Overview 17
Assumptions 17
Blanking Encoding 17
Message Grouping 17
Abstract Message Packet Format 17
Defined Commands 18
Example Protocol Packets 24
Developer Information 25
Physical Encoding - I2C 25
Physical Encoding - UART 25
Help 29
Warranty 30
Contents
Blackmagic 3G-SDI Shield for Arduino
4
Getting Started
Attaching and Soldering Headers
Your Blackmagic 3G-SDI Shield for Arduino is supplied with 4 stackable headers, including two
8pin headers, a 10 pin, and a 6 pin header. Headers are bridging connectors used to mount
your shield to the Arduino board, and because they are stackable you can attach other shields
on top with additional components, such as control buttons, knobs and joysticks. The header
layout supports mounting to Arduino boards with an R3 footprint, such as the Arduino UNO.
To attach the headers to your shield:
1 Insert the pins of each header through the corresponding pin holes on each side of
your Blackmagic 3G-SDI Shield. Refer to the illustration below for the header layout
arrangement.
NOTE When connecting to the shield, communication is via I2C or Serial.
Werecommend I2C as this enables the serial monitor to be used and makes all
other pins available. Select the communication mode when defining the
BMDSDIControl object in the sketch. Refer to the ‘Communicating with your
Blackmagic 3G-SDI Shield for Arduino’ section for more information.
2 Solder the base of each header pin to the underside of your shield. Make sure
the solder on each pin creates a firm join with the pin hole, but does not touch
thesolderon nearby pins.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
5Getting Started
TIP To help make sure all pins on your shield are aligned with the female header pin
slots on the Arduino board, it’s helpful to solder just one pin on each header first.
Nowplace the shield onto the Arduino board to check the pin alignment. If any
headers need adjusting, you can then warm the solder joint on the corresponding
header and improve its alignment. This is a much easier method than soldering all the
joints first and then trying to make adjustments.
Mounting to the Arduino Board
Now that your headers are soldered to your shield, you can mount the 3G-SDI shield to your
Arduino board.
Carefully holding each side of the shield, align the header pins with your Arduino board’s
headers and gently push the pins into the header slots. Be careful not to bend any of the pins
while mounting the shield.
With all pins plugged in, the connection between the Blackmagic
shield and the Arduino board should be firm and stable.
Plugging in Power
To power your Blackmagic 3G-SDI Shield for Arduino, simply plug in a 12V power adapter into
the 12V power input on your Blackmagic shield.
NOTE Plugging power into the Arduino board will not provide sufficient power to the
Blackmagic shield, however, powering the Blackmagic shield will provide power to the
Arduino as well, so make sure power is connected to your Blackmagic shield only.
6Getting Started
Connecting to SDI Equipment
With power supplied, you can now plug your Blackmagic 3G-SDI Shield into your
SDIequipment. For example, to plug into a switcher and a Blackmagic URSA Mini:
1 Plug the program output from your switcher to the Blackmagic 3G-SDI Shield’s
SDI input.
2 Plug your Blackmagic 3G-SDI Shield’s SDI output into the ‘program’ SDI input marked
PGM on your Blackmagic URSA Mini.
A connection diagram is provided below.
Switcher Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
SDI ‘PGM’ Input
Blackmagic URSA Mini
Thats all there is to getting started!
Now that your shield is mounted to the Arduino board, powered, and connected to your
SDIequipment, you can install the internal software and library files, program the Arduino
software and begin using the shield to control your equipment.
Continue reading the manual for information on how to install the shield’s internal software, and
where to install the Arduino library files so the shield can communicate with your Arduino.
TIP You can also use your Blackmagic 3G-SDI Shield for Arduino to control other
Blackmagic Design products, such as Blackmagic MultiView 16. For example, when
your shield is connected to input 16, you can display a tally border on the multi view.
7Getting Started
Software Installation
NOTE Before installing the Blackmagic Shield for Arduino setup utility, download the
latest Arduino IDE software from www.arduino.cc and install it on your computer.
After installing the Arduino software, you can now install your Blackmagic 3G-SDI
Shield’s internal software.
Installing Internal Software
Blackmagic Shield for Arduino Setup is used to update your shield’s internal software. The
internal software communicates with the Arduino board, and controls the board using Arduino
library files. These library files are installed with the setup software and all you need to do is
copy the folder containing the files and paste it into your Arduino application folder. You can
find information about the library files and how to install them in the next section of this manual.
We recommend downloading the latest Blackmagic Shield for Arduino software and updating
your shield so you can benefit from new features and improvements. The latest version can be
downloaded from the Blackmagic Design support center at
www.blackmagicdesign.com/support
To install the internal software using Mac OS X:
1 Download and unzip the Blackmagic Shield for Arduino software.
2 Open the resulting disk image and launch the Blackmagic Shield for Arduino installer.
Follow the on screen instructions.
3 After installing the latest version of Blackmagic Shield for Arduino installer, power your
Blackmagic shield and connect it to your computer via a USB cable.
4 Now launch the setup utility and follow any onscreen prompt to update your shield’s
internal software. If no prompt appears, the internal software is up to date and there is
nothing further you need to do.
To install the internal software using WIndows:
1 Download and unzip the Blackmagic Shield for Arduino software.
2 You should see a Blackmagic Shield for Arduino folder containing this manual and
the Blackmagic Shield for Arduino installer. Double-click the installer and follow the
onscreen prompts to complete the installation.
3 After installing the latest version of the Blackmagic Shield for Arduino installer, power
your Blackmagic shield and connect it to your computer via a USB cable.
4 Now launch the setup utility and follow any onscreen prompt to update your shield’s
internal software. If no prompt appears, the internal software is up to date and there is
nothing further you need to do.
8Software Installation
Installing Arduino Library Files
The programs written to control your Arduino are called sketches and your Blackmagic 3G-SDI
Shield for Arduino uses Arduino library files that help make writing sketches easier. After
installing your shield’s setup software, the library files are installed into a folder named ‘Library.
All you need to do now is copy the folder containing the library files and paste it into your
Arduino libraries folder.
NOTE The Arduino IDE software needs to be closed when installinglibraries.
To install the library files on Mac OS X:
1 Open ‘Blackmagic Shield for Arduino’ in your ‘applications’ folder.
2 Open the ‘Library’ folder and right click/copy the folder named: BMDSDIControl.
3 Now go to your computer’s ‘documents’ folder and open the Arduino folder.
4 You will see a sub-folder named ‘libraries’. Paste the BMDSDIControl folder into the
‘libraries’ folder.
To install the library files on Windows:
1 Open the Programs/ Blackmagic Shield for Arduino folder.
2 You will now see a subfolder named ‘Library. Open this folder and then right click/copy
the folder named: BMDSDIControl.
3 Now go to your computer’s ‘documents’ folder and open the Arduino folder.
4 You will see a sub-folder named ‘libraries’. Paste the BMDSDIControl folder into the
‘libraries’ folder.
Thats all you need to do to install the Blackmagic Design library files on your computer. When
running the Arduino software, you will now also have Blackmagic Design example sketches to
choose from.
Simply go to the ‘file’ drop down menu in the Arduino software menu bar, and select ‘examples.
Now select BMDSDIControl and you will see a list of example sketches you can use.
With the library files stored in the correct folder, your shield can now use them to communicate
with the Arduino board. All you need to do is program the Arduino IDE software. Refer to the
‘Programming Arduino Sketches’ section for more information.
NOTE If an updated library file with examples is released in the future, you will need to
delete the old BMDSDIControl folder and replace it with the new folder using the
method described above.
9Installing Arduino Library Files
Blackmagic Shield for Arduino Setup
The Blackmagic Shield for Arduino Setup software lets you change
settings on your shield such as the I2C address and video output format.
With Blackmagic Shield for Arduino Setup installed on your computer, you can now change
settings for your shield, such as the ‘I2C address’, which identifies your shield so the Arduino
board can communicate with it, and the ‘video format, which sets the output format for
your shield.
I2C Address
In very rare cases, there is a potential for another shield mounted to your Blackmagic shield to
share the same I2C address as your shields default address which will create a conflict. If this
occurs, you can change your shield’s default address setting.
10Blackmagic Shield for Arduino Setup
The default address for your shield is 0x6E, however, you can choose from a range of
addresses between 0x08 and 0x77.
To change the address for your shield:
1 Launch Blackmagic Shield for Arduino Setup and click on your shield’s ‘settings’ icon.
2 In the ‘set address to:’ edit box, type the address you wish to use.
3 Click ‘save.
Video Format
The default output format is selected in the setup utility for when no input is connected. When
an input is detected, the output will follow the same format as the input. If this input is removed
the output will revert to the default output format selected in the utility. You can change the
video format by clicking in the ‘default output format’ drop down menu and selecting the
format you want.
You can choose from the following video output formats:
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Programming Arduino Sketches
The programs, or sketches, written into the Arduino software are very easy to write! Sketches
are written using common ‘C’ programming language. When programming your sketches using
commands from the Studio Camera Control Protocol, the shield embeds these commands into
the SDI output which lets you control your Blackmagic URSA Mini or Blackmagic Studio Cameras.
All supported commands are included in the Studio Camera Control Protocol section of this
manual so you can take the commands from the protocol and use them in your sketch.
11Programming Arduino Sketches
Testing your Blackmagic Shield
andLibrary Installation
After everything is connected as described in the ‘Getting Started’ section and you have
installed the setup software and library files, you’ll want to check that your shield is
communicating with the Arduino board and that everything is working as it should.
A fast way is to open and run the supplied tally blink example sketch.
To do this:
1 Launch the Arduino IDE software.
2 Go to the ‘tools’ menu and select the Arduino board and Port number.
3 From the ‘File’ menu, select ‘Examples/BMDSDIControl’ and choose the sketch
named‘TallyBlink.
4 Upload the sketch to your board.
The Tally Blink example sketch is a fast and easy way to test your Blackmagic 3G-SDI
Shield for Arduino. Rawdata can be sent to your shield via I2C using commands from
the Studio Camera Protocol document, but we have also provided customlibraries to
make programming sketches much easier.
12Testing your Blackmagic Shield andLibrary Installation
NOTE Make sure your Blackmagic Camera’s tally number is set to 1.
You should now see the tally light on your Blackmagic Studio Camera blink once every second.
If you see the tally light blinking you can be sure your Blackmagic shield is communicating with
the Arduino and everything is working properly.
If the tally light is not blinking, check that your Blackmagic camera’s tally number is set to 1.
If you need further assistance, please visit the Blackmagic Design support center at
www.blackmagicdesign.com/support. Refer to the help section of this manual for more
information on the different ways you can get help setting up your shield.
LED Indicators
Your Blackmagic 3G-SDI Shield for Arduino has six indicator LEDs that confirm activity on your
shield such as power, UART, I2C and SPI communication, plus indicators to show when tally and
camera control overrides are enabled.
LED 1 - System Active
Illuminates when power is connected to the shield.
LED 2 - Control Overrides Enabled
Illuminates if you have enabled camera control in your Arduino sketch.
LED 3 - Tally Overrides Enabled
Illuminates if you have enabled tally in your Arduino sketch.
LED 5 - I2C Parser Busy
Illuminates when communication is detected between your shield and the Arduino
using the I2C protocol.
LED 6 - Serial Parser Busy
Illuminates when UART communication is detected.
When your Blackmagic shield is booting, the power indicator will remain off and LEDs 3, 4 and 5
will indicate the following activity.
LED 3 - Application image loading
LED 4 - EEPROM initializing
LED 5 - Memory check in progress
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
13Testing your Blackmagic Shield andLibrary Installation
After a successful boot, the power LED will turn on and all LEDs will resume their standard
functions during operation.
In the rare case of a boot failure, all LEDs except for the failed activity will flash rapidly so you
can identify the cause of the failure.
Attaching Shield Components
If you want to build your own hardware controller, you can create a new shield with buttons,
knobs and a joystick for more tactile, hands on control. Simply mount the custom shield to your
Blackmagic 3G-SDI Shield for Arduino by plugging it into your shield’s header slots. There is no
limit to the types of controllers you can build. You can even replace the circuitry in an old CCU
with your own custom Arduino solution for an industry standard camera control unit.
You can create your own hardware controller and plug it into your Blackmagic
3G-SDI Shield for Arduino for more interactive and refined control.
Communicating with yourBlackmagic
Shield for Arduino
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I2C because of the low pin count and it frees up the serial monitor. This also allows
you to use more I2C devices with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities. Either
or both of these objects can be created in your sketch to issue camera control commands, or
read and write tally data respectively. These objects exist in several variants, one for each of
the physicalI2C or Serialcommunication busses the shield supports.
14Communicating with yourBlackmagic Shield for Arduino
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
15Communicating with yourBlackmagic Shield for Arduino
Studio Camera Control Protocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
16Studio Camera Control Protocol
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the ATEM
Switchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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 prioritize 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.
17Studio Camera Control Protocol
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
18Studio Camera Control Protocol
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
19Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
20Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
21Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
22Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
23Studio Camera Control Protocol
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
24Studio Camera Control Protocol
Developer Information
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following
the internal register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in
the **LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
25Developer Information
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
26Developer Information
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output
connector. When 0, the input signal is passed through to the
output if present, or the shield generates its own SDI
signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately copied
over to the override tally data register. Automatically cleared
by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied
data. When 0, input control data is passed through to the
output unmodified.
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in the
next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in the
next video frame. Automatically cleared once a control packet has
been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when a
new packet has been cached.
27Developer Information
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously from
the next video frame until new data is set. Automatically cleared once
the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame (one
byte per camera). Bit zero indicates a Program tally, while bit one
indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video frame.
Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when a
new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_ was
reset (one byte per camera). Bit zero indicates a Program tally, while
bit one indicates a Preview tally.
28Developer Information
Help
Getting Help
Your Blackmagic 3G-SDI Shield for Arduino is a developers tool designed for you to develop
independently based on your custom requirements.
For the most up to date information about your shield, visit the Blackmagic Design online
support pages and check the latest support material.
Blackmagic Design Online Support Pages
The latest manual, software and support notes can be found at the Blackmagic Design support
center at www.blackmagicdesign.com/support.
Arduino Development Forum
If you have programming questions, you can get help from Arduino development forums on the
Internet. There is a whole community of Arduino developers and many good quality forums
where you can ask software questions, or even find a willing engineer to hire to implement your
solution for you!
Blackmagic Design Forum
The Blackmagic Design forum on our website is a helpful resource you can visit for more
information and creative ideas. This can also be a faster way of getting help as there may
already be answers you can find from other experienced users and Blackmagic Design staff
which will keep you moving forward. You can visit the forum at
https://forum.blackmagicdesign.com
Checking the Software Version Currently Installed
To check which version of Blackmagic 3G-SDI Shield for Arduino Setup software is installed on
your computer, open the About Blackmagic 3G-SDI Shield for Arduino Setup window.
On Mac OS X, open Blackmagic 3G-SDI Shield for Arduino Setup from the Applications
folder. Select About Blackmagic Shield for Arduino Setup from the application menu to
reveal theversion number.
On Windows 7, open Blackmagic 3G-SDI Shield for Arduino Setup from your Start
menu. Clickonthe Help menu and select About Blackmagic 3G-SDI Shield for Arduino
Setup to reveal the version number.
On Windows 8, open Blackmagic 3G-SDI Shield for Arduino Setup from the Blackmagic
3G-SDI Shield for Arduino Setup tile on your Start page. Click on the Help menu and
select About Blackmagic Shield for Arduino Setup to reveal the version number.
How to Get the Latest Software Updates
After checking the version of Blackmagic 3G-SDI Shield for Arduino Setup software installed
on your computer, please visit the Blackmagic Design support center at
www.blackmagicdesign.com/support to check for the latest updates. While it is usually a
goodidea to run the latest updates, it is wise to avoid updating any software if you are in
themiddle of an important project.
29Help
Warranty
12 Month Limited Warranty
Blackmagic Design warrants that the Blackmagic 3G-SDI Shield for Arduino product will be free
from defects in materials and workmanship for a period of 12 months from the date of purchase.
If a product proves to be defective during this warranty period, Blackmagic Design, at its option,
either will repair the defective product without charge for parts and labor, or will provide a
replacement in exchange for the defective product.
In order to obtain service under this warranty, you the Customer, must notify Blackmagic Design
of the defect before the expiration of the warranty period and make suitable arrangements for the
performance of service. The Customer shall be responsible for packaging and shipping the
defective product to a designated service center nominated by Blackmagic Design, with shipping
charges pre paid. Customer shall be responsible for paying all shipping changes, insurance, duties,
taxes, and any other charges for products returned to us for any reason.
This warranty shall not apply to any defect, failure or damage caused by improper use or improper
or inadequate maintenance and care. Blackmagic Design shall not be obligated to furnish service
under this warranty: a) to repair damage resulting from attempts by personnel other than
Blackmagic Design representatives to install, repair or service the product, b) to repair damage
resulting from improper use or connection to incompatible equipment, c) to repair any damage or
malfunction caused by the use of non Blackmagic Design parts or supplies, or d) to service a
product that has been modified or integrated with other products when the effect of such a
modification or integration increases the time or difficulty of servicing the product. THIS WARRANTY
IS GIVEN BY BLACKMAGIC DESIGN IN LIEU OF ANY OTHER WARRANTIES, EXPRESS OR IMPLIED.
BLACKMAGIC DESIGN AND ITS VENDORS DISCLAIM ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. BLACKMAGIC DESIGN’S
RESPONSIBILITY TO REPAIR OR REPLACE DEFECTIVE PRODUCTS IS THE WHOLE AND EXCLUSIVE
REMEDY PROVIDED TO THE CUSTOMER FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES IRRESPECTIVE OF WHETHER BLACKMAGIC DESIGN OR THE
VENDOR HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. BLACKMAGIC
DESIGN IS NOT LIABLE FOR ANY ILLEGAL USE OF EQUIPMENT BY CUSTOMER. BLACKMAGIC
IS NOT LIABLE FOR ANY DAMAGES RESULTING FROM USE OF THIS PRODUCT. USER OPERATES
THIS PRODUCT AT OWN RISK.
© Copyright 2018 Blackmagic Design. All rights reserved. ‘Blackmagic Design’, ‘DeckLink’,HDLink’,Workgroup Videohub’,
‘ Videohub’, ‘DeckLink’, ‘Intensity’ and ‘Leading the creative video revolution’ are registered trademarks in the US and other
countries. All other company and product names may be trade marks of their respective companies with which they are associated.
Arduinoand the Arduino logo are trademarks of Arduino. Thunderbolt and the Thunderbolt logo are trademarks of Intel Corporation
in the U.S. and/or other countries.
30Warranty
31
スト/ショュア
20186
日本
Blackmagic
3G-SDI Shield
for Arduino
こそ
このたびしいBlackmagic3G-SDIShieldforArduinoをお買い求めいただき誠にありがと
ました
ちは常にしいテクジーに関心を持ってお社の
SDI
品がクエイブに使され
ことをしく思す。3G-SDIShieldforArduino使用すれば、ArduinoSDI
ワークフローで、り多のコントロールオプションを
Blackmagic
Design
品に追加で
す。
例えばSDI信 号 に エ ン ベッドた デ ー タパ ケ ット 由 で 、ATEMイッチ ャ ー か ら BlackmagicURSA
Mini
Blackmagic
Studio
Camera
す 。ま
ATEM
ーを使用せず
Blackmagicカメラをコントールしたい3G-SDIShieldforArduino 使 って ス タ
コントロールソューションを構きまールドはSDI ラ ットフ ォ ー ム と 使 き る で 、
チャーらのプムリターンフィーを、ールドをじて
Blackmagic
メラプ ログ ラム
力 に ル プ で ま す。
へのマンド送信用のコードは簡単に書くとができべての対応コマドが
記 載 さす。
コンピュターカメラのコントールも可るいボタンノブジョイスティッ
をシールド追 加て、ダイナミックウェアコントロ築 することで、ンズ フーカ
/ームアパーチャペデスタルおよびホワイトバンスコントロールカメのパワフルな
カラターなどのを調するこも可自のカスタムコントローラーはロダク
ョ ン 便 く 、開
のテクロジーは拡張多く使方法考えられますSDIコ ンロ ー ラ ー を カ スタム ビ
た際は、その内容をぜひお聞かせ
ニュアル には 、
Blackmagic3G-SDIShieldforArduinoを使用する上で必要な情報がす
す 。弊 ェ ブ イ ト www.blackmagicdesign.com/jpのポートページでこ
アル の 最 新ジョン確 認シ ールド内 部トウェアップしてください 。
トウェアップートすることでに 最 新の 機使トウェンロ ー
る際ザー録していただけれ新しいソフェアのリーにお知らせいたします
に新機能の開発お製品の改善努めーの皆様かご意見いたけれ
す。
BlackmagicDesignCEO
グ ラ ト・ペ テ
33
目次
Blackmagic3G-SDIShieldforArduino
目次
はじめに  34
の取り付けおよはんだ付け  34
Arduinoボードへのマウ  35
源の接  35
SDI器への接続  36
ソフトウェアのインストール  37
内 蔵 ソフトウェの インストル  37
Arduinoブラリファイルインストー  38
BlackmagicShieldforArduinoSetup 39
I2Cレス  39
ビデオフォー  40
Arduinoスケッのプログラミング  40
BlackmagicShieldテストとイブリのインストール   41
LEDンジケーター  42
ールドコンーネの取り  43
CommunicatingwithyourBlackmagicShieldforArduino 43
HighLevelOverview 43
I2CInterface 
44
SerialInterface 
44
ExampleUsage 
44
StudioCameraControlProtocol 45
BlackmagicSDICameraControlProtocol 46
Overview 
46
Assumptions 
46
BlankingEncoding 
46
MessageGrouping 
46
AbstractMessagePacketFormat 
46
DefinedCommands 
47
ExampleProtocolPackets 53
DeveloperInformation 54
PhysicalEncoding-I2C 
54
PhysicalEncoding-UART 
54
ヘ ルプ  58
保証  59
34
はじめ
はじ
の取付けおよびはんだ付け
Blackmagic3G-SDIShieldforArduinoに は 、積 ね 可 4つ の ヘッが 同 さ れい ます。8ピン
ヘッ2 、そ し て 10ピン/6ピ ンヘッ ダー が 1 す 。ヘ ッ Arduinoルドをマント
するたブリッジコネクターねらで、トロールボタンジョイスィックなどの
加コンポーネントのいたのシルドをさらに付けるこッダーイアウトはArduino
UNOなど、R3リントArduinoードウントをサートしま
ッダーをシールドに取り付ける
1各 ヘ ッ Blackmagic3G-SDIShieldールドの各サイにあするピホール
込 みま す。ヘッウトの 配置 にしては 、以 下の 図 を参 照してくい 。
メモ ド と す る 、通 I2Cあ るい はル 経 由 で す。I2Cリアル ニタ
を有にして、てのピンを使きるためこれを推奨しまスケッチ
BMDSDIControlオブジェクトを設定する際に通信モドを選択し
BlackmagicShieldforArduinoの通信」を参照い。
2
ッダーピンの底シールドの下面にはんだ付けします各ピンのはがピンホー
かり接合され辺のピンにていないこを確認します
のこつド上すべ
Arduino
・ス ッ ト
確 実致 するように 、各 ヘダー
1
ピ ンけ を最 初だ 付け するとしょ
う 。そ 、シ ル ド Arduino上 に 配 してピ ン 置 を 確 認 しす。ヘッー を
調る必要がある場は、応するヘッダのはんだの接を温め配置を調整し
す。の 方 法 は 初 に すべ てピ ンを 接 してて か ら調 整 すよりっと 単 で す。
6 PIN
8 PIN
10 PIN
8 PIN
A5(I2C)SCL
A4(I2C)SDA
0-SerialRX
1-SerialTX
(I2C)SDA
(I2C)SCL
35
はじめ
Arduinoント
ッダーをシーにはんだ付けら、3G-SDIルドArduinoントす。
シールドの両サイドを注深く持ちッダーピンを
Arduino
ードヘッダーえてピダースロッ
トへゆっ差し込みまールントする際がらないうに意しださい
のピンがし込まれる
Blackmagicールドと
Arduinoボードはしっかりと接続さ定されます
源の
Blackmagic3G-SDIShieldforArduinoに電を入れるには12VアダプターBlackmagicール
ドの12V電 源 入 力に 差込 みま す。
メモ
Arduino
ボードに源を続しても
Blackmagic
シールドには十分な力がされません
が、Blackmagicシードに電源を接すれArduinoボードにも給電されるので
Blackmagicシールドに接されていこと認しくださ
36
はじめ
SDI機器の接続
源を接続しら、次にBlackmagic3G-SDIShield  スイッチ ャ ー とBlackmagicURSAMiniどのSDI
器 に 接 す。
1イッ チ ャ ー か ら の プ ロ 出 力 を Blackmagic3G-SDIShieldSDI入 力に 接 続す。
2
Blackmagic
3G
-
SDI
Shield
SDI
Blackmagic
URSA
Mini
ラム
SDI
入 力(
PGM
接 続す。
の接続を参照い。
初に必要な作業はこれだけです
ここまで の 作 業 でルドArduinoボードにマウンされおよSDI ま し た 。こ
トウェよびイブラリファイルインストール
Arduino
ェアログラム作成能と
り、ール使ったコントロールきます
ルドと
Arduino
するたのシールドのソフウェアのインストール方および
Arduino
イブラリファイルインストールアル めてください
のこつBlackmagic3G-SDIShieldforArduinoは、BlackmagicMultiView16などの
BlackmagicDesignのコントールも可ール16 すると
チビリーボーを表
Switcher Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
SDI ‘PGM’ Input
Blackmagic URSA Mini
37
フトの イ
メモ BlackmagicShieldforArduinoSetupUtility イ ン ス ト 、最 ArduinoIDE
フトウェ www.arduino.ccか らダ ウン ロ ードしてー ター にインスト ーしてく
さい
Arduino
フトウェの インス 後 、
Blackmagic
3G
-
SDI
Shield
の 内 部フトウア をンス
で きま す。
内 蔵 ソフトの イ
BlackmagicShieldforArduinoSetup使っールドの部ソフェアをア
フトウェ
Arduino
ードと通 信
Arduino
イブラリファイル 使ードコントロルしま
イブラリファイルアップ トウェ インストールで ファイル
むフォダーをコピーして、Arduinoア プョンフォル ダーストすけ です。ニュル の
セクションで、イブラリファイルよびインストール方 しま
い機能お改良機能を使用でき最新のBlackmagicShieldforArduinoフトウェ
ードしてシルドをアップ デートることを勧 めしま最 新ジョンは 、
Blackmagic
Design
サポ
ー ト セ ー( www.blackmagicdesign.com/jp/support)で ー ド す 。
MacOSX ト ウェ ア イ ン スト ー ル す る:
1BlackmagicShieldforArduinoフトア を ダ ウロ ーして 解 凍ま す。
2
ィスイメー ジ 開 いBlackmagicShieldforArduinoInstaller す 。ス ー ン
従 ってだ さ い
3最 新ョンBlackmagicShieldforArduinoInstallerインストールたらBlackmagic
ールドれて、USB接 続す。
4
SetupUtility動しスクリーンの従ってシールドの部ソフェアをアップデします
蔵ソフェアが新で何も必要がない場合、示は示されません。
WIndows ソ フト ウェ ア イ ン ス ー ル す る:
1BlackmagicShieldforArduinoフトア を ダ ウロ ーして 解 凍ま す。
2ニュアルBlackmagicShieldforArduinoInstallerを含むBlackmagicShieldfor
Arduino
ーが認できますーラーをダブルクし、面に表示される指示に従
ってイ ンス ト ー ル し ま す
3最 新ョンBlackmagicShieldforArduinoInstallerインストールたらBlackmagic
ールドれて、USB接 続す。
4
SetupUtility動しスクリーンの従ってシールドの部ソフェアをアップデします
蔵ソフェアが新で何も必要がない場合、示は示されません。
38
Arduinoブラのイトール
Arduinoラリファイインス
ArduinoをコントロールするためたプログスケッチとBlackmagic3G-SDIShield
for
Arduino
スケッチを簡単に書くとがる、
Arduino
イブラリファイルを 使 用しルドの セ
ットアプ ソ フトア を イスト ール しら 、ラ イブ ライル
Library
」と ォ ル ダ ー
ンスールさイブラリファイルむフォダーをコピーて、Arduinoイブラリ
ルダーにだけです
メモイブ ラリをンストール 中 は 、
ArduinoIDEフトア をじ る 必 要 が あす。
MacOSX ラ イ ブ ラ リ ン スト ー ル:
1Application」フ ォ ル ダ ー ら「 BlackmagicShieldforArduino」を す 。
2
Library
」 フ 、「
BMDSDIControl
というフォダーを右クリックでコピーしま
3 ュ ー の「 Documents」フ ォ ル ダ ー Arduinoォル ダー をま す。
4
Librariesう名前のサブフルダーがあるので、BMDSDIControl」フ ォ ル
ストしす。
Windows ラ イ ブ ラ リフ ァ ト ー ル:
1Programs/BlackmagicShieldforArduinoォル ダー を開 きま す。
2
Librariesいう名前のサブーがあるので、BMDSDIControl」と う フ ォ ル
ックでコピーしま
3 ュ ー の「 Documents」フ ォ ル ダ ー Arduinoォル ダー をま す。
4
Librariesう名前のサブフルダーがあるので、BMDSDIControl」フ ォ ル
ストしす。
これで、BlackmagicDesignラリファイルをコンピターにインストールできました Arduinoフト
ウェ起 動るとBlackmagicDesignケ ッ 例 を 択 で きに なりま す。
Arduino
フ ト ニ ュ ー ら「
File
」 ド 、「
Examples
」を す 。
次 に「 BMDSDIControlを選択す使用可能なスケッ例の表示されま
イブラリファイルが 適なフォルダー保 存れてい れルドこれのファイル を使 用
Arduino ー ド と す 。必 ArduinoIDEソフェアのプログラム作のみで
、「 Arduinoスケッチのプミングセクシを参照しください
メモ来、プデーされたライブラルがされた場合、古いBMDSDIControl
フォル ダを 削 除し 、上 記 に 記 載れ た 方 法 で 新いフォル ダ置 き換 える 必 要 がります。
39
BlackmagicShieldforArduinoSetup
BlackmagicShieldforArduinoSetup
BlackmagicShieldforArduinoSetupソ フウ ェ ア 使 って 、I2Cドレス
ビデオ出力などシーの設定を変更できます
BlackmagicShieldforArduinoSetupをコンピューターにインストールールド
きまにはールドを定し
Arduino
ー ド と る「
I2C
ア ド レ ス 」や 、シ
ット 設 定 ビ デ ット 設 定 が
I2Cレス
く稀BlackmagicルドにウントしたールドールドフォルトアドレスとI
2
C
レス して お 題 が 発 生 る ケース が す。の 場 シ ールド の デ フォルトアドレス 設 定 を 変 更
で きま す。
ールドフォルトアドレ0x6Eすが、0x08から0x77ま で の 範 囲 でレスを 選 択 で きす。
40
Arduinoケッラミン
ルドアドレスを
1
BlackmagicShieldforArduinoSetup 動 し 、シ ー ル ド Settings」ア イ リ ッ す 。
2Setaddressto:ックスで使いアドレスを
3Save」を リ ッ す 。
ビ デ オ フォ ーット
入 力 が 接 続 い ない 場 合デ フォル ットは 、ットア ー ティリ 選 択 す。
されると、ーマトと同じになりまするとユーリティで
選 択しデ フォルトフォマッりまDefaultoutputformat」の ド ニ ュ ー ク リ
して 使 ー マット れ ば オ フォ ーット を 変 更 で きま す。
以下のビデオ出ォーから選択できます
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Arduinoケッログラング
Arduinoソフウェアのプログるいッチは書きみできまスケッチはC」プ ロ
グラミング語を使用し書き込まれますStudioCameraControlProtocolンド を 使 用して
ケッチをログラミングる際同シールドはこれらのコマンドをSDI出 力 に エ ン ベッドし 、
BlackmagicURSAMiniるいBlackmagicStudioCameraをコントロールできるようになり
の対応コマンドは、同マニュア
Studio
Camera
Control
Protocol
セクションに載されています
プロコルからコマドを取りてスケッチに使ださ
41
BlackmagicShieldテストとララリインスト
BlackmagicShieldストとラリ
ンスト
クション記 載りにすべ ての 接 続 が 完セットアップ ソトウェよび
ラリファイインストールしたらルドArduinoボ ー ド と な って お り す べ 調 作 し
か どか を ま す。
番スピーィなリーのスケッチいて使 ることで
以下の手順に従
1ArduinoIDEフトウェを 起 動 する 。
2Tools」メ ニ ュ ー き 、Arduinoボードとート番 号選 択しま
3
File ニ ュ ー ら「 Examples/BMDSDIControl」 を 、「 TallyBlink」と い
ッ チを 選 しま す。
4ードスケッチアップードします。
リーのスケッチスピーィかBlackmagic3G-SDIShieldforArduino
シ ーの テストが 可 能 で す。RAWタはStudioCameraProtocolメントか
を 使 してI2C経 由ルドに 送 信が 、に スケッチをプ ロラミング でるよう
カスライブラ供しています
42
BlackmagicShieldテストとララリインスト
メモ BlackmagicCameraタリー 番 号1に 設 てくさ い 。
これでBlackmagicStudioCameraタリイトが 1秒に1度点滅すずで点滅が確
きたらBlackmagicルドがArduinoており、すべてが 作しると
す。
タリ点 滅な い 場 合
Blackmagicカメリー1されているかください
ートやアドバイスが 必 要な 場 合は 、BlackmagicDesign ポ ー ト セ タ ー( www.blackmagicdesign.
com
/
jp
/
support
用くださいールドのに関するポートのマニュアル「ヘ
を参照い。
LEDイン
Blackmagic3G-SDIShieldforArduinoには6ンジケーターLED い て お り 、電 UARTI2CSPI
信シールドなどのアクテティきまらにタリーおよびカメラコントロールのオーバーラドが
なっことをすインありま
LED1- テ ム・ア ク
がシードに接続されている時に光ります
LED2- コントー ライド 有 効
Arduinoスケッチでカメコントロールすると光り
LED3- タリー ライド 有 効
Arduinoッチで タリ有 効ります。
LED5-I2Cパーサ使用中
ルドとArduinoの間でI2Cコル使用した出されると光ります
LED6-シリアルパ使
UART通信が検出れるます
Blackmagicルドのブート中ジケーターオフのままで、LED345は 以アクティビ
ティ が 行 わ れて いとを 意 味す。

LED3- ア プ リケ ー シ ョン イメー ジ の ロ ー ド
LED4-EEPROMの初期化
LED5- メモリー チェッ処 理 中
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED1
LED2
LED3
LED4
LED5
LED6
43
Communicating
with
yourBlackmagic
Shield
for
Arduino
ートが 適 切 に終 了したら電 源 LED 光 り 、す べ て の LEDが 操 作 中 の 通 常 機 能 に 戻ま す。
く稀 にブート失 敗場 合 は 、失 敗アクティビティ外 のすべ ての LEDするので
失敗の原因が分かます
ルドコン取り
独自のェアローラーを構たい場合、タンクなどを使いり触覚的
しいシールきまスタールをヘッダートに続して、Blackmagic
3G-SDIShieldforArduinoマ ウントしす。作 成 するコントラ ーの タイプ に制 限 はりませ ん古 い
CCU
の 回 を 独 自 の カス タム
Arduino
ショて、 のカメラコントロールユ
成 すもで きす。
独自ハードウアコローラーを作成し、
Blackmagic3G-SDIShieldforArduino
て、よりインタラクティコントロールます
CommunicatingwithyourBlackmagic
ShieldforArduino
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I2C because of the low pin count and it frees up the serial monitor. This also allows
you to use more I2C devices with the shield.
HighLevelOverview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities. Either
or both of these objects can be created in your sketch to issue camera control commands, or
read and write tally data respectively. These objects exist in several variants, one for each of
the physicalI2C or Serialcommunication busses the shield supports.
44
Communicating
with
yourBlackmagic
Shield
for
Arduino
I2CInterface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
SerialInterface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
ExampleUsage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
45
StudioCameraControlProtocol
StudioCameraControlProtocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
46
StudioCameraControlProtocol
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
BlackmagicSDICameraControlProtocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the ATEM
Switchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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.
BlankingEncoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
MessageGrouping
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 prioritize and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
AbstractMessagePacketFormat
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
47
StudioCameraControlProtocol
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
DefinedCommands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
48
StudioCameraControlProtocol
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
49
StudioCameraControlProtocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
50
StudioCameraControlProtocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
51
StudioCameraControlProtocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
52
StudioCameraControlProtocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
53
StudioCameraControlProtocol
ExampleProtocolPackets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
54
DeveloperInformation
DeveloperInformation
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
PhysicalEncoding-I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following
the internal register address) in a single transaction is 255 bytes.
PhysicalEncoding-UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in
the **LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
55
DeveloperInformation
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
56
DeveloperInformation
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output
connector. When 0, the input signal is passed through to the
output if present, or the shield generates its own SDI
signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately copied
over to the override tally data register. Automatically cleared
by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied
data. When 0, input control data is passed through to the
output unmodified.
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in the
next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in the
next video frame. Automatically cleared once a control packet has
been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when a
new packet has been cached.
57
DeveloperInformation
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously from
the next video frame until new data is set. Automatically cleared once
the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame (one
byte per camera). Bit zero indicates a Program tally, while bit one
indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video frame.
Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when a
new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_ was
reset (one byte per camera). Bit zero indicates a Program tally, while
bit one indicates a Preview tally.
58
ルプ
ヘ ルプ
ヘ ルプ
Blackmagic3G-SDIShieldforArduinoーザーの要望に基づいて単独で開発できるよ計された
ッパす。
シールドに欲しいBlackmagicDesignオンラポートページで、ポー
報 を 確 認 で きま す。
BlackmagicDesign イン
最 新 のマアルトウェアサ ポートノート
www
.
blackmagicdesign
.
com
/
jp
/
support
Blackmagic
トセンターきま
Arduino開 発フォラム
プログラングに関する質問がある方は、ーネトの
Arduino
発フォーラ助けを得られます
Arduino
ロッパーのコミュニティ ソフトウェアる質きる多く
存 在します。た 、ジニソリューョンを 作してもらうことで きるでしょう
BlackmagicDesignラム
弊 社ウェイト
Blackmagic
Design
フ ォ ラ ム 、様 ク リ エ
有益なです富なユザーやBlackmagicDesign ッ フ っ て 、す く の
されていすので、このフォームをすることで、をすやく解きることがあり
す 。ぜ
Blackmagic
フォラム には 、
http
://
forum
.
blackmagicdesign
.
com
アク
で きす。
インスれてトウアのバージョンを
ンピューインストBlackmagic3G-SDIShieldforArduinoSetupフトウェ
ョ ン 、「 AboutBlackmagic3G-SDIShieldforArduinoSetup」ウ ィ ン す 。
MacOSX 、ア ォ ル ダ ー ら「 Blackmagic3G-SDIShieldforArduinoSetup
を開きますアプリケーショメニーからAboutBlackmagicShieldforArduinoSetup」を
択し、バージンを確認します
Windows7 、ス ト メ ニ ュ ら「 Blackmagic3G-SDIShieldforArduinoSetup」を 開 き
す。ルプメニュークリックしてAboutBlackmagicShieldforArduinoSetup」を 択 し
を 確 認す。
Windows8 、ス タ ー ト Blackmagic3G-SDIShieldforArduinoSetup」タ イ ル
Blackmagic3G-SDIShieldforArduinoSetupす。ルプメニュークリックしAbout
BlackmagicShieldforArduinoSetupし、バージンを確認します
のソトウェアップートする
ンピューインストBlackmagic3G-SDIShieldforArduinoSetupフトウ
ョンを 確 認したBlackmagic ー ト セ ー( www.blackmagicdesign.com/jp/support)
で 最 新 のソトウェアップート確 認くだに 最 新 のソフトウェアを 使 用ることを推 奨しま
ジェク ソフトウェアのアップトはよいょう
59
保証
保証
12ヶ月 定 保 証
BlackmagicDesignは、買い上げの日から12ヶ月 Blackmagic3G-SDIShieldforArduinoの部品
仕上がて瑕疵がないを保証の保証期間内に製品に疵がかった場
合、BlackmagicDesignは弊社の裁量にて部品代お費無料で該当製品の修理、は製品の
れ かで 対 応 い たす。
証に基づいたサービスを受ける際様はず保期限終了前にBlackmagicDesignに瑕疵を通
知し、する保サービスの行っください おいて不良包し、Blackmagic
Design
が 指るサートセンター へ配 送 料 前で 送 付 いきまようお 願します。理 由如 何
ず、BlackmagicDesignへの製品送のための配送料、険、関税その他すべて費用はお客様の
己 負 担す。
な使または不十なメンテや取扱いによ具合、に対してはこの証は用さ
れませんBlackmagicDesignはこ証で、以下にてサービス提を負わないものますa
品のイトールや理、サービスを行うBlackmagicDesign って 生 じ た
修理、
b適切な使用や換性のない機器への接続にた損傷の修理cBlackmagicDesign
部品や供ではない物を使用べての損傷や故障の修理、
d
)改 よ り
増加や製品の機能低下が生た場合のサース。保証は
Blackmagic
Design
す る も で 、明
また示をわず他すべてに代るものでBlackmagicDesignと そ 、商
目的に対る適のあらゆる黙示保証を拒否します
Blackmagic
Design
るいは
の責任が特別に間接的、偶発的、たは結果的に生る損害に対
Blackmagic
Design
るいは
がそのよ損害の可能性についの事知を得ているか否かに関わら様に提供される完全
の 救 済 手 段と なりま す。BlackmagicDesignによあらゆる使対し負いま
せんBlackmagicDesign使により生じるあらゆるに対しを負いませ使
自己の責任におい本製を使用するものます
©Copyright2018年BlackmagicDesign作権所有、無断複写転載をBlackmagicDesign」 、「 DeckLink」 、「 HDLink」、
WorkgroupVideohub」 、「 Videohub」 、「 Intensity」 、「 Leadingthecreativevideorevolution」は 、米 に そ
の登録商標ですその他の企業名びに製品名全てれぞれ関連する会社の登録商標である可能性があます
Arduinoおよび
Arduinoのロゴ
Arduinoの 登 録 商 標 で す。
ThunderboltおよびThunderboltの ロ ゴ 、米 た は そ IntelCorporation
の 登 商 標 で す。
60
Manuel d’installation et d’utilisation
Juin 2018
Français
Manuel de la
Blackmagic 3G-SDI
Shield for Arduino
61
Cher client, chère cliente,
Nous vous remercions d’avoir fait l’acquisition d’une carte Blackmagic 3G-SDI Shield for Arduino.
Nous nous intéressons aux nouvelles technologies et souhaitons développer des fons innovantes
d’utiliser nos produits SDI. Grâce à la 3G-SDI Shield for Arduino, vous pouvez désormais intégrer
une carte Arduino à votre workflow SDI et ainsi ajouter des options de contrôle à votre équipement
Blackmagic Design.
Par exemple, les mélangeurs ATEM peuvent contrôler la Blackmagic URSA Mini et les Blackmagic
Studio Cameras via des paquets de données intégrés au signal SDI. Si vous n’utilisez pas de
mélangeur ATEM, mais que vous souhaitez pouvoir contrôler vos caméras Blackmagic, vous pouvez
créer des solutions de contrôle personnalisées à l’aide de la 3G-SDI Shield for Arduino. Cette carte
vous offre une plateforme de création, qui vous permet d’envoyer le signal de retour du programme
provenant du mélangeur vers la carte, puis vers l’entrée de programme de votre caméra Blackmagic.
Il est très facile décrire un code pour envoyer des commandes à la caméra. De plus, toutes les
commandes prises en charge sont décrites dans ce manuel.
Vous pouvez contrôler les caméras à l’aide d’un ordinateur ou ajouter des boutons, molettes et
joysticks à votre carte. Vous disposerez ainsi de solutions de contrôle dynamiques qui permettent
de modifier des fonctionnalités telles que la mise au point, le zoom, l’ouverture, le niveau de noir,
la balance des blancs, le correcteur de couleurs intégré à la caméra et autres. Créer sa propre
solution de contrôle est utile à la production, mais aussi très amusant !
Nous sommes très heureux de pouvoir proposer cette technologie et nous avons hâte de découvrir
les solutions de contrôle SDI que vous avez conçues avec la 3G-SDI Shield for Arduino !
Ce manuel d’utilisation comprend toutes les informations dont vous avez besoin pour utiliser
la Blackmagic 3G-SDI Shield for Arduino. Consultez notre page d’assistance sur
www.blackmagicdesign.com/fr pour obtenir la dernière version du manuel et les mises à jour
du logiciel interne de la carte. Nous vous recommandons de mettre le logiciel à jour régulièrement
afin de travailler avec les fonctions les plus récentes. N’oubliez pas d’enregistrer vos coordonnées
lorsque vous téléchargerez le logiciel afin d’être informé des dernières mises à jour. Nous souhaitons
continuer à améliorer nos produits, n’hésitez donc pas à nous faire part de vos commentaires !
Grant Petty
PDG de Blackmagic Design
Sommaire
Manuel de la Blackmagic 3G-SDI Shield
for Arduino
Mise en route 63
Fixer et souder les barrettes 63
Installation sur la carte Arduino 64
Branchement de l'alimentation 64
Connexion à du matériel SDI 65
Installation du logiciel 66
Installation du logiciel interne 66
Installation des fichiers bibliothèqueArduino 67
Blackmagic Shield for Arduino Setup 68
I2C Address 68
Format vidéo 69
Programmation des sketches Arduino 69
Test de la carte extension Blackmagic et installation de la bibliothèque 70
Voyants LED 71
Fixation de composants surlacarteextension 72
Communiquer avec votre Blackmagic Shield for Arduino 72
High Level Overview 72
I2C Interface 73
Serial Interface 73
Example Usage 73
Studio Camera Control Protocol 74
Blackmagic SDI Camera Control Protocol 75
Overview 75
Assumptions 75
Blanking Encoding 75
Message Grouping 75
Abstract Message Packet Format 75
Defined Commands 76
Example Protocol Packets 82
Informations pour les développeurs 83
Physical Encoding - I2C 83
Physical Encoding - UART 83
Assistance 87
Garantie 88
63Mise en route
Mise en route
Fixer et souder les barrettes
La Blackmagic 3G-SDI Shield for Arduino est fournie avec 4 barrettes, dont deux barrettes mâles à
8 broches, une à 10 broches et une à 6 broches. Les barrettes sont des connecteurs qui permettent
d’installer votre carte extension sur l’Arduino. Comme elles se superposent, vous pouvez installer
d’autres cartes les unes sur les autres ainsi que des composants, notamment des boutons de
contrôle, des molettes et des joysticks. Ces barrettes sont conçues pour être installées sur les
cartes Arduino R3, telles que l’Arduino UNO.
Pour fixer les barrettes à votre carte extension :
1 Insérez les broches de chaque barrette dans les trous correspondants situés de part et
d’autre de la Blackmagic 3G-SDI Shield. L’illustration ci-dessous vous indique la disposition
des barrettes.
2 Soudez la base de chaque broche à la face inférieure de votre carte extension. Veillez à
ce que chaque broche soit solidement raccordée au trou correspondant, sans entrer en
contact avec la soudure des autres broches.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
REMARQUE Lors de la connexion à la carte extension, la communication
est établie via le protocole I2C ou le protocole série. Nous recommandons
de choisir I2C afin de pouvoir utiliser le moniteur série et les autres broches.
Sélectionnez le mode de communication lorsque vous définissez l’objet
BMDSDIControl dans le sketch. Pour plus d’informations, consultez la
section « Communication avec la Blackmagic 3G-SDI Shield for Arduino »
de ce manuel.
64Mise en route
Installation sur la carte Arduino
Une fois les barrettes soudées sur votre carte extension, vous pouvez l'installer sur la carte Arduino.
Saisissez les deux côtés de la carte extension et alignez les broches avec les barrettes de l'Arduino.
Poussez délicatement les broches dans les trous des barrettes. Veillez à ne pas plier les broches
lors de l'installation.
Une fois les broches enfoncées, la carte extension Blackmagic et la carte
Arduino doivent être fermement connectées.
Branchement de l'alimentation
Pour alimenter votre Blackmagic 3G-SDI Shield for Arduino, il suffit de brancher un adaptateur
12V à l’entrée d’alimentation 12V de la carte extension Blackmagic.
CONSEIL Afin que toutes les broches de la carte extension soient bien
alignées avec les trous de la barrette de l'Arduino, nous vous
recommandons, dans un premier temps, de ne souder qu'une broche sur
chaque barrette. Placez ensuite la carte extension sur l'Arduino pour
vérifier l'alignement des broches. Si certaines barrettes ont besoin d'être
ajustées, vous pouvez réchauffer la soudure et ainsi améliorer leur
alignement. C'est bien plus facile que de souder toutes les broches et
d'essayer de les ajuster par la suite.
REMARQUE L'alimentation de la carte Arduino n'est pas suffisante pour les
deux cartes. En revanche, si vous alimentez la carte Blackmagic, la carte
Arduino sera également alimentée. Veillez donc à n'alimenter que la carte
Blackmagic.
65Mise en route
Connexion à du matériel SDI
Une fois la carte alimentée, vous pouvez la connecter à du matériel SDI. Par exemple, un mélangeur
et une Blackmagic URSA Mini :
1 Branchez la sortie programme du mélangeur à l’entrée SDI de la Blackmagic 3G-SDI Shield.
2 Branchez la sortie SDI de la Blackmagic 3G-SDI Shield à l’entrée programme SDI (PMG) de
la Blackmagic URSA Mini.
Vous trouverez ci-dessous un schéma de connexion.
C'est tout ce que vous devez savoir pour démarrer !
Maintenant que votre carte est montée sur l'Arduino, qu'elle est alimentée et connectée à du
matériel SDI, vous pouvez installer le logiciel interne et les fichiers bibliothèque.
Consultez le reste du manuel pour obtenir plus d'informations sur l'installation du logiciel interne de
la carte extension et sur l'installation des fichiers bibliothèque afin que la carte extension puisse
communiquer avec l'Arduino.
Mélangeur Blackmagic 3G-SDI Arduino Shield
Entrée SDI
Sortie SDI
Entrée SDI PGM
Blackmagic URSA Mini
CONSEIL Vous pouvez également utiliser la Blackmagic 3G-SDI Shield for
Arduino pour contrôler d’autres produits Blackmagic Design, tels que le
Blackmagic MultiView 16. Par exemple, lorsque la carte est connectée à l’entrée
16 de l’appareil, une bordure tally s’affiche sur le multivue.
66Installation du logiciel
Installation du logiciel
Installation du logiciel interne
Le Blackmagic Shield for Arduino Setup permet de mettre à jour le logiciel interne de la carte
extension. Le logiciel interne communique avec l’Arduino et contrôle la carte à l’aide des fichiers
bibliothèque Arduino. Ces fichiers bibliothèque sont installés avec le logiciel d’installation. Il suffit
donc de copier le dossier contenant les fichiers et de le coller dans le dossier application de
l’Arduino. Pour plus d’informations concernant l’installation des fichiers bibliothèque, consultez
la section suivante du manuel.
Nous vous recommandons de télécharger la dernière version du logiciel Blackmagic Shield
for Arduino et de mettre la carte à jour afin de bénéficier des nouvelles fonctionnalités et
améliorations. Vous pouvez télécharger la dernière version de ce manuel sur la page d’assistance
de Blackmagic Design www.blackmagicdesign.com/fr/support.
Pour installer le logiciel interne avec Mac OS X :
1 Téléchargez et dézippez le logiciel Blackmagic Shield for Arduino.
2 Ouvrez l’image disque et lancez le programme d’installation Blackmagic Shield for Arduino.
Suivez les instructions affichées à l’écran.
3 Après avoir installé la dernière version du programme d’installation Blackmagic Shield for
Arduino, alimentez la carte extension Blackmagic et connectez-la à votre ordinateur à laide
d’un câble USB.
4 Lancez le programme d’installation et suivez les informations affichées à lécran pour mettre
à jour le logiciel interne de la carte extension. Si aucune mise à jour n’apparaît, le logiciel
interne est à jour.
Pour installer le logiciel interne avec Windows :
1 Téléchargez et dézippez le logiciel Blackmagic Shield for Arduino.
2 Le dossier Blackmagic Shield for Arduino s’affiche, il contient le manuel et le programme
d’installation Blackmagic Shield for Arduino. Double-cliquez sur le programme d’installation
et suivez les instructions à l’écran pour terminer l’installation.
3 Après avoir installé la dernière version du programme d’installation Blackmagic Shield for
Arduino, alimentez la carte extension Blackmagic et connectez-la à votre ordinateur à laide
d’un câble USB.
4 Lancez le programme d’installation et suivez les informations affichées à lécran pour mettre
à jour le logiciel interne de la carte extension. Si aucune mise à jour n’apparaît, le logiciel
interne est à jour.
REMARQUE Avant d’installer l’utilitaire Blackmagic Shield for Arduino Setup,
téléchargez la dernière version du logiciel Arduino IDE depuis le site
www.arduino.cc et installez-le sur votre ordinateur.
Après avoir installé le logiciel Arduino, vous pouvez installer le logiciel internet
de votre Blackmagic 3G-SDI Shield.
67Installation des fichiers bibliothèqueArduino
Installation des fichiers
bibliothèqueArduino
Les programmes conçus pour contrôler l’Arduino sont appelés croquis ou sketches. La Blackmagic
3G-SDI Shield for Arduino utilise des fichiers bibliothèque Arduino pour faciliter l’écriture des
sketches. Après avoir installé le logiciel de la carte extension, les fichiers bibliothèque sont installés
dans un dossier intitulé Library. Il suffit à présent de copier le dossier contenant ces fichiers et de
le coller dans le dossier bibliothèque de l’Arduino.
Pour installer les fichiers bibliothèque sur Mac OS X :
1 Ouvrez Blackmagic Shield for Arduino dans le dossier Applications.
2 Ouvrez le dossier Library et faites un clic droit/copiez le dossier intitulé : BMDSDIControl.
3 Dans le dossier Documents de votre ordinateur, ouvrez le dossier Arduino.
4 Vous verrez un sous-dossier intitulé Libraries. Collez le dossier BMDSDIControl dans
le dossier Libraries.
Pour installer les fichiers bibliothèque sur Windows :
1 Ouvrez Programmes/ Blackmagic Shield for Arduino.
2 Vous verrez un sous-dossier intitulé Library. Ouvrez ce dossier et faites un clic droit/copiez
le dossier intitulé : BMDSDIControl.
3 Dans le dossier Documents de votre ordinateur, ouvrez le dossier Arduino.
4 Vous verrez un sous-dossier intitulé Libraries. Collez le dossier BMDSDIControl dans le
dossier Libraries.
C'est tout ce que vous devez faire pour installer les fichiers bibliothèque Blackmagic Design sur
votre ordinateur. Lorsque vous utilisez le logiciel Arduino, vous disposerez désormais d'exemples
de sketches Blackmagic Design.
Dans le menu déroulant Fichier du logiciel Arduino, sélectionnez Exemples. Sélectionnez
BMDSDIControl pour afficher la liste d'exemples de sketches que vous pouvez utiliser.
Une fois les fichiers bibliothèque stockés dans le dossier approprié, la carte extension peut les
utiliser pour communiquer avec l'Arduino. Il ne reste plus qu'à programmer le logiciel IDE Arduino.
Pour plus d'informations à ce sujet, consultez la section « Programmation des sketches Arduino »
de ce manuel.
REMARQUE Le logiciel IDE Arduino doit être fermé lorsque vous installez les
bibliothèques.
REMARQUE Si une mise à jour de la bibliothèque comportant des exemples est
disponible, vous devrez supprimer l'ancien dossier BMDSDIControl et le remplacer
par le nouveau dossier en suivant les étapes décrites ci-dessus.
68Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup
Le logiciel Blackmagic Shield for Arduino Setup vous permet de changer les paramètres
de la carte extension, notamment l’adresse I2C et le format de sortie vidéo.
Grâce au logiciel Blackmagic Shield for Arduino Setup installé sur votre ordinateur, vous pouvez
changer les paramètres de la carte extension : I2C address, permet de reconnaître la carte extension
afin que l’Arduino puisse communiquer avec elle ; Video Format, permet de régler
le format de sortie de la carte extension.
I2C Address
Exceptionnellement, il se peut qu'une autre carte extension montée sur la carte extension
Blackmagic partage l’adresse I2C par défaut, ce qui peut créer un conflit. Si cela ce produit,
vous pouvez changer l'adresse par défaut de la carte extension.
69Programmation des sketches Arduino
L'adresse par défaut pour la carte extension est 0x6E, cependant, vous pouvez choisir des adresses
comprises entre 0x08 et 0x77.
Changer l'adresse de la carte extension :
1 Lancez le Blackmagic Shield for Arduino Setup et cliquez sur l’icône de paramétrage.
2 Dans le paramètre Set address to:, saisissez l'adresse que vous souhaitez utiliser.
3 Cliquez sur Save.
Format vidéo
Si aucun signal d’entrée n'est connecté, le format de sortie par défaut est choisi par le logiciel
d'installation. Lorsqu'un signal d’entrée est connecté, la sortie est configurée au même format que
celui de l'entrée. Si l'entrée est déconnectée, le format de sortie par défaut sera choisi par le logiciel.
Vous pouvez changer le format vidéo dans le menu déroulant Default output format.
Les formats vidéo suivants sont disponibles :
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Programmation des sketches Arduino
Les programmes Arduino, également appelés croquis ou sketches, sont très faciles à écrire.
Cessketches sont programmés en langage C. Lorsque vous programmez les sketches avec les
commandes du Studio Camera Control Protocol, la carte extension intègre ces commandes à la
sortie SDI qui permet de contrôler la Blackmagic URSA Mini ou les Blackmagic Studio Camera.
Toutes les commandes prises en charge sont incluses dans la section « Studio Camera Control
Protocol » de ce manuel. Vous pouvez donc les utiliser pour vos sketches.
70Test de la carte extension Blackmagic et installation de la bibliothèque
Test de la carte extension Blackmagic et
installation de la bibliothèque
Une fois la carte extension connectée comme indiqué dans la section « Mise en route », et le logiciel
et les fichiers bibliothèque installés, veuillez vérifier que la carte extension communique
correctement avec la carte Arduino.
Pour vérifier cela, ouvrez et exécutez lexemple de sketch TallyBlink présenté ci-dessous.
Suivez les étapes suivantes :
1 Lancez le logiciel IDE Arduino.
2 Allez dans le menu Outils et sélectionnez le type de carte Arduino et le port.
3 Dans le menu Fichier, sélectionnez Exemples/BMDSDIControl et choisissez le sketch
appelé TallyBlink.
4 Chargez le sketch sur la carte.
L’exemple de sketch Tally Blink est simple à réaliser pour tester votre Blackmagic 3G-SDI
Shield for Arduino. Les données brutes peuvent être envoyées à la carte via I2C à l’aide des
commandes du Studio Camera Protocol. Nous avons également inclus des bibliothèques
personnalisées pour rendre la programmation de sketches encore plus facile.
71Test de la carte extension Blackmagic et installation de la bibliothèque
Vous devriez voir le voyant tally de la Blackmagic Studio Camera clignoter une fois par seconde.
Sile voyant tally clignote, cela signifie que la carte extension Blackmagic communique avec la carte
Arduino et que tout fonctionne correctement.
Si le voyant ne clignote pas, vérifiez que le numéro du tally de la caméra est bien réglé sur 1.
Si vous avez besoin d'aide, consultez la page d'assistance technique Blackmagic Design à l’adresse
suivante www.blackmagicdesign.com/fr/support. Veuillez lire la section d'assistance de ce manuel
pour obtenir davantage d'informations sur le fonctionnement de votre carte extension.
Voyants LED
La Blackmagic 3G-SDI Shield for Arduino comprend six voyants LED qui permettent de confirmer
les activités de la carte extension, par exemple, lalimentation, la liaison UART ainsi que la
communication I2C et SPI. Les voyants indiquent également lorsque la prise de contrôle manuel
du tally et des commandes de la caméra est activée.
LED 1 - Système actif
S'allume lorsque l'alimentation est connectée à la carte extension.
LEC 2 - Prise de contrôle manuel de la commande activée
S'allume lorsque les commandes de la caméra sont activées sur le sketch Arduino.
LEC 3 - Prise de contrôle manuel du tally activée
S'allume lorsque les commandes du tally sont activées sur le sketch Arduino.
LED 5 - Analyseur I2C occupé
S'allume lorsque la communication est détectée entre la carte extension et l'Arduino
avec le protocole I2C.
LED 6 - Analyseur série occupé
S'allume quand la liaison UART est détectée.
Lorsque la carte extension Blackmagic s'allume, le voyant d'alimentation reste éteint
et les LED 3, 4 et 5 indiquent les activités suivantes.
LED 3 - Chargement de l’image de lapplication
LED 4 - Initialisation de la mémoire EEPROM
LED 5 - Vérification de la mémoire en cours
REMARQUE  Vérifiez que le numéro du tally de la caméra est réglé sur 1.
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
72Fixation de composants surlacarteextension
Une fois la carte extension démarrée, le voyant d’alimentation s'allume et les autres LED reprennent
leur fonction standard.
En cas de problème au cours du démarrage, les LED qui rencontrent des problèmes ne clignotent
pas. En revanche, celles qui fonctionnent clignotent rapidement. Cela vous permet d’identifier
facilement l'origine du problème.
Fixation de composants
surlacarteextension
Si vous souhaitez créer votre propre contrôleur matériel, vous pouvez construire une nouvelle carte
extension dotée de boutons, de molettes et d’un joystick pour effectuer un contrôle plus précis.
Fixez simplement la carte extension personnalisée à la Blackmagic 3G-SDI Shield for Arduino en
l’insérant dans les trous de la barrette. Vous pouvez ajouter le nombre de contrôleurs dont vous
avez besoin. Si vous le souhaitez, vous pouvez même remplacer le circuit électronique d’une
ancienne voie de commande par votre propre Arduino.
Créez votre propre contrôleur matériel et fixer-le à la Blackmagic
3G-SDI Shield for Arduino pour un contrôle extrêmement précis.
Communiquer avec votre Blackmagic
Shield for Arduino
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial.
We recommend I2C because of the low pin count and it frees up the serial monitor. This also
allows you to use more I2C devices with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities.
Either or both of these objects can be created in your sketch to issue camera control
commands, or read and write tally data respectively. These objects exist in several variants,
one for each of the physicalI2C or Serialcommunication busses the shield supports.
73Communiquer avec votre Blackmagic Shield for Arduino
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
74Studio Camera Control Protocol
Studio Camera Control Protocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
75Studio Camera Control Protocol
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the ATEM
Switchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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 prioritize 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.
76Studio Camera Control Protocol
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
77Studio Camera Control Protocol
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
78Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
79Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
80Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
81Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
82Studio Camera Control Protocol
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
83Informations pour les développeurs
Informations pour les développeurs
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following
the internal register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in
the **LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
84Informations pour les développeurs
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
85Informations pour les développeurs
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output connector.
When 0, the input signal is passed through to the output if
present, or the shield generates its own SDI signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately
copied over to the override tally data register. Automatically
cleared by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied data.
When 0, input control data is passed through to the output
unmodified.
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in
the next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in
the next video frame. Automatically cleared once a control
packet has been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when
a new packet has been cached.
86Informations pour les développeurs
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.
ARM_ was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously
from the next video frame until new data is set. Automatically
cleared once the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame
(one byte per camera). Bit zero indicates a Program tally, while bit
one indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video
frame. Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when
a new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_
was reset (one byte per camera). Bit zero indicates a Program
tally, while bit one indicates a Preview tally.
87Assistance
Assistance
Obtenir de l'aide
La Blackmagic 3G-SDI Shield for Arduino est un outil pour développeurs créé pour vous aider à
développer en fonction de vos besoins.
Pour avoir accès aux informations les plus récentes concernant les cartes extension, consultez les
pages d'assistance en ligne de Blackmagic Design.
Pages d'assistance en ligne de Blackmagic Design
Les dernières versions du manuel, du logiciel et des notes d'assistance peuvent être consultées sur
la page d'assistance technique de Blackmagic Design : www.blackmagicdesign.com/fr/support.
Forum pour développeurs Arduino
Si vous souhaitez poser des questions concernant la programmation, consultez les forums pour
développeurs Arduino sur Internet. Il existe une large communauté de développeurs Arduino et de
nombreux forums sur Internet qui vous aideront à répondre à vos questions.
Forum Blackmagic Design
Le forum Blackmagic Design est une source d'information utile qui offre des idées innovantes pour
vos productions. Cette plate-forme d’aide vous permettra également d’obtenir des réponses rapides
à vos questions, car un grand nombre de sujets peuvent avoir déjà été abordés par d'autres
utilisateurs. Pour vous rendre sur le forum : http://forum.blackmagicdesign.com/fr
Vérification du logiciel actuel
Pour vérifier quelle version du logiciel Blackmagic 3G-SDI Shield for Arduino Setup est installée sur
votre ordinateur, ouvrez la fenêtre About Blackmagic 3G-SDI Shield for Arduino Setup.
Sur Mac OS X, ouvrez le logiciel Blackmagic 3G-SDI Shield for Arduino Setup dans le
dossier Applications. Sélectionnez About Blackmagic Shield for Arduino Setup dans
le menu d’application pour connaître le numéro de version.
Sur Windows 7, ouvrez le logiciel Blackmagic 3G-SDI Shield for Arduino Setup dans le menu
de Démarrage. Cliquez sur le menu Aide et sélectionnez À propos de Blackmagic 3G-SDI
Shield for Arduino Setup pour connaître le numéro de version.
Sur Windows 8, ouvrez le logiciel Blackmagic 3G-SDI Shield for Arduino Setup à partir de
la vignette Blackmagic 3G-SDI Shield for Arduino Setup située sur l’écran d’accueil. Cliquez
sur le menu Aide et sélectionnez À propos de Blackmagic Shield for Arduino Setup pour
connaître le numéro de version.
Comment obtenir les dernières mises à jour du logiciel
Après avoir vérifié quelle version du logiciel Blackmagic 3G-SDI Shield for Arduino Setup est
installée sur votre ordinateur, veuillez vous rendre au centre de support technique Blackmagic
Design à l’adresse suivante www.blackmagicdesign.com/fr/support pour vérifier les dernières mises
à jour. Même s’il est généralement conseillé d’installer les dernières mises à jour, il est prudent
d’éviter d’effectuer ces mises à jour au milieu d’un projet important.
88Garantie
Garantie
Garantie limitée à 12 mois
Par la présente, Blackmagic Design garantit que le produit Blackmagic 3G-SDI Shield for Arduino sera
exempt de défauts matériels et de fabrication pendant une durée d’un an à compter de la date dachat.
Si un produit s’avère défectueux pendant la période de garantie, Blackmagic Design peut, à sa seule
discrétion, réparer le produit défectueux sans frais pour les pièces et la main-d’œuvre, ou le remplacer.
Pour se prévaloir du service offert en vertu de la présente garantie, il vous incombe d’informer Blackmagic
Design de l’existence du défaut avant expiration de la période de garantie, et de prendre les mesures
nécessaires pour l’exécution des dispositions de ce service. Le consommateur a la responsabilité de
s’occuper de lemballage et de l'expédition du produit défectueux au centre de service nommément
désigné par Blackmagic Design, en frais de port prépayé. Il incombe au consommateur de payer
l’intégralité des frais de transport, dassurance, des droits de douane et taxes et toutes autres charges
relatives aux produits qui nous auront été retournés, et ce quelle que soit la raison.
La présente garantie ne saurait en aucun cas s’appliquer à des défauts, pannes ou dommages causés
par une utilisation inappropriée ou un entretien inadéquat ou incorrect. Blackmagic Design na en aucun
cas lobligation de fournir un service en vertu de la présente garantie : a) pour réparer les dommages
résultant de tentatives de réparations, d’installations ou tous services effectués par du personnel non
qualifié par Blackmagic Design, b) pour réparer tout dommage résultant d'une utilisation inadéquate
ou d'une connexion à du matériel incompatible, c) pour réparer tout dommage ou dysfonctionnement
causés par l’utilisation de pièces ou de fournitures n’appartenant pas à la marque de Blackmagic Design,
d) pour examiner un produit qui a été modifié ou intégré à d’autres produits quand l’impact dune telle
modification ou intégration augmente les délais ou la difficulté d’examiner ce produit. CETTE GARANTIE
REMPLACE TOUTE GARANTIE EXPLICITE OU TACITE. BLACKMAGIC DESIGN ET SES REVENDEURS
DÉCLINENT EXPRESSÉMENT TOUTE GARANTIE TACITE DE COMMERCIALISATION OU D'ADÉQUATION
À UNE FIN PARTICULIÈRE. LA RESPONSABILITÉ DE BLACKMAGIC DESIGN POUR RÉPARER OU
REMPLACER UN PRODUIT S'AVÉRANT DÉFECTUEUX CONSTITUE LA TOTALITÉ ET LE SEUL RECOURS
EXCLUSIF PRÉVU ET FOURNI AU CONSOMMATEUR POUR TOUT DOMMAGE INDIRECT, SPÉCIFIQUE,
ACCIDENTEL OU CONSÉCUTIF, PEU IMPORTE QUE BLACKMAGIC DESIGN OU SES REVENDEURS
AIENT ÉTÉ INFORMÉS OU SE SOIENT RENDU COMPTE AU PRÉALABLE DE L'ÉVENTUALITÉ DE CES
DOMMAGES. BLACKMAGIC DESIGN NE PEUT ÊTRE TENU POUR RESPONSABLE DE TOUTE UTILISATION
ILLICITE DU MATÉRIEL PAR LE CONSOMMATEUR. BLACKMAGIC DESIGN N'EST PAS RESPONSABLE
DES DOMMAGES RÉSULTANT DE L'UTILISATION DE CE PRODUIT. LE CONSOMMATEUR UTILISE CE
PRODUIT À SES SEULS RISQUES.
© Copyright 2018 Blackmagic Design. Tous droits réservés. ‘Blackmagic Design’, ‘DeckLink, ‘HDLink’,Workgroup Videohub’, ‘
Videohub’, ‘DeckLink, ‘Intensity’ et ‘Leading the creative video revolution’ sont des marques déposées aux États-Unis et dans
d’autres pays. Tous les autres noms de société et de produits peuvent être des marques déposées des sociétés respectives
auxquelles ils sont associés. Arduino et le logo Arduino sont des marques déposées d’Arduino. Thunderbolt et le logo Thunderbolt
sont des marques déposées d’Intel Corporation aux États-Unis et/ou dans d’autres pays.
89
Installations- und Bedienungsanleitung
Juni 2018
Deutsch
Blackmagic
3G-SDI Shield
for Arduino
90
Willkommen!
Danke, dass Sie sich für den Kauf des neuen Blackmagic 3G-SDI Shield for Arduino entschieden haben.
Wir haben ein ungemeines Interesse an neuen Technologien und sind immer wieder begeistert, auf
welch kreative Art und Weise unsere SDI-Produkte eingesetzt werden. Mit dem 3G-SDI Shield for
Arduino können Sie den Arduino jetzt in Ihren SDI-Workflow integrieren, um Ihr Blackmagic Design
Equipment um noch mehr Steuerungsmöglichkeiten zu erweitern.
So lassen sich bspw. die URSA Mini und Blackmagic Studio Cameras von einem ATEM Mischer aus
steuern. Das geschieht mithilfe von Datenpaketen, die in das SDI-Signal eingebettet sind. Sollten Sie
über keinen ATEM Mischer verfügen, aber dennoch die Möglichkeit haben wollen, Ihre Blackmagic
Kameras zu steuern, können Sie mit Ihrem 3G-SDI Shield for Arduino auch Steuerungslösungen nach
Ihrem Gusto kreieren. Das Shield dient Ihnen hierbei als SDI-Grundgerüst, damit Sie den Programm-
Feed von Ihrem Mischer anhand des Shields rückführen und durch den Programmeingang Ihrer
Blackmagic Cameras schleifen können.
Der Code für die Befehle, die an die Kamera gesendet werden, ist im Handumdrehen geschrieben.
Alleunterstützten Befehle finden Sie außerdem in diesem Handbuch.
Steuern Sie Ihre Kameras entweder über einen Computer oder erweitern Sie Ihr Shield um Tasten,
Regler und Joysticks. Bauen Sie sich so dynamische Hardware-Controller, mit denen sich Funktionen
wie Fokus, Zoom, Blendeneinstellungen, Schwarzabhebung, Weißabgleich sowie der leistungsstarke
Farbkorrektor der Kamera und vieles mehr anpassen lassen. Sich einen Controller nach den eigenen
Bedürfnissen zu basteln ist nicht nur hilfreich für die Produktion, sondern macht auch eine Menge Spaß!
Wir sind von dieser Technologie begeistert und würden uns freuen, wenn Sie Ihre Ideen mit
uns teilenund uns erzählen, welche SDI-Steuerelemente Sie für Ihr 3G-SDI Shield for Arduino
zusammengestellt haben.
Diese Bedienungsanleitung gibt Ihnen alle Informationen, die Sie für die Inbetriebnahme Ihres
Blackmagic 3G-SDI Shield for Arduino brauchen. Bitte sehen Sie auf der Support-Seite unter
www.blackmagicdesign.com/de/support nach der aktuellsten Auflage der Bedienungsanleitung
sowie Aktualisierungen der Produktsoftware Ihres Shields. Indem Sie Ihre Software auf dem neuesten
Standhalten, haben Sie stets Zugriff auf neue, aktuelle Features! Wenn Sie Software herunterladen,
empfehlen wir Ihnen, sich zu registrieren, sodass wir Sie über neue Updates informieren können,
sobalddiese zur Verfügung stehen. Da wir ständig an neuen Features und Verbesserungen arbeiten,
freuen wir uns jederzeit, von Ihnen zu hören.
Grant Petty
CEO, Blackmagic Design
91
Inhalt
Blackmagic 3G-SDI Shield for Arduino
Erste Schritte 92
Aufstecken und Verlöten von Stiftleisten 92
Anbringen an das Arduino-Board 93
Anschließen an das Stromnetz 93
Anschließen an SDI-Equipment 94
Softwareinstallation 95
Installieren der Produktsoftware 95
Installieren der Arduino Bibliotheksdateien 96
Blackmagic Shield for Arduino Setup 97
„I2C Address“ 97
Video Format“ 98
Programmieren von Arduino-Sketchen 98
Testen der Blackmagic Shield und Bibliotheken-Installation 99
Status-LEDs 100
Anbringen von Shield-Komponenten 101
Kommunizieren mit Ihrem Blackmagic Shield for Arduino (English) 101
High Level Overview 101
I2C Interface 102
Serial Interface 102
Example Usage 102
Studio Camera Control Protocol (English) 103
Blackmagic SDI Camera Control Protocol 104
Overview 104
Assumptions 104
Blanking Encoding 104
Message Grouping 104
Abstract Message Packet Format 104
Defined Commands 105
Example Protocol Packets 111
Developer Information (English) 112
Physical Encoding - I2C 112
Physical Encoding - UART 112
Hilfe 116
Garantie 117
92Erste Schritte
Erste Schritte
Aufstecken und Verlöten von Stiftleisten
Ihr Blackmagic 3G-SDI Shield for Arduino wird mit vier stapelbaren Stiftleisten geliefert, darunter zwei
8-polige, eine 10-polige und eine 6-polige. Stiftleisten sind Verbindungsstecker, mit denen Sie Ihr
Shield auf das Arduino-Board aufstecken. Da die Stiftleisten stapelbar sind, können Sie weitere
Shields mit zusätzlichen Komponenten wie Steuerungstasten, Reglern und Joysticks übereinander
anbringen. Die Stiftleisten sind so aufgebaut, dass sie für die Montage auf Arduino-Boards mit
R3-Fläche wie dem Arduino UNO geeignet sind.
So verbinden Sie die Stiftleisten mit Ihrem Shield:
1 Führen Sie die Stifte der Leisten in die jeweiligen Buchsen auf beiden Seiten Ihres
Blackmagic 3G-SDI Shields ein. Die Anordnung der Stiftleisten finden Sie in der
Abbildung unten.
HINWEIS Wenn Sie sich mit dem Shield verbinden, läuft die Kommunikation über
I2C oder seriell. Wir empfehlen I2C, da dies den seriellen Monitor unterstützt und
alle Pins verfügbar bleiben. Wählen Sie den Kommunikationsmodus, wenn Sie das
BMDSDIControl-Objekt im Sketch festlegen. Weitere Informationen finden Sie im
Abschnitt „Kommunizieren mit Ihrem Blackmagic 3G-SDI Shield for Arduino“.
2 Verlöten Sie den Ansatz eines jeden Stifts mit der Unterseite Ihres Shields. Vergewissern
Sie sich, dass das Lot eine feste Verbindung zwischen Stift und Buchse erzeugt, sich die
einzelnen Lötstellen nebeneinanderliegender Stifte jedoch nicht berühren.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
93Erste Schritte
TIPP Um sicherzustellen, dass alle Pins Ihres Shields auf die weiblichen Buchsenleisten
des Arduino-Boards ausgerichtet sind, ist es ratsam, zunächst nur einen Pin mit jeder Leiste
zu verlöten. Platzieren Sie dann das Shield auf dem Arduino-Board und überprüfen Sie die
Ausrichtung der Pins. Sollten einige Leisten angepasst werden müssen, können Sie die
Lötstelle der jeweiligen Leiste erwärmen und sie neu ausrichten. Das ist sehr viel einfacher
als alle Stellen zu verlöten und anschließend Anpassungen vorzunehmen.
Anbringen an das Arduino-Board
Sobald die Stiftleisten mit Ihrem Shield verlötet sind, können Sie das 3G-SDI Shield auf Ihr Arduino-
Board aufstecken.
Halten Sie das Shield an beiden Seiten fest und richten Sie die Stiftleisten auf die Buchsenleisten Ihres
Arduino-Boards aus. Drücken Sie nun die Stifte vorsichtig in die Buchsen. Achten Sie darauf, dass sich
die Stifte dabei nicht verbiegen.
Wenn alle Stifte eingeführt sind, sollte eine feste und stabile Verbindung
zwischen dem Blackmagic Shield und dem Arduino-Board bestehen
Anschließen an das Stromnetz
Schließen Sie Ihr Blackmagic 3G-SDI Shield for Arduino an das Stromnetz an, indem Sie einfach einen
12V-Stromadapter in den 12V-Stromausgang Ihres Blackmagic Shields stecken.
HINWEIS Die Stromversorgung des Arduino-Boards liefert nicht ausreichend Strom für das
Blackmagic Shield. Wenn Sie jedoch das Blackmagic Shield an das Stromnetz anschließen,
wird auch der Arduino mit Strom versorgt. Stellen Sie also sicher, dass lediglich Ihr
Blackmagic Shield mit dem Netzstrom verbunden ist.
94Erste Schritte
Anschließen an SDI-Equipment
Ist eine Verbindung zum Stromnetz hergestellt, können Sie das Blackmagic 3G-SDI Shield for Arduino
an Ihr SDI-Equipment anschließen. So schließen Sie bspw. einen Mischer und eine Blackmagic
URSA Mini an:
1 Schließen Sie den Programmausgang Ihres Mischers an den SDI-Eingang des Blackmagic
3G-SDI Shields an.
2 Verbinden Sie den SDI-Ausgang Ihres Blackmagic 3G-SDI Shields mit dem mit „PGM
gekennzeichneten SDI-Programmeingang Ihrer URSA Mini.
Ein Anschlussdiagramm finden Sie weiter unten.
Für den Einstieg war das schon alles.
Nun, da Ihr Shield auf dem Arduino-Board angebracht, es mit Strom versorgt und mit Ihrem
SDI-Equipment verbunden ist, können Sie die Produktsoftware sowie die Bibliotheksdateien
installieren, die Arduino-Software programmieren und mit dem Shield Ihr Equipment steuern.
Im weiteren Verlauf des Handbuchs finden Sie Informationen darüber, wie Sie die Produktsoftware
des Shields installieren und wo Sie die Arduino-Bibliotheksdateien speichern sollten, damit das Shield
mit Ihrem Arduino kommunizieren kann.
TIPP Ihr Blackmagic 3G-SDI Shield for Arduino können Sie auch für die Steuerung anderer
Blackmagic Design Produkte wie bspw. des Blackmagic MultiView 16 benutzen. Wenn Sie
Ihr Shield an Eingang 16 koppeln, können Sie so Tally-Umrandungen in der
Mehrfachansicht anzeigen.
Switcher Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
SDI ‘PGM’ Input
Blackmagic URSA Mini
95Softwareinstallation
Softwareinstallation
HINWEIS Laden Sie die aktuellste Arduino IDE Software von www.arduino.cc herunter und
installieren Sie sie auf Ihrem Computer. Installieren Sie erst dann das Blackmagic 3G-SDI
Shield for Arduino Setup-Dienstprogramm.
Nachdem Sie die Arduino-Software installiert haben, können Sie die Blackmagic 3G-SDI
Shield Produktsoftware installieren.
Installieren der Produktsoftware
Blackmagic Shield for Arduino Setup dient der Aktualisierung der Produktsoftware Ihres Shields. Die
Produktsoftware kommuniziert mit dem Arduino-Board und steuert es mithilfe von Arduino-
Bibliotheksdateien. Diese Bibliotheksdateien werden zusammen mit der Setup-Software installiert. Sie
müssen lediglich den Ordner mit den Dateien kopieren und in den Arduino-Anwendungsordner
einfügen. Informationen zu den Bibliotheksdateien und wie diese installiert werden, finden Sie im
nächsten Kapitel dieses Handbuchs.
Wir empfehlen Ihnen, die aktuellste Blackmagic 3G-SDI Shield for Arduino Software herunterzuladen
und Ihr Shield auf den aktuellsten Stand zu bringen, damit Sie von neuen Funktionen und
Verbesserungen profitieren können. Die aktuellste Version steht im Blackmagic Design Support
Center unter www.blackmagicdesign.com/de/support zum Download bereit.
So installieren Sie die Produktsoftware unter Mac OS X:
1 Laden Sie die Blackmagic Shield for Arduino Software herunter und entpacken Sie sie.
2 Öffnen Sie das Speicherabbild und starten Sie das Blackmagic Shield for Arduino
Installationsprogramm. Folgen Sie den Anweisungen auf Ihrem Bildschirm.
3 Nachdem die aktuellste Version des Blackmagic Shield for Arduino Installationsprogramms
eingespielt wurde, versorgen Sie Ihr Blackmagic Shield mit Strom und verbinden Sie es per
USB-Kabel mit Ihrem Computer.
4 Starten Sie nun das Setup-Dienstprogramm und folgen Sie der Aufforderung auf Ihrem
Bildschirm für die Aktualisierung der Produktsoftware Ihres Shields. Sollte diese Aufforderung
nicht erscheinen, so ist Ihre Produktsoftware auf dem neuesten Stand. Keine weiteren
Aktionen Ihrerseits sind notwendig.
So installieren Sie die Produktsoftware unter Windows:
1 Laden Sie die Blackmagic Shield for Arduino Software herunter und entpacken Sie sie.
2 Nun sollten Sie einen Blackmagic Shield for Arduino Ordner sehen. Darin finden Sie dieses
Handbuch und das Blackmagic Shield for Arduino Installationsprogramm. Doppelklicken
Sie auf das Installationsprogramm und folgen Sie den Anweisungen zur Fertigstellung der
Installation auf dem Bildschirm.
3 Nachdem die aktuellste Version des Blackmagic Shield for Arduino Installationsprogramms
eingespielt wurde, versorgen Sie Ihr Blackmagic Shield mit Strom und verbinden Sie es per
USB-Kabel mit Ihrem Computer.
4 Starten Sie nun das Setup-Dienstprogramm und folgen Sie der Aufforderung auf Ihrem
Bildschirm für die Aktualisierung der Produktsoftware Ihres Shields. Sollte diese Aufforderung
nicht erscheinen, so ist Ihre Produktsoftware auf dem neuesten Stand. Keine weiteren
Aktionen Ihrerseits sind notwendig.
96Installieren der Arduino Bibliotheksdateien
Installieren der Arduino
Bibliotheksdateien
Die Programme zur Steuerung Ihres Arduinos werden als Sketche bezeichnet. Ihr Blackmagic 3G-SDI
Shield for Arduino macht von Bibliotheksdateien Gebrauch, um das Schreiben von Sketchen zu
vereinfachen. Nach der Installation der Konfigurationssoftware Ihres Shields werden die
Bibliotheksdateien in einem Ordner namens „Library“ (Bibliothek) gespeichert. Kopieren Sie den
Ordner mit den Bibliotheksdateien und fügen Sie ihn in den „Library“-Ordner Ihres Arduino ein.
HINWEIS Während der Installation von Bibliotheken muss die IDE-Software
geschlossensein.
So installieren Sie Bibliotheksdateien unter Mac OS X:
1 Öffnen Sie „Blackmagic Shield for Arduino“ im Ordner „Programme“.
2 Öffnen Sie den Ordner „Library“ und führen Sie auf dem Ordner „BMDSDIControl“ einen
Rechtsklick aus. Wählen Sie anschließend „Kopieren.
3 Gehen Sie nun zum OrdnerDokumente“ und öffnen Sie den „Arduino“-Ordner.
4 Dort befindet sich ein Unterordner namens „Libraries“. Fügen Sie den Ordner
BMDSDIControl“ in den Ordner „Libraries“ ein.
So installieren Sie Bibliotheksdateien unter Windows:
1 Öffnen Sie den Ordner „Programme“ bzw.Blackmagic Shield for Arduino“.
2 Sie sehen nun einen Unterordner mit dem Namen „Library“. Öffnen Sie diesen und kopieren
Sie den Ordner mit dem Namen „BMDSDIControl“ per Rechtsklick.
3 Gehen Sie nun zum OrdnerDokumente“ und öffnen Sie den „Arduino“-Ordner.
4 Dort befindet sich ein Unterordner namens „Libraries“. Fügen Sie den Ordner
BMDSDIControl“ in den Ordner „Libraries“ ein.
Das ist schon alles, um die Blackmagic Design Bibliotheksdateien auf Ihrem Computer zu installieren.
Wenn Sie mit der Arduino-Software arbeiten, stehen Ihnen jetzt auch Blackmagic Design Beispiel-
Sketche zur Verfügung.
Öffnen Sie dazu einfach das AufklappmenüFile“ (Datei) in der Menüzeile der Arduino-Software und
wählen Sie „Examples“ (Beispiele). Klicken Sie auf „BMDSDIControl“. Nun erscheint eine Liste mit
Beispiel-Sketchen zu Ihrer Auswahl.
Wenn sich die Bibliotheksdateien im korrekten Ordner befinden, kann Ihr Shield nun auf sie zugreifen
und mit dem Arduino-Board kommunizieren. Alles, was Sie dafür tun müssen, ist die Arduino-IDE-
Software zu programmieren. Weitere Informationen finden Sie im Abschnitt „Programmieren von
Arduino-Sketchen“.
HINWEIS Wenn in Zukunft ein Update der Bibliotheksdatei mit Beispielen
herausgegebenwird, müssen Sie den alten „BMDSDIControl“-Ordner löschen und ihn
mitdem neuen Ordner ersetzen. Folgen Sie den Anweisungen oben.
97Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup
Über die Blackmagic Shield for Arduino Setup Software können Sie Änderungen der Einstellungen an Ihrem
Shield vornehmen. Dazu gehören bspw. die I2C-Adresse und das Videoausgabeformat
Wenn Blackmagic Shield for Arduino Setup auf Ihrem Computer installiert ist, können Sie darüber die
Einstellungen Ihres Shields ändern. Dazu gehört die „I2C Address“ (I2C-Adresse), die Ihr Shield
identifiziert, damit das Arduino-Board mit ihm kommunizieren kann, und das „Video Format
(Videoformat), das das Ausgabeformat Ihres Shields festlegt.
„I2C Address
In seltenen Fällen ist es möglich, dass ein weiteres Shield, das auf Ihrem Blackmagic Shield
angebracht ist, dieselbe standardmäßige I2C-Adresse wie Ihr Shield verwendet. Das führt zu einem
Konflikt. Sollte dies der Fall sein, können Sie die Standardadresse ändern.
98Programmieren von Arduino-Sketchen
Die Standardadresse für Ihr Shield ist 0x6E. Sie haben jedoch eine Reihe von Adressen zwischen
0x08 und 0x77 zur Wahl.
So ändern Sie die Adresse Ihres Shields:
1 Starten Sie Blackmagic Shield for Arduino Setup und klicken Sie auf das Einstellungssymbol.
2 Tragen Sie in den Kasten „Set Address to:“ (Adresse einstellen auf:) die Adresse ein, die Sie
verwenden möchten.
3 Klicken Sie auf „Save“ (Speichern).
Video Format“
Wenn keine Eingabe angeschlossen ist, wird das im Setup-Dienstprogramm eingestellte
Standardausgabeformat gewählt. Wird eine Eingabe erkannt, erfolgt die Ausgabe im selben
Formatwie die Eingabe. Wird diese Eingabe entfernt, setzt sich der Ausgang auf das
Ausgabeformatzurück, das im Dienstprogramm festgelegt wurde. Sie können das Videoformat
ändern, indem Sie im Ausklappmenü unter „Default Output Format“ (Standardausgabeformat)
dasgewünschte Format auswählen.
Die folgenden Videoausgabeformate sind verfügbar:
720p/50
720p/59,94
720p/60
1080i/50
1080i/59,94
1080i/60
1080p/23,98
1080p/24
1080p/25
1080p/29,97
1080p/30
1080p/50
1080p/59,94
1080p/60
Programmieren von Arduino-Sketchen
Die Programme– oder Sketche– für die Arduino-Software sind kinderleicht zu schreiben! Sketche
werden in gängigen C-Programmiersprachen geschrieben. Wenn Sie Sketche mithilfe von Befehlen
des Studio Camera Control Protocols programmieren, bettet das Shield diese Befehle in die
SDI-Ausgabe ein. Mit dieser lassen sich Ihre Blackmagic URSA Mini oder Blackmagic Studio Cameras
daraufhin steuern.
Alle unterstützten Befehle finden Sie im Abschnitt „Studio Camera Control Protocol“ dieses
Handbuchs. Nehmen Sie diese und benutzen Sie sie für Ihren Sketch.
99Testen der Blackmagic Shield und Bibliotheken-Installation
Testen der Blackmagic Shield und
Bibliotheken-Installation
Nachdem alles wie im Abschnitt „Erste Schritte“ beschrieben verbunden wurde und Sie die
Konfigurationssoftware und die Bibliotheksdateien installiert haben, möchten Sie wahrscheinlich
testen, ob Ihr Shield mit dem Arduino-Board kommuniziert und alles einwandfrei funktioniert.
Am schnellsten geht das, wenn Sie den vorhandenen Beispiel-Sketch für das Blinken des Tally-Lichts
öffnen und ausführen.
Das geht so:
1 Starten Sie die Arduino-IDE-Software.
2 Gehen Sie zum „Tools“-Menü (Werkzeuge) und wählen Sie das Arduino-Board und die
Port-Nummer aus.
3 Klicken Sie im „File“-Menü (Datei) auf „Examples/BMDSDIControl“ (Beispiele/BMDSDIControl)
und wählen SieTallyBlink“ aus.
4 Laden Sie den Sketch auf Ihr Board.
Das Beispiel mit dem Blinken des Tally-Lichts ist eine schnelle und einfache Möglichkeit, Ihr
Blackmagic 3G-SDI Shield for Arduino zu testen. Rohdaten können mithilfe von Befehlen
aus dem Studio Camera Protocol Dokument über I2C an Ihr Shield gesendet werden. Wir
haben Ihnen aber zudem eine spezielle Bibliothek zur Verfügung gestellt, damit Sie
Sketche sehr viel einfacher programmieren können.
100Testen der Blackmagic Shield und Bibliotheken-Installation
HINWEIS Vergewissern Sie sich, dass die Tally-Nummer Ihrer Blackmagic Kamera auf „1
eingestellt ist.
Nun sollte das Tally-Licht an Ihrer Blackmagic Studio Camera einmal pro Sekunde blinken. Ist dies der
Fall, können Sie sicher sein, dass Ihr Blackmagic Shield mit dem Arduino kommuniziert und alles
einwandfrei funktioniert.
Blinkt das Tally-Licht nicht, vergewissern Sie sich zunächst, dass die Tally-Nummer der Blackmagic
Kamera auf „1“ eingestellt ist.
Sollten Sie weitere Hilfe benötigen, besuchen Sie das Blackmagic Design Support Center unter
www.blackmagicdesign.com/de/support. Im Abschnitt „Hilfe“ dieses Handbuchs finden Sie weitere
Informationen dazu, wie Sie Hilfestellungen bei der Konfiguration Ihres Shields bekommen.
Status-LEDs
Ihr Blackmagic 3G-SDI Shield for Arduino verfügt über sechs Status-LEDs, die unterschiedliche
Aktivitätszustände wie Stromzufuhr, UART-, I2C- und SPI-Kommunikation anzeigen. Die LEDs zeigen
außerdem an, wenn die Tally- und Camera-Control-Overrides aktiviert sind.
LED 1– System aktiv
Leuchtet auf, wenn das Shield mit Strom versorgt wird.
LED 2– Control-Overrides aktiviert
Leuchtet auf, wenn Sie in Ihrem Arduino-Sketch die Kamerasteuerung aktiviert haben.
LED 3– Tally-Overrides aktiviert
Leuchtet auf, wenn Sie in Ihrem Arduino-Sketch Tally aktiviert haben.
LED 5– I2C-Parser aktiv
Leuchtet auf, wenn Ihr Shield und der Arduino über das I2C-Protokoll kommunizieren.
LED 6– Serieller Parser aktiv
Leuchtet auf, wenn UART-Kommunikation erkannt wird.
Wenn Ihr Blackmagic Shield bootet, bleibt die Strom-LED unbeleuchtet. LEDs 3, 4 und 5 zeigen die
folgenden Aktivitäten an:
LED 3– Anwendungs-Image lädt
LED 4– EEPROM wird initialisiert
LED 5– Speichertest wird durchgeführt
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
101Kommunizieren mit Ihrem Blackmagic Shield for Arduino (English)
Nach erfolgreichem Start leuchtet die Strom-LED auf. Alle anderen LEDs übernehmen daraufhin
wieder ihre betriebliche Standardfunktion.
Im seltenen Fall eines fehlgeschlagenen Systemstarts beginnen alle LEDs– bis auf die für die
fehlgeschlagene Aktivität– schnell zu blinken. So ist die Ursache leicht identifiziert.
Anbringen von Shield-Komponenten
Wenn Sie Ihren eigenen Hardware-Controller bauen möchten, können Sie für eine greifbarere
und praktischere Handhabung ein neues Shield mit Tasten, Reglern und einem Joystick kreieren.
Montieren Sie Ihr eigens angefertigtes Shield einfach auf Ihrem Blackmagic 3G-SDI Shield for
Arduino, indem Sie es auf die dafür vorgesehenen Leisten Ihres Shields aufstecken. Den Arten
von Steuerelementen, die Sie bauen können, sind keine Grenzen gesetzt. Es lässt sich sogar der
Schaltkreis einer alten CCU durch Ihre selbst zusammengestellte Arduino-Lösung austauschen.
Und schon haben Sie eine Kamerasteuerungseinheit nach Industriestandard.
Sie können Ihren eigenen Hardware-Controller kreieren und
diesen für eine noch interaktivere und präzisere Steuerung auf
Ihrem Blackmagic 3G-SDI Shield for Arduino montieren
Kommunizieren mit Ihrem Blackmagic
Shield for Arduino (English)
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial.
Werecommend I2C because of the low pin count and it frees up the serial monitor. This also
allows you to use more I2C devices with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities. Either
or both of these objects can be created in your sketch to issue camera control commands, or
read and write tally data respectively. These objects exist in several variants, one for each of
the physicalI2C or Serialcommunication busses the shield supports.
102Kommunizieren mit Ihrem Blackmagic Shield for Arduino (English)
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
103Studio Camera Control Protocol (English)
Studio Camera Control Protocol (English)
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
104Studio Camera Control Protocol (English)
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the
ATEMSwitchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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 prioritize 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.
105Studio Camera Control Protocol (English)
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
106Studio Camera Control Protocol (English)
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
107Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
108Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
109Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
110Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
111Studio Camera Control Protocol (English)
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
112Developer Information (English)
Developer Information (English)
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following the internal
register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in the
**LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
113Developer Information (English)
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
114Developer Information (English)
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output
connector. When 0, the input signal is passed through to the
output if present, or the shield generates its own SDI
signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately copied
over to the override tally data register. Automatically cleared
by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied
data. When 0, input control data is passed through to the
output unmodified.
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in the
next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in the
next video frame. Automatically cleared once a control packet has
been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when a
new packet has been cached.
115Developer Information (English)
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously from
the next video frame until new data is set. Automatically cleared once
the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame (one
byte per camera). Bit zero indicates a Program tally, while bit one
indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video frame.
Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when a
new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_ was
reset (one byte per camera). Bit zero indicates a Program tally, while
bit one indicates a Preview tally.
116Hilfe
Hilfe
Hilfestellung
Ihr Blackmagic 3G-SDI Shield for Arduino ist ein Werkzeug für Entwickler, mit dem Sie sich autonom
Ihre ganz eigene maßgeschneiderte Lösung zusammenstellen können.
Die aktuellsten Informationen zu diesem Shield finden Sie auf den Blackmagic Design Support Seiten
im Internet. Suchen Sie dort einfach nach den neuesten Hilfsmaterialien.
Blackmagic Design Online Support Seiten
Die aktuellsten Versionen der Bedienungsanleitung, Produktsoftware und Support-Hinweise finden
Sie im Blackmagic Support Center unter www.blackmagicdesign.com/de/support.
Arduino Entwickler-Forum
Sollten Sie Programmierfragen haben, bieten Arduino Entwickler-Foren im Internet Hilfestellung.
Esgibt eine Community von Arduino-Entwicklern sowie viele hilfreiche Foren für softwarebezogene
Fragen. Dort finden Sie sogar bereitwillige Ingenieure, die Sie anheuern können, um Ihnen Ihre ganz
persönlichen Lösungen umzusetzen.
Blackmagic Design Forum
Das Blackmagic Design Forum auf unserer Website ist eine praktische Ressource, die Sie für mehr
Information und kreative Ideen aufsuchen können. Manchmal finden Sie dort schnellere Lösungen,
damöglicherweise bereits Antworten auf ähnliche Fragen von anderen erfahrenen Anwendern und
Blackmagic Design Mitarbeitern vorliegen, die Ihnen weiterhelfen. Das Forum finden Sie unter
http://forum.blackmagicdesign.com.
Überprüfen der aktuell installierten Softwareversion
Um zu überprüfen, welche Version der Blackmagic 3G-SDI Shield for Arduino Setup Software auf
Ihrem Computer installiert ist, öffnen Sie das „About Blackmagic 3G-SDI Shield for Arduino
Setup“ Fenster.
Öffnen Sie unter Mac OS X Blackmagic 3G-SDI Shield for Arduino Setup über den Ordner
Programme. Wählen Sie im Anwendungsmenü „About Blackmagic 3G-SDI Shield for Arduino
Setup“ aus, um die Versionsnummer nachzusehen.
Öffnen Sie unter Windows 7 das Blackmagic 3G-SDI Shield for Arduino Setup über das Menü
Start”. Klicken Sie auf das „Hilfe“-Menü und wählen Sie „About Blackmagic 3G-SDI Shield for
Arduino Setup“, um die Versionsnummer nachzusehen.
Öffnen Sie unter Windows 8 Blackmagic 3G-SDI Shield for Arduino Setup über die
Blackmagic 3G-SDI Shield for Arduino Setup Kachel auf Ihrer Startseite. Klicken Sie auf das
Hilfe“-Menü und wählen Sie „About Blackmagic 3G-SDI Shield for Arduino Setup“, um die
Versionsnummer nachzusehen.
So erhalten Sie die aktuellsten Software-Updates
Prüfen Sie zunächst die Versionsnummer der auf Ihrem Computer installierten Blackmagic 3G-SDI
Shield for Arduino Setup Software. Sehen Sie dann im Blackmagic Design Support Center unter
www.blackmagicdesign.com/de/support nach den neuesten Aktualisierungen. In der Regel empfiehlt
es sich, die neuesten Updates zu laden. Vermeiden Sie jedoch Software-Updates mitten in einem
wichtigen Projekt.
117Garantie
Garantie
12 Monate eingeschränkte Garantie
Die Firma Blackmagic Design gewährt eine Garantie auf Material- und Verarbeitungsfehler des Blackmagic
3G-SDI Shield for Arduino von 12 Monaten ab Kaufdatum. Sollte sich ein Produkt innerhalb dieser
Garantiezeit als fehlerhaft erweisen, wird die Firma Blackmagic Design nach ihrem Ermessen das defekte
Produkt entweder ohne Kostenerhebung für Teile und Arbeitszeit reparieren oder Ihnen das defekte
Produkt ersetzen.
Zur Inanspruchnahme der Garantieleistungen müssen Sie als Kunde Blackmagic Design über den Defekt
innerhalb der Garantiezeit in Kenntnis setzen und die entsprechenden Vorkehrungen für die
Leistungserbringung treffen. Es obliegt dem Kunden, für die Verpackung und den bezahlten Versand
des defekten Produkts an ein spezielles von Blackmagic Design benanntes Service Center zu sorgen
und hierfür aufzukommen. Sämtliche Versandkosten, Versicherungen, Zölle, Steuern und sonstige
Ausgaben im Zusammenhang mit der Rücksendung von Waren an uns, ungeachtet des Grundes, sind
vom Kunden zu tragen.
Diese Garantie gilt nicht für Mängel, Fehler oder Schäden, die durch unsachgemäße Handhabung oder
unsachgemäße oder unzureichende Wartung und Pflege verursacht wurden. Blackmagic Design ist im
Rahmen dieser Garantie nicht verpflichtet, die folgenden Serviceleistungen zu erbringen: a) Behebung
von Schäden infolge von Versuchen Dritter, die Installation, Reparatur oder Wartung des Produkts
vorzunehmen, b) Behebung von Schäden aufgrund von unsachgemäßer Handhabung oder Anschluss
an nicht kompatible Geräte, c) Behebung von Schäden oder Störungen, die durch die Verwendung von
nicht Blackmagic-Design-Ersatzteilen oder -Verbrauchsmaterialien entstanden sind, d) Service für ein
Produkt, das verändert oder in andere Produkte integriert wurde, sofern eine solche Änderung oder
Integration zu einer Erhöhung des Zeitaufwands oder zu Schwierigkeiten bei der Wartung des Produkts
führt. ÜBER DIE IN DIESER GARANTIEERKLÄRUNG AUSDRÜCKLICH AUFGEFÜHRTEN ANSPRÜCHE
HINAUS ÜBERNIMMT BLACKMAGIC DESIGN KEINE WEITEREN GARANTIEN, WEDER AUSDRÜCKLICH
NOCH STILLSCHWEIGEND. DIE FIRMA BLACKMAGIC DESIGN UND IHRE HÄNDLER LEHNEN JEGLICHE
STILLSCHWEIGENDEN GARANTIEN IN BEZUG AUF AUSSAGEN ZUR MARKTGÄNGIGKEIT UND
GEBRAUCHSTAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK AB. DIE VERANTWORTUNG VON
BLACKMAGIC DESIGN, FEHLERHAFTE PRODUKTE ZU REPARIEREN ODER ZU ERSETZEN, IST DIE
EINZIGE UND AUSSCHLIESSLICHE ABHILFE, DIE GEGENÜBER DEM KUNDEN FÜR ALLE INDIREKTEN,
SPEZIELLEN, NEBEN- ODER FOLGESCHÄDEN ZUR VERFÜGUNG GESTELLT WIRD, UNABHÄNGIG
DAVON, OB BLACKMAGIC DESIGN ODER DER HÄNDLER VON DER MÖGLICHKEIT SOLCHER SCHÄDEN
ZUVOR IN KENNTNIS GESETZT WURDE. BLACKMAGIC DESIGN IST NICHT HAFTBAR FÜR JEGLICHE
WIDERRECHTLICHE VERWENDUNG DER GERÄTE DURCH DEN KUNDEN. BLACKMAGIC HAFTET NICHT
R SCHÄDEN, DIE SICH AUS DER VERWENDUNG DES PRODUKTS ERGEBEN. NUTZUNG DES
PRODUKTS AUF EIGENE GEFAHR.
© Copyright 2018 Blackmagic Design. Alle Rechte vorbehalten. „Blackmagic Design“, „DeckLink“, „HDLink“, „Workgroup Videohub“,
Videohub“, „DeckLink, „Intensity und „Leading the creative video revolution“ sind in den USA und in anderen Ländern eingetragene
Warenzeichen. Alle anderen Unternehmens- und Produktnamen sind möglicherweise Warenzeichen der jeweiligen Firmen, mit
denen sie verbunden sind.Arduino und das Arduino-Logo sind Warenzeichen der Firma Arduino. Thunderbolt und das Thunderbolt-
Logo sind Warenzeichen der Firma Intel Corporation in den USA bzw. in anderen Ländern.
Manual de instalación y funcionamiento
Junio 2018
Español
Blackmagic
3G-SDI Shield
for Arduino
119
Bienvenido
Gracias por haber adquirido este producto.
Siempre estamos interesados en nuevas tecnologías y nos complace saber que los usuarios
emplean nuestros productos SDI de manera creativa. Con la tarjeta 3G-SDI Shield for Arduino,
ahora es posible integrar esta plataforma en cualquier dinámica de trabajo basada en dicho
formato digital, a fin de obtener una variedad más amplia de opciones de control para los
dispositivos de Blackmagic Design.
A modo de ejemplo, los modelos Blackmagic URSA Mini y Blackmagic Studio Camera pueden
controlarse desde un mezclador ATEM mediante paquetes de datos integrados en la señal
SDI. Incluso si no se utilizan estos dispositivos pero aún se desea contar con la posibilidad
de operar las cámaras, la tarjeta 3G-SDI Shield for Arduino facilita la creación de soluciones
personalizadas. Esta brinda una plataforma SDI que permite derivar la señal principal
proveniente del mezclador y transmitirla directamente a las mismas.
El código empleado para enviar los comandos a la cámara es sencillo, y estos se encuentran
detallados en el manual.
Las cámaras pueden manejarse a través de cualquier equipo informático. De manera alternativa,
es posible crear controladores dinámicos con botones, perillas y palancas de mando, a efectos
de modificar el enfoque o la distancia focal, la apertura del diafragma, el pedestal y el balance
de blancos, o bien realizar ajustes cromáticos mediante las herramientas de etalonaje que
ofrece la cámara. El diseño de plataformas personalizadas no solo resulta de gran utilidad, sino
que además puede ser muy entretenido.
Estamos muy entusiasmados con esta tecnología innovadora y nos gustaría saber más sobre
los controladores que hayas creado. ¡No dudes en compartir tus experiencias con nosotros!
Este manual de instrucciones brinda toda la información necesaria sobre el producto. La versión
más reciente y las actualizaciones para el sistema operativo interno del dispositivo se encuentran
disponibles en nuestra página de soporte técnico: https://www.blackmagicdesign.com/es/support.
Al mantener el dispositivo actualizado, siempre podrás contar con las prestaciones más recientes.
Por último, no olvides registrarte al descargar las actualizaciones para que podamos mantenerte
informado sobre nuevos lanzamientos. Trabajamos constantemente para desarrollar herramientas
innovadoras y superarnos, de modo que nos encantaría conocer tu opinión.
Grant Petty
Director ejecutivo de Blackmagic Design
120
Índice
Blackmagic 3G-SDI Shield for Arduino
Primeros pasos 121
Colocación de los conectores 121
Montaje sobre la placa Arduino 122
Conexión del cable de alimentación 122
Conexión de dispositivos SDI 123
Instalación del software 124
Instalación del software interno 124
Instalación de librerías para Arduino 125
Programa Blackmagic Shield for Arduino 126
Dirección I2C 126
Formato de video 127
Entorno de programación 127
Cómo comprobar el funcionamiento dela tarjeta 128
Indicadores luminosos 129
Montaje de otros componentes 130
Comunicación con la tarjeta 130
Interfaces de alto nivel 130
Interfaz I2C 131
Interfaz serial 131
Ejemplo de uso 131
Protocolo de control Studio Camera 132
Protocolo de control SDI de cámaras de Blackmagic 133
Descripción general 133
Presunciones 133
Codificación en el intervalo de supresión 133
Agrupamiento de mensajes 133
Formato abstracto de los paquetes 133
Comandos definidos 134
Paquetes de protocolo ilustrativos 140
Información para desarrolladores 141
Codificación física - I2C 141
Codificación física - UART 141
Ayuda 145
Garantía 146
121Primeros pasos
Primeros pasos
Colocación de los conectores
La tarjeta Blackmagic 3G-SDI Shield for Arduino viene con dos conectores Berg de ocho pines,
uno de diez y uno de seis. Estos se utilizan para montarla sobre la placa Arduino y además
permiten añadir otros componentes, incluidos botones, perillas o palancas de mando. Por otra
parte, su distribución brinda compatibilidad con tarjetas R3, tales como el modelo Arduino Uno.
Para colocar los conectores:
1 Inserte los pines de cada conector en los agujeros correspondientes situados a ambos
lados de la tarjeta. Consulte la siguiente ilustración para obtener más información
al respecto.
2 Suelde la base de cada conector a la parte inferior de la tarjeta. Cada patilla metálica
debe quedar firme, pero compruebe que la soldadura no esté en contacto con otras
adyacentes.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
NOTA: La comunicación con la placa se realiza mediante la interfaz
serial o I2C. Recomendamos la segunda opción, dado que permite
utilizar el Monitor Serie. Por otra parte, de esta forma los restantes pines
estarán disponibles. Seleccione el modo de comunicación al definir
el objeto BMDSDIControl en el entorno de programación. Consulte el
apartado correspondiente en este manual para obtener más
información al respecto.
122Primeros pasos
Montaje sobre la placa Arduino
Luego de soldar los conectores, la tarjeta puede colocarse sobre la placa Arduino.
Sostenga cuidadosamente la tarjeta de los costados y compruebe que los conectores en
ambos dispositivos estén alineados. A continuación, inserte las patillas metálicas en los
agujeros correspondientes y empuje la tarjeta con suavidad. Tenga precaución de no doblar
los pines al colocar la tarjeta sobre la placa.
Una vez que los conectores se han acoplado, ambos dispositivos
deberían quedar unidos con firmeza.
Conexión del cable de alimentación
Conecte un transformador de 12 voltios para suministrar corriente eléctrica a la tarjeta.
SUGERENCIA: Para garantizar que todas las patillas metálicas de los
conectores en la tarjeta se encuentren alineadas con las ranuras
correspondientes en la placa Arduino, es aconsejable soldar un pin de
cada conector en primer lugar. A continuación, coloque la tarjeta sobre
la placa y verifique la alineación. Si es necesario ajustar uno de los
conectores, caliente la soldadura correspondiente y mejore su posición.
Esto es más sencillo que soldar todas las conexiones primero y luego
tratar de realizar ajustes.
NOTA: La energía eléctrica suministrada a la placa Arduino mediante
una fuente de alimentación no es suficiente para el funcionamiento de
la tarjeta. Sin embargo, si se conecta esta última a dicha fuente, es
posible alimentar ambos dispositivos.
123Primeros pasos
Conexión de dispositivos SDI
Una vez que la tarjeta cuenta con una fuente de suministro eléctrico, es posible conectarla
a otros dispositivos tales como mezcladores o cámaras Blackmagic URSA Mini.
1 Conecte la salida principal del mezclador a la entrada SDI en la tarjeta.
2 Conecte la salida SDI de la tarjeta a la entrada PGM de la cámara.
El siguiente diagrama ilustra las conexiones entre los equipos.
Esto es todo lo que hay que hacer para comenzar a utilizar la tarjeta.
A continuación, basta con instalar el software interno y las librerías, a efectos de programar
la placa y emplearla para controlar otros dispositivos.
Continúe leyendo el manual para obtener más información sobre cómo establecer la
comunicación entre la tarjeta y la placa Arduino.
Mezclador Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
Entrada PGM
Blackmagic URSA Mini
SUGERENCIA: La tarjeta Blackmagic 3G-SDI Shield for Arduino también puede
emplearse para controlar otros productos, tales como el monitor Blackmagic
MultiView 16. Por ejemplo, cuando esta se encuentra conectada a la entrada 16,
es posible mostrar u ocultar un borde indicador alrededor de cada ventana en
el modo de visualización múltiple.
124Instalación del software
Instalación del software
Instalación del software interno
El programa Blackmagic Shield for Arduino Setup brinda la posibilidad de actualizar el software
interno de la tarjeta. Este permite establecer la comunicación con la placa Arduino y controlarla
mediante los archivos de la librería que se instalan junto con el programa. Solo es necesario
copiarlos y pegarlos en la carpeta Arduino. Consulte el siguiente apartado del manual para
obtener más información al respecto.
Recomendamos descargar la última versión del software y actualizar la tarjeta para poder
aprovechar las prestaciones más recientes. Esta se encuentra disponible en la página de
soporte técnico de Blackmagic Design: https://www.blackmagicdesign.com/es/support.
Para instalar el software interno mediante Mac OS X:
1 Descargue y descomprima el archivo correspondiente.
2 Abra la imagen de disco resultante y ejecute el instalador. Siga las instrucciones que
aparecen en pantalla.
3 Luego de instalar la última versión del programa, conecte la tarjeta a un equipo
informático mediante un cable USB.
4 Ejecute la aplicación y siga las instrucciones que aparecen en pantalla para actualizar
el software interno. Si no aparece ningún mensaje significa que la actualización finalizó
con éxito y no es necesario hacer nada más.
Para instalar el software interno mediante Windows:
1 Descargue y descomprima el archivo correspondiente.
2 Verá una carpeta denominada Blackmagic Shield for Arduino Utility que contiene el
manual y el instalador. Haga doble clic en el archivo correspondiente a este programa
y siga las instrucciones en pantalla para completar la instalación.
3 Luego de instalar la última versión del programa, conecte la tarjeta a un equipo
informático mediante un cable USB.
4 Ejecute la aplicación y siga las instrucciones que aparecen en pantalla para actualizar
el software interno. Si no aparece ningún mensaje significa que la actualización finalizó
con éxito y no es necesario hacer nada más.
NOTA: Antes de instalar el programa Blackmagic 3G-SDI Shield for Arduino,
descargue la última versión del software Arduino IDE desde el sitio web
www.arduino.cc y ejecútela en su equipo informático.
Una vez llevado a cabo este procedimiento, puede instalar el sistema operativo
interno de la tarjeta.
125Instalación de librerías para Arduino
Instalación de librerías para Arduino
El código que permite controlar la placa Arduino se denomina «sketch», y los archivos de
la librería facilitan su desarrollo. Al finalizar la instalación del programa de configuración de
la placa, estos archivos se guardan en una carpeta denominada Library. Basta con copiarlos
y pegarlos en el directorio de Arduino.
Para instalar librerías en Mac OS X:
1 Abra el programa Blackmagic Shield for Arduino situado en la carpeta Aplicaciones.
2 Abra la carpeta Library y haga clic con el botón derecho sobre la carpeta
BMDSDIControl para copiar su contenido.
3 Abra la carpeta Arduino situada en Documentos.
4 Dentro de la misma, verá otra carpeta denominada libraries. Pegue el contenido
copiado en esta carpeta.
Para instalar librerías en Windows:
1 Abra la carpeta Blackmagic Shield for Arduino en la opción Programas.
2 Dentro de la misma, verá otra carpeta denominada Library. Ábrala y haga clic con
el botón derecho sobre la carpeta BMDSDIControl para copiar su contenido.
3 Abra la carpeta Arduino situada en Documentos.
4 Dentro de la misma, verá otra carpeta denominada libraries. Pegue el contenido
copiado en esta carpeta.
Esto es todo lo necesario para instalar la librería de Blackmagic Design en el equipo
informático. Al ejecutar la aplicación Arduino, podrá encontrar un ejemplo de código dentro
de las opciones disponibles.
Para ello, basta con seleccionar Ejemplos en el menú Archivo situado en la barra superior.
Acontinuación, elija la opción BMDSDIControl para ver una lista con distintos ejemplos de
código que puede utilizar.
Una vez que los archivos de la librería se han instalado en la carpeta correcta, la tarjeta podrá
valerse de ellos para establecer la comunicación con la placa Arduino. A tales efectos, solo es
necesario realizar la programación correspondiente mediante el software Arduino IDE. Consulte
el apartado correspondiente en este manual para obtener más información al respecto.
NOTA: El entorno de programación de Arduino debe estar cerrado al instalar
las librerías.
NOTA: Cuando haya disponible un nuevo archivo de librería con ejemplos
adicionales, deberá eliminar la carpeta BMDSDIControl y remplazarla por la
nueva versión siguiendo el método descrito anteriormente.
126Programa Blackmagic Shield for Arduino
Programa Blackmagic Shield for Arduino
Al instalar el programa Blackmagic Shield for Arduino Setup, podrá modificar
ciertos ajustes de la tarjeta, tales como la dirección I2C y el formato de video.
Al instalar el programa Blackmagic Shield for Arduino Setup en el equipo informático, podrá
modificar ciertos ajustes de la tarjeta. Estos incluyen la dirección I2C, que identifica la unidad
para facilitar la comunicación con la placa Arduino, y el formato de video, que determina el tipo
de señal transmitida por el dispositivo.
Dirección I2C
En raras ocasiones, cabe la posibilidad de que otra unidad montada sobre la tarjeta de
Blackmagic comparta la misma dirección I2C predeterminada, lo cual generará un conflicto.
Eneste caso, es posible modificar dicho parámetro.
127Entorno de programación
La dirección predeterminada de la tarjeta es 0x6E. Sin embargo, el usuario puede escoger
cualquier otra dentro del rango 0x08 - 0x77.
Para cambiar la dirección de la tarjeta:
1 Ejecute el programa Blackmagic Shield for Arduino Setup y haga clic en el ícono
de configuración.
2 En la opción Set address to:, ingrese la dirección que desea utilizar.
3 Haga clic en el botón Save.
Formato de video
Si no se detecta una señal entrante, la opción Default output format indica el formato
predeterminado. Al conectar una señal, el formato cambiará automáticamente para que
coincida con la misma. Cuando el cable se desconecta, esta opción vuelve a mostrar el
parámetro por defecto. Para seleccionar un formato determinado, haga clic en el menú
desplegable situado a la derecha.
Es posible seleccionar cualquiera de los siguientes formatos:
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Entorno de programación
Arduino facilita en gran medida el desarrollo del código. Este se escribe empleando el lenguaje
de programación C. Al utilizar los comandos del protocolo de control Studio Camera, estos se
integran en la señal SDI saliente, permitiendo de tal modo controlar unidades Blackmagic
URSA Mini o Blackmagic Studio Camera.
Todos los comandos compatibles que pueden emplearse para escribir el código se detallan
más adelante en este manual.
128Cómo comprobar el funcionamiento dela tarjeta
Cómo comprobar el funcionamiento
dela tarjeta
Luego de realizar todos los procedimientos descritos en el apartado «Primeros pasos» e
instalar tanto el programa de configuración como las librerías, es preciso comprobar si la tarjeta
efectivamente se comunica con la placa Arduino.
Una forma rápida de lograr este cometido es ejecutar el código ilustrativo para luces piloto.
Para ello, siga los pasos descritos a continuación:
1 Ejecute la aplicación Arduino IDE.
2 En el menú Herramientas, seleccione la placa y el puerto.
3 En el menú Archivo, seleccione la opción Ejemplos, luego BMDSDIControl y a
continuación TallyBlink.
4 Cargue el programa en la placa.
Este ejemplo proporciona una manera rápida y efectiva de comprobar si la tarjeta
funciona correctamente. Los datos pueden transmitirse mediante la interfaz I2C
empleando comandos del protocolo Studio Camera, aunque también proporcionamos
librerías particulares a efectos de facilitar la programación.
129Cómo comprobar el funcionamiento dela tarjeta
La luz piloto del modelo Blackmagic Studio Camera debería parpadear cada un segundo.
Si esto sucede, es posible afirmar que la comunicación entre la tarjeta y la placa Arduino
se ha establecido de manera correcta.
En caso contrario, compruebe que el número asignado a la luz piloto sea 1.
Visite la página de soporte técnico en nuestro sitio web para obtener más información
al respecto: www.blackmagicdesign.com/es/support. De forma alternativa, consulte el
apartado «Ayuda» para ver las distintas maneras en las que es posible procurar asistencia.
Indicadores luminosos
La tarjeta Blackmagic 3G-SDI Shield for Arduino cuenta con seis indicadores luminosos que
permiten confirmar la actividad del dispositivo. Consulte el diagrama que figura a continuación
para obtener más información al respecto.
LED 1 - Sistema activo
Este indicador se enciende cuando hay una fuente de alimentación conectada
a la tarjeta.
LED 2 - Control anula función activa
Este indicador se enciende cuando el código escrito en el entorno de programación
de Arduino permite controlar la cámara.
LED 3 - Luz piloto anula función activa
Este indicador se enciende cuando el código escrito en el entorno de programación
de Arduino permite controlar la luz piloto.
LED 5 - Analizador I2C activo
Este indicador se enciende cuando se establece una comunicación entre la tarjeta
y la placa Arduino mediante el protocolo I2C.
LED 6 - Analizador serial activo
Este indicador se enciende cuando se establece una comunicación mediante
el dispositivo UART.
Al reiniciar la tarjeta, el indicador 1 permanece apagado. Los indicadores 3, 4 y 5 brindan
la siguiente información:
LED 3 - Cargando imagen de la aplicación
LED 4 - Iniciando EEPROM
LED 5 - Verificando memoria
NOTA: Compruebe que el número asignado a la luz piloto sea 1.
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
130Montaje de otros componentes
A continuación, el indicador 1 se enciende y los restantes indicadores asumen sus funciones
predeterminadas.
En caso de que ocurra un error al reiniciar la tarjeta, todos los indicadores parpadearán
rápidamente, a excepción de aquel que indica la causa de la falla. Esto brinda la posibilidad
de identificarla fácilmente.
Montaje de otros componentes
Es posible crear controladores personalizados con botones, perillas y palancas de mando que
faciliten su manejo. A tales efectos, basta con montar estos dispositivos a la tarjeta Blackmagic
3G-SDI Shield for Arduino insertando los conectores en las ranuras correspondientes. No hay
limitaciones en cuanto al diseño de los controladores. Incluso se pueden remplazar los circuitos
de una unidad de control de cámaras con una solución basada en la plataforma Arduino para
adaptarla a las necesidades particulares de un determinado proyecto.
Es posible crear controladores personalizados y montarlos
sobre la tarjeta Blackmagic 3G-SDI Shield for Arduino para
lograr una mayor interactividad y precisión.
Comunicación con la tarjeta
La comunicación con la tarjeta puede establecerse mediante un bus serial o I2C.
Recomendamos la segunda opción, dado que presenta una menor cantidad de pines. Además,
de este modo, el Monitor Serie estará disponible. A su vez, esto permite utilizar otros equipos
I2C con la tarjeta.
Interfaces de alto nivel
La librería contiene dos objetos principales: BMD_SDITallyControlyBMD_SDICameraControl.
Estos permiten activar las funcionalidades para la luz piloto y el control de las cámaras en la
tarjeta. Ambos pueden crearse mediante el entorno de programación de Arduino para
transmitir los comandos correspondientes. Existen distintas variantes de estos objetos para
cada bus serial o I2C.
131Comunicación con la tarjeta
Interfaz I2C
Para utilizar la interfaz I2C:
// NOTE: Must match address set in the setup utility software
const intshieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Interfaz serial
Para utilizar la interfaz serial:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Nótese que la librería determinará la interfaz serial según la velocidad de baudios requerida
(38 400). Para enviar mensajes de depuración al Monitor Serie cuando se emplea esta interfaz,
modifique este parámetro según corresponda. Al utilizar el Monitor Serie, es posible que
aparezcan datos binarios, dado que el entorno de programación no será capaz de distinguir
entre los comandos y los mensajes del usuario.
Ejemplo de uso
Una vez creados en el entorno de programación, estos objetos permitirán transmitir comandos
a la tarjeta mediante el bus seleccionado para activar determinadas funcionalidades.
A continuación se proporciona un breve ejemplo de código que utiliza la librería mediante
el bus I2C.
// NOTE: Must match address set in the setup utility software
const intshieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
Las funciones compatibles con estos objetos se detallan más adelante en este manual. Nótese
que, en primer lugar, deberá ejecutar la función begin para cada objeto antes de transmitir
cualquier otro comando.
En el entorno de programación de Arduino se incluyen otros ejemplos ilustrativos. Para
acceder a los mismos, seleccione BMDSDIControl en la opción Ejemplos del menú Archivo.
132Protocolo de control Studio Camera
Protocolo de control Studio Camera
Este apartado contiene el protocolo de control detallado en el manual del modelo Studio
Camera. Los comandos permiten manejar tanto dicha unidad como la cámara Blackmagic
URSA Mini a través de la tarjeta Blackmagic 3G-SDI Shield for Arduino.
Cada parámetro corresponde a un grupo determinado según se describe a continuación:
Número
identificatorio Grupo
0Objetivo
1Video
2Audio
3Información
4Pantalla
5Luz piloto
6Referencia
7Configuración
8Etalonaje
10 Medios
11 Control PTZ
El número identificatorio se utiliza en el entorno de programación de Arduino para determinar
el parámetro que se modifica.
La función sdiCameraControl.writeXXXX se denomina a partir del valor que se desea cambiar,
y el sufijo depende del grupo controlado.
A modo de ejemplo, sdiCameraControl.writeFixed16 se emplea para el enfoque, la apertura
del diafragma, la distancia focal, la pantalla, la luz piloto y el etalonaje al modificar valores
absolutos.
La sintaxis completa para este comando es la siguiente:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
El tipo de operación especifica la acción realizada en el parámetro indicado.
0 = valor asignado. El valor suministrado se asigna al parámetro indicado.
1 = valor de compensación. Cada valor especifica la compensación que se añade al
parámetro «Valor».
Por ejemplo:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
133Protocolo de control Studio Camera
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
Según se describe en el protocolo, liftAdjust es una secuencia de cuatro elementos: RED[0],
GREEN[1], BLUE[2] y LUMA[3]. La secuencia completa se envía con el comando.
Los ejemplos de código incluidos en los archivos de la librería contienen elementos
descriptivos que explican su funcionamiento.
Protocolo de control SDI de cámaras de Blackmagic
Version 1.2
El protocolo de control facilita la integración de nuestros productos con otros dispositivos.
Nuestra filosofía es mantener los protocolos abiertos para facilitar la colaboración entre
usuarios durante los procesos creativos.
Descripción general
El protocolo de control permite manejar cámaras de Blackmagic Design compatibles con el
mezclador ATEM, la tarjeta 3G-SDI Shield for Arduino y Blackmagic Camera Remote.Consulte
la sección Descripción general sobre el control de cámaras en los manuales de los modelos
URSA Broadcast y URSA Mini, de los mezcladores ATEM o del kit de herramientas ATEM para
obtener más información al respecto. Dicho material está disponible en la página
www.blackmagicdesign.com/es/support.
Este documento describe un protocolo expansible para enviar mensajes cortos integrados en
la parte de la señal digital que no contiene información visual. El protocolo puede transmitirse
a distintos dispositivos. El equipo al que debe enviarse el mensaje se determina mediante un
proceso de direccionamiento.
Presunciones
El documento del protocolo describe las limitaciones en cuanto a la compensación y la
alineación de la información. Los grupos de bits se ordenan comenzando por el bit menos
importante (LSB). Se asume que los grupos de mensajes, mensajes individuales y encabezados
de comandos se encuentran optimizados para sistemas de 32 bits.
Codificación en el intervalo de supresión
Los grupos de mensajes se codifican en un paquete SMPTE 291M, con DID/SDID x51/x53 en
la región activa de la línea 16 correspondiente al espacio vertical para datos auxiliares (VANC).
Agrupamiento de mensajes
Es posible concatenar y enviar hasta 32 mensajes en un paquete, con una carga útil máxima
de 255 bytes. En la mayoría de los casos, esto permite transmitir todos los mensajes en un
fotograma como máximo.
Si la cantidad de paquetes de mensajes que el dispositivo intenta transmitir es mayor al número
de bytes que pueden incluirse en un fotograma, será necesario utilizar métodos heurísticos
para determinar cuáles tienen prioridad. Los mensajes menos importantes pueden transmitirse
en fotogramas posteriores o ignorarse por completo según sea necesario.
Formato abstracto de los paquetes
Cada paquete de mensajes consiste en un encabezado de 3 bytes, seguido de un bloque
de datos opcional de longitud variable. El tamaño máximo de los paquetes es de 64 bytes.
134Protocolo de control Studio Camera
Dispositivo de destino
(uint8)
Las direcciones de los dispositivos se representan mediante un número entero de 8 bits sin
signo. Los dispositivos individuales se numeran del 0 al 254, mientras que el número 255
se reserva para mensajes transmitidos a todos los equipos.
Longitud del comando
(uint8)
La longitud del comando consiste en un número entero de 8 bits sin signo que indica la
extensión de la información. Es preciso destacar que dicho valor NO incluye la longitud del
encabezado o de los bytes de compensación.
Identificación del comando
(uint8)
Consiste en un número entero de 8 bits sin signo que indica el tipo de mensaje enviado.
El dispositivo receptor deberá ignorar cualquier comando incomprensible.
Los números 0 al 127 se reservan para comandos genéricos aplicados a múltiples equipos.
Los números 128 al 255 se asignan a comandos para dispositivos específicos.
Reservado (uint8) Este byte se reserva para alineaciones y futuras expansiones. Debería ser 0.
Información del comando
(uint8[])
La información del comando puede incluir entre 0 y 60 bytes. El formato de la selección
de datos está definido por el comando mismo.
Información de relleno o
compensación (uint8[])
Los mensajes deben completarse hasta un máximo de 32 bits con 0x0 bytes. Los bytes
de relleno NO se incluyen en la longitud del comando.
El dispositivo receptor debe usar la dirección del dispositivo de destino y/o el identificador
de comandos para determinar los mensajes que es necesario procesar. El receptor utiliza
la longitud del comando para omitir aquellos que son irrelevantes o desconocidos, así como
la información complementaria.
Comandos definidos
Comando 0 : cambio de configuración
Categoría (uint8) Este valor indica una de las 256 categorías de configuraciones disponibles en
el dispositivo.
Parámetro (uint8)
Este parámetro indica una de las 256 categorías posibles de configuraciones en el
dispositivo. Los números del 0 al 127 se asignan a dispositivos específicos. Los números
del 128 al 255 se reservan para parámetros genéricos utilizados en múltiples equipos.
Tipo de datos (uint8)
Este valor indica el tipo de la información restante. La longitud del paquete determina
la cantidad de elementos en el mensaje. Cada mensaje debe contener un número entero
de elementos.
Los valores definidos actualmente son los siguientes:
0: nulo / booleano
Un valor nulo se representa como un arreglo booleano de longitud 0.
El valor del campo consiste en una cifra de 8 bits, donde 0 significa falso y los demás
números significan verdadero.
1: byte con signo Los elementos de datos se representan mediante bytes con signo.
2: número entero de
16 bits con signo Los elementos de datos se representan mediante valores de 16 bits con signo.
3: número entero de
32 bits con signo Los elementos de datos se representan mediante valores de 32 bits con signo.
4: número entero de
64 bits con signo Los elementos de datos se representan mediante valores de 64 bits con signo.
5: cadena UTF-8 Los elementos de datos se representan mediante una cadena UTF-8 sin carácter
de finalización.
135Protocolo de control Studio Camera
Se reservan los tipos de datos 6 a 127.
128: con signo 5.11punto fijo
Los elementos de datos se representan mediante enteros de 16 bits con signo que
corresponden a un número real. Se utilizan 5 bits para el componente entero y 11 bits para
la fracción. La representación del punto fijo equivale al valor real multiplicado por 2^11.
El rango representado va de -16.0 a 15.9995 (15 + 2047/2048).
Los números 129 al 255 se asignan a comandos para dispositivos específicos.
Tipo de operación (uint8) El tipo de operación especifica la acción realizada en el parámetro indicado.
Los valores definidos actualmente son los siguientes:
0: valor asignado
Los valores suministrados se asignan al parámetro indicado. Cada elemento se adjunta
según su rango válido. Solo es posible «asignar» una lista vacía de tipo booleano a
un parámetro nulo. Esta operación producirá la acción vinculada a dicho parámetro.
Un valor booleano puede ser 0 para falso o cualquier otro número para verdadero.
1: valor de compensación/
alternancia
Cada valor especifica la compensación que se añade al parámetro «Valor». El valor
resultante se restringe según el rango válido. No es posible aplicar una compensación
a un valor nulo. Al aplicar cualquier otra compensación distinta de 0 a un valor booleano,
este se invertirá.
Se reservan los tipos de operaciones 2 a 127.
Los tipos de operaciones 128 a 255 se asignan a comandos para dispositivos específicos.
Datos (nulo) El campo de datos es 0 o más bytes según el tipo de información y la cantidad
de elementos.
La categoría, el parámetro y el tipo de dato u operación comparten un espacio de 24 bits.
Grupo Número Parámetro Tipo Índice Mín. Máx. Interpretación
Objetivo
0.0 Enfoque fixed16 0 1 0.0 = cerca, 1.0 = lejos
0.1 Enfoque automático nulo – – Activa el enfoque automático
0.2 Apertura (número f) fixed16 -1 16 Valor de apertura (en el que
el número f = sqrt(2^AV))
0.3 Apertura (normal) fixed16 0 1 0.0 = menor valor, 1.0 = mayor valor
0.4 Apertura (ordinal) int16 0 n
Pasos de valores de exposición
disponibles, del mínimo (0) al
máximo (n)
0.5 Apertura automática
instantánea nulo – – Activa la apertura automática
instantánea
0.6 Estabilización de
imagen óptica booleano – – true = activada, false = desactivada
0.7
pulgadas Zoom absoluto (mm) int16 0 max
Mover a la distancia focal indicada
en mm, del mínimo (0) al
máximo (max).
0.8 Distancia focal absoluta
(normalizada) fixed16 0 1 Desplazamiento a la distancia focal:
0.0 = W, 1.0 = T
0.9
pulgadas
Zoom continuo
(velocidad) fixed16 -1 +1.0
Comenzar/detener zoom a la
velocidad indicada: -1.0 = W rápido,
0.0 = detener, +1.0 = T rápido
136Protocolo de control Studio Camera
Grupo Número Parámetro Tipo Índice Mín. Máx. Interpretación
Video
1.0 Modo de video int8
[0] =
frecuencia de imagen – – 24, 25, 30, 50, 60
[1] = frecuencia M – – 0 = común, 1 = frecuencia M
[2] = dimensiones – –
0 = NTSC, 1 = PAL, 2 = 720,
3 = 1080, 4 = 2K, 5 = DCI 2K,
6 = UHD
[3] = entrelazado – – 0 = progresivo, 1 = entrelazado
[4] = espacio cromático – – 0 = YUV
1.1 Ganancia int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Balance de
blancos manual
int16 [0] =
temperatura del color 2500 10000 Temperatura del color (K)
int16 [1] = tinte -50 50 tinte
1.3 Balance de blancos
automático nulo – – Calcula y establece el balance
de blancos automático
1.4 Restablece el balance
de blancos automático nulo – – Utiliza la última configuración para
el balance de blancos automático
1.5 Exposición (µs) int32 142000 Tiempo expresado en µs
1.6 Exposición (ordinal) int16 0 n
Pasos de los valores de exposición
disponibles del mínimo (0) al
máximo (n).
1.7 Modo de rango dinámico int8 enum 0 2 0 = film, 1 = video,
2 = video extendido
1.8 Nitidez int8 enum 0 3 0 = Desactivado, 1 = Bajo,
2 = Medio, 3 = Alto
1.9 Formato de grabación int16
[0] = frecuencia de
imagen del archivo – – frecuencia como número entero
(eg 24, 25, 30, 50, 60, 120)
[1] = frecuencia de
imagen permitida
por el sensor
– –
frecuencia como número entero,
válida cuando se establecen otros
valores para el sensor (p. ej., 24,
25, 30, 33, 48, 50, 60, 120), no se
ejecuta ningún cambio si el valor
indicado es 0
[2] = ancho
de fotograma – – en pixeles
[3] = altura de fotograma – – en pixeles
[4] = indicadores
– – [0] = archivo-M-frecuencia
– –
[1] = sensor-M-frecuencia, válido
cuando se establecen otros valores
para el sensor
– – [2] = otros valores para el sensor
– – [3] = entrelazado
– – [4] = área del sensor reducida
1.10 Establece el modo de
exposición automática int8 0 4
0 = Activación manual,
1 = Diafragma, 2 = Obturador,
3 = Diafragma y obturador,
4 = Obturador y diafragma
1.11 Ángulo de obturación int32 100 36000 Ángulo de obturación en grados,
multiplicado por 100
1.12 Velocidad de obturación int32 24 2000
Velocidad de obturación como
fracción de 1, de modo que 50
corresponde a 1/50s.
1.13 Ganancia int8 -128 127 Ganancia en decibelios (dB)
1.14 ISO int32 0 2147483647 Valor ISO
137Protocolo de control Studio Camera
Grupo Número Parámetro Tipo Índice Mín. Máx. Interpretación
Audio
2.0 Volumen del micrófono fixed16 0 1 0.0 = mínimo, 1.0 = máximo
2.1 Nivel de los auriculares fixed16 0 1 0.0 = mínimo, 1.0 = máximo
2.2 Mezcla (auriculares) fixed16 0 1 0.0 = mínimo, 1.0 = máximo
2.3 Volumen del altavoz fixed16 0 1 0.0 = mínimo, 1.0 = máximo
2.4 Tipo de entrada int8 0 2
0 = micrófono interno,
1 = nivel de línea,
2 = nivel de micrófono bajo,
3 = nivel de micrófono alto
2.5 Volumen de entradas fixed16
[0] ch0 0 1 0.0 = mínimo, 1.0 = máximo
[1] ch1 0 1 0.0 = mínimo, 1.0 = máximo
2.6 Alimentación fantasma booleano – – true = con suministro,
false = sin suministro
Información
3.0 Controles en
pantalla activados uint16 bit – –
bit indicador: [0] = mostrar estado,
[1] = mostrar guías
Algunas cámaras no permiten
controlar estos elementos
en forma individual.
3.1 Estilo de guías
(cámara 3.x) int8 [0] = estilo de guías 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = tercios
3.2 Opacidad de guías
(cámara 3.x) fixed16 [1] = opacidad de guías 0.1 10.0 = transparente, 1.0 = opaco
3.3
Guías
(reemplaza valores
superiores a 0.1 y 0.2
en Camera 4.0)
int8
[0] = estilo de guías – –
0 = desactivado, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = opacidad de guías 0100 0 = transparente, 100 = opaco
[2] = porcentaje del
área segura 0100
porcentaje de resolución máxima
empleado por las guías del
área segura
(0 = desactivado)
[3] = estilo de cuadrícula – –
bit indicadores: [0] = mostrar tecios,
[1] = mostrar cruz filar, [2] = mostrar
punto central
Pantalla
4.0 Brillo fixed16 0 1 0.0 = mínimo, 1.0 = máximo
4.1 Controles en
pantalla activados
int16
bit
– – 0x4 = cebra
– – 0x8 = máximo
– –
4.2 Nivel cebra fixed16 0 1 0.0 = mínimo, 1.0 = máximo
4.3 Nivel del indicador
de enfoque fixed16 0 1 0.0 = mínimo, 1.0 = máximo
4.4 Mostrar barras de color
(segundos) int8 0 30 0 = desactivar, 1-30 = activar con
tiempo de espera (s)
4.5 Ajuste de enfoque int8
[0] = método del
indicador de enfoque – – 0 = Enfoque,
1 = líneas de color
[1] = líneas de color
para enfoque – –
0 = Rojo,
1 = Verde,
2 = Azul,
3 = Blanco,
4 = Negro
138Protocolo de control Studio Camera
Grupo Número Parámetro Tipo Índice Mín. Máx. Interpretación
Luz piloto
5.0 Brillo de la luz piloto fixed16 0 1
Misma intensidad para la luz
piloto delantera y trasera.
0.0 = mínimo, 1.0 = máximo
5.1 Brillo de la luz
piloto frontal fixed16 0 1
Permite establecer la intensidad de
la luz piloto frontal. 0.0 = mínimo,
1.0 = máximo
5.2 Brillo de la luz
piloto trasera fixed16 0 1
Permite establecer la intensidad
de la luz piloto trasera.
0.0 = mínimo, 1.0 = máximo
No es posible apagar la luz
piloto trasera.
Referencia 6.0 Fuente int8 enum 0 2 0 = interna, 1 = programa,
2 = externa
6.1 Compensación int32 – – +/- compensación en pixeles
Configuración
7.0 Reloj en tiempo real int32 [0] tiempo _ _ BCD – HHMMSSFF (UTC)
[1] fecha _ _ BCD - AAAAMMDD
7.1 Idioma del sistema comando _ _ _ código de dos caracteres para
idiomas ISO-639-1
7.2 Uso horario int32 _ _ _ Desfase en minutos desde UTC
7.3 Ubicación int64
[0] latitud _ _
BCD – s0DDdddddddddddd
en el que el signo s:
0 = norte (+), 1 = sur (-);
DD grados, dddddddddddd
grados decimales
[1] longitud _ _
BCD – sDDDdddddddddddd en el
que el signo s: 0 = oeste (+), 1 = este
(-); DD grados, dddddddddddd
grados decimales
Etalonaje
8.0 Ajuste de sombras fixed16
[0] rojo -2 2predeterminado 0.0
[1] verde -2 2predeterminado 0.0
[2] azul -2 2predeterminado 0.0
[3] luminancia -2 2predeterminado 0.0
8.1 Ajuste de tonos
intermedios fixed16
[0] rojo -4 4predeterminado 0.0
[1] verde -4 4predeterminado 0.0
[2] azul -4 4predeterminado 0.0
[3] luminancia -4 4predeterminado 0.0
8.2 Ajuste de luces fixed16
[0] rojo 016 predeterminado 1.0
[1] verde 016 predeterminado 1.0
[2] azul 016 predeterminado 1.0
[3] luminancia 016 predeterminado 1.0
8.3 Ajuste de la
compensación fixed16
[0] rojo -8 8predeterminado 0.0
[1] verde -8 8predeterminado 0.0
[2] azul -8 8predeterminado 0.0
[3] luminancia -8 8predeterminado 0.0
8.4 Ajuste de contraste fixed16 [0] pivote 0 1 predeterminado 0.5
[1] ajuste 0 2 predeterminado 1.0
8.5 Mezcla de luminancia fixed16 0 1 predeterminado 1.0
8.6 Ajuste de color fixed16 [0] matiz -1 1predeterminado 0.0
[1] saturación 0 2 predeterminado 1.0
8.7 Restablecer valores
predeterminados nulo – – Restablece los valores
predeterminados.
139Protocolo de control Studio Camera
Grupo Número Parámetro Tipo Índice Mín. Máx. Interpretación
Medios
10.0 Códec int8
enum
[0] = códec básico – –
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = variante de códec
– –
RAW:
0 = Sin comprimir,
1 = 3:1 con pérdida de información,
2= 4:1 con pérdida de información
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Modo de reproducción int8
[0] = modo – –
0 = Vista previa,
1 = Reproducir,
2 = Grabar
[1] = velocidad – –
-ve = varias velocidades hacia atrás,
0 = pausa,
+ve = varias velocidades
hacia adelante
[2] = indicadores – –
1<<0 = continua,
1<<1 = reproducir todos,
1<<5 = disco1 activo,
1<<6 = disk2 activo,
1<<7 = grabación por intervalos
[3] = medio de
almacenamiento
activo
– – 0 = tarjeta CFast, 1 = SD
Control PTZ
11.0 Velocidad de barrido/
inclinación fixed 16
[0] = velocidad
de barrido -1.0 1.0 -1.0 = velocidad máxima izquierda,
1.0 = velocidad máxima derecha
[1] = velocidad de
inclinación -1.0 1.0 -1.0 = velocidad máxima abajo,
1.0 = velocidad máxima arriba
11.1 Restablecer
int8
enum
[0] = comando
predeterminado – –
0 = restablecer,
1 = guardar,
2 = cargar
int8
[1] =
espacio
predeterminado
0 5
140Protocolo de control Studio Camera
Paquetes de protocolo ilustrativos
Operación Longitud Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
encabezado comandos datos
destino
longitud
comando
reservado
categoría
parámetro
tipo
operación
Activar enfoque automático
instantáneo en cámara 4 8 4 4 0 0 0 1 0 0
Activar función OIS en todas
las cámaras 12 255 5 0 0 0 6 0 0 1 0 0 0
configura la exposición
a 10ms en cámara 4
(10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
agrega 15% a la intensidad
de la función Cebra
(15 % = 0.15 f = 0x0133 f/s)
12 4 6 0 0 4 2 128 10x33 0x01 0 0
el modo 1080p 23.98
en todas las cámaras 16 255 900101024 1 3 0 0 0 0 0
resta 0.3 del ajuste para
tonos intermedios en los
canales verde y azul
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
todas las operaciones
combinadas 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
141Información para desarrolladores
Información para desarrolladores
Este apartado brinda toda la información necesaria para crear librerías personalizadas y
desarrollar soportes físicos compatibles con la tarjeta Blackmagic 3G-SDI Shield for Arduino.
Codificación física - I2C
La tarjeta funciona a las siguientes velocidades (I2C):
1. Modo estándar (100 kbit/s)
2. xima velocidad (400 kbit/s)
La dirección I2C predeterminada de la tarjeta es 0x6E.
Pin | Función
--------------------- |-----------------------------
A4 | Datos seriales (SDA)
A5 | Reloj serial (SCL)
**Protocolo I2C (escritura):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**Protocolo I2C (lectura):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
La carga útil máxima (indicada como **VAL** en los ejemplos anteriores) de lectura y escritura
(luego de la dirección del registro interno) en una transacción es de 255 bytes.
Codificación física - UART
La velocidad de transmisión en baudios de la tarjeta al emplear este modo es de 115200
(formato 8-N-1).
Pin | Función
--------------------- |-----------------------------
IO1 | Transmisión serial (TX)
IO0 | Recepción serial (RX)
**Protocolo UART (escritura):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**Protocolo UART (lectura):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
La carga útil máxima (indicada como **VAL** en los ejemplos anteriores) de lectura y escritura
(según el parámetro **LENGTH**) en una transacción es de 255 bytes.
Mapa de direcciones del registro
142Información para desarrolladores
El mapa de direcciones de la tarjeta se detalla a continuación:
Dirección | Nombre | L/E | Descripción
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | L | Identificador del hardware
0x0004 - 0x0005 | HWVERSION | L | Versión del hardware
0x0006 - 0x0007 | FWVERSION | L | Versión del firmware
| | |
0x1000 | CONTROL | L/E | Control del sistema
| | |
0x2000 | OCARM | L/E | Anular control SDI (ARM)
0x2001 | OCLENGTH | L/E | Anular control SDI (longitud)
0x2100 - 0x21FE | OCDATA | L/E | Anular control SDI (datos)
| | |
0x3000 | ICARM | L/E | Control SDI entrante (ARM)
0x3001 | ICLENGTH | L | Control SDI entrante (longitud)
0x3100 - 0x31FE | ICDATA | L | Control SDI entrante (datos)
| | |
0x4000 | OTARM | L/E | Anular SDI luz piloto (ARM)
0x4001 | OTLENGTH | L/E | Anular SDI luz piloto (longitud)
0x4100 - 0x41FE | OTDATA | L/E | Anular SDI luz piloto (datos)
| | |
0x5000 | ITARM | L/E | SDI entrante luz piloto (ARM)
0x5001 | ITLENGTH | L | SDI entrante luz piloto (longitud)
0x5100 - 0x51FE | ITDATA | L | SDI entrante luz piloto (datos)
Los campos numéricos con múltiples bytes se almacenan en orden de relevancia, según
el sistema «little-endian». Las direcciones no utilizadas se reservan y equivalen a 0.
Registro: IDENTITY (Identificador de la placa)
[ IDENTITY ]
31 0
SDIC de la cadena ASCII **Identity:** (i.e. 0x43494453) en hexadecimales.
Registro: HWVERSION (Versión del hardware)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Revisión, componente principal.
**Version Minor:** Revisión, componente secundario.
Registro: FWVERSION (Versión del firmware)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Revisión, componente principal.
**Version Minor:** Revisión, componente secundario.
Registro: CONTROL (Control del sistema)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
143Información para desarrolladores
**Reserved:** Siempre 0.
**Override Output:** Cuando este valor es 1, la señal SDI entrante (si existe) se
descarta y la tarjeta genera su propia señal en la salida SDI.
Cuando este valor es 0, la señal se transmite a través de la
tarjeta o se genera una señal SDI si el dispositivo no la detecta.
**Reset Tally:** Cuando este valor es 1, los últimos datos recibidos relativos
a la luz piloto se copian al registro correspondiente. Borrado
automático mediante el hardware.
**Override Tally:** Cuando este valor es 1, la información suministrada por el
usuario anula los datos recibidos. Cuando este valor es 0, los
datos se transmiten sin modificación alguna.
**Override Control:** Cuando este valor es 1, la información de control suministrada
por el usuario anula los datos recibidos. Cuando este valor es 0,
los datos se transmiten sin modificación alguna.
Registro: OCARM (Salida control - ARM)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Siempre 0.
**Arm:** Cuando este valor es 1, los datos ARM se transmiten en el
siguiente fotograma. Borrado automático una vez enviada
la información.
Registro: OCLENGTH (Salida control - longitud)
[ LENGTH ]
7 0
**Length:** Longitud en bytes de los datos enviados.
Registro: OCDATA (Salida control - carga útil)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Datos de control que se integrarán en un fotograma.
Registro: ICARM (Entrada control - ARM)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Siempre 0.
**Arm:** Cuando este valor es 1, los datos ARM se reciben en el siguiente
fotograma. Borrado automático una vez leído el paquete
de control.
Registro: ICLENGTH (Entrada control - longitud)
[ LENGTH ]
7 0
**Length:** Longitud en bytes de los datos en _ICDATA_. Se establece
automáticamente al almacenar un nuevo paquete en la
memoria caché.
144Información para desarrolladores
Registro: ICDATA (Entrada control - carga útil)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Últimos datos extraídos de un fotograma luego de restablecer
_ICARM.ARM_.
Registro: OTARM (Salida luz piloto - ARM)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Siempre 0.
**Arm:** Cuando este valor es 1, los datos salientes relativos a la luz
piloto se transmiten a partir del siguiente fotograma de manera
continua hasta que se establezca un nuevo valor. Borrado
automático una vez enviada la información, al menos en un
fotograma.
Registro: OTLENGTH (Salida luz piloto - longitud)
[ LENGTH ]
7 0
**Length:** Longitud en bytes de los datos enviados en OTDATA.
Registro: OTDATA (Salida luz piloto - datos)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Datos que deben integrarse en un próximo fotograma (1 byte por
cámara). El 0 indica la señal principal, mientras que 1 hace
referencia al anticipo.
Registro: ITARM (Entrada luz piloto - ARM)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Siempre 0.
**Arm:** Cuando este valor es 1, los datos se reciben en el siguiente
fotograma. Borrado automático una vez leída la información.
Registro: ITLENGTH (Entrada luz piloto - longitud)
[ LENGTH ]
7 0
**Length:** Longitud en bytes de los datos en _ITDATA_. Se establece
automáticamente al almacenar un nuevo paquete en la
memoria caché.
Registro: ITDATA (Entrada luz piloto - datos)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Últimos datos extraídos de un fotograma luego de restablecer
_ITARM.ARM_ (1 byte por cámara). El 0 indica la señal principal,
mientras que 1 hace referencia al anticipo.
145Ayuda
Ayuda
Ayuda
La tarjeta Blackmagic 3G-SDI Shield for Arduino es un dispositivo que permite desarrollar
soluciones personalizadas según los requerimientos de cada usuario.
Visite nuestra página de soporte técnico para obtener información actualizada al respecto.
Página de soporte técnico
Las versiones más recientes del manual, el software de los dispositivos y el material de
apoyose encuentran disponibles en el centro de soporte técnico de Blackmagic Design:
www.blackmagicdesign.com/es/support
Foro de programadores
En el foro para desarrolladores de Arduino es posible encontrar respuestas a las preguntas
sobre el entorno de programación. Existe una gran cantidad de sitios donde el usuario podrá
aclarar dudas relativas a esta plataforma o incluso encontrar personas dispuestas a
implementar soluciones hechas a medida.
Foro de Blackmagic Design
Este foro permite compartir ideas creativas y constituye un recurso útil para obtener más
información sobre nuestros productos. Además, brinda la posibilidad de encontrar rápidamente
respuestas proporcionadas por el personal de Blackmagic Design u otros expertos en la
materia. Para acceder al mismo, visite el sitio https://forum.blackmagicdesign.com.
Cómo comprobar la versión instalada del software
Para comprobar la versión del programa de configuración instalada en su equipo informático,
seleccione la opción About Blackmagic Shield for Arduino Setup.
En Mac OS X, abra el programa desde la carpeta de aplicaciones. Seleccione la opción
About Blackmagic Shield for Arduino Setup en el menú superior para ver el número
de versión.
En Windows 7, abra el programa desde el meInicio. Seleccione Help y haga clic en
la opción About Blackmagic Shield for Arduino Setup para ver el número de versión.
En Windows 8, abra el programa desde la página de inicio. Seleccione Help y haga
clic en la opción About Blackmagic Shield for Arduino Setup para ver el número
de versión.
Cómo obtener las últimas actualizaciones
Luego de verificar la versión instalada en el equipo informático, visite nuestro centro de
soporte técnico para comprobar si existen actualizaciones disponibles. Aunque generalmente
es recomendable instalar el software más reciente, evite realizar cualquier modificación si se
encuentra en medio de un proyecto importante.
146Garantía
Garantía
Garantía limitada por 12 meses
Blackmagic Design garantiza que el producto adquirido no presentará defectos en los materiales
o en su fabricación por un período de 12 meses a partir de su fecha de compra. Siunproducto
resulta defectuoso durante el período de validez de la garantía, Blackmagic Design podrá optar
por sustituirlo o repararlo sin cargo alguno por concepto de piezas y/o mano de obra.
Para acceder al servicio proporcionado bajo los términos de esta garantía, el Cliente deberá dar
aviso del defecto a Blackmagic Design antes de su vencimiento y encargarse de los arreglos
necesarios para la prestación del mismo. El Cliente será responsable por el empaque y el envío
del producto defectuoso al centro de servicio técnico designado por Blackmagic Design y deberá
abonar las tarifas postales por adelantado. El Cliente será responsable por todos los gastos de
envío, seguros, aranceles, impuestos y cualquier otro importe que surja con relación a la devolución
de productos por cualquier motivo.
Esta garantía carecerá de validez ante defectos o daños causados por un uso indebido del
producto, o por falta de cuidado y mantenimiento. Blackmagic Design no tendrá obligación
deprestar el servicio estipulado en esta garantía para (a) reparar daños provocados por intentos
de personal ajeno a la empresa de instalar, reparar o realizar un mantenimiento del producto;
(b) reparar daños resultantes del uso de equipos incompatibles o conexiones a losmismos;
(c)reparar cualquier daño o mal funcionamiento provocado por el uso de piezas o repuestos
nosuministrados por la empresa; o (d) brindar servicio técnico a un producto que haya sido
modificado o integrado con otros productos, cuando dicha modificación o integración tenga como
resultado un aumento de la dificultad o el tiempo necesario para reparar el producto. ESTA
GARANTÍA OFRECIDA POR BLACKMAGIC DESIGN SUSTITUYE CUALQUIER OTRA GARANTÍA,
EXPRESA O IMPLÍCITA. POR MEDIO DE LA PRESENTE, BLACKMAGIC DESIGN Y SUS
DISTRIBUIDORES RECHAZAN CUALQUIER GARANTÍA IMPLÍCITA DE COMERCIALIZACIÓN O
IDONEIDAD PARA UN PROPÓSITO PARTICULAR. LARESPONSABILIDAD DE BLACKMAGIC
DESIGN EN CUANTO A LA REPARACIÓN O SUSTITUCIÓN DE PRODUCTOS DEFECTUOSOS
CONSTITUYE UNA COMPENSACIÓN COMPLETA Y EXCLUSIVA PROPORCIONADA AL CLIENTE
POR CUALQUIER DAÑO INDIRECTO, ESPECIAL, FORTUITO O EMERGENTE, AL MARGEN DE
QUE LA EMPRESA O SUS DISTRIBUIDORES HAYAN SIDO ADVERTIDOS CON ANTERIORIDAD
SOBRE LA POSIBILIDAD DE TALES DAÑOS. BLACKMAGIC DESIGN NO SE HACE RESPONSABLE
POR EL USO ILEGAL DE EQUIPOS POR PARTE DEL CLIENTE. BLACKMAGIC NO SE HACE
RESPONSABLE POR DAÑOS CAUSADOS AL EMPLEAR ESTE PRODUCTO. EL USUARIO UTILIZA
EL PRODUCTO BAJO SU PROPIA RESPONSABILIDAD.
© Copyright 2018 Blackmagic Design. Todos los derechos reservados. «Blackmagic Design», «DeckLink», «HDLink», «Videohub
Workgroup», «Videohub», «DeckLink», «Intensity» y «Leading the creative video revolution» son marcas registradas en Estados
Unidos y otros países. Todos los demás nombres de compañías y productos pueden ser marcas comerciales de las respectivas
empresas a las que estén vinculados. El nombre Thunderbolt y su logotipo son marcas registradas de Intel Corporation en Estados
Unidos y otros países.
安装操作手册
20186
中文
Blackmagic
3G-SDI Shield
for Arduino
148
迎辞
感谢您购买新品Blackmagic 3G-SDI Shield for Arduino
我们一都密关注前沿科且热衷为我们SDI产品拓宽应用方面的创新思维。3G-SDI
Shield for Arduino能够将Arduino整合到您的SDI 当 中 ,为 Blackmagic Design设备带
来更多控制方案。
举例说您可以将数据包嵌入到SDI 号 上 ,从 ATEM换台来Blackmagic URSA
MiniBlackmagic Studio Camera控制方案如果您不使用ATEM 台 ,但 Blackmagic
机 ,还 以 使 3G-SDI Shield for Arduino来打造己的控制方案。这款盾板可为您提供
搭建SDI的平将来切换台的节目返送信号通过盾板发送到Blackmagic节目输上。
编写代码并将命令发送机非常简单而且本手册了所有支持的命
您可以通过计算机控制摄影或者在盾板上添加按钮旋钮以及操纵杆等工具制作动态硬件控
制器用来调整镜头对焦和变焦光圈设置消隐脉冲平、衡控制以及摄影内置的强大调色
工具等。行定制您的控制器不仅能有助于制作还是一个充满趣味的过程
令 人 ,希 使 3G-SDI Shield for Arduino建出各类SDI控制器并与
分享得!
本操作手包含使Blackmagic 3G-SDI Shield for Arduino需的部信息。公司网站
www.blackmagicdesign.com/cn并进入支持页面获得这款盾板的最新版操作手册及其内部软件
请注意定期更新您的软件以便获得最新功能下载软件时请注册您的相关信息以便我们发布新
件时能及时通知您我们会不断地增加新功能提升产品性能同时也希望聆听您的贵意见
Grant Petty
Blackmagic Design席执行官
149
目录
Blackmagic 3G-SDI Shield for Arduino
入门 150
安装并焊接排针连接器 150
为盾器: 150
安装Arduino开发 151
接电源 151
连接SDI设备 152
软件安 153
安装内部软件 153
安装Arduino文件 154
Blackmagic Shield for Arduino Setup
155
I2C 155
格式 156
Arduino Sketch 156
测试您的Blackmagic盾板和库安装情况 157
LED示灯 158
安装盾板元件 159
Blackmagic ShieldforArduino盾板的通信 159
High Level Overview
159
I2C Interface
160
Serial Interface
160
Example Usage
160
Studio Camera Control Protocol控制协议 161
Blackmagic SDI Camera Control Protocol
162
Overview
162
Assumptions
162
Blanking Encoding
162
Message Grouping
162
Abstract Message Packet Format
162
Defined Commands
163
Example Protocol Packets
169
Developer Information
170
Physical Encoding - I2C
170
Physical Encoding - UART
170
帮助 174
保修 175
150
入门
入门
安装并焊接排针连接器
Blackmagic 3G-SDI Shield for Arduino内附4个堆叠式排针包括两个8 器 、一 个 10
器以及一6针连接器排针连接器相桥连接器您可它将盾板安装到Arduino
发板上。于连可相互堆因此您还可以再添加其他盾板来安装更多元控制按钮、
旋钮以及操纵杆等这些排针连接器的布可实R3 案 ,比 Arduino UNO
如何盾板安装排针连接器
1
每个排针上的引脚插Blackmagic 3G-SDI Shield板每针孔内
请参考下图的示范完成排针连局。
2
将每个连接器底部引脚焊接到盾板反面请确保每个引脚与孔焊接牢固不接触
的引脚。
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
备注 时 ,可 使 I2C通信或串行通信我们推荐您使用I2C信,
因为这方案可使用串口监视器从而能好地利用其它引脚可以
Sketch中定BMDSDIControl时 选 通 信 式 。请 阅 读 Blackmagic 3G-SDI
Shield for Arduino板的通信”章节了信息。
151
入门
安装Arduino开发
排针接器焊接到盾板上之就可以3G-SDI盾板安装到Arduino开 发 了。
侧 ,将 它 的 引 脚 Arduino板的连接器对齐轻轻推按到连接
注意切勿在安装过程中将任何引脚压弯
完全插入之后
Blackmagic盾板和Arduino开发
间应已紧密牢固连接。
接电源
开启Blackmagic 3G-SDI Shield for Arduino,只 需 12V电源适配器连接到Blackmagic盾板的
12V可。
提示 为有助于保盾上的所有引脚都能与Arduino发板连接器上的排针母座
对齐焊接个排针连接器上的一个引脚。将盾板Arduino开发
检查引脚齐情况如果需要调整任何排针连接器您可以预热应拍针连接
器上的焊点来改善对情况这比所有接之后再进易得
备注 Arduino开发Blackmagic足够源,
是将Blackmagic到电源可以同时为Arduino 此 ,请
保您只将电源连接到Blackmagic板。
152
入门
连接SDI设备
连接电源之后将您Blackmagic 3G-SDI Shield板插入SDI如,到切换台及
Blackmagic URSA Mini
1 将切换台的节目输出接口连Blackmagic 3G-SDI Shield盾板的SDI接口。
2
Blackmagic 3G-SDI Shield盾板的SDI输出连接到Blackmagic URSA Mini上标有PGM
SDI节目口。
接示意图如下:
绪!
将盾板安装Arduino开发接了电SDI备时就可以开始安装内部软件和库文件
Arduino件进行编程并开始使用盾板来控制您的设备
继续阅读本操作手解如为盾板安装内部软件Arduino 的 安 置 ,以 便
Arduino信。
切换台 Blackmagic 3G-SDI Shield for Arduino
SDI输入
SDI输出
SDI ‘PGM’ 输入
Blackmagic URSA Mini
提示 还可以使用Blackmagic 3G-SDI Shield for Arduino制其他Blackmagic
Design 品 ,例 Blackmagic MultiView 16 明 ,当
16上时在多画面分割上显示Tally边框。
153
软件安装
软件安
安装内部软件
Blackmagic Shield for ArduinoSetup可用来更新盾板的内部软件。这一内部软件可Arduino开发
信 ,并 使 Arduino的库文件来控制开些库文件会和设置软件同被安装您只需将
包含文件的文件夹复制并贴到Arduino应用程序的文件夹内即可关于库文件以及如何安装
这些库文件的信请参考本手册下一章
建议您下载最新Blackmagic Shield for Arduino件并更新盾板便获得最新功能和改进
请到Blackmagic Design的支持中心下载新版本
www.blackmagicdesign.com/cn/support
Mac OS X系统上安装内部软件骤如下
1 下载并解压Blackmagic Shield for Arduino软件。
2
打开生成的硬图标并运Blackmagic
Shield
for
Arduino安装程序据屏幕提成安装
3 安装完最新版Blackmagic Shield for Arduino 后 ,为 Blackmagic 源 ,然
通过USB线缆接到计算机。
4
运行实用程幕提示更新盾板的内部软件果系未弹出任信息
即表示当前内部软件已是最新版本无需升级。
WIndows系统上安装内部软件步骤如下
1 下载并解压Blackmagic Shield for Arduino软件。
2
您会看到一个名Blackmagic Shield for Arduino文件夹,文件夹中含有本操手册
以及Blackmagic Shield for Arduino安装程双击该安装程并根据屏幕提示完成安装。
3
安装完最新版Blackmagic Shield for Arduino安装程之后为您的Blackmagic盾板接电
源 ,然 USB线缆连接到计算机。
4
运行实用程幕提示更新盾板的内部软件果系未弹出任信息
即表示当前内部软件已是最新版本无需升级。
安装Blackmagic Shield for Arduino 前 ,请 www.arduino.cc
下载新版Arduino IDE软件的计上。
安装Arduino 后 ,您 Blackmagic 3G-SDI Shield的内部软件。
154
安装Arduino库文件
安装Arduino文件
为控制Arduino编写的程序叫做Sketch,您 的 Blackmagic 3G-SDI Shield for Arduino可使Arduino
库文件使Sketch编写更为便捷。板安装置软件之后库文件也会被安装到一个名
为“ Library文件夹中。只需将包含这库文件的文件复制并粘Arduino可。
Mac OS X件:
1 打开“应用程序”文件夹中的Blackmagic Shield for Arduino”。
2 打 开“ Library文件夹右键点并复制名为 “BMDSDIControl”的 文 件 夹 。
3 打开计算“文件”文件夹中的Arduino文件夹。
4
您将会看到一Libraries的 子 文 夹 。将“ BMDSDIControl”文 件 夹 粘 贴 至
个“ Libraries”文 件 中 。
Windows件:
1 次 打 开“ 序 ”/
Blackmagic Shield for Arduino”文 夹 。
2
您将会看到一Library子文件夹。打开文件复制
BMDSDIControl”的 文 夹 。
3 打开计算“文件”文件夹中的Arduino文件夹。
4
您将会看到一Libraries的 子 文 夹 。将“ BMDSDIControl”文 件 夹 粘 贴 至
个“ Libraries”文 件 中 。
Blackmagic Design库文件就会被装到您的计算机上运行Arduino 时 ,您
Blackmagic Design示例Sketch
只需Arduino软件菜单“文件”下拉单选择Examples”即 可 。选 BMDSDIControl后,
看到可使用的Sketch表。
库文被安正确的文件夹之后您的盾板就可以使用这些文件来与Arduino发板建立通信
只需Arduino IDE进行编程即可详情请参阅Arduino Sketch 程 ”部 分 的 内 容 。
备注 时 ,请 Arduino IDE软件。
如果将来发布更新版示例库文您需要删除旧BMDSDIControl夹,
使上面描述的方法将成新的文件夹。
155
Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup软件可用来更改盾板的各项设
置 ,比 I2C地址以及视频输出式等
在计上安装了Blackmagic Shield for Arduino Setup之后就可以更改盾板的各项设置
些设置包括I2C 址 ,它 板 ,以 便 Arduino开发可与信;及视式,
可设置盾输出格式。
I2C地址
下 ,另 Blackmagic盾板上的盾板可能会使与您盾板默认地址相同的I
2
C址,
这时就会造成冲发生此类情况时您可以更改盾板的默认地址设置
156
Arduino Sketch编程
盾板的默认地址为0x6E,但 以 将 0x080x77之间。
址:
1 运行Blackmagic Shield for Arduino Setup击您盾板的设置图标。
2 在“ Set Address to:将地址设置为) 编辑框中键入您想要使用的地
3 点 击“ Save”( ) 。
频格式
没有接输入实用程序会选择默认的输出格式。测到输入时输出将使与该输入相同
格式。输入应的输出将还实用默认的输出格式以点击Default Output
Format认输出格式下拉单并选应的格式行更改。
您可以从以下视频输出格式中进行选择
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Arduino Sketch编程
Arduino软件的程称为Sketch,它 写 !Sketch使用常见C 言 。使 Studio Camera
Control Protocol控制协命令编Sketch盾板可将这些命令嵌入到SDI便您可以控
制您的Blackmagic URSA MiniBlackmagic Studio Camera
本 手 的“ Studio Camera Control Protocol章节介绍所有支持的命令您可以将这一协议中的
令应用到Sketch写中。
157
测试您的Blackmagic盾板和库安装情况
测试Blackmagic盾板和库安装情况
入门”节中的介利完成所有连接,安装设置软件和库文件之查盾
否和Arduino发板建立通信以确保一切运行正常
速的查方法就打开并运行们提供的Tally闪 烁( Blink)示 Sketch
体 步 骤 如 下:
1 运行Arduino IDE软件。
2 到“ 工 具 ”菜 Arduino开发口号
3
到“ 下 ,选 择“ /
BMDSDIControl”,再 选 名 为 TallyBlink”的 Sketch序。
4 这一Sketch程 序上传 到
Tally Blink示例Sketch测试Arduino板的快捷原始数据可使用来Studio
Camera Protocol协议文件中的I2C 时 ,我
自定帮助您更简单Sketch程。
158
测试您的Blackmagic盾板和库安装情况
时 ,您 Blackmagic Studio Camera上的Tally示灯开始闪烁,且闪烁隔为一如果
您看到Tally 烁 ,就 可 以 肯 Blackmagic板已Arduino建立通信一切运
如果Tally灯 没 有 闪 烁 ,请 Blackmagic CamerasTally号码是否设为1
如果您需要帮助登陆网址www.blackmagicdesign.com/cn/support访问Blackmagic Design
持中心。考本手册的帮助章节获取更多关于盾板设置以及调试方面的帮助
LED提示灯
您的Blackmagic 3G-SDI Shield for Arduino有六个LED提示灯可用来确认盾板的各项活动情况,
如电源、
UART
I2CSPI通信还能用于提示您何时启用Tally制优能。
LED 1 -统开启
可在盾板连电源时亮起
LED 2 - 启用控制优先
启用了Arduino Sketch中的制时亮起。
LED 3 - 启用Tally优先
启用了Arduino Sketch中的Tally功能时亮起。
LED 5 - I2C语法分析程序忙
到盾板与Arduino使用I2C协议时亮起
LED 6 -行语法分析器忙
可在检测UART通信时亮起。
当您Blackmagic盾板启动时电源提示灯将保持熄灭状态
LED 3
4
5将用来提示以下活动:
LED 3 -加载应用程序图像
LED 4 - 正在初始EEPROM
LED 5 -检查内存
备注 请确保您将Blackmagic CameraTally号码设为1
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
159
安装盾板元件
后 ,电 LED示灯将亮起所有LED示灯会回到其操作时各自对应的标准功能。
情况下会出现启动失的情况,故障LED提示灯会反复闪烁,所有其LED灯保
态 ,方 便 查 。
安装盾板
如果您想要构建己的硬件控制器就需要重新制作一个含有按钮钮和操纵杆的盾板获得更
细的手控只要将定义盾板插入Blackmagic 3G-SDI Shield for Arduino连接槽中就可
完成安装。可以构建何类型的甚至将原先CCU成自制Arduino案,
获得一个符合工业标准的摄影机控制单元。
您可以创建自己的硬件控制器,将其插Blackmagic 3G-SDI
Shield for Arduino上获得更为互动且的控制。
Blackmagic ShieldforArduino盾板的通信
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I2C because of the low pin count and it frees up the serial monitor. This also allows
you to use more I2C devices with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities. Either
or both of these objects can be created in your sketch to issue camera control commands, or
read and write tally data respectively. These objects exist in several variants, one for each of
the physicalI2C or Serialcommunication busses the shield supports.
160
Blackmagic ShieldforArduino盾板的通信
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
161
Studio Camera Control Protocol控制协议
Studio Camera Control Protocol控制协议
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
162
Studio Camera Control Protocol控制协议
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the
ATEMSwitchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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 prioritize 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.
163
Studio Camera Control Protocol控制协议
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
164
Studio Camera Control Protocol控制协议
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
165
Studio Camera Control Protocol控制协议
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
166
Studio Camera Control Protocol控制协议
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
167
Studio Camera Control Protocol控制协议
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
168
Studio Camera Control Protocol控制协议
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
169
Studio Camera Control Protocol控制协议
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
170
Developer Information
Developer Information
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following
the internal register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in
the **LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
171
Developer Information
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
172
Developer Information
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output connector.
When 0, the input signal is passed through to the output if
present, or the shield generates its own SDI signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately
copied over to the override tally data register. Automatically
cleared by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied data.
When 0, input control data is passed through to the output
unmodified.
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in
the next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in
the next video frame. Automatically cleared once a control
packet has been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when
a new packet has been cached.
173
Developer Information
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.
ARM_ was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously
from the next video frame until new data is set. Automatically
cleared once the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame
(one byte per camera). Bit zero indicates a Program tally, while bit
one indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video
frame. Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when
a new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_
was reset (one byte per camera). Bit zero indicates a Program
tally, while bit one indicates a Preview tally.
174
帮助
帮助
帮助
Blackmagic 3G-SDI Shield for Arduino一款专为有定制需求的用户进独立开设计的开
人员工具。
请登陆Blackmagic Design在线支持页面获取盾板的最新支持信息
Blackmagic Design线持页
请登陆Blackmagic Design支持中心www.blackmagicdesign.com/cn/support获得最新版操作手册
软件以章。
Arduino开发
如果您有程方面问题请登陆Arduino开发
Arduino拥有庞大的发人员区和
众多优质论坛定能解答您在软件方面遇到的甚至还可以招聘工程师助您实现解决方案
Blackmagic Design论坛
可以登我们的网站访Blackmagic Design论坛更多信息和有用的创意资源访问论坛
也是取帮助的捷径,因为坛中不乏验丰富的用户和Blackmagic Design 工 ,他
为 您 惑 。请 登 陆 网 址 http://forum.blackmagicdesign.com入论坛。
查看当前安装的软件版本
要检查您的计算机安装Blackmagic 3G-SDI Shield for Arduino Setup软件版本打开About
Blackmagic 3G-SDI Shield for Arduino Setup”窗 口 看 。
Mac OS X系统“应用程序”文件夹Blackmagic 3G-SDI Shield for Arduino
Setup。点 击 About Blackmagic Shield for Arduino Setup”后 号 。
Windows 7系统到开始菜单打开Blackmagic 3G-SDI Shield for Arduino
Setup软 件 。点 击 About Blackmagic 3G-SDI Shield for Arduino
Setup”后 本 号 。
Windows 8 下 ,请 Blackmagic 3G-SDI Shield for Arduino Setup板块打开
Blackmagic 3G-SDI Shield for Arduino Setup。点 击 ”菜 About Blackmagic
Shield for Arduino Setup”后 本 号 。
软件更
检查完您计算机上安装的Blackmagic 3G-SDI Shield for Arduino Setup软件版本号录网
www.blackmagicdesign.com/cn/support访问Blackmagic Design持中心查看最新版本请及
时将软件升级到最新版但切勿在重要项制作过程中升级
175
保修
保修
12个月
Blackmagic Design保证Blackmagic 3G-SDI Shield for Arduino 产品自之日起12月内不会
料和工艺上的缺若本产品在修期内出现质量问题
Blackmagic Design为产品
修理或更换部件或者更换缺陷产
为确保消费者有权享受修条款中的服务如遇产品质量问题请务必在保修期内联系Blackmagic
Design并妥安排保修事宜消费者应将缺陷产品包装送到Blackmagic Design的指定服务中
修,原因退货,有运费、费、
各项税务以及他费用均由消费者承
本保修条款不适用任何因使用护不当或保养不周成的缺陷、故障或损坏。据本修服
务,
Blackmagic Design保修服务范围包括以下内容
1. 由非Blackmagic Design专门人
行的安装维修或保养所造成的损坏进行维修
2. 对因使用不当或连接到不兼容设备所成的损
修,
3. 使用了非Blackmagic Design生产的零部件所导损坏或故障进行维修4.
对经过改装或和其他产品进行组装的产品进行保养维(因产品经改装或组装后会增加保养
修所需时间或保养难度)修条款由BLACKMAGIC DESIGN 供 ,它
的保修。
BLACKMAGIC DESIGN应商对适销性及就特定用途的适用性等隐含保
不作保。
BLACKMAGIC DESIGN责为消费者提供陷产品的维修或更服务是完整和
补 救 施 ,不 BLACKMAGIC DESIGN或其供应商是否事先获悉发生间接、特殊偶然或必
然损坏等损坏的可能性若消对本设备进使
BLACKMAGIC DESIGN 责 。对
使用本产品成的损
BLACKMAGIC DESIGN不负责。本产品的操作风险由用自行担。
© 2018 Blackmagic Design. 。“ Blackmagic Design” 、“ DeckLink” 、“ HDLink” 、“ Workgroup Videohub”、
Multibridge Pro” 、“ Multibridge Extreme” 、“ Intensity”以 及“ Leading the creative video revolution美国及其他国家均为
册商标。有其他公司名称产品名称可能其他所有者的注册商标
ArduinoArduino识均为Arduino的注册商标。
Thunderbolt
其商标为英尔公司在美国和/其他国家的商标
설치 및 사용 설명서
201806
한국어
Blackmagic
3G-SDI Shield
for Arduino
177
영합니다.
새로운 Blackmagic 3G-SDI Shield for Arduino를 구입해 주셔서 감사합니.
는 늘 새로운 기술에 관심을 갖고 있며 모든 창의인 방으로 자SDI품을 사용
수 있게 되어 상당히 기쁩니. 이제 3G-SDI Shield for Arduino를 사용해 ArduinoSDI
에 통합하Blackmagic Design 장비를 제할 수 있는 더욱 다양한 옵션을 얻을 수
있습니다.
를 들어, SDI 신호에 임베된 데터 패을 통해 ATEM위처에서 Blackmagic URSA Mini
Blackmagic Studio Camera를 제할 수 있습니. ATEM 스위를 사하진 않지만 여전히
Blackmagic라를 제고자 할 경3G-SDI Shield for Arduino를 사용해 자신만의 커
롤 솔루션을 구축할 수 있습니. 3G-SDI Shield for ArduinoSDI 플랫으로 사할 수
어 쉴를 통해 스위의 프로그램 리턴 피Blackmagic라 프로그램 입력으로 루
출력할 수 있습니다.
카메라에 명를 전하는 코드는 쉽게 작할 수 있며 모든 지원 명는 본 사
서에서 확인할 수 있습니다.
카메라는 컴퓨터에서 제할 수 있습니. 또 다른 방법으로 쉴드에 버튼과 노,이스틱을
가하여 강력한 하드어 컨롤러를 구축하면 렌즈 초점 및 줌, 조리개 설,스털 및
화이트 밸스 제어,라에 내장된 강력한 컬러 커터 등의 기능을 조절할 수 있습니.
자신만의 커스텀 컨롤러를 구축하면 프덕션에 도움이 될 뿐만 아니라 아주 재게 사
있습니다.
는 이러한 놀라운 기술을 제할 수 있게 된 것을 아주 기게 생각하3G-SDI Shield for
Arduino를 위해 사용자들SDI롤러 제작 후기 또한 항상 기다리고 있습.
본 설서에Blackmagic 3G-SDI Shield for Arduino 사용에 필한 모든 정보가 담겨습니.
사 웹사이www.blackmagicdesign.com/kr객 지원 페지에서 최신 버의 사용 설명서
드의 내부 소프트웨어 업를 확인실 수 있습니. 소프트어 업데를 통해 모
운 기능을 이용하실 수 있습니. 소프트를 다운로드할 때 사자 정를 등록하
운 소프트웨어가 출될 때다 업이트 소식을 받아실 수 있습.는 새로운 기능
및 제품 향상을 위해 끊임이 노력하고 있으,상 고객 여의 의을 기다립니!
Blackmagic Design
CEO랜트 패
178
목차
Blackmagic 3G-SDI Shield for Arduino
설명
179
더 장착 및 납땜하 179
Arduino 보드에 장착하 180
원 연결하 180
SDI 장비에 연결하 181
소프트웨어 설치하 182
부 소프트웨어 설 182
Arduino 라이브러리 파일 설치하 183
Blackmagic Shield for Arduino Setup 184
I2C 주소 184
오 포맷 184
Arduino 스케치 프로그래 185
Blackmagic Shield 및 라이브러리 설치 테스트 185
LED 표시 장치 187
쉴드 부품 장착하 188
Communicating with Blackmagic Shieldfor Arduino 188
High Level Overview 188
I2C Interface 189
Serial Interface 189
Example Usage 189
Studio Camera Control Protocol 190
Overview 191
Assumptions 191
Blanking Encoding 191
Abstract Message Packet Format 191
Example Protocol Packets 198
Developer Information 199
203
보증 204
179
시작하기
하기
더 장착 및 납땜
Blackmagic 3G-SDI Shield for Arduino는 다른 쉴를 쌓아 올릴 수 있8핀 헤더 두 개, 10
더 한 개, 6핀 헤더 한 개 등 총 4의 헤더와 함께 제공됩.더는 쉴Arduino 보드
장착하기 위한 연결 커넥터며 그 위에 쉴를 쌓아 올릴 수 있도록 설계어 제어 버튼과 노브,
스틱 등의 추가 구성 요소가 담긴 쉴드를 장착할 수 있습니.Arduino UNO와 같은
R3 크기Arduino 보드에 장착할 수 있록 설계습니.
더를 쉴에 장착하는 방법은 다음과 같습.
1
Blackmagic 3G-SDI Shield 각 면의 핀 홀에 맞는 헤의 핀을 삽입하세.더의
아웃 배은 아래 그을 참고하세요.
2 각 헤더 핀의 바닥 면을 쉴드 아쪽에서 납땜합니. 핀 홀과 각 핀이 확
록 납하되 주의 다른 핀에 닿지 않도록 주의하세요.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
참고 에 연할 경I2CSerial통해 통신합니. 얼 모
사용할 수 있고 다른 모든 핀들을 활할 수 있I2C를 사용할 것장합니.
스케치에BMDSDIControl목을 설할 경우 통신 모드를 선택하.
자세한 정[Blackmagic 3G-SDI Shield for Arduino와 통신]
부분을 참하세.
180
시작하기
Arduino에 장착하
를 쉴드에 납땜했으므로 이제 3G-SDIArduino 보드에 장착할 수 있니다.
드의 양옆을 조심스럽게 잡고 헤더 핀Arduino 보드의 헤더와 잘 맞춘 뒤,을 헤더 슬롯에
럽게 밀어 넣습니.를 장착하는 동안 핀이 구부러지지 않록 주의하세.
든 핀을 꼽Blackmagic 쉴드와 Arduino
보드가 안정적으로 연결됩니다.
원 연
12V원 어댑터Blackmagic 3G-SDI Shield for Arduino12V원 입력에 연결하만 하면
이 공급됩.
정보 드의 모든 핀Arduino 보드의 헤더 핀 슬롯()에 잘 맞춰
하려면 각 헤의 핀을 하나만 먼저 납땜하는 것이 좋습니. 이제 쉴드를
Arduino 보드 위에 놓고 핀 정렬 상를 확인하세. 조정이 필한 헤
견하면 해당 헤의 납땜 부위를 녹여 위치를 조정하세요.는 모부위
한 번에 납한 뒤에 다시 조정하는 것다 훨씬 수월합니.
참고 Arduino 보드에 전을 연결하면 Blackmagic에 충분한 전
공급지 못하Blackmagic에 연결하면 Arduino도 충분한 전
공급하므로 반드시 Blackmagic드에 전원을 연결하세요.
181
시작하기
SDI에 연
이 연Blackmagic 3G-SDI Shield for ArduinoSDI 장비에 연할 수 있습. 예를
들어, 다음과 같은 방식으로 스위처와 Blackmagic URSA Mini를 연할 수 있습니다.
1 스위의 프로그램 출력Blackmagic Arduino드의 SDI력에 연합니.
2 Blackmagic 3G-SDI ShieldSDI력을 PGM이라고 표시Blackmagic URSA Mini
프로그SDI력에 연결하세요.
는 아와 같습니.
사용 준비가 완료었습.
이제 쉴Arduino 보드에 장착하여 전원을 공급하SDI 장비에 연결했으므로 내
소프트어 및 라이브리 파일을 설치Arduino 소프트어를 프로그래여 쉴드로
장비를 제어할 수 있니다.
본 사용 설명서의 나머지 부분을 모두 읽고 쉴드의 내부 소프트어 설치 방법 및 Arduino와의
통신을 위Arduino브러리 파일의 저장 위에 대한 정보를 확인하기 바랍니다.
Switcher Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
SDI ‘PGM’ Input
Blackmagic URSA Mini
정보 Blackmagic 3G-SDI Shield for Arduino를 사용하여 Blackmagic MultiView 16
같은 Blackmagic Design도 제할 수 있습.를 들어,를 입16
해 멀뷰에 탈리 테두리가 나타나록 할 수 있습니.
182
소프트웨어 설치하기
소프트
부 소어 설
Blackmagic Shield for Arduino Setup은 쉴드의 내부 소프트웨어를 업할 때 사합니.
부 소프트웨어Arduino 보드와 통신하며 Arduino 라이브러리 파일을 사용해 보드
제어합니다. 라이브러리 파일은 설치 소프트웨어와 함께 설치며 이 파일이 담긴 폴더를 복사해
Arduino플리이션 폴에 붙여기만 하면 됩니.브러리 파일 및 설치 방법에 대
는 본 사용 설명서의 다음 설명 부분에서 확인할 수 있습니.
최신 Blackmagic 3G-SDI Shield for Arduino 소프트웨어를 다로드해 쉴를 업데하면
운 기능 및 개된 기능을 사할 수 있습. Blackmagic객 지원 센
(www.blackmagicdesign.com/kr/support)에서 최신 버전을 다운로드할 수 있습니.
Mac OS X서 내부 소프트어 설
1 Blackmagic Shield for Arduino 소프웨어를 다로드해 압축을 풉니다.
2 작업이 완료된 디스크 이지를 열Blackmagic Shield for Arduino치 프로그램을
실행합니다.에 나타나는 지시 사항을 따.
3 신 버전Blackmagic Shield for Arduino치 프로그램을 설한 뒤, Blackmagic
드의 전을 켜USB블을 사용해 컴퓨터에 연결하.
4 이제 설치 유티를 실해 화면에 나타나는 지시 사항에 따라 쉴드의 내부
트웨어를 업데이트하세요.부 소프트어가 최신 버일 경우 어떠한 메시
나타나지 않으며 더 이상의 추가 작업이 필요 없습니.
Windows서 내부 소프트어 설
1
Blackmagic Shield for Arduino 소프웨어를 다로드해 압축을 풉니다.
2 본 사용 설명서Blackmagic Shield for Arduino치 프로그이 담Blackmagic
Shield for Arduino 폴더가 나납니. 설치 프로그램을 더블 클릭한 뒤, 화면
나타나는 지시 사항에 따라 소프트웨어 설를 진행합니.
3 신 버전Blackmagic Shield for Arduino치 프로그램을 설한 뒤, Blackmagic
드의 전을 켜USB블을 사용해 컴퓨터에 연결하.
4 이제 설치 유티를 실해 화면에 나타나는 지시 사항에 따라 쉴드의 내부
트웨어를 업데이트하세요.부 소프트어가 최신 버일 경,떠한 메지도
나타나지 않으며 더 이상의 추가 작업이 필요 없습니.
참고 Blackmagic Shield for Arduino정 유틸리티를 설치하기 전에 www.arduino.cc
에서 최신 버Arduino IDE 소프트를 다로드여 컴퓨터에 설치해주십시.
Arduino 소프트를 설치하면 Blackmagic 3G-SDI Shield의 내부 소프트어도
할 수 있습니.
183Arduino 라이브러리 파일 설치하기
Arduino리 파일 설
Arduino를 제어하기 위해 작된 프로그램을 스케고 부Blackmagic 3G-SDI Shield for
Arduino에서는 스케를 쉽게 작성할 수 있는 Arduino 라이리 파일을 사합니다. 쉴드
치 소프트웨어를 설고 나면 라이브러리 폴더에 라이브러리 파일이 설. 이제
라이브러리 파일이 담긴 폴를 복사해 Arduino 라이브러리 폴더에 붙여넣기만 하면 됩니다.
Mac OS X서 라이브러리 파일 설
1 응용 프로그램 폴더에서 Blackmagic Shield for Arduino를 엽.
2 라이브러리 폴더를 열고 마우스를 우클릭해 BMDSDIControl 폴더를 복사하세.
3 이제 컴퓨터의 도먼트 폴로 이동Arduino 폴더를 엽니다.
4 라이브러는 이의 하위 폴더를 볼 수 있습니. BMDSDIControl더를이브러리
폴더에 붙여넣기 하세요.
Windows서 라이리 파일 설
1 프로그램 폴더를 열Blackmagic Shield for Arduino로 이동하세.
2 라이브러라는 하위 폴더를 볼 수 있니다. 폴더를 열고 마스를 우클릭
BMDSDIControl를 복사하세요.
3 이제 컴퓨터의 문서 폴더로 이동Arduino 폴더를 엽니다.
4 라이브러는 이의 하위 폴더를 볼 수 있습니. BMDSDIControl더를이브러리
폴더에 붙여넣기 하세요.
Blackmagic Design 라이브러리 파일을 컴퓨터에 설치하는 데 필한 모든 준비
완료었습니다. 이제 Arduino 소프트어를 실하면 선택 가능Blackmagic Design
스케치 예시가 나타납니다.
Arduino 소프트어 메뉴서 파일 드롭다운 메뉴로 이동한 뒤, 예제를 선택하세. 이제
BMDSDIControl을 선택하면 사용 가능한 스케치 예시 목록이 나납니.
라이브러리 파일이 올바른 폴더에 저장된 경우 쉴드서 이 파일을 사용해 Arduino드와
통신하게 됩. 이제 Arduino IDE 소프웨어를 프로그래밍하만 하면 됩니다. 더 자세
정보는 [Arduino 스케치 프로그래] 부분을 참고하세요.
참고 라이브러리 설치 시에Arduino IDE 소프트웨를 종하세.
참고 추후 예제가 담긴 라이브러리 파일이 업데될 경,BMDSDIControl
폴더를 삭제고 위에서 설한 방법대로 새운 폴더를 설치하.
184Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup 소프트웨어를 통해 I²C
주소와 비디오 출력 포맷 등의 쉴드 설정을 변경할 수 있습니.
이제 컴퓨터에 설Blackmagic Shield for Arduino Setup을 통해 쉴드의 설정을 변할 수
있습니다.를 들어,를 인식해 Arduino 보드와 통신할 수 있도록 돕는 ‘I²C Address’와
를 위한 출력 포을 설정하는 ‘Video Format’ 등의 쉴드 설정 항목을 변할 수 있습니.
I2C 주소
우 드문 경우긴 하,드의 기본 설정 주소와 동I2C 주소를 공유하는 또 다른
쉴드 Blackmagic에 장착된 경우에는 충돌이 발생할 가능성이 있습.런 경우에
드의 기본 설정 주소를 변할 수 있습.
본 설정 주소는 0x6E지만, 0x080x77 사이의 다양한 주소 중 원하는 주소를
할 수 있습니.
드 주소 변경 방법은 다음과 같습.
1 Blackmagic Shield for Arduino Setup을 실행한 뒤,드의 설정 아콘을 클릭하세.
2 Set address to에 사용고자 하는 주소를 입력하세요.
3 Save를 클릭합니.
오 포
아무런 입이 연되지 않을 경우에 대비해 설치 유틸리에 기본 출력 포이 선
있습니다.이 감지되면 입과 같은 포으로 출력.당 입의 연이 해제
틸리에서 설정해둔 기본 출력 포으로 되돌아갑니. Default output format롭다운
뉴를 클릭해 원하는 비오 포으로 변할 수 있습.
185Arduino 스케치 프로그래밍
다음과 같은 비오 출력 포맷을 선할 수 있습.
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Arduino치 프
Arduino 소프트에 작성된 프로그램 또는 스케치는 작성 방법이 매우 간단합니! Sketches
일반 C 프로그래밍 언를 사용해 작성합니. Studio Camera Control Protocol의 명
사용해 스케를 프로그래하는 경우 쉴드서 명SDI력에 임하는 방식을 통해
Blackmagic URSA MiniBlackmagic Studio Camera를 제어하게 됩.
든 지원 명는 본 사용 설명서[Studio Camera Control Protocol] 부분에 나와 있으므로
하는 프로토콜 명를 스케치에 사용할 수 있습.
Blackmagic Shield 및 라리 설
하기
[시작하기] 부분에 소개된 대로 모든 연을 마치고 설치 소프트어 및 라이브러리 파일
치하고 나면 쉴드가 Arduino 보드와 통신하며 모든 기능이 제로 작동
확인해야 합니.
탈리 블링크 스케치 예제를 적용해 이런 사항을 신게 확인할 수 있니다.
다음의 단계를 따.
1 Arduino IDE 소프트를 실행하세.
2 ''뉴에서 Arduino 보드 및 포트 번를 선합니다.
3 '파일'뉴에서 예제BMDSDIControl을 선한 뒤, TallyBlink고 적
스케치를 선합니.
4 당 스케치를 보에 업로드하세.
186Blackmagic Shield 및 라이브러리 설치 테스트하기
Blackmagic Studio Camera의 탈리 라이트가 1에 한 번씩 깜빡이는 것을 확인할 수 있습니.
탈리 라이트가 깜빡이Blackmagic드가 Arduino와 통신하며 모든 기능이 정상적으로
동하는 것을 의미합니다.
탈리 라이트가 깜빡이지 않을 경, Blackmagic 카메라의 탈리 번호가 1로 설정
있는지인하세요.
이 필한 경우에는 Blackmagic Design원 센터(www.blackmagicdesign.com/kr/support)
방문하세요.드 설과 관련해 도움을 얻을 수 있는 다른 방법에 대한 자세한 정는 본 사용
설명서의 [지원] 부분을 참하세.
Tally Blink 예제 스케를 통해 Arduino를 쉽고 빠게 테스트할 수 있습니다.
Studio Camera Protocol의 명를 사용하면 I2C를 통해 Raw이터를 쉴
할 수 있, 스케치를 더욱 쉽게 프로그래할 수 있는 커스텀 라이브러리 또한
함께 제공됩니다.
참고 Blackmagic Camera의 탈리 번호1로 설정하는 것을 잊지 마세요.
187Blackmagic Shield 및 라이브러리 설치 테스트하기
LED시 장
Blackmagic 3G-SDI Shield for Arduino는 전UART, I²C, SPI 통신 등의 작동 상태를
알려주는 표시 장치와 탈리 및 카메라 오라이드 제어 기능의 활성화 여부를 보주는 표시
장치 등 총 6개의 LED 표시 장치가 탑재어 있습니.
LED 1 -템 활성
에 전이 연면 불이 들어옵.
LED 2 -라이드 제어 활성화
Arduino 스케치에서 카라 제를 활성화한 경우에 불이 들어옵니.
LED 3 -리 오버라이드 활성
Arduino 스케치에서 탈리를 활성화한 경우에 불이 들어옵.
LED 5 - I2C서 사용 중
쉴드 ArduinoI2C로토콜을 사해 통하는 것이 감지된 경우에
불이 들어옵.
LED 6 -얼 파서 사용 중
UART 통신이 감지된 경우에 불이 들어옵니.
Blackmagic드 부팅 중에는 전원 표시 장치가 꺼져 있LED 3, 4, 5는 다음과 같은
태를냅니다.
LED 3 -션 이지 로
LED 4 - EEPROM 초기화
LED 5 -리 검사 진행 중
부팅이 성공적으로 완성되면 전LED가 켜며 작과 함께 모LED가 표
으로 되돌아 갑니.
문 경우이긴 하만 부팅에 실패할 경,가 발생LED를 제한 모LED가 빠
깜빡거려 오류의 원인을 쉽게 파악할 수 있습니.
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
188
쉴드 부품 장착하기
드 부품 장착하
자신만의 하드웨어 컨트롤러를 만들고자 할 경우, 새로운 쉴드에 버튼과 노브, 조이스틱을
장착하여 수동으로 직접 제어할 수 있습니다. 커스텀 쉴드를 Blackmagic 3G-SDI Shield for
Arduino의 헤더 슬롯에 간단히 장착하세요. 원하는 모든 종류의 컨트롤러를 구축할 수
있습니다. 오래된 CCU의 회로를 자신만의 커스텀 Arduino 솔루션으로 교체하여 산업 표준
카메라 제어 장치로 사용할 수 있습니다.
자신만의 하드웨어 컨트롤러를 구축하여 Blackmagic 3G-SDI
Shield for Arduino에 장착하면 더 나은 상호 연을 가진
확한 제어를 수행할 수 있습니다.
Communicating with Blackmagic
Shieldfor Arduino
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I2C because of the low pin count and it frees up the serial monitor. This also allows
you to use more I2C devices with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities. Either
or both of these objects can be created in your sketch to issue camera control commands, or
read and write tally data respectively. These objects exist in several variants, one for each of
the physicalI2C or Serialcommunication busses the shield supports.
189Communicating with Blackmagic Shieldfor Arduino
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
190Studio Camera Control Protocol
Studio Camera Control Protocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
191Studio Camera Control Protocol
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the
ATEMSwitchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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 prioritize 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.
192Studio Camera Control Protocol
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
193Studio Camera Control Protocol
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
194Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
195Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
196Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
197Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
198Studio Camera Control Protocol
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
199Developer Information
Developer Information
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following the internal
register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in the
**LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
200Developer Information
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output connector.
When 0, the input signal is passed through to the output if
present, or the shield generates its own SDI signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately
copied over to the override tally data register. Automatically
cleared by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied data.
When 0, input control data is passed through to the output
unmodified.
201Developer Information
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in
the next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in
the next video frame. Automatically cleared once a control
packet has been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when
a new packet has been cached.
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.
ARM_ was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously
from the next video frame until new data is set. Automatically
cleared once the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
202Developer Information
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame
(one byte per camera). Bit zero indicates a Program tally, while bit
one indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video
frame. Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when
a new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_
was reset (one byte per camera). Bit zero indicates a Program
tally, while bit one indicates a Preview tally.
203
지원
지원
원 받
Blackmagic 3G-SDI Shield for Arduino는 사용가 원하는 사항을 독으로 개발할 수 있
발자 도니다.
에 관한 최신 지원 정보Blackmagic Design 온라인 고객 지원 페이지를 방문해
확인실 수 있습니.
Blackmagic Design 온라인 고객 지원 페
신 사용 설명서와 소프트웨어,원 노트Blackmagic객 지원 센
(www.blackmagicdesign.com/kr/support)에서 확인실 수 있습니.
Arduino발 포
프로그래에 관한 질문은 인넷상의 Arduino발 포럼에 문기 바랍니. 전체 Arduino
발자 커뮤니와 수준 높은 여러 포을 통해 소프트웨어에 대한 궁금증을 문할 수 있으며
하는 솔루션을 설치해 줄 엔지니를 고용할 수도 있습.
Blackmagic Design 포럼
희 웹사이에 있는 Blackmagic Design럼은 유한 정보를 제공하는 곳으로 방문을 통
자세한 정보와 창의적인 아이디를 얻을 수 있. 또한, 숙련된 사용Blackmagic
Design들이 기존에 올려놓은 해결책을 통해 원는 해답을 얻을 수도 있으므로 여러 가
움을 빠게 받아 한 단계 성장할 수 있는 방법이기도 합니.http://forum.
blackmagicdesign.com를 통해 방문할 수 있습니다.
재 설된 소프트웨어 버전 확인
퓨터에 설치Blackmagic 3G-SDI Shield for Arduino Setup 소프트웨어의 버을 확인하려
About Blackmagic Teranex Setup 창을 열주세.
Mac OS X는 응용 프로그램 폴에 있는 Blackmagic 3G-SDI Shield for Arduino
Setup을 엽니. 응용 프로그램 메뉴에서 Blackmagic Shield for Arduino Setup
택하고 버전을 확하세.
Windows 7는 시작 메뉴에서 Blackmagic 3G-SDI Shield for Arduino Setup
실행합니다.움말 메뉴를 클릭한 뒤 About Blackmagic Shield for Arduino Setup
택하면 버전을 확인할 수 있습니.
Windows 8는 시작 페이지에 있Blackmagic 3G-SDI Shield for Arduino
Setup 타일에서 Blackmagic 3G-SDI Shield for Arduino Setup을 실행합니.움말
뉴를 클릭한 뒤 About Blackmagic Shield for Arduino Setup을 선택하면 버
확인할 수 있습니.
신 버전 소프어 업이트
퓨터에 설치Blackmagic 3G-SDI Shield for Arduino Setup 소프트웨어 버전을 확인한 뒤,
Blackmagic Design객 지원 센터(www.blackmagicdesign.com/kr/support)에 방문여 최
데이트를인하세요.신 버전으로 업데는 것을 권장하,한 프로
행하는 도중에는 소프트어 업데를 하지 않는 것이 좋습니.
204
보증
보증
12월 한정 보
Blackmagic DesignBlackmagic 3G-SDI Shield for Arduino 부품 제조에
함도 없음을 구매부터 12개월 보증니다. 보증 기간 내에 결함 발견될 ,
Blackmagic Design은 당의 결에 따라 무상 수리 또는 새로운 제품으로 교환해드.
구매 객은 반드시 보간이 료되사실Blackmagic Design지해
적절한 보증 서비스를 제공받 있습니다. 구매 Blackmagic Design 서비스
센터 포장 임이 으며, 선불로 급되어야 .
유를 불문하 반송에 운송료와 , 관세, 세금,
야 합니.
증은 부적 관리,
, 고장,
.
Blackmagic Design 비스 제공 무가 니다. a) Blackmagic
Design 대리인 닌 개인에 의해 발생한 제 . b) 부적절한 사용 호환하지 않
장비 제품 손상. c) Blackmagic Design부품 공급품이 아닌
사용하여 발생손상 . d) 제품을 조하다른 제품하여 작동
증가 하가 생한 경우. BLACKMAGIC DESIGN에서 제공하는 제품 증은 다른
명시적 또는 묵시 증을 대신합니다. BLACKMAGIC DESIGN와 관련 회사는 상품성
특정 목적적합성과 관련증을 합니다.
BLACKMAGIC DESIGN수리 관련 BLACKMAGIC DESIGN 또는
판매 회사에서 관련 험의 가능성에 사전 보의 부와 관계간접, 특별,
우발적, 결과적 손해에 대한 유일한 배상 수단입니. BLACKMAGIC DESIGN이 사용
불법 장비해서는 어떤 법임도 지않습니다. BLACKMAGIC은 본 사용으로
해 발생는 손해에 대해서떤 법도 지지 않습니. 품 사으로 인해 발생
수 있는 위험에 대한 책은 본에게 있습니.
© Copyright 2018 Blackmagic Design.
. Blackmagic Design, DeckLink, HDLink, Workgroup Videohub,
Videohub, DeckLink,Intensity,Leading the creative video revolution’은 미국 및 기타 등록된 표입니다.
다른 회사명 및 제품 이름은 관련 회사의 등록 상표일 수 있습니다. ArduinoArduino 로고는 등록된 Arduino 상표입니다.
ThunderboltThunderbolt 로고는 미국 및 기타 국서 등록된 Intel Corporation의 상표입니.
Руководство по установке и эксплуатации
Русский
Июнь 2018 г.
Blackmagic
3G-SDI Shield
for Arduino
206
Добро пожаловать!
Благодарим вас за покупку модуля Blackmagic 3G-SDI Shield for Arduino.
Мы всегда стремимся внедрять последние технологии, чтобы предложить
дополнительные варианты использования нашей техники на основе SDI. Новый модуль
3G-SDI Shield for Arduino поможет интегрировать платы Arduino в рабочий процесс
для увеличения возможностей управления оборудованием Blackmagic Design через
SDI-сигнал.
Например, встроенные в SDI-сигнал пакеты с данными позволяют управлять
камерами Blackmagic URSA Mini и Blackmagic Studio с видеомикшера АТЕМ. Если вы
не используете АТЕМ, то для этих же целей можно создать собственное решение на
базе модуля 3G-SDI Shield for Arduino. Благодаря SDI-интерфейсу модуль обеспечивает
передачу обратного сигнала с видеомикшера на программный вход камер Blackmagic.
В этом случае можно создавать алгоритмы для управления камерой, а список
поддерживаемых команд приведен в данном руководстве.
Модуль позволяет дистанционно управлять камерами с компьютера, добавить к плате
кнопки, ручки прокрутки или джойстики, а также установить аппаратные средства для
настройки таких функций, как фокусировка и зум, изменение экспозиции, встроенный
инструмент цветокоррекции, баланс белого и черного. Разработка собственных
решений будет интересной как профессионалам, так и любителям.
Будем рады узнать о тех решениях, которые созданы вами на основе модуля
3G-SDI Shield for Arduino.
Это руководство содержит всю информацию, необходимую для работы с Blackmagic
3G-SDI Shield for Arduino. Последнюю версию руководства и программного
обеспечения для модуля можно найти в разделе поддержки на веб-сайте
www.blackmagicdesign.com/ru. Использование актуальной версии ПО гарантирует
доступ ко всем имеющимся функциям. Чтобы узнавать о выходе обновлений,
зарегистрируйтесь при загрузке программного обеспечения. Мы продолжаем
работать над совершенствованием наших продуктов, поэтому ваши отзывы помогут
нам сделать их еще лучше!
Грант Петти
Генеральный директор Blackmagic Design
207
Содержание
Blackmagic 3G-SDI Shield for Arduino
Содержание
Подготовка к работе 208
Монтаж и распайка разъемов 208
Установка модуля на плату Arduino 209
Подключение питания 209
Подключение к SDI-оборудованию 210
Установка программного обеспечения 211
Установка внутреннего ПО 211
Загрузка библиотеки для Arduino 212
Утилита Blackmagic Shield for Arduino Setup 213
I2C-адрес 213
Формат видеосигнала 214
Создание скетчей Arduino 214
Проверка Blackmagic Arduino Shield изагрузка библиотеки 215
Светодиодные индикаторы 216
Установка компонентов модуля 217
Обмен данными с модулем Blackmagic Shield for Arduino 217
High Level Overview 217
I2C Interface 218
Serial Interface 218
Example Usage 218
Studio Camera Control Protocol 219
Blackmagic SDI Camera Control Protocol 220
Overview 220
Assumptions 220
Blanking Encoding 220
Message Grouping 220
Abstract Message Packet Format 220
Example Protocol Packets 227
Developer Information 228
Помощь 232
Гарантия 233
208Подготовка к работе
Подготовка к работе
Монтаж и распайка разъемов
В комплект поставки Blackmagic 3G-SDI Shield for Arduino входят четыре межплатные стойки
6-контактная, 10-контактная и две 8-контактных. Они представляют собой соединительные разъемы,
спомощью которых модуль крепится на плату Arduino. Благодаря их наращиваемой конструкции
можно также добавить плату расширения, дополнительно оснащенную джойстиком, кнопками
иручками. Схема разъемов поддерживает установку модуля на такие платы, как Arduino UNO R3.
Порядок монтажа разъемов
1 Вставьте контакты каждого из разъемов в соответствующие отверстия на обеих
сторонах модуля Blackmagic 3G-SDI Shield for Arduino. Схема подключения
изображена на рисунке ниже.
ПРИМЕЧАНИЕ. Связь с подключенным модулем устанавливается по I2C- или
последовательному протоколу. Рекомендуется выбирать протокол I2C, чтобы
использовать монитор с последовательным интерфейсом и обеспечить
доступ ко всем разъемам. При назначении в скетче объекта BMDSDIControl
выберите режим связи. Подробнее см. раздел «Обмен данными с модулем
Blackmagic 3G-SDI Shield for Arduino».
2 Припаяйте каждый из контактов разъема к соответствующему отверстию на нижней
панели модуля, не затрагивая при этом соседние.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
209Подготовка к работе
СОВЕТ. Рекомендуется сначала выполнить распайку по одному контакту на каждом
разъеме. Это поможет точно совместить контакты модуля с разъемами платы
Arduino. После установки модуля на плату убедитесь, что все контакты выровнены.
При необходимости можно подогреть место спайки, чтобы устранить перекосы. Этот
способ намного проще, чем припаять одновременно все контакты, а уже затем их
выравнивать.
Установка модуля на плату Arduino
После распайки разъемов модуль Blackmagic 3G-SDI Shield for Arduino можно устанавливать на
плату Arduino.
Удерживая модуль за края, совместите его контакты с разъемами платы Arduino и осторожно
установите их в слоты. Чтобы не погнуть контакты, будьте внимательны при установке модуля.
Модуль Blackmagic 3G-SDI Shield for Arduino прикреплен к плате
Arduino, когда все его контакты надежно соединены
Подключение питания
Для подачи питания соедините адаптер переменного тока 12 В со входом питания 12 В на Blackmagic
3G-SDI Shield for Arduino.
ПРИМЕЧАНИЕ. При соединении платы Arduino с источником питания модуль
Blackmagic не получает достаточной мощности. По этой причине рекомендуется
сначала подключить Blackmagic 3G-SDI Shield for Arduino, чтобы обеспечить питанием
как модуль, так и плату.
210Подготовка к работе
Подключение к SDI-оборудованию
Теперь модуль Blackmagic 3G-SDI Shield можно подключить к SDI-оборудованию. Ниже описан
порядок подключения к видеомикшеру и камере Blackmagic URSA Mini.
1 Соедините программный выход видеомикшера с SDI-входом модуля.
2 Соедините SDI-выход модуля Blackmagic 3G-SDI Shield с SDI-входом (PGM) камеры
Blackmagic URSA Mini.
Схематически это выглядит так
Все готово для начала работы!
После монтажа модуля на плату расширения Arduino, подключения питания и соединения
сSDI-оборудованием, можно установить внутреннее ПО, загрузить файлы библиотеки и выполнить
программные установки Arduino.
В следующих разделах руководства содержится информация о порядке установки внутреннего ПО
модуля и библиотечных файлов платы Arduino.
СОВЕТ. Модуль Blackmagic 3G-SDI Shield for Arduino можно также использовать для
управления другим оборудованием производства Blackmagic Design, в том числе
решением многооконного мониторинга Blackmagic MultiView 16. При подключении
модуля ко входу 16 на мониторе будет отображаться красная рамка состояния.
Switcher Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
SDI ‘PGM’ Input
Blackmagic URSA Mini
211Установка программного обеспечения
Установка программного обеспечения
ПРИМЕЧАНИЕ. Сначала необходимо загрузить и установить последнюю версию
Arduino IDE, доступную на сайте www.arduino.cc.
После этого можно установить внутреннее ПО модуля Blackmagic 3G-SDI Shield.
Установка внутреннего ПО
Для обновления прошивки модуля используется утилита Blackmagic Shield for Arduino Setup.
Внутреннее ПО предназначено для управления платой расширения с помощью библиотеки Arduino.
Библиотечные файлы загружаются при установке утилиты Blackmagic Shield for Arduino Setup. Для
этого папку с файлами необходимо скопировать в папку приложения Arduino. Подробнее о
библиотечных файлах и их загрузке см. в следующем разделе.
Для оптимальной производительности модуля рекомендуется использовать последнюю версию ПО
для Blackmagic 3G-SDI Shield for Arduino, которая доступна в центре поддержки Blackmagic Design
на странице www.blackmagicdesign.com/ru/support.
Установка внутреннего ПО на платформе Mac OS X
1 Загрузите и распакуйте ПО Blackmagic Shield for Arduino.
2 Выберите соответствующий диск для просмотра его содержимого и запустите
установщик Blackmagic Shield for Arduino. Следуйте инструкциям на экране.
3 Когда у вас есть последняя версия установщика Blackmagic Shield for Arduino,
подключите модуль к источнику питания, а затем к компьютеру с помощью USB-кабеля.
4 Для обновления прошивки модуля запустите утилиту Blackmagic Shield for Arduino
Setup иследуйте инструкциям на экране. Если инструкции не появятся, используемая
версия является актуальной.
Установка внутреннего ПО на Windows
1 Загрузите и распакуйте ПО Blackmagic Shield for Arduino.
2 Найдите папку Blackmagic Shield for Arduino, в которой содержатся данное
руководство и установщик Blackmagic Shield for Arduino. Щелкните кнопкой мыши
дважды по значку установщика и следуйте инструкциям на экране.
3 Когда у вас есть последняя версия установщика Blackmagic Shield for Arduino,
подключите модуль к источнику питания, а затем к компьютеру с помощью USB-кабеля.
4 Для обновления прошивки модуля запустите утилиту Blackmagic Shield for Arduino
Setup и следуйте инструкциям на экране. Если они не появятся, используемая версия
является актуальной.
212Загрузка библиотеки для Arduino
Загрузка библиотеки для Arduino
Программы, написанные для управления платой Arduino, называются скетчами. Модуль Blackmagic
3G-SDI Shield for Arduino использует библиотечные файлы Arduino, которые упрощают создание
скетчей. После установки утилиты Blackmagic Shield for Arduino Setup библиотечные файлы будут
сохранены в папке Library, откуда их необходимо скопировать в папку Arduino > libraries.
ПРИМЕЧАНИЕ. Перед загрузкой библиотечных файлов необходимо закрыть
программу Arduino IDE.
Порядок установки библиотечных файлов на Mac OS X
1 Откройте Blackmagic Shield for Arduino в папке «Приложения» (Applications).
2 Выберите папку Library и щелкните правой кнопкой мыши, чтобы скопировать папку
BMDSDIControl.
3 Перейдите в папку «Документы» (Documents) на вашем компьютере и откройте
папку Arduino.
4 В папке Arduino найдите вложенную папку libraries и вставьте в нее BMDSDIControl.
Порядок установки библиотечных файлов на Windows
1 Откройте Blackmagic Shield for Arduino в папке «Программы» (Programs).
2 Выберите папку Library и нажмите правой кнопкой мыши, чтобы скопировать папку
BMDSDIControl.
3 Перейдите в папку «Документы» (Documents) на вашем компьютере и откройте
папку Arduino.
4 В папке Arduino найдите вложенную папку libraries и вставьте в нее BMDSDIControl.
Это все, что требуется для загрузки библиотечных файлов на ваш компьютер. При работе с ПО
Arduino можно также использовать примеры скетчей, созданных Blackmagic Design.
Для этого из раскрывающегося меню приложения Arduino выберите examples. Для вывода списка
готовых скетчей нажмите BMDSDIControl.
После сохранения библиотечных файлов в соответствующих папках, их можно использовать для
работы с модулем Arduino. Теперь остается написать программу в среде Arduino. Подробнее об этом
см. раздел «Написание программ для Arduino».
ПРИМЕЧАНИЕ. При обновлении библиотечных файлов необходимо удалить старую
папку BMDSDIControl и загрузить новую, следуя инструкциям выше.
213Утилита Blackmagic Shield for Arduino Setup
Утилита Blackmagic Shield
for Arduino Setup
Утилита Blackmagic Shield for Arduino Setup позволяет менять настройки
на модуле, в том числе I2C-адрес и формат видео на выходе
Утилита Blackmagic Shield for Arduino Setup позволяет менять настройки, в том числе “I2C address,
предназначенные для идентификации модуля и его соединения с платой Arduino.
I2C-адрес
Иногда возможна установка дополнительного модуля на Blackmagic Arduino Shield. Однако, если у
обоих модулей одинаковый I2C-адрес, может возникнуть сбой. В этом случае следует изменить
заданный по умолчанию адрес модуля.
Заданный по умолчанию адрес модуля — 0x6E, но можно выбрать любой в диапазоне от
214Создание скетчей Arduino
0x08 до 0x77.
Порядок изменения адреса модуля
1 Запустите Blackmagic Shield for Arduino Setup и нажмите на значок настроек модуля.
2 В строке "Set address to" введите нужный адрес.
3 Нажмите Save.
Формат видеосигнала
Если источник сигнала не подключен, видеоформат на выходе задается по умолчанию. При
обнаружении входного сигнала на выходе задается такой же формат, как на входе. При отключении
входного сигнала формат возвращается к настройке по умолчанию. Для того, чтобы изменить
видеоформат по умолчанию, из раскрывающегося меню "Default output format" выберите
необходимую настройку.
Список доступных видеоформатов
720p/50
720p/59,94
720p/60
1080i/50
1080i/59,94
1080i/60
1080p/23,98
1080p/24
1080p/25
1080p/29,97
1080p/30
1080p/50
1080p/59,94
1080p/60
Создание скетчей Arduino
Для написания программ (скетчей) используется язык Си. Обычно это не вызывает больших
сложностей. Если при написании скетчей используются команды протокола Studio Camera Control
Protocol, они включаются в выходной SDI-сигнал, что позволяет управлять камерами Blackmagic
URSA Mini или Blackmagic Studio Camera.
Список поддерживаемых команд см. в разделе "Studio Camera Control Protocol".
215Проверка Blackmagic Arduino Shield изагрузка библиотеки
Проверка Blackmagic Arduino Shield
изагрузка библиотеки
После того, как будут выполнены все инструкции раздела «Подготовка к работе», установлено
необходимое ПО и загружены библиотечные файлы, следует проверить наличие связи между
модулем и платой Arduino.
Самый быстрый способ — это открыть и запустить имеющийся скетч TallyBlink (мигание индикатора).
Для этого выполните следующие действия
1 Запустите ПО Arduino.
2 В меню tools выберите плату Arduino и Port number (номер порта).
3 В меню File перейдите в Examples/BMDSDIControl и выберите скетч TallyBlink.
4 Загрузите его на вашу плату.
Самый быстрый способ — это открыть и запустить имеющийся скетч TallyBlink.
Исходные данные можно передавать на модуль Blackmagic 3G-SDI Arduino Shield по
протоколу I2C, используя команды из Studio Camera Protocol. Чтобы упростить
процесс написания скетчей, мы создали пользовательские библиотеки.
216Проверка Blackmagic Arduino Shield изагрузка библиотеки
ПРИМЕЧАНИЕ. Убедитесь в том, что номер камеры Blackmagic (Tally number)
установлен на 1.
Tally-индикатор камеры Blackmagic Studio Camera должен мигать с интервалом в одну секунду, что
означает наличие связи между Blackmagic 3G-SDI Arduino Shield и платой Arduino.
Если индикатор не мигает, проверьте, что Tally number (номер камеры) задан на 1.
Помощь можно получить в разделе поддержки на странице www.blackmagicdesign.com/ru/support.
Подробнее о настройках модуля см. в разделе «Помощь».
Светодиодные индикаторы
Blackmagic 3G-SDI Shield for Arduino имеет шесть светодиодных индикаторов, отображающих такие
состояния модуля, как питание, работа в режиме UART, подключение шин I2C и SPI, а также
включение управления камерой и Tally-индикации.
LED 1 - Система включена
Питание подается на модуль.
LED 2 - Включен режим управления
Режим управления камерой включен в скетч Arduino.
LED 3 - Включен Tally-индикатор
Tally-индикация включена в скетч Arduino.
LED 5 - Анализатор I2C занят
Между модулем и платой Arduino обнаружена связь по протоколу I2C.
LED 6 - Последовательный анализатор занят
Обнаружен сигнал в режиме UART.
Если при запуске модуля индикатор LED 1 отключен, а LED 3, LED 4 и LED 5 горят, это указывает
на следующее
LED 3 - Идет загрузка блока памяти ПО
LED 4 - Инициализация микросхемы ЭСППЗУ
LED 5 - Идет проверка памяти
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
217Установка компонентов модуля
После успешного подключения модуля LED 1 загорится и все остальные индикаторы будут работать в
обычном режиме.
В некоторых случаях, если при запуске модуля произошел сбой, будут мигать все индикаторы. Тот
индикатор, где произошла ошибка, не будет мигать, что поможет выявить проблему.
Установка компонентов модуля
При разработке собственного контроллера для управления камерами легко создать
дополнительный модуль любого типа и оснастить его кнопками, ручками и джойстиком. Соедините
новый модуль с разъемами Blackmagic 3G-SDI Shield for Arduino. Потенциал создания таких
контроллеров неограничен. При желании можно заменить прежнюю схему блока CCU на
собственное решение на основе Arduino.
Разрабатывайте собственные микроконтроллеры
иподключайте их к Blackmagic 3G-SDI Shield for Arduino
для повышения точности управления
Обмен данными с модулем
Blackmagic Shield for Arduino
Связь с модулем Blackmagic 3G-SDI Shield for Arduino возможна по I2C- или последовательному
протоколу. Рекомендуется выбирать I2C-протокол из-за низкого числа контактов и доступности
использования монитора с последовательным интерфейсом. Также это обеспечивает работу модуля
сбольшим количеством I2C-устройств.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl, which
can be used to interface with the shields tally and camera control functionalities. Either or both of
these objects can be created in your sketch to issue camera control commands, or read and write tally
data respectively. These objects exist in several variants, one for each of the physicalI2C or
Serialcommunication busses the shield supports.
218Обмен данными с модулем Blackmagic Shield for Arduino
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate. If you
wish to print debug messages to the Serial Monitor when using this interface, change the Serial
Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible as the IDE will
be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over selected
bus by calling functions on the created object or objects. A minimal sketch that uses the library via the
I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this document.
Note that before use, you must call thebeginfunction on each object before issuing any
other commands.
Some example sketches demonstrating this library are included in the Arduino IDEsFile->Examples-
>BMDSDIControl menu.
219Studio Camera Control Protocol
Studio Camera Control Protocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to change,
and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display, tally
and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
220Studio Camera Control Protocol
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1], BLUE[2] and
LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain their
operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI Shield
for Arduino and Blackmagic Camera Remote to provide Camera Control functionality with supported
Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera Controlsection in the
Blackmagic URSA Broadcast and URSA Mini manuals, or the ATEM Switchers Manual and
ATEMSwitchers SDK manual for more information. These can be downloaded at
www.blackmagicdesign.com/support.
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 prioritize 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.
221Studio Camera Control Protocol
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories available
on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration parameters
available on the device. Parameters 0 through 127 are device specific parameters.
Parameters 128 though 255 are reserved for parameters that apply to multiple types
of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is used to
determine the number of elements in the message. Each message must contain an
integral number of data elements.
Currently defined values are:
0: void / boolean A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string
Data elements represent a UTF-8 string with no terminating character.
222Studio Camera Control Protocol
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5 bits for
the integer component and 11 bits for the fractional component. The fixed point
representation is equal to the real value multiplied by 2^11. The representable range
is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified parameter.
Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element will be
clamped according to its valid range. A void parameter may only be 'assigned' an
empty list of boolean type. This operation will trigger the action associated with that
parameter. A boolean value may be assigned the value zero for false, and any other
value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the current
parameter values. The resulting parameter value will be clamped according to their
valid range. It is not valid to apply an offset to a void value. Applying any offset other
than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
223Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
224Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
225Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
226Studio Camera Control Protocol
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
227Studio Camera Control Protocol
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on
all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode
on all cameras 16 255 9 0 0 1 0 1 0 24 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
228Developer Information
Developer Information
This section of the manual provides all the details you will need if you want to write custom libraries
and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino..
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following the
internal register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in the
**LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
229Developer Information
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [ OVERIDE CONTROL ]
7 4 3 2 1 0
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the shield
generates its own SDI signal on the SDI output connector. When 0,
the input signal is passed through to the output if present, or the
shield generates its own SDI signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately copied
over to the override tally data register. Automatically cleared
by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data. When 0,
input tally data is passed through to the output unmodified.
**Override Control:** When 1, control data is overridden with the user supplied data.
When 0, input control data is passed through to the output
unmodified.
230Developer Information
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in the
next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in the
next video frame. Automatically cleared once a control packet has
been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when a
new packet has been cached.
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously
from the next video frame until new data is set. Automatically
cleared once the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
231Developer Information
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame (one
byte per camera). Bit zero indicates a Program tally, while bit one
indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video
frame. Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when a
new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_
was reset (one byte per camera). Bit zero indicates a Program tally,
while bit one indicates a Preview tally.
232Помощь
Помощь
Как получить помощь
Модуль Blackmagic 3G-SDI Shield for Arduino позволяет создавать собственные решения.
Мы рекомендуем обратиться к страницам поддержки на сайте Blackmagic Design и проверить
наличие последних справочных материалов по Blackmagic 3G-SDI Arduino Shield.
Страницы поддержки на сайте Blackmagic Design
Последние версии руководства по эксплуатации, программного обеспечения и дополнительную
информацию можно найти в центре поддержки Blackmagic Design на странице
www.blackmagicdesign.com/ru/support.
Форум разработчиков Arduino
Если у вас возникли вопросы по программированию, посетите интернет-форумы разработчиков
Arduino. Вы не только найдете ответы на многие вопросы, но получите техническую поддержку по
реализации программных решений.
Форум сообщества Blackmagic Design
Посетите форум сообщества Blackmagic Design на нашем веб-сайте, чтобы получить
дополнительную информацию и узнать об интересных творческих идеях. Там также можно найти
ответы опытных пользователей и сотрудников Blackmagic Design на часто задаваемые вопросы.
Адрес форума http://forum.blackmagicdesign.com.
Проверка используемой версии программного обеспечения
Чтобы узнать версию Blackmagic 3G-SDI Shield for Arduino Setup, установленную на вашем
компьютере, откройте окно About Blackmagic 3G-SDI Shield for Arduino Setup.
На компьютере с операционной системой Mac OS X откройте Blackmagic 3G-SDI
Shield for Arduino Setup в папке «Приложения». В меню выберите About Blackmagic
3G-SDI Shield for Arduino Setup, чтобы узнать номер версии.
При работе в операционной системе Windows 7 откройте меню «Пуск» и выберите
Blackmagic 3G-SDI Shield for Arduino Setup. В меню «Помощь» выберите About
Blackmagic 3G-SDI Shield for Arduino Setup, чтобы узнать номер версии.
При работе в операционной системе Windows 8 на экране «Пуск» выберите Blackmagic
3G-SDI Shield for Arduino Setup. В меню «Помощь» выберите About Blackmagic 3G-SDI
Shield for Arduino Setup, чтобы узнать номер версии.
Загрузка последних версий программного обеспечения
Узнав установленную версию ПО Blackmagic 3G-SDI Shield for Arduino Setup, перейдите в центр
поддержки Blackmagic Design на странице www.blackmagicdesign.com/ru/support, чтобы
проверить наличие обновлений. Рекомендуется всегда использовать последнюю версию
программного обеспечения, однако обновление лучше всего выполнять после завершения
текущего проекта.
233Гарантия
Гарантия
Ограниченная гарантия сроком 12 месяцев
Компания Blackmagic Design гарантирует отсутствие в данном модуле Blackmagic 3G-SDI Shield for
Arduino дефектов материала и производственного брака в течение 12 месяцев с даты продажи. Если
во время гарантийного срока будут выявлены дефекты, Blackmagic Design по своему усмотрению
выполнит ремонт неисправного изделия без оплаты стоимости запчастей и трудозатрат или заменит
такое изделие новым.
Чтобы воспользоваться настоящей гарантией, потребитель обязан уведомить компанию Blackmagic
Design о дефекте до окончания гарантийного срока и обеспечить условия для предоставления
необходимых услуг. Потребитель несет ответственность за упаковку и доставку неисправного изделия
в соответствующий сервисный центр Blackmagic Design с оплатой почтовых расходов. Потребитель
обязан оплатить все расходы по доставке и страхованию, пошлины, налоги и иные сборы в связи
свозвратом изделия вне зависимости от причины возврата.
Настоящая гарантия не распространяется на дефекты, отказы и повреждения, возникшие из-за
ненадлежащего использования, неправильного ухода или обслуживания. Компания Blackmagic Design
не обязана предоставлять услуги по настоящей гарантии: а) для устранения повреждений, возникших
в результате действий по установке, ремонту или обслуживанию изделия лицами, которые не являются
персоналом Blackmagic Design; б) для устранения повреждений, возникших в результате ненадлежащего
использования или подключения к несовместимому оборудованию; в) для устранения повреждений
или дефектов, вызванных использованием запчастей или материалов других производителей; г) если
изделие было модифицировано или интегрировано с другим оборудованием, когда такая модификация
или интеграция увеличивает время или повышает сложность обслуживания изделия. НАСТОЯЩАЯ
ГАРАНТИЯ ПРЕДОСТАВЛЯЕТСЯ КОМПАНИЕЙ BLACKMAGIC DESIGN ВМЕСТО ЛЮБЫХ ДРУГИХ ПРЯМО
ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ. КОМПАНИЯ BLACKMAGIC DESIGN И ЕЕ ДИЛЕРЫ
ОТКАЗЫВАЮТСЯ ОТ ЛЮБЫХ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ КОММЕРЧЕСКОЙ ЦЕННОСТИ ИЛИ
ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ОПРЕДЕЛЕННОЙ ЦЕЛИ. ОТВЕТСТВЕННОСТЬ BLACKMAGIC DESIGN
ПО РЕМОНТУ ИЛИ ЗАМЕНЕ НЕИСПРАВНЫХ ИЗДЕЛИЙ ЯВЛЯЕТСЯ ПОЛНЫМ И ИСКЛЮЧИТЕЛЬНЫМ СРЕДСТВОМ
ВОЗМЕЩЕНИЯ, ПРЕДОСТАВЛЯЕМЫМ ПОТРЕБИТЕЛЮ В СВЯЗИ С КОСВЕННЫМИ, ФАКТИЧЕСКИМИ,
СОПУТСТВУЮЩИМИ ИЛИ ПОСЛЕДУЮЩИМИ УБЫТКАМИ, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО, БЫЛА ИЛИ НЕТ
КОМПАНИЯ BLACKMAGIC DESIGN (ЛИБО ЕЕ ДИЛЕР) ПРЕДВАРИТЕЛЬНО ИЗВЕЩЕНА О ВОЗМОЖНОСТИ
ТАКИХ УБЫТКОВ. BLACKMAGIC DESIGN НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ПРОТИВОПРАВНОЕ
ИСПОЛЬЗОВАНИЕ ОБОРУДОВАНИЯ СО СТОРОНЫ ПОТРЕБИТЕЛЯ. BLACKMAGIC DESIGN НЕ НЕСЕТ
ОТВЕТСТВЕННОСТИ ЗА УБЫТКИ, ВОЗНИКАЮЩИЕ ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ЭТОГО ИЗДЕЛИЯ.
ПОТРЕБИТЕЛЬ ПРИНИМАЕТ НА СЕБЯ РИСКИ, СВЯЗАННЫЕ С ЕГО ЭКСПЛУАТАЦИЕЙ.
© Copyright 2018 Blackmagic Design. Все права защищены. Blackmagic Design, DeckLink, HDLink, Workgroup Videohub,
Videohub, DeckLink, Intensity, Leading the creative video revolution зарегистрированы как товарные знаки в США и других
странах. Названия других компаний и наименования продуктов могут являться товарными знаками соответствующих
правообладателей. Технология Arduino и логотип Arduino являются товарными знаками компании Arduino. Технология
Thunderbolt и логотип Thunderbolt являются товарными знаками корпорации Intel в США и других странах.
Manuale di istruzioni
Giugio 2018
Italiano
Blackmagic
3G-SDI Shield
for Arduino
235
Gentile utente
Grazie per aver acquistato il nuovo Blackmagic 3G-SDI Shield for Arduino.
Il team Blackmagic è sempre alla ricerca di nuove tecnologie per consentire il controllo
dei nostri dispositivi SDI senza limiti di creatività. Grazie a questo shield, Arduino si
integra perfettamente nel flusso di lavoro SDI come soluzione di controllo aggiuntiva per
idispositivi Blackmagic Design.
Per esempio, puoi gestire Blackmagic URSA Mini e Blackmagic Studio Camera dallo
switcher ATEM tramite il pacchetto dati integrato al segnale SDI. Se lo switcher ATEM non
è in funzione, ma desideri comunque controllare le telecamere Blackmagic, puoi creare
una soluzione di controllo su misura con il 3G-SDI Shield for Arduino. Lo shield funge da
piattaforma SDI attraverso cui passa il flusso video del programma in arrivo dallo switcher
e verso le telecamere Blackmagic.
In questo manuale troverai tutti i comandi utili per scrivere il codice con facili
econtrollare la telecamera.
Puoi gestire la telecamera tramite software da un computer, oppure aggiungere pulsanti,
manopole e joystick fisici allo shield per regolare diverse funzioni, tra cui messa a fuoco,
zoom, apertura, bilanciamento nero/bianco, e i potenti strumenti di correzione colore
della camera. Creare dispositivi personalizzati è utilissimo per le tue produzioni, ma
anchedivertente!
Questa è una tecnologia innovativa e versatile, che apre le porte a innumerevoli soluzioni
di controllo SDI su misura.
Il manuale di istruzioni contiene tutte le informazioni per installare e operare
Blackmagic3G-SDI Shield for Arduino. La versione più recente di questo manuale e gli
aggiornamenti del software interno dello shield sono disponibili sulla pagina Supporto
del nostro sito www.blackmagicdesign.com/it. È importante aggiornare regolarmente
il software per disporre sempre delle ultime funzioni. Una volta scaricato il software,
tiinvitiamo a registrare i tuoi dati personali per ricevere le notifiche sugli aggiornamenti
futuri. Blackmagic è in costante stato di innovazione e i tuoi suggerimenti ci aiutano a
migliorare prestazioni e funzionalità!
Grant Petty
AD di Blackmagic Design
236
Indice
Blackmagic 3G-SDI Shield for Arduino
Operazioni preliminari 237
Inserire e saldare i connettori 237
Inserire lo shield nella scheda Arduino 238
Collegare l'alimentazione 238
Collegare i dispositivi SDI 239
Installare il software 240
Installare il software interno 240
Installare i file della libreria Arduino 241
Blackmagic Shield for Arduino Setup 242
Indirizzo I2C 242
Formato video 243
Programmare gli sketch di Arduino 243
Testare lo shield Blackmagic einstallazione della libreria 244
Spie LED 245
Applicare componenti allo shield 246
Comunicare con Blackmagic Shield for Arduino (English) 246
High Level Overview 246
Studio Camera Control Protocol (English) 248
Blackmagic SDI Camera Control Protocol 249
Overview 249
Assumptions 249
Blanking Encoding 249
Message Grouping 249
Abstract Message Packet Format 249
Defined Commands 250
Example Protocol Packets 256
Informazioni per gli sviluppatori (English) 257
Physical Encoding - I2C 257
Physical Encoding - UART 257
Assistenza 261
Garanzia 262
237Operazioni preliminari
Operazioni preliminari
Inserire e saldare i connettori
Blackmagic 3G-SDI Shield for Arduino include 4 connettori sovrapponibili: due connettori a 8
pin, un connettore a 10 pin, e un connettore a 6 pin. Questi connettori fungono da collegamento
tra lo shield e la scheda Arduino, ed essendo sovrapponibili, permettono di aggiungere altri
shield dotati di ulteriori componenti, per esempio pulsanti, manopole e joystick. Il connettore
consente di montare lo shield su schede Arduino UNO R3.
Per applicare i connettori allo shield:
1 Inserisci i pin di ogni connettore negli appositi fori per pin in entrambi i lati dello shield
Blackmagic. L’illustrazione qui sotto mostra la disposizione dei connettori.
NOTA La comunicazione con lo shield avviene tramite I2C o è seriale.
Consigliamo I2C perché usa il monitor seriale e lascia liberi tutti gli altri pin.
Seleziona la modalità di comunicazione in fase di scrittura del comando
BMDSDIControl nello sketch. Per tutti i dettagli, consulta il capitolo
“Comunicare con lo shield”.
2 Salda la base di ogni connettore sulla parte inferiore dello shield. Assicurati di saldare
fermamente ogni singolo pin, evitando di toccare la saldatura degli altri pin.
SUGGERIMENTO Per allineare i pin dello shield con i fori per pin della scheda
Arduino, salda solo un pin su ogni connettore. Poi posa lo shield sulla scheda
Arduino per controllare l’allineamento. Se è necessario spostare i connettori
per correggere l’allineamento, scalda leggermente il giunto di saldatura del
connettore interessato. Questo metodo è migliore perché spostare i connettori
quando tutti i giunti sono stati già saldati è più difficile.
6 PIN
8 PIN
10 PIN
8 PIN
A5 (I2C) SCL
A4 (I2C) SDA
0 - Serial RX
1 - Serial T X
(I2C) SDA
(I2C) SCL
238Operazioni preliminari
Inserire lo shield nella scheda Arduino
Ora che i connettori sono saldati allo shield 3G-SDI, puoi montarlo sulla scheda Arduino.
Allinea i connettori dello shield ai fori per pin della scheda Arduino, e inseriscili delicatamente,
evitando di piegarli.
Una volta inseriti i pin, lo shield Blackmagic e la scheda Arduino si
incastrano perfettamente.
Collegare l'alimentazione
Per alimentare Blackmagic 3G-SDI Shield for Arduino, collega un adattatore all’ingresso per
alimentazione 12V dello shield.
NOTA Ladattatore collegato alla scheda Arduino non è sufficiente per alimentare lo
shield Blackmagic. Accertati di collegare l’alimentazione solo allo shield, che invece è
sufficiente per operare sia lo shield che la scheda Arduino.
239Operazioni preliminari
Collegare i dispositivi SDI
Una volta collegata l’alimentazione, puoi connettere Blackmagic 3G-SDI Shield for Arduino ai
dispositivi SDI. Ad esempio, per collegare lo shield a uno switcher e a una Blackmagic
URSA Mini:
1 Collega l’uscita di programma dello switcher all’ingresso SDI dello shield Blackmagic.
2 Collega l’uscita SDI dello shield Blackmagic all’ingresso PGM di Blackmagic URSA Mini.
Segui lo schema di connessione qui sotto.
Con lo shield montato sulla scheda Arduino, alimentato e connesso ai dispositivi SDI, è il
momento di installare il software interno e i file della libreria, programmare il software Arduino e
cominciare a utilizzare lo shield!
Il prossimo capitolo spiega come installare il software interno dello shield e dove installare i file
della libreria di Arduino, cosicché lo shield comunichi con la scheda Arduino.
SUGGERIMENTO Con Blackmagic 3G-SDI Shield for Arduino puoi controllare anche
altri dispositivi Blackmagic Design, ad esempio Blackmagic MultiView 16. Per esempio
se lo shield è connesso all’ingresso 16, puoi abilitare il bordo tally sui riquadri
multiview.
Switcher Blackmagic 3G-SDI Shield for Arduino
SDI IN
SDI OUT
SDI ‘PGM’ Input
Blackmagic URSA Mini
240Installare il software
Installare il software
NOTA Prima di installare l’utilità Blackmagic 3G-SDI Shield for Arduino, scarica l’ultimo
software di programmazione (IDE) di Arduino da www.arduino.cc e installalo sul tuo
computer.
Dopo aver installato il software di Arduino, puoi installare il software interno dello
shield Blackmagic.
Installare il software interno
Installa Blackmagic Shield for Arduino Setup per aggiornare il software interno dello shield. Il
software interno comunica con la scheda Arduino, e la controlla utilizzando i file della libreria
Arduino. I file sono installati dal software, quindi basta fare un copia e incolla della “Library
nella cartella Arduino in Applicazioni. Per maggiori informazioni consulta la sezione
“Impostazioni” di questo manuale.
Consigliamo di scaricare l’ultima versione del software Blackmagic Shield for Arduino e
aggiornare lo shield per sfruttare appieno tutte le funzioni e i potenziamenti futuri. La versione
più recente è disponibile per il download sulla pagina Supporto di Blackmagic Design
www.blackmagicdesign.com/it/support
Per installare il software interno con Mac OS X:
1 Scarica e decomprimi il software Blackmagic Shield for Arduino Setup.
2 Apri l’immagine disco e lancia l’applicazione di installazione. Segui le istruzioni
sullo schermo.
3 Una volta installata l’ultima versione del software dello shield Blackmagic, alimenta lo
shield e connettilo al computer tramite un cavo USB.
4 Ora lancia l’applicazione di installazione e segui le istruzioni per aggiornare il software
interno dello shield. Se la finestra non appare, il software interno è già aggiornato.
Per installare il software interno con Windows:
1 Scarica e decomprimi il software Blackmagic Shield for Arduino Setup.
2 Apparirà la cartella Blackmagic Shield for Arduino, che contiene questo manuale e
l’installer dello shield Blackmagic. Fai doppio clic sull’icona dell’applicazione e segui le
istruzioni per completare l’installazione.
3 Una volta installata l’ultima versione del software dello shield Blackmagic, alimenta lo
shield e connettilo al computer tramite un cavo USB.
4 Ora lancia l’applicazione di installazione e segui le istruzioni per aggiornare il software
interno dello shield. Se la finestra non appare, il software interno è già aggiornato.
241Installare i file della libreria Arduino
Installare i file della libreria Arduino
I programmi sviluppati per il controllo della scheda Arduino sono chiamati “sketch”. Blackmagic
3G-SDI Shield for Arduino si serve dei file della libreria Arduino, che facilitano la scrittura degli
sketch. Dopo l’installazione del software dello shield, i file della libreria appaiono nella cartella
denominata “Library, che basta copiare e incollare nella cartella Arduino.
NOTA Chiudi l’IDE Arduino prima di installare le librerie.
Per installare i file della libreria su Mac OS X:
1 Apri la cartella Applicazioni e seleziona Blackmagic Shield for Arduino.
2 Apri la cartella "Library" e fai clic destro/copia della cartella BMDSDIControl.
3 Vai a Documenti e apri la cartella Arduino.
4 Troverai una sotto-cartella chiamata "Libraries". Incolla la cartella BMDSDIControl
copiata nella cartella "Libraries".
Per installare i file della libreria su Windows
1 Vai a Programmi/Blackmagic Shield for Arduino
2 Apri la sotto-cartella "Library", poi fai clic destro/copia della cartella BMDSDIControl.
3 Vai a Documenti e apri la cartella Arduino.
4 Troverai una sotto-cartella chiamata "Libraries". Incolla la cartella BMDSDIControl
copiata nella cartella "Libraries".
Ora i file della libreria Blackmagic Design sono installati sul tuo computer, inclusi gli esempi di
sketch Blackmagic Design utilizzabili quando il software Arduino è in esecuzione.
Clicca "File" sulla barra menù del software Arduino e seleziona "Examples". Clicca su
BMDSDIControl per accedere agli esempi di sketch.
Ora che i file della libreria sono salvati nella cartella corretta, lo shield può utilizzarli per
comunicare con la scheda Arduino. A questo punto basta programmare l'IDE Arduino. Per tutti
idettagli, consulta il capitolo "Programming Arduino Sketches".
NOTA Se in futuro viene resa disponibile una nuova libreria di esempi, cestina la
cartella BMDSDIControl e sostituiscila con la nuova cartella, seguendo le stesse
istruzioni qui sopra.
242Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup
Blackmagic Shield for Arduino Setup consente di cambiare le impostazioni
dello shield, così come l’indirizzo I2C e il formato video di uscita.
A installazione effettuata, puoi cambiare sia l’indirizzo “I2C address” per identificare lo shield e
comunicare con la scheda Arduino, sia il formato “video format” di uscita dello shield.
Indirizzo I2C
Nei rari casi in cui è presente un secondo shield che utilizza lo stesso indirizzo I2C dello shield
Blackmagic, sarà necessario cambiare le impostazioni di default.
243Programmare gli sketch di Arduino
L'indirizzo di default del tuo shield è 0x6E, ma puoi scegliere un valore compreso tra
0x08 e 0x77.
Per cambiare l’indirizzo dello shield:
1 Lancia Blackmagic Shield for Arduino Setup e clicca sull’icona delle impostazioni.
2 Assegna l'indirizzo desiderato in "Set address to:"
3 Clicca su "Save".
Formato video
Se non è collegata nessuna fonte, il formato di uscita è selezionato di default. Quando è rilevata
una fonte, il formato di uscita corrisponde a quello di entrata. Scollegando la fonte di entrata, il
formato di uscita ritorna a quello di default. Per cambiare il formato video di default, clicca su
"Default output format" dalla barra menù e seleziona il formato desiderato.
Scegli tra i seguenti formati di uscita:
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60
1080p23.98
1080p24
1080p25
1080p29.97
1080p30
1080p50
1080p59.94
1080p60
Programmare gli sketch di Arduino
I programmi Arduino, detti "sketch", sono facilissimi da scrivere e usano il comune linguaggio di
programmazione C. Se programmi gli sketch utilizzando i comandi del protocollo dello Studio
Camera Control Protocol, lo shield li integra all'uscita SDI, permettendo di controllare
Blackmagic URSA Mini o Blackmagic Studio Camera.
Tutti i comandi supportati sono inclusi nella sezione "Studio Camera Control Protocol"
del manuale.
244Testare lo shield Blackmagic einstallazione della libreria
Testare lo shield Blackmagic
einstallazione della libreria
Una volta completate le operazioni preliminari e installato il software e i file della libreria,
accertati che lo shield e la scheda Arduino comunichino correttamente.
Il metodo più veloce è di aprire e testare l'esempio di sketch per fare lampeggiare la spia tally.
Segui le istruzioni qui sotto:
1 Lancia il software di programmazione (IDE) di Arduino.
2 Dal menù "Tools" seleziona la scheda Arduino e il numero della porta seriale.
3 Dal menù "File" seleziona "Examples/BMDSDIControl" e clicca sullo sketch "TallyBlink".
4 Carica lo sketch sulla scheda.
Con l’esempio di sketch per illuminare la spia tally, verificare il funzionamento dello
Blackmagic 3G-SDI Shield for Arduino è facile e veloce. Invia i dati direttamente allo
shield tramite I2C, utilizzando i comandi del protocollo Studio Camera Protocol. Per
facilitare la programmazione degli sketch puoi consultare le librerie incluse.
245Testare lo shield Blackmagic einstallazione della libreria
NOTA Assicurati che il numero tally della camera Blackmagic sia impostato su 1.
Se la spia tally lampeggia sulla Blackmagic Studio Camera a intervalli di un secondo, la
comunicazione è stata instaurata con successo.
Se la spia tally non lampeggia, controlla che il numero di tally della telecamera si impostato su 1.
Per assistenza, visita il sito Blackmagic Design alla pagina Supporto www.blackmagicdesign.
com/it/support. Consulta la sezione Assistenza di questo manuale per maggiori informazioni
sulle impostazioni dello shield.
Spie LED
Blackmagic 3G-SDI Shield for Arduino include sei LED che confermano varie operazioni dello
shield, tra cui alimentazione, UART, I2C e comunicazione SPI, e spie che mostrano quando il
controllo tally e il controllo telecamera sono abilitati.
LED 1 - Sistema attivo
Si illumina quando l'alimentazione è collegata allo shield.
LED 2 - Controllo telecamera abilitato
Si illumina quando lo sketch di Arduino prevede il controllo della telecamera.
LED 3 - Controllo tally abilitato
Si illumina quando lo sketch di Arduino prevede il controllo del tally.
LED 5 - I2C Parsing in corso
Si illumina quando viene rilevata la comunicazione tra shield e Arduino con il
protocollo I2C.
LED 6 - Parsing UART in corso
Si illumina quando viene rilevata la comunicazione seriale UART.
Quando lo shield Blackmagic è in fase di avvio, l'indicatore dell'alimentazione rimane spento, e i
LED 3, 4 e 5 si accendono a seconda dell'attività:
LED 3 - Caricamento in corso dell'immagine dell'applicazione
LED 4 - Avvio di EEPROM
LED 5 - Controllo memoria in corso
6 PIN
8 PIN
10 PIN
8 PIN
6 PIN
8 PIN
10 PIN
8 PIN
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
246Comunicare con Blackmagic Shield for Arduino (English)
Ad avvio riuscito, il LED di alimentazione si accende, e tutti i LED riprendono le loro funzioni
standard durante l'elaborazione.
Nel raro caso che l'avvio fallisca, tutti i LED lampeggiano velocemente tranne quelli che
mostrano la causa dell'anomalia.
Applicare componenti allo shield
Per ottenere un dispositivo di controllo hardware su misura e interamente manuale, puoi creare
un nuovo shield con pulsanti, manopole e joystick. Per montarlo su Blackmagic 3G-SDI Shield
for Arduino basta inserire i connettori dello shield personalizzato nei fori per pin del connettore
dello shield. Non c’è limite al tipo di microcontrollori che puoi creare. Puoi addirittura sostituire
completamente i circuiti di una vecchia CCU con la tua soluzione Arduino su misura e di
standard professionale.
Crea il tuo controller su misura e connettilo a Blackmagic
3G-SDI Shield for Arduino per un controllo mirato e interattivo.
Comunicare con Blackmagic
Shield for Arduino (English)
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I2C because of the low pin count and it frees up the serial monitor. This also allows
you to use more I2C devices with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_SDICameraControl,
which can be used to interface with the shield’s tally and camera control functionalities. Either
or both of these objects can be created in your sketch to issue camera control commands, or
read and write tally data respectively. These objects exist in several variants, one for each of
the physicalI2C or Serialcommunication busses the shield supports.
247Comunicare con Blackmagic Shield for Arduino (English)
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
Serial Interface
To use theSerialinterface to the shield:
BMD _ SDICameraControl _ Serial sdiCameraControl;
BMD _ SDITallyControl _ Serial sdiTallyControl;
Note that the library will configure the Arduino serial interface at the required 38400 baud rate.
If you wish to print debug messages to the Serial Monitor when using this interface, change the
Serial Monitor baud rate to match. If the Serial Monitor is used, some binary data will be visible
as the IDE will be unable to distinguish between user messages and shield commands.
Example Usage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
the library via the I2C bus is shown below.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
248Studio Camera Control Protocol (English)
Studio Camera Control Protocol (English)
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control your Blackmagic URSA Mini or
Blackmagic Studio Camera via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group ID Group
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10 Media
11 PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera number,
Group,
Parameter being controlled,
Operation,
Value
);
The operation type specifies what action to perform on the specified parameter
0 = assign value. The supplied Value is assigned to the specified parameter.
1 = offset value. Each value specifies signed offsets of the same type to be added to the current
parameter Value.
For example:
sdiCameraControl.writeCommandFixed16(
1,
8,
0,
0,
liftAdjust
);
249Studio Camera Control Protocol (English)
1 = camera number 1
8 = Color Correction group
0 = Lift Adjust
0 = assign value
liftAdjust = setting the value for the RGB and luma levels
As described in the protocol section, liftAdjust is a 4 element array for RED[0], GREEN[1],
BLUE[2] and LUMA[3]. The complete array is sent with this command.
The sketch examples included with the library files contain descriptive comments to explain
their operation.
Blackmagic SDI Camera Control Protocol
Version 1.2
If you are a software developer you can use the SDI Camera Control Protocol to 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
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and Blackmagic Camera Remote to provide Camera Control functionality
with supported Blackmagic Design cameras. Please refer to theUnderstanding Studio Camera
Control’ section in the Blackmagic URSA Broadcast and URSA Mini manuals, or the ATEM
Switchers Manual and ATEM Switchers SDK manual for more information. These can be
downloaded at www.blackmagicdesign.com/support.
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 prioritize 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.
250Studio Camera Control Protocol (English)
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.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
Defined Commands
Command 0 : change configuration
Category (uint8) The category number specifies one of up to 256 configuration categories
available on the device.
Parameter (uint8)
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
Data type (uint8)
The data type specifies the type of the remaining data. Thepacket length is
used to determine the number of elements in the message. Each message
must contain an integral number of data elements.
Currently defined values are:
0: void / boolean
A void value is represented as a boolean array of length zero.
The data field is a 8 bit value with 0 meaning false and all other values
meaning true.
1: signed byte Data elements are signed bytes
2: signed 16bit integer Data elements are signed 16 bit values
3: signed 32bit integer Data elements are signed 32 bit values
4: signed 64bit integer Data elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
251Studio Camera Control Protocol (English)
Data types 6 through 127 are reserved.
128: signed 5.11fixed point
Data elements are signed 16 bit integers representing a real number with 5
bits for the integer component and 11 bits for the fractional component. The
fixed point representation is equal to the real value multiplied by 2^11. The
representable range is from -16.0 to 15.9995
(15 + 2047/2048).
Data types 129 through 255 are available for device specific purposes.
Operation type (uint8) The operation type specifies what action to perform on the specified
parameter. Currently defined values are:
0: assign value
The supplied values are assigned to the specified parameter. Each element
will be clamped according to its valid range. A void parameter may only be
'assigned' an empty list of boolean type. This operation will trigger the action
associated with that parameter. A boolean value may be assigned the value
zero for false, and any other value for true.
1: offset / toggle value
Each value specifies signed offsets of the same type to be added to the
current parameter values. The resulting parameter value will be clamped
according to their valid range. It is not valid to apply an offset to a void value.
Applying any offset other than zero to a boolean value will invert that value.
Operation types 2 through 127 are reserved.
Operation types 128through 255 are available for device specific purposes.
Data (void) The data field is 0 or more bytes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
Group ID Parameter Type Index Minimum Maximum Interpretation
Lens
0.0 Focus fixed16 0 1 0.0 = near, 1.0 = far
0.1 Instantaneous autofocus void – ––trigger
instantaneous autofocus
0.2 Aperture (f-stop) fixed16 -1 16 Aperture Value (where
fnumber = sqrt(2^AV))
0.3 Aperture (normalised) fixed16 0 1 0.0 = smallest, 1.0 = largest
0.4 Aperture (ordinal) int16 0 n
Steps through available
aperture values from
minimum (0) to maximum (n)
0.5 Instantaneous
auto aperture void – ––trigger instantaneous
auto aperture
0.6 Optical image stabilisation boolean – ––true = enabled, false
= disabled
0.7 Set absolute zoom (mm) int16 0 max
Move to specified focal
length in mm, from minimum
(0) to maximum (max)
0.8 Set absolute zoom
(normalised) fixed16 0 1 Move to specified focal
length: 0.0 = wide, 1.0 = tele
0.9 Set continuous
zoom (speed) fixed16 -1 +1.0
Start/stop zooming at
specified rate: -1.0 = zoom
wider fast, 0.0 = stop,
+1 = zoom tele fast
252Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Video
1.0 Video mode int8
[0] = frame rate 24, 25, 30, 50, 60
[1] = M-rate 0 = regular, 1 = M-rate
[2] = dimensions – –
0 = NTSC,
1 = PAL,
2 = 720,
3 = 1080,
4 = 2k,
5 = 2kDCI,
6 = UHD
[3] = interlaced ––0 = progressive, 1 =
interlaced
[4] = Color space 0 = YUV
1.1 Gain int8 116
1 = 100 ISO,
2 = 200 ISO,
4 = 400 ISO,
8 = 800 ISO,
16 = 1600 ISO
1.2 Manual White Balance int16 [0] = color temp 2500 10000 Color temperature in K
int16 [1] = tint -50 50 tint
1.3 Set auto WB void – ––Calculate and set
autowhite balance
1.4 Restore auto WB void – ––Use latest auto white
balance setting
1.5 Exposure (us) int32 142000 time in us
1.6 Exposure (ordinal) int16 0 n
Steps through available
exposure valuesfrom
minimum (0) tomaximum (n)
1.7 Dynamic Range Mode int8 enum 0 2 0 = film, 1 = video,
2 = extended video
1.8 Video sharpening level int8 enum 0 3 0 = off, 1 = low,
2= medium, 3 = high
1.9 Recording format int16
[0] = file
frame rate ––fps as integer
(eg 24, 25, 30, 50, 60, 120)
[1] = sensor
frame rate – –
fps as integer, valid when
sensor-off-speed set (eg 24,
25, 30, 33, 48, 50, 60, 120),
no change will beperformed
if this value is set to 0
[2] = frame width in pixels
[3] = frame height in pixels
[4] = flags
[0] = file-M-rate
––[1] = sensor-M-rate, valid
whensensor-off-speed-set
––[2] = sensor-off-speed
––[3] = interlaced
––[4] = windowed mode
1.10 Set auto exposure mode int8 0 4
0 = Manual Trigger,
1 = Iris,
2 = Shutter,
3 = Iris + Shutter,
4 = Shutter + Iris
1.11 Shutter angle int32 100 36000 Shutter angle in degrees,
multiplied by 100
1.12 Shutter speed int32 24 2000
Shutter speed value as a
fraction of 1, so 50 for 1/50th
of a second
1.13 Gain int8 -128 127 Gain in decibel (dB)
1.14 ISO int32 0 2147483647 ISO value
253Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Audio
2.0 Mic level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.1 Headphone level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.2 Headphone program mix fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.3 Speaker level fixed16 0 1 0.0 = minimum,
1.0 = maximum
2.4 Input type int8 0 2
0 = internal mic,
1 = line level input,
2 = low mic level input,
3 = high mic level input
2.5 Input levels fixed16
[0] ch0 0 1 0.0 = minimum,
1.0 = maximum
[1] ch1 0 1 0.0 = minimum,
1.0 = maximum
2.6 Phantom power boolean – ––true = powered,
false = not powered
Output
3.0 Overlay enables uint16
bit field – –
bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow
separate control of frame
guides and status overlays.
3.1 Frame guides style
(Camera 3.x) int8 [0] = frame
guides style 0 8
0 = HDTV, 1 = 4:3, 2 = 2.4:1,
3 = 2.39:1, 4 = 2.35:1,
5 = 1.85:1, 6 = thirds
3.2 Frame guides opacity
(Camera 3.x) fixed16 [1] = frame
guide opacity 0.1 10.0 = transparent,
1.0 = opaque
3.3
Overlays
(replaces .1 and .2
abovefrom
Cameras 4.0)
int8
[0] = frame
guides style – –
0 = off, 1 = 2.4:1, 2 = 2.39:1,
3 = 2.35:1, 4 = 1.85:1, 5 = 16:9,
6 = 14:9, 7 = 4:3
[1] = frame
guide opacity 0100 0 = transparent,
100 = opaque
[2] = safe area
percentage 0100
percentage of full frame
used by safe area guide
(0 means off)
[3] = grid style
bit flags: [0] = display thirds,
[1] = display cross hairs,
[2] = display center dot
Display
4.0 Brightness fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.1 Overlay enables int16
bit field
0x4 = zebra
0x8 = peaking
– –
4.2 Zebra level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.3 Peaking level fixed16 0 1 0.0 = minimum,
1.0 = maximum
4.4 Color bars display
time (seconds) int8 0 30 0 = disable bars, 1-30 =
enable bars with timeout (s)
4.5 Focus Assist int8
[0] = focus
assist method ––0 = Peak,
1 = Colored lines
[1] = focus
line color – –
0 = Red,
1 = Green,
2 = Blue,
3 = White,
4 = Black
254Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Tally
5.0 Tally brightness fixed16 0 1
Sets the tally front and tally
rear brightness to the
same level.
0.0 = minimum,
1.0 = maximum
5.1 Front tally brightness fixed16 0 1
Sets the tally front
brightness.
0.0 = minimum,
1.0 = maximum
5.2 Rear tally brightness fixed16 0 1
Sets the tally rear brightness.
0.0 = minimum,
1.0 = maximum
Tally rear brightness cannot
be turned off
Reference 6.0 Source int8 enum 0 2
0 = internal,
1 = program,
2 = external
6.1 Offset int32 +/- offset in pixels
Confi-
guration
7.0 Real Time Clock int32 [0] time _ _ BCD - HHMMSSFF (UCT)
[1] date __BCD - YYYYMMDD
7.1 System language string _ __ISO-639-1 two character
language code
7.2 Timezone int32 _ __Minutes offset from UTC
7.3 Location int64
[0] latitude _ _
BCD - s0DDdddddddddddd
where s is the sign:
0 = north (+), 1 = south (-);
DD degrees, dddddddddddd
decimal degrees
[1] longitude _ _
BCD - sDDDdddddddddddd
where s is the sign: 0 = west
(-), 1 = east (+); DDD degrees,
dddddddddddd
decimal degrees
Color
Correction
8.0 Lift Adjust fixed16
[0] red -2 2 default 0.0
[1] green -2 2 default 0.0
[2] blue -2 2 default 0.0
[3] luma -2 2 default 0.0
8.1 Gamma Adjust fixed16
[0] red -4 4 default 0.0
[1] green -4 4 default 0.0
[2] blue -4 4 default 0.0
[3] luma -4 4 default 0.0
8.2 Gain Adjust fixed16
[0] red 016 default 1.0
[1] green 016 default 1.0
[2] blue 0 16 default 1.0
[3] luma 016 default 1.0
8.3 Offset Adjust fixed16
[0] red -8 8 default 0.0
[1] green -8 8 default 0.0
[2] blue -8 8 default 0.0
[3] luma -8 8 default 0.0
8.4 Contrast Adjust fixed16 [0] pivot 0 1 default 0.5
[1] adj 0 2 default 1.0
8.5 Luma mix fixed16 0 1 default 1.0
8.6 Color Adjust fixed16 [0] hue -1 1 default 0.0
[1] sat 0 2 default 1.0
8.7 Correction Reset Default void reset to defaults
255Studio Camera Control Protocol (English)
Group ID Parameter Type Index Minimum Maximum Interpretation
Media
10.0 Codec int8
enum
[0] = basic codec
0 = RAW,
1 = DNxHD,
2 = ProRes
[1] = codec variant
– –
RAW:
0 = Uncompressed,
1 = lossy 3:1,
2 = lossy 4:1
– –
ProRes:
0 = HQ,
1 = 422,
2 = LT, 3 = Proxy,
4 = 444, 5 = 444XQ
10.1 Transport mode int8
[0] = mode
0 = Preview,
1 = Play,
2 = Record
[1] = speed
-ve = multiple speeds
backwards,
0 = pause,
+ve = multiple
speeds forwards
[2] = flags
1<<0 = loop,
1<<1 = play all,
1<<5 = disk1 active,
1<<6 = disk2 active,
1<<7 = time-lapse recording
[3] = active
storage medium ––0 = CFast card,
1 = SD
PTZ
Control
11.0
Pan/Tilt Velocity fixed 16
[0] = pan velocity -1.0 1.0 -1.0 = full speed left,
1.0 = full speed right
[1] = tilt velocity -1.0 1.0 -1.0 = full speed down,
1.0 = full speed up
11.1 Memory Preset
int8 enum [0] =
preset command – –
0 = reset,
1 = store location,
2 = recall location
int8 [1] =
preset slot 0 5 –
256Studio Camera Control Protocol (English)
Example Protocol Packets
Operation
Packet
Length Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
header command data
destination
length
command
reserved
category
parameter
type
operation
trigger instantaneous
auto focus on camera 4 8 4 4 0 0 0 1 0 0
turn on OIS on all cameras 12 255 5 0 0 0 6 0 0 1 0 0 0
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
12 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp) 12 4 6 0 0 4 2 128 10x33 0x01 0 0
select 1080p 23.98 mode on
all cameras 16 255 900101024 1 3 0 0 0 0 0
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
16 412 0 0 8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
all operations combined 76 4 4 0 0 0 1 0 0 255 5 0 0 0 6 0 0
1 0 0 0 4 8 0 0 1 5 3 0 0x10 0x27 0x00 0x00
4 6 0 0 4 2 128 10x33 0x01 0 0 255 9 0 0
101024 1 3 0 0 0 0 0 4 12 0 0
8 1 128 1 0 0 0x9a 0xfd 0x9a 0xfd 0 0
257Informazioni per gli sviluppatori (English)
Informazioni per gli sviluppatori (English)
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
The default 7-bit shield I2C slave address is 0x6E.
Shield Pin | Function
--------------------- |-----------------------------
A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
**I2C Protocol (Writes):**
(START W) [REG ADDR L] [REG ADDR H] [VAL] [VAL] [VAL] ... (STOP)
**I2C Protocol (Reads):**
(START W) [REG ADDR L] [REG ADDR H] ... (STOP) (START R) [VAL] [VAL] [VAL] ... (STOP)
The maximum payload (shown as **VAL** in the examples above) read/write length (following the internal
register address) in a single transaction is 255 bytes.
Physical Encoding - UART
The shield operates with a UART baud rate of 115200, 8-N-1 format.
Shield Pin | Function
--------------------- |-----------------------------
IO1 | Serial Transmit (TX)
IO0 | Serial Receive (RX)
**UART Protocol (Writes):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘W’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
**UART Protocol (Reads):**
[0xDC] [0x42] [REG ADDR L] [REG ADDR H] [‘R’] [LENGTH] [0x00] [VAL] [VAL] [VAL] ...
The maximum payload (shown as **VAL** in the examples above) read/write length (specified in the
**LENGTH** field) in a single transaction is 255 bytes.
Register Address Map
258Informazioni per gli sviluppatori (English)
The shield has the following user address register map:
Address | Name | R/W | Register Description
--------------------- |----------- |----- |-------------------------------
0x0000 - 0x0003 | IDENTITY | R | Hardware Identifier
0x0004 - 0x0005 | HWVERSION | R | Hardware Version
0x0006 - 0x0007 | FWVERSION | R | Firmware Version
| | |
0x1000 | CONTROL | R/W | System Control
| | |
0x2000 | OCARM | R/W | SDI Control Override Arm
0x2001 | OCLENGTH | R/W | SDI Control Override Length
0x2100 - 0x21FE | OCDATA | R/W | SDI Control Override Data
| | |
0x3000 | ICARM | R/W | SDI Control Incoming Arm
0x3001 | ICLENGTH | R | SDI Control Incoming Length
0x3100 - 0x31FE | ICDATA | R | SDI Control Incoming Data
| | |
0x4000 | OTARM | R/W | SDI Tally Override Arm
0x4001 | OTLENGTH | R/W | SDI Tally Override Length
0x4100 - 0x41FE | OTDATA | R/W | SDI Tally Override Data
| | |
0x5000 | ITARM | R/W | SDI Tally Incoming Arm
0x5001 | ITLENGTH | R | SDI Tally Incoming Length
0x5100 - 0x51FE | ITDATA | R | SDI Tally Incoming Data
All multi-byte numerical fields are stored little-endian. Unused addresses are reserved and read
back as zero.
Register: IDENTITY (Board Identifier)
[ IDENTITY ]
31 0
**Identity:** ASCII string ‘SDIC’ (i.e. `0x43494453`) in hexadecimal.
Register: HWVERSION (Hardware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Hardware revision, major component.
**Version Minor:** Hardware revision, minor component.
Register: FWVERSION (Firmware Version)
[ VERSION MAJOR ] [ VERSION MINOR ]
15 8 7 0
**Version Major:** Firmware revision, major component.
**Version Minor:** Firmware revision, minor component.
Register: CONTROL (System Control)
[ RESERVED ] [ OVERRIDE OUTPUT ] [ RESET TALLY ] [ OVERRIDE TALLY ] [
OVERIDE CONTROL ]
7 4 3 2 1 0
259Informazioni per gli sviluppatori (English)
**Reserved:** Always zero.
**Override Output:** When 1, the input SDI signal (if present) is discarded and the
shield generates its own SDI signal on the SDI output
connector. When 0, the input signal is passed through to the
output if present, or the shield generates its own SDI
signal if not.
**Reset Tally:** When 1, the last received incoming tally data is immediately copied
over to the override tally data register. Automatically cleared
by hardware.
**Override Tally:** When 1, tally data is overridden with the user supplied data.
When 0, input tally data is passed through to the output
unmodified.
**Override Control:** When 1, control data is overridden with the user supplied
data. When 0, input control data is passed through to the
output unmodified.
Register: OCARM (Output Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing control is data armed and will be sent in the
next video frame. Automatically cleared once the control has
been sent.
Register: OCLENGTH (Output Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register: OCDATA (Output Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register: ICARM (Incoming Control Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, incoming control data is armed and will be received in the
next video frame. Automatically cleared once a control packet has
been read.
Register: ICLENGTH (Incoming Control Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when a
new packet has been cached.
260Informazioni per gli sviluppatori (English)
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously from
the next video frame until new data is set. Automatically cleared once
the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Tally data that should be embedded into a future video frame (one
byte per camera). Bit zero indicates a Program tally, while bit one
indicates a Preview tally.
Register: ITARM (Input Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, tally data armed and will be received in the next video frame.
Automatically cleared once the tally has been read.
Register: ITLENGTH (Input Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when a
new packet has been cached.
Register: ITDATA (Input Tally Data)
[ TALLY DATA ]
255*8-1 0
**Tally Data:** Last tally data extracted from a video frame since _ITARM.ARM_ was
reset (one byte per camera). Bit zero indicates a Program tally, while
bit one indicates a Preview tally.
261Assistenza
Assistenza
Assistenza clienti
Blackmagic 3G-SDI Shield for Arduino è uno strumento per programmatori ideato per
sviluppare soluzioni di controllo su misura.
Per ottenere maggiori informazioni, visita la pagina Supporto di Blackmagic Design, dove
troverai sempre il materiale di supporto più recente.
Pagina di supporto online di Blackmagic Design
Per il materiale più recente, inclusi software e note di supporto, visita il sito Blackmagic Design
alla pagina www.blackmagicdesign.com/it/support
Forum per sviluppatori Arduino
Trova la risposta alle tue domande di programmazione nei forum di sviluppo Arduino online.
Lacomunità di sviluppatori Arduino è numerosa, e sui forum online puoi persino trovare un
ingegnere per implementare la soluzione su misura per te.
Il Forum Blackmagic Design
La pagina Forum del nostro sito Blackmagic Design è un'ottima risorsa per ottenere
informazioni utili e condividere idee creative. Qui troverai le risposte alle domande più
frequenti, oltre ai consigli degli utenti esistenti e dello staff Blackmagic Design. Visita il nostro
Forum su https://forum.blackmagicdesign.com
Verificare la versione del software
Per verificare quale versione del software Blackmagic 3G-SDI Shield for Arduino è installata sul
tuo computer, apri la tab “About” del software.
Su Mac OS X, apri la cartella Applicazioni e seleziona Blackmagic 3G-SDI Shield
for Arduino. Dal menù clicca su About Blackmagic Shield for Arduino per scoprirne
la versione.
Su Windows 7, seleziona Blackmagic 3G-SDI Shield for Arduino Setup dal menù Start.
Dal menù Help clicca su About Blackmagic 3G-SDI Shield for Arduino per scoprirne
la versione.
Su Windows 8, seleziona Blackmagic 3G-SDI Shield for Arduino Setup dall’omonima
icona nella pagina Start. Dal menù Help clicca su About Blackmagic Shield for Arduino
Setup per scoprirne la versione.
Dove trovare gli aggiornamenti più recenti del software
Dopo aver verificato quale versione del software Blackmagic 3G-SDI Shield for Arduino è
installata sul tuo computer, visita il Centro assistenza di Blackmagic Design su
www.blackmagicdesign.com/it/support per scaricare gli aggiornamenti più recenti. Consigliamo
di non aggiornare il software se stai già lavorando a un progetto importante.
262Garanzia
Garanzia
Garanzia limitata di un anno
Blackmagic Design garantisce che Blackmagic 3G-SDI Shield for Arduino è fornito privo di difetti
nei materiali e nella manifattura per un periodo di un anno a partire dalla data d’acquisto. Durante
il periodo di garanzia Blackmagic Design riparerà o, a sua scelta, sostituirà tutti i componenti che
risultino difettosi esonerando il Cliente da costi aggiuntivi, purché questi vengano restituiti
dal Cliente.
Per ottenere l'assistenza coperta dalla presente garanzia, il Cliente deve notificare Blackmagic
Design del difetto entro il periodo di garanzia. Il Cliente è responsabile del costo di imballaggio
e di spedizione del prodotto al centro di assistenza indicato da Blackmagic Design, con spese di
spedizione prepagate. Il costo include spedizione, assicurazione, tasse, dogana, e altre spese
pertinenti alla resa del prodotto a Blackmagic Design.
Questa garanzia perde di validità per danni causati da utilizzo improprio, o da manutenzione e
cura inadeguate del prodotto. Blackmagic Design non ha obbligo di assistenza e riparazione sotto
garanzia per danni al prodotto risultanti da: a) precedenti tentativi di installazione, riparazione o
manutenzione da personale non autorizzato, ovvero al di fuori del personale Blackmagic Design,
b) precedenti usi impropri o tentativi di connessione ad attrezzatura incompatibile al prodotto,
c)precedente uso di parti o ricambi non originali Blackmagic Design, o d) precedenti modifiche
o integrazione del prodotto ad altri prodotti, con il risultato di rendere la riparazione più difficoltosa
o di allungare le tempistiche di eventuali ispezioni atte alla riparazione. La presente garanzia di
Blackmagic Design sostituisce qualsiasi altra garanzia, esplicita o implicita. Blackmagic Design e
i suoi fornitori escludono qualsiasi altra garanzia implicita di commerciabilità o di idoneità ad un
uso specifico. L'intera responsabilità di Blackmagic Design e l'unico esclusivo ricorso dell'utente
per qualsiasi danno arrecato di natura indiretta, specifica, accidentale o consequenziale, anche
qualora Blackmagic Design fosse stata avvertita della possibilità di tali danni, è la riparazione o la
sostituzione dei prodotti difettosi. Blackmagic Design non si assume alcuna responsabilità per
qualsiasi uso illegale del dispositivo da parte del Cliente. Blackmagic Design non si assume alcuna
responsabilità per danni derivanti dall'uso di questo prodotto. Il Cliente utilizza questo prodotto a
proprio rischio.
© Copyright 2018 Blackmagic Design. Tutti i diritti riservati. ‘Blackmagic Design’, ‘DeckLink, ‘HDLink’, ‘Workgroup Videohub’,
‘Videohub, ‘DeckLink, ‘Intensity and ‘Leading the creative video revolution’ sono marchi registrati negli Stati Uniti e in altri Paesi. Altri
nomi di prodotti e aziende qui contenuti potrebbero essere marchi dei rispettivi proprietari. Arduino e il logo Arduino sono marchi
registrati di Arduino. Thunderbolt e il logo Thunderbolt sono marchi registrati di Intel Corporation negli Stati Uniti e/o altri Paesi.

Navigation menu