To go directly to your preferred language, simply click on the hyperlinks listed in the
contents below.
English3
日本語
30
Français56
Deutsch84
Español112
中文
한국어
Русский
140
168
196
Italiano218
English
Welcome
Thank you for purchasing your new Blackmagic 3G-SDI Arduino Shield.
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 Arduino Shield, 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 Arduino Shield. 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 Arduino Shield!
This instruction manual contains all the information you need to start using your
Blackmagic 3G-SDI Arduino Shield. 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
Contents
Blackmagic 3G-SDI Arduino Shield
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 Arduino Shield Setup 10
2
C Address 10
I
Video Format 10
Programming Arduino Sketches 11
Testing your Blackmagic Shield andLibrary Installation 11
LED Indicators 13
Attaching Shield Components 14
Communicating with yourArduinoShield 14
High Level Overview 14
2
C Interface 14
I
Serial Interface 15
Example Usage 15
Studio Camera Control Protocol 15
Blackmagic Video Device Embedded Control Protocol 17
Example Protocol Packets 23
Developer Information 24
Help 28
Warranty 29
Getting Started
6 PIN
8 PIN
Attaching and Soldering Headers
Your Blackmagic 3G-SDI Arduino Shield is supplied with 4 stackable headers, including two
8pin 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 Arduino shield. Refer to the illustration below for the header layout
arrangement.
0 - Serial RX
1 - Serial T X
(I2C) SDA
(I2C) SCL
A5 (I2C) SCL
A4 (I2C) SDA
NOTE When connecting to the shield, communication is via I2C or
2
Serial. We recommend I
C 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 Arduino Shield’ 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
thesolderon nearby pins.
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 Arduino Shield, 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 Arduino shield into your
SDIequipment. For example, to plug into a switcher and a Blackmagic URSA Mini:
1 Plug the program output from your switcher to the Blackmagic Arduino shield’s
SDI input.
2 Plug your Blackmagic Arduino shield’s SDI output into the ‘program’ SDI input marked
PGM on your Blackmagic URSA Mini.
A connection diagram is provided below.
SDI IN
SDI OUT
Switcher
SDI ‘PGM’ Input
Blackmagic 3G-SDI Arduino Shield
Blackmagic URSA Mini
That’s 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 Arduino Shield 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 3G-SDI Arduino Shield 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 Arduino shield’s
internal software.
Installing Internal Software
Blackmagic Arduino Shield 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 3G-SDI Arduino Shield 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 3G-SDI Arduino Shield software.
2 Open the resulting disk image and launch the Blackmagic Arduino Shield installer.
Follow the on screen instructions.
3 After installing the latest version of Blackmagic Arduino Shield 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 3G-SDI Arduino Shield software.
2 You should see a Blackmagic Arduino Shield folder containing this manual and the
Blackmagic Arduino Shield installer. Double-click the installer and follow the onscreen
prompts to complete the installation.
3 After installing the latest version of the Blackmagic Arduino Shield 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
Arduino Shield 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 installinglibraries.
To install the library files on Mac OS X:
1 Open ‘Blackmagic Arduino Shield’ 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 Arduino Shield 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.
That’s 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 Arduino Shield Setup
The Blackmagic Arduino Shield Setup software lets you change
settings on your shield such as the I2C address and video output format.
With Blackmagic Arduino Shield Setup installed on your computer, you can now change settings
2
for your shield, such as the ‘I
communicate with it, and the ‘video format’, which sets the output format for your shield.
C address’, which identifies your shield so the Arduino board can
I2C Address
In very rare cases, there is a potential for another shield mounted to your Blackmagic shield to
2
share the same I
occurs, you can change your shield’s default address setting.
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 Arduino Shield 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’.
C address as your shield’s default address which will create a conflict. If this
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.
10Blackmagic Arduino Shield Setup
You can choose from the following video output formats:
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.
Testing your Blackmagic Shield
andLibrary 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.
11Testing your Blackmagic Shield and Library Installation
The Tally Blink example sketch is a fast and easy way to test your
2
Arduinoshield. Raw data can be sent to your shield via I
C using commands
from the Studio Camera Protocol document, but we have also provided
customlibraries to make programming sketches much easier.
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.
12Testing your Blackmagic Shield and Library Installation
LED Indicators
10 PIN
8 PIN
8 PIN
Your Blackmagic 3G-SDI Arduino Shield has six indicator LEDs that confirm activity on your
2
shield such as power, UART, I
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.
2
LED 5 - I
Illuminates when communication is detected between your shield and the Arduino
using the I
C Parser Busy
2
C protocol.
C and SPI communication, plus indicators to show when tally and
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
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
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.
13Testing your Blackmagic Shield and Library Installation
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 Arduino Shield 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 Blackmagic3G-SDI Arduino Shield for
more interactive and refined control.
Communicating with yourArduinoShield
You can communicate with your Arduino Shield via I2C or Serial. We recommend I2C because of
2
the low pin count and it frees up the serial monitor. This also allows you to use more I
with the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_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
2
the physicalI
I2C Interface
To use theI2Cinterface 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);
C or Serialcommunication busses the shield supports.
C devices
14Communicating with your Arduino Shield
Serial Interface
To use theSerialinterface 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
2
the library via the I
// 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);
C bus is shown below.
// 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’sFile->Examples->BMDSDIControl menu.
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 Arduino shield.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
15Studio Camera Control Protocol
Group IDGroup
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
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 num ber,
Gr o u p,
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.
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.
16Studio Camera Control Protocol
Blackmagic Video Device Embedded Control Protocol
Version 1.1
You can use the Video Device Embedded Control Protocol to control Blackmagic URSA Mini
and Blackmagic Studio Cameras using your Arduino shield and construct devices that integrate
with our products. Here at Blackmagic Design, our approach is to open up our protocols and we
eagerly look forward to seeing what you come up with!
Overview
This document describes an extensible protocol for sending a uni-directional stream of small
control messages embedded in the non-active picture region of a digital video stream.
The video stream containing the protocol stream may be broadcast to a number of devices.
Device addressing is used to allow the sender to specify which device each message is
directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritise and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
Destination device (uint8) Device addresses are represented as an 8 bit unsigned integer. Individual
devices are numbered 0 through 254 with the value 255 reserved to
indicate a broadcast message to all devices.
Command length (uint8)The command length is an 8 bit unsigned integer which specifies the length
of the included command data. The length does NOT include the length of
the header or any trailing padding bytes.
Command id (uint8)The command id is an 8 bit unsigned integer which indicates the message
type being sent. Receiving devices should ignore any commands that they
do not understand. Commands 0 through 127 are reserved for commands
that apply to multiple types of devices. Commands 128 through 255 are
device specific.
Reserved (uint8)This byte is reserved for alignment and expansion purposes. It should be
set to zero.
Command data (uint8)The command data may contain between 0 and 60 bytes of data.
Theformat of the data section is defined by the command itself.
17Studio Camera Control Protocol
Padding (uint8)Messages must be padded up to a 32 bit boundary with 0x0 bytes.
Anypadding 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
devicespecific 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.
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
5bits 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:
18Studio Camera Control Protocol
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.
GroupIDParameterTyp eIndexMinMaxInterpretation
Lens0
.0Focusfixed16–0.01.00.0=near, 1.0=far
Instantaneous
.1
autofocus
.2Aperture (f-stop)fixed16–-1.016.0
Aperture
.3
(normalised)
.4Aperture (ordinal)int16–0n
Instantaneous
.5
auto aperture
Optical image
.6
stabilisation
Set absolute
.7
zoom (mm)
void–––
fixed16–0.01.00.0=smallest, 1.0=largest
void–––
boolean–––
int16–0max
trigger instantaneous
autofocus
Aperture Value
(where fnumber =
sqrt(2^AV))
Steps through available
aperture values from
minimum (0) to
maximum (n)
trigger instantaneous
auto aperture
true=enabled,
false=disabled
Move to specified focal
length in mm, from
minimum (0) to
maximum (max)
Set absolute
.8
zoom (normalised)
fixed16–0.01.0
Move to specified
normalised focal length:
0.0=wide, 1.0=tele
19Studio Camera Control Protocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Start/stop zooming at
Video1
Set continuous
.9
zoom (speed)
fixed16–-1.0+1.0
specified rate: -1.0=zoom
wider fast, 0.0=stop,
+1.0=zoom tele fast
[0] =
frame rate
[1] = M-rate––0=regular, 1=M-rate
[2] =
.0Video modeint8
.1Sensor Gainint8–1161x, 2x, 4x, 8x, 16x gain
Manual
.2
White Balance
.3Reserved–––Reserved
.4Reserved –––Reserved
.5Exposure (us)int32–142000 time in us
.6Exposure (ordinal) int16–0n
int16–32007500Colour temperature in K
dimensions
[3] =
interlaced
[4] =
colour space
––24, 25, 30, 50, 60
0=NTSC, 1=PAL, 2=720,
––
––
––0=YUV
3=1080, 4=2k, 5=2k
DCI, 6=UHD
0=progressive,
1=interlaced
Steps through available
exposure values from
minimum (0) to
maximum (n)
Audio2
Dynamic
.7
Range Mode
Video
.8
sharpening level
.0Mic levelfixed16–0.01.0
Headphone
.1
level
Headphone
.2
program mix
.3Speaker levelfixed16–0.01.0
.4Input typeint8–02
int8 enum–010 = film, 1 = video
int8 enum –03
fixed16–0.01.0
fixed16–0.01.0
0=Off, 1=Low,
2=Medium, 3=High
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0=internal mic, 1=line
level input, 2=low mic
level input, 3=high mic
level input
20Studio Camera Control Protocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Output3
Display4
[0] ch00.01.0
.5Input levelsfixed16
[1] ch10.01.0
Phantom
.6
power
.0Overlays
.0Brightnessfixed160.01.0
.1Overlays
boolean–––
–––0x1 = display status
–––0x2 = display guides
uint16 bit
field
–––
int16 bit
field
––
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
true = powered, false =
not powered
Some cameras
don’t allow
separate control of
guides and
status overlays.
0.0=minimum,
1.0=maximum
0x4 = zebra
0x8 = peaking
Tally5
.2Zebra levelfixed160.01.0
.3Peaking levelfixed160.01.0
Colour bars
.4
display
time (seconds)
.0Tally brightnessfixed160.01.0
Tally front
.1
brightness
Tally rear
.2
brightness
int8030
fixed160.01.0
fixed160.01.0
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0=disable bars,
1-30=enable
bars with timeout (s)
Sets the tally front and
tally rear brightness to
the same level.
0.0=minimum,
1.0=maximum
Sets the tally front
brightness. 0.0=minimum,
1.0=maximum
Sets the tally rear
brightness. 0.0=minimum,
1.0=maximum
Tally rear brightness
cannot be turned off
21Studio Camera Control Protocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Reference6
Configuration7
Colour
Correction
.0Sourceint8 enum01
.1Offsetint32––+/- offset in pixels
[0] time––BCD - HHMMSSFF
.0Real Time Clockint32
[1] date––BCD - YYYYMMDD
.1Reserved ––––Reserved
8
[0] red-2.02.0default 0.0
[1] green-2.02.0default 0.0
.0Lift Adjustfixed16
[2] blue-2.02.0default 0.0
[3] luma-2.02.0default 0.0
[0] red-4.04.0default 0.0
[1] green-4.04.0default 0.0
.1Gamma Adjustfixed16
[2] blue-4.04.0default 0.0
0=internal, 1=program,
2=external
[3] luma-4.04.0default 0.0
[0] red0.016.0default 1.0
.2Gain Adjustfixed16
.3Offset Adjustfixed16
.4Contrast Adjustfixed16
.5Luma mixfixed16–0.01.0default 1.0
.6Colour Adjustfixed16
Correction
.7
Reset Default
void–––reset to defaults
[1] green0.016.0default 1.0
[2] blue0.016.0default 1.0
[3] luma0.016.0default 1.0
[0] red-8.08.0default 0.0
[1] green-8.08.0default 0.0
[2] blue-8.08.0default 0.0
[3] luma-8.08.0default 0.0
[0] pivot0.01.0default 0.5
[1] adj0.02.0default 1.0
[0] hue-1.01.0default 0.0
[1] sat0.02.0default 1.0
22Studio Camera Control Protocol
Example Protocol Packets
Operation
trigger
instantaneous auto
focus on camera 4
turn on OIS on
all cameras
set exposure to
10 ms on camera 4
(10 ms = 10000 us
= 0x00002710)
add 15% to
zebra level
(15 % = 0.15 f
= 0x0133 fp)
Packet
Length
0123456789101112131415
headercommanddata
destination
length
command
reserved
category
parameter
844000100
1225550006001000
12480015300x10 0x27 0x00 0x00
1246004212810x33 0x0100
type
Byte
operation
select
1080p 23.98 mode
on all cameras
subtract 0.3 from
gamma adjust for
green & blue
(-0.3 ~= 0xfd9a fp)
all operations
combined
162559001010241300000
1641200811281000x9a 0xfd 0x9a 0xfd00
440001002555000600
1000480015300x10 0x27 0x00 0x00
76
46004212810x33 0x0100255900
101024130000041200
81128100
0x9a
0xfd
0x9a
0xfd00
23Studio 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 Arduino Shield.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
2
The default 7-bit shield I
Shield Pin | Function
--------------------- |---------------------------- A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
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.
C slave address is 0x6E.
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)
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:
**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.
25Developer 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.
26Developer Information
Register: OTDATA (Output Tally Data)
[ TA LLY 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)
[ TA LLY 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.
27Developer Information
Help
Getting Help
Your Blackmagic 3G-SDI Arduino Shield 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 Arduino Shield Setup software is installed on your
computer, open the About Blackmagic Arduino Shield Setup window.
On Mac OS X, open Blackmagic Arduino Shield Setup from the Applications folder.
Select About Blackmagic Arduino Shield Setup from the application menu to reveal
theversion number.
On Windows 7, open Blackmagic Arduino Shield Setup from your Start menu.
Clickonthe Help menu and select About Blackmagic Arduino Shield Setup to reveal
the version number.
On Windows 8, open Blackmagic Arduino Shield Setup from the Blackmagic Arduino
Shield Setup tile on your Start page. Click on the Help menu and select About
Blackmagic Arduino Shield Setup to reveal the version number.
How to Get the Latest Software Updates
After checking the version of Blackmagic Arduino Shield 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.
28Help
Warranty
12 Month Limited Warranty
Blackmagic Design warrants that the Blackmagic 3G-SDI Arduino Shield 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.
You can communicate with your Arduino Shield via I2C or Serial. We recommend I2C because of
2
the low pin count and it frees up the serial monitor. This also allows you to use more I
with the shield.
HighLevelOverview
The library provides two core objects, BMD_SDITallyControlandBMD_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
2
the physicalI
I2C Interface
To use theI2Cinterface 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);
C or Serialcommunication busses the shield supports.
C devices
42CommunicatingwithyourArduinoShield
Serial Interface
To use theSerialinterface 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
2
the library via the I
// 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);
C bus is shown below.
// 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’sFile->Examples->BMDSDIControl menu.
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 Arduino shield.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
43StudioCameraControlProtocol
Group IDGroup
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
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 num ber,
Gr o u p,
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.
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.
44StudioCameraControlProtocol
BlackmagicVideoDeviceEmbeddedControlProtocol
Version 1.1
You can use the Video Device Embedded Control Protocol to control Blackmagic URSA Mini
and Blackmagic Studio Cameras using your Arduino shield and construct devices that integrate
with our products. Here at Blackmagic Design, our approach is to open up our protocols and we
eagerly look forward to seeing what you come up with!
Overview
This document describes an extensible protocol for sending a uni-directional stream of small
control messages embedded in the non-active picture region of a digital video stream.
The video stream containing the protocol stream may be broadcast to a number of devices.
Device addressing is used to allow the sender to specify which device each message is
directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritise and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
Destination device (uint8) Device addresses are represented as an 8 bit unsigned integer. Individual
devices are numbered 0 through 254 with the value 255 reserved to
indicate a broadcast message to all devices.
Command length (uint8)The command length is an 8 bit unsigned integer which specifies the length
of the included command data. The length does NOT include the length of
the header or any trailing padding bytes.
Command id (uint8)The command id is an 8 bit unsigned integer which indicates the message
type being sent. Receiving devices should ignore any commands that they
do not understand. Commands 0 through 127 are reserved for commands
that apply to multiple types of devices. Commands 128 through 255 are
device specific.
Reserved (uint8)This byte is reserved for alignment and expansion purposes. It should be
set to zero.
Command data (uint8)The command data may contain between 0 and 60 bytes of data.
Theformat of the data section is defined by the command itself.
45StudioCameraControlProtocol
Padding (uint8)Messages must be padded up to a 32 bit boundary with 0x0 bytes.
Anypadding 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
devicespecific 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.
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
5bits 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:
46StudioCameraControlProtocol
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.
GroupIDParameterTyp eIndexMinMaxInterpretation
Lens0
.0Focusfixed16–0.01.00.0=near, 1.0=far
Instantaneous
.1
autofocus
.2Aperture (f-stop)fixed16–-1.016.0
Aperture
.3
(normalised)
.4Aperture (ordinal)int16–0n
Instantaneous
.5
auto aperture
Optical image
.6
stabilisation
Set absolute
.7
zoom (mm)
void–––
fixed16–0.01.00.0=smallest, 1.0=largest
void–––
boolean–––
int16–0max
trigger instantaneous
autofocus
Aperture Value
(where fnumber =
sqrt(2^AV))
Steps through available
aperture values from
minimum (0) to
maximum (n)
trigger instantaneous
auto aperture
true=enabled,
false=disabled
Move to specified focal
length in mm, from
minimum (0) to
maximum (max)
Set absolute
.8
zoom (normalised)
fixed16–0.01.0
Move to specified
normalised focal length:
0.0=wide, 1.0=tele
47StudioCameraControlProtocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Start/stop zooming at
Video1
Set continuous
.9
zoom (speed)
fixed16–-1.0+1.0
specified rate: -1.0=zoom
wider fast, 0.0=stop,
+1.0=zoom tele fast
[0] =
frame rate
[1] = M-rate––0=regular, 1=M-rate
[2] =
.0Video modeint8
.1Sensor Gainint8–1161x, 2x, 4x, 8x, 16x gain
Manual
.2
White Balance
.3Reserved–––Reserved
.4Reserved –––Reserved
.5Exposure (us)int32–142000 time in us
.6Exposure (ordinal) int16–0n
int16–32007500Colour temperature in K
dimensions
[3] =
interlaced
[4] =
colour space
––24, 25, 30, 50, 60
0=NTSC, 1=PAL, 2=720,
––
––
––0=YUV
3=1080, 4=2k, 5=2k
DCI, 6=UHD
0=progressive,
1=interlaced
Steps through available
exposure values from
minimum (0) to
maximum (n)
Audio2
Dynamic
.7
Range Mode
Video
.8
sharpening level
.0Mic levelfixed16–0.01.0
Headphone
.1
level
Headphone
.2
program mix
.3Speaker levelfixed16–0.01.0
.4Input typeint8–02
int8 enum–010 = film, 1 = video
int8 enum –03
fixed16–0.01.0
fixed16–0.01.0
0=Off, 1=Low,
2=Medium, 3=High
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0=internal mic, 1=line
level input, 2=low mic
level input, 3=high mic
level input
48StudioCameraControlProtocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Output3
Display4
[0] ch00.01.0
.5Input levelsfixed16
[1] ch10.01.0
Phantom
.6
power
.0Overlays
.0Brightnessfixed160.01.0
.1Overlays
boolean–––
–––0x1 = display status
–––0x2 = display guides
uint16 bit
field
–––
int16 bit
field
––
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
true = powered, false =
not powered
Some cameras
don’t allow
separate control of
guides and
status overlays.
0.0=minimum,
1.0=maximum
0x4 = zebra
0x8 = peaking
Tally5
.2Zebra levelfixed160.01.0
.3Peaking levelfixed160.01.0
Colour bars
.4
display
time (seconds)
.0Tally brightnessfixed160.01.0
Tally front
.1
brightness
Tally rear
.2
brightness
int8030
fixed160.01.0
fixed160.01.0
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0=disable bars,
1-30=enable
bars with timeout (s)
Sets the tally front and
tally rear brightness to
the same level.
0.0=minimum,
1.0=maximum
Sets the tally front
brightness. 0.0=minimum,
1.0=maximum
Sets the tally rear
brightness. 0.0=minimum,
1.0=maximum
Tally rear brightness
cannot be turned off
49StudioCameraControlProtocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Reference6
Configuration7
Colour
Correction
.0Sourceint8 enum01
.1Offsetint32––+/- offset in pixels
[0] time––BCD - HHMMSSFF
.0Real Time Clockint32
[1] date––BCD - YYYYMMDD
.1Reserved ––––Reserved
8
[0] red-2.02.0default 0.0
[1] green-2.02.0default 0.0
.0Lift Adjustfixed16
[2] blue-2.02.0default 0.0
[3] luma-2.02.0default 0.0
[0] red-4.04.0default 0.0
[1] green-4.04.0default 0.0
.1Gamma Adjustfixed16
[2] blue-4.04.0default 0.0
0=internal, 1=program,
2=external
[3] luma-4.04.0default 0.0
[0] red0.016.0default 1.0
.2Gain Adjustfixed16
.3Offset Adjustfixed16
.4Contrast Adjustfixed16
.5Luma mixfixed16–0.01.0default 1.0
.6Colour Adjustfixed16
Correction
.7
Reset Default
void–––reset to defaults
[1] green0.016.0default 1.0
[2] blue0.016.0default 1.0
[3] luma0.016.0default 1.0
[0] red-8.08.0default 0.0
[1] green-8.08.0default 0.0
[2] blue-8.08.0default 0.0
[3] luma-8.08.0default 0.0
[0] pivot0.01.0default 0.5
[1] adj0.02.0default 1.0
[0] hue-1.01.0default 0.0
[1] sat0.02.0default 1.0
50StudioCameraControlProtocol
ExampleProtocolPackets
Operation
trigger
instantaneous auto
focus on camera 4
turn on OIS on
all cameras
set exposure to
10 ms on camera 4
(10 ms = 10000 us
= 0x00002710)
add 15% to
zebra level
(15 % = 0.15 f
= 0x0133 fp)
Packet
Length
0123456789101112131415
headercommanddata
destination
length
command
reserved
category
parameter
844000100
1225550006001000
12480015300x10 0x27 0x00 0x00
1246004212810x33 0x0100
type
Byte
operation
select
1080p 23.98 mode
on all cameras
subtract 0.3 from
gamma adjust for
green & blue
(-0.3 ~= 0xfd9a fp)
all operations
combined
162559001010241300000
1641200811281000x9a 0xfd 0x9a 0xfd00
440001002555000600
1000480015300x10 0x27 0x00 0x00
76
46004212810x33 0x0100255900
101024130000041200
81128100
0x9a
0xfd
0x9a
0xfd00
51StudioCameraControlProtocol
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 Arduino Shield.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
2
The default 7-bit shield I
Shield Pin | Function
--------------------- |---------------------------- A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
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.
C slave address is 0x6E.
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)
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:
**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.
53DeveloperInformation
Register:OCARM(OutputControlArm)
[ 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(OutputControlLength)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OCDATA.
Register:OC DATA(OutputControlPayloadData)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Control data that should be embedded into a future video frame.
Register:ICARM(IncomingControlArm)
[ 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(IncomingControlLength)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ICDATA_. Automatically set when
a new packet has been cached.
Register:IC DATA(IncomingControlPayloadData)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.
ARM_ was reset.
Register:OTARM(OutputTal l yArm)
[ 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(OutputTal l yLength)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
54DeveloperInformation
Register:OTDATA(OutputTal l yData)
[ TA LLY 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:ITA RM(InputTal l yArm)
[ 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(InputTal l yLength)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data in _ITDATA_. Automatically set when
a new packet has been cached.
Register:ITDATA(InputTal l yData)
[ TA LLY 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.
Nous vous remercions d'avoir fait l'acquisition d'une carte Blackmagic 3G-SDI Arduino Shield.
Nous nous intéressons aux nouvelles technologies et souhaitons développer des façons innovantes
d'utiliser nos produits SDI. Grâce au Blackmagic 3G-SDI Arduino Shield, 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 du Blackmagic 3G-SDI Arduino Shield. 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 le Blackmagic 3G-SDI
Arduino Shield !
Ce manuel d'utilisation comprend toutes les informations dont vous avez besoin pour
utiliser le Blackmagic 3G-SDI Arduino Shield. 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. Enfin, veuillez enregistrer
votre équipement lors du téléchargement du logiciel afin que nous puissions vous tenir
informés de la sortie d'un nouveau logiciel. 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
Blackmagic 3G-SDI Arduino Shield
Mise en route 59
Fixer et souder les barrettes 59
Installation sur la carte Arduino 60
Branchement de l'alimentation 60
Connexion à du matériel SDI 61
Installation du logiciel 62
Installation du logiciel interne 62
Installation des fichiers bibliothèqueArduino 63
Blackmagic Arduino Shield Setup 64
2
C Address 64
I
Format vidéo 64
Programmation des sketches Arduino 65
Test de la carte extension Blackmagic et installation de la bibliothèque 65
Voyants LED 67
Fixation de composants surlacarteextension 68
Communication avec la carte Arduino 68
High Level Overview 68
2
C Interface 68
I
Serial Interface 68
Example Usage 69
Studio Camera Control Protocol 69
Blackmagic Video Device Embedded Control Protocol 71
Example Protocol Packets 77
Informations pour les développeurs 78
Assistance 82
Garantie 83
Mise en route
6 PIN
8 PIN
Fixer et souder les barrettes
Le Blackmagic 3G-SDI Arduino Shield est fourni 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 Arduino Shield. L'illustration ci-dessous vous indique la disposition
des barrettes.
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 carte Arduino » de ce manuel.
A5 (I2C) SCL
A4 (I2C) SDA
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.
59Mise en route
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.
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 Arduino Shield, il suffit de brancher un adaptateur 12V à
l'entrée d'alimentation 12V de la carte extension Blackmagic.
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.
60Mise en route
Connexion à du matériel SDI
Blackmagic URSA Mini
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 Arduino Shield.
2 Branchez la sortie SDI de la Blackmagic Arduino Shield à l'entrée programme SDI (PMG) de
la Blackmagic URSA Mini.
Vous trouverez ci-dessous un schéma de connexion.
Entrée SDI
Sortie SDI
Mélangeur
Entrée SDI PGM
Blackmagic 3G-SDI Arduino Shield
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.
CONSEIL Vous pouvez également utiliser le Blackmagic 3G-SDI Arduino Shield
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.
61Mise en route
Installation du logiciel
REMARQUE Avant d’installer l’utilitaire Blackmagic 3G-SDI Arduino Shield Setup,
téléchargez la dernière version du logiciel IDE Arduino sur www.arduino.cc et
installez-la sur votre ordinateur.
Une fois le logiciel Arduino installé, vous pourrez installer le logiciel interne de
votre carte.
Installation du logiciel interne
Le Blackmagic Arduino Shield 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 3G-SDI Arduino
Shield et de mettre la carte à jour afin de bénéficier des nouvelles fonctionnalités et améliorations.
Téléchargez la dernière version du logiciel 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 3G-SDI Arduino Shield.
2 Ouvrez l'image disque et lancez le programme d'installation Blackmagic Arduino Shield.
Suivez les instructions affichées à l'écran.
3 Après avoir installé la dernière version du programme d'installation Blackmagic Arduino
Shield, alimentez la carte extension Blackmagic et connectez-la à votre ordinateur à l'aide
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 information 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 3G-SDI Arduino Shield.
2 Le dossier Blackmagic Arduino Shield s’affiche, il contient le manuel et le programme
d'installation Blackmagic Arduino Shield. 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 Arduino
Shield, alimentez la carte extension Blackmagic et connectez-la à votre ordinateur à l'aide
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 information n'apparaît, le logiciel
interne est à jour.
62Installation du logiciel
Installation des fichiers
bibliothèqueArduino
Les programmes conçus pour contrôler l'Arduino sont appelés croquis ou sketches. La Blackmagic
Arduino 3G-SDI Shield 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.
REMARQUE Le logiciel IDE Arduino doit être fermé lorsque vous installez les
bibliothèques.
Pour installer les fichiers bibliothèque sur Mac OS X :
1 Ouvrez Blackmagic Arduino Shield 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 Arduino Shield.
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 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.
63Installation des fichiers bibliothèque Arduino
Blackmagic Arduino Shield Setup
Le logiciel Blackmagic Arduino Shield 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 Arduino Shield Setup installé sur votre ordinateur, vous pouvez
changer les paramètres de la carte extension : I
afin que l'Arduino puisse communiquer avec elle ; Video Format, permet de régler le format de
sortie de la carte extension.
2
C address, permet de reconnaître la carte extension
I2C Address
Exceptionnellement, il se peut qu'une autre carte extension montée sur la carte extension
Blackmagic partage l’adresse I
pouvez changer l'adresse par défaut de la carte extension.
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 Arduino Shield 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.
2
C par défaut, ce qui peut créer un conflit. Si cela ce produit, vous
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 programmes Arduino, également appelés croquis ou sketches, sont très faciles à écrire.
Cessketches 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.
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 l’exemple 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.
65Test de la carte extension Blackmagic et installation de la bibliothèque
L'exemple de sketch Tally Blink est simple à réaliser pour tester votre carte extension
Arduino. Les données brutes peuvent être envoyées à la carte via les commandes
I2C du Studio Camera Protocol. Nous avons également inclus des bibliothèques
personnalisées pour rendre la programmation de sketches encore plus facile.
REMARQUE Vérifiez que le numéro du tally de la caméra est réglé sur 1.
Vous devriez voir le voyant tally de la Blackmagic Studio Camera clignoter une fois par seconde.
Sile 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.
66Test de la carte extension Blackmagic et installation de la bibliothèque
Voyants LED
10 PIN
8 PIN
8 PIN
La Blackmagic 3G-SDI Arduino Shield comprend six voyants LED qui permettent de confirmer les
activités de la carte extension, par exemple, l'alimentation, la liaison UART ainsi que la
communication I
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.
2
C et SPI. Les voyants indiquent également lorsque la prise de contrôle manuel du
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
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 I
S'allume lorsque la communication est détectée entre la carte extension et l'Arduino avec le
protocole I
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 l’application
LED 4 - Initialisation de la mémoire EEPROM
LED 5 - Vérification de la mémoire en cours
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.
2
C.
2
C occupé
67Test de la carte extension Blackmagic et installation de la bibliothèque
Fixation de composants
surlacarteextension
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 Arduino Shield 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 Arduino Shield pour un contrôle extrêmement précis.
Communication avec la carte Arduino
You can communicate with your Arduino Shield 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 I
the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_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 physicalI
Serialcommunication busses the shield supports.
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
BMD_SDI Tally Contr o l_Seri al s d iTally C o n trol;
68Communication avec la carte Arduino
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
2
the I
C bus is shown below.
// NOTE: Must match address set in the setup utility software
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’sFile->Examples>BMDSDIControl menu.
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 Arduino shield.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group IDGroup
0Lens
1Video
2Audio
69Studio Camera Control Protocol
Group IDGroup
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
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,
Gr o u p,
Parameter being controlled,
Op er ation,
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,
liftAdj u s t
);
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.
70Studio Camera Control Protocol
Blackmagic Video Device Embedded Control Protocol
Ve r sio n 1.1
You can use the Video Device Embedded Control Protocol to control Blackmagic URSA Mini and
Blackmagic Studio Cameras using your Arduino shield and construct devices that integrate with our
products. Here at Blackmagic Design, our approach is to open up our protocols and we eagerly look
forward to seeing what you come up with!
Overview
This document describes an extensible protocol for sending a uni-directional stream of small control
messages embedded in the non-active picture region of a digital video stream.
The video stream containing the protocol stream may be broadcast to a number of devices. Device
addressing is used to allow the sender to specify which device each message is directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields are
packed from LSB first. Message groups, individual messages and command headers are defined as,
and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active region
of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a maximum
of 255 bytes payload. Under most circumstances, this should allow all messages to be sent with a
maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single frame,
it should use heuristics to determine which packets to prioritise and send immediately. Lower priority
messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length data
block. The maximum packet size is 64 bytes.
Destination device (uint8) Device addresses are represented as an 8 bit unsigned integer. Individual
devices are numbered 0 through 254 with the value 255 reserved to
indicate a broadcast message to all devices.
Command length (uint8)The command length is an 8 bit unsigned integer which specifies the length
of the included command data. The length does NOT include the length of
the header or any trailing padding bytes.
Command id (uint8)The command id is an 8 bit unsigned integer which indicates the message
type being sent. Receiving devices should ignore any commands that they
do not understand. Commands 0 through 127 are reserved for commands
that apply to multiple types of devices. Commands 128 through 255 are
device specific.
Reserved (uint8)This byte is reserved for alignment and expansion purposes. It should be
set to zero.
Command data (uint8[])The command data may contain between 0 and 60 bytes of data.
Theformat 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.
Anypadding bytes are NOT included in the command length.
Receiving devices should use the destination device address and/or the command identifier to
71Studio Camera Control Protocol
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
devicespecific 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.
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
5bits 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:
72Studio Camera Control Protocol
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.
GroupIDParameterTyp eIndexMinMaxInterpretation
Lens0
.0Focusfixed16–0.01.00.0=near, 1.0=far
Instantaneous
.1
autofocus
.2Aperture (f-stop)fixed16–-1.016.0
Aperture
.3
(normalised)
.4Aperture (ordinal)int16–0n
Instantaneous
.5
auto aperture
Optical image
.6
stabilisation
Set absolute
.7
zoom (mm)
void–––
fixed16–0.01.00.0=smallest, 1.0=largest
void–––
boolean–––
int16–0max
trigger instantaneous
autofocus
Aperture Value
(where fnumber =
sqrt(2^AV))
Steps through available
aperture values from
minimum (0) to
maximum (n)
trigger instantaneous
auto aperture
true=enabled,
false=disabled
Move to specified focal
length in mm, from
minimum (0) to
maximum (max)
Set absolute
.8
zoom (normalised)
fixed16–0.01.0
Move to specified
normalised focal length:
0.0=wide, 1.0=tele
73Studio Camera Control Protocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Start/stop zooming at
Set continuous
.9
zoom (speed)
fixed16–-1.0+1.0
specified rate: -1.0=zoom
wider fast, 0.0=stop,
+1.0=zoom tele fast
level input, 2=low mic
level input, 3=high mic
level input
Output3
Display4
[0] ch00.01.0
.5Input levelsfixed16
[1] ch10.01.0
Phantom
.6
power
boolean–––
–––0x1 = display status
–––0x2 = display guides
.0Overlays
uint16 bit
field
–––
.0Brightnessfixed160.01.0
.1Overlays
int16 bit
field
––
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
true = powered, false =
not powered
Some cameras
don’t allow
separate control of
guides and
status overlays.
0.0=minimum,
1.0=maximum
0x4 = zebra
0x8 = peaking
Tally5
.2Zebra levelfixed160.01.0
.3Peaking levelfixed160.01.0
Colour bars
.4
display
int8030
time (seconds)
.0Tally brightnessfixed160.01.0
Tally front
.1
.2
brightness
Tally rear
brightness
fixed160.01.0
fixed160.01.0
0.0=minimum,
1.0=maximum
0.0=minimum,
1.0=maximum
0=disable bars,
1-30=enable
bars with timeout (s)
Sets the tally front and
tally rear brightness to
the same level.
0.0=minimum,
1.0=maximum
Sets the tally front
brightness. 0.0=minimum,
1.0=maximum
Sets the tally rear
brightness. 0.0=minimum,
1.0=maximum
Tally rear brightness
cannot be turned off
75Studio Camera Control Protocol
GroupIDParameterTyp eIndexMinMaxInterpretation
Reference6
Configuration7
Colour
Correction
.0Sourceint8 enum01
0=internal, 1=program,
2=external
.1Offsetint32––+/- offset in pixels
[0] time––BCD - HHMMSSFF
.0Real Time Clockint32
[1] date––BCD - YYYYMMDD
.1Reserved ––––Reserved
8
[0] red-2.02.0default 0.0
[1] green-2.02.0default 0.0
.0Lift Adjustfixed16
[2] blue-2.02.0default 0.0
[3] luma-2.02.0default 0.0
[0] red-4.04.0default 0.0
[1] green-4.04.0default 0.0
.1Gamma Adjustfixed16
[2] blue-4.04.0default 0.0
[3] luma-4.04.0default 0.0
[0] red0.016.0default 1.0
[1] green0.016.0default 1.0
.2Gain Adjustfixed16
[2] blue0.016.0default 1.0
[3] luma0.016.0default 1.0
[0] red-8.08.0default 0.0
[1] green-8.08.0default 0.0
.3Offset Adjustfixed16
[2] blue-8.08.0default 0.0
[3] luma-8.08.0default 0.0
[0] pivot0.01.0default 0.5
.4Contrast Adjustfixed16
[1] adj0.02.0default 1.0
.5Luma mixfixed16–0.01.0default 1.0
[0] hue-1.01.0default 0.0
.6Colour Adjustfixed16
[1] sat0.02.0default 1.0
Correction
.7
Reset Default
void–––reset to defaults
76Studio Camera Control Protocol
Example Protocol Packets
Operation
trigger
instantaneous auto
focus on camera 4
turn on OIS on
all cameras
set exposure to
10 ms on camera 4
(10 ms = 10000 us
= 0x00002710)
add 15% to
zebra level
(15 % = 0.15 f
= 0x0133 fp)
Packet
Length
0123456789101112131415
headercommanddata
destination
length
command
reserved
category
parameter
844000100
1225550006001000
12480015300x10 0x27 0x00 0x00
1246004212810x33 0x0100
type
Byte
operation
select
1080p 23.98 mode
on all cameras
subtract 0.3 from
gamma adjust for
green & blue
(-0.3 ~= 0xfd9a fp)
all operations
combined
162559001010241300000
1641200811281000x9a 0xfd 0x9a 0xfd00
440001002555000600
1000480015300x10 0x27 0x00 0x00
76
46004212810x33 0x0100255900
101024130000041200
81128100
0x9a
0xfd
0x9a
0xfd00
77Studio Camera Control Protocol
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 Arduino Shield.
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 I
Shield Pin | Function
--------------------- |---------------------------- A4 | Serial Data (SDA)
A5 | Serial Clock (SCL)
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.
2
C slave address is 0x6E.
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)
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:
**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.
79Informations pour les développeurs
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.
80Informations pour les développeurs
Register: OTDATA (Output Tally Data)
[ TA LLY 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)
[ TA LLY 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.
81Informations pour les développeurs
Assistance
Obtenir de l'aide
La Blackmagic 3G-SDI Arduino Shield 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 Arduino Shield Setup est installée sur votre
ordinateur, ouvrez la fenêtre About Blackmagic Arduino Shield Setup.
Sur Mac OS X, ouvrez le logiciel Blackmagic Arduino Shield Setup dans le dossier
Applications. Sélectionnez About Blackmagic Arduino Shield Setup dans le menu
d’application pour connaître le numéro de version.
Sur Windows 7, ouvrez le logiciel Blackmagic Arduino Shield Setup dans le menu de
Démarrage. Cliquez sur le menu Aide et sélectionnez About Blackmagic Arduino Shield
Setup pour connaître le numéro de version.
Sur Windows 8, ouvrez le logiciel Blackmagic Arduino Shield Setup à partir de la vignette
Blackmagic Arduino Shield Setup située sur l'écran d'accueil. Cliquez sur le menu Aide et
sélectionnez About Blackmagic Arduino Shield 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 Arduino Shield Setup est installée sur votre
ordinateur, consultez sur la page d’assistance 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.
82Assistance
Garantie
Garantie limitée à 12 mois
Par la présente, Blackmagic Design garantit que le Blackmagic 3G-SDI Arduino Shield est exempt de
défauts matériels et de fabrication pendant une durée de douze mois à compter de la date d'achat.
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 l’emballage 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, d’assurance, 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
n’a en aucun cas l’obligation 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 d’une 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.
Danke, dass Sie sich für den Kauf des neuen Blackmagic 3G-SDI Arduino Shields
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 Arduino
Shield 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 Arduino Shield auch Steuerungslösungen nach
Ihrem Gusto kreieren. Das Shield dient Ihnen hierbei als SDI-Grundgerüst, damit Sie den ProgrammFeed 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 Arduino Shield
zusammengestellt haben.
Diese Bedienungsanleitung gibt Ihnen alle Informationen, die Sie für die Inbetriebnahme
Ihres Blackmagic 3G-SDI Arduino Shields brauchen. Bitte sehen Sie auf der Support-Seite
unter www.blackmagicdesign.com/de 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
Inhalt
Blackmagic 3G-SDI Arduino Shield
Erste Schritte 86
Aufstecken und Verlöten von Stiftleisten 86
Anbringen an das Arduino-Board 87
Anschließen an das Stromnetz 87
Anschließen an SDI-Equipment 88
Softwareinstallation 89
Installieren der Produktsoftware 89
Installieren der Arduino Bibliotheksdateien 90
Blackmagic Arduino Shield Setup 91
2
C Address“ 91
„I
„Video Format“ 91
Programmieren von Arduino-Sketchen 92
Testen der Blackmagic Shield und Bibliotheken-Installation 92
Status-LEDs 94
Anbringen von Shield-Komponenten 95
Kommunizieren mit Ihrem Arduino Shield 95
High Level Overview 95
2
C Interface 95
I
Serial Interface 95
Example Usage 96
Studio Camera Control Protocol 96
Blackmagic Video Device Embedded Control Protocol 98
Example Protocol Packets 104
Developer Information 105
Hilfe 109
Garantie 110
Erste Schritte
6 PIN
8 PIN
Aufstecken und Verlöten von Stiftleisten
Ihr Blackmagic 3G-SDI Arduino Shield 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 Arduino Shields ein. Die Anordnung der Stiftleisten finden Sie in der
Abbildung unten.
0 - Serial RX
1 - Seri al TX
(I2C) SDA
(I2C) SCL
A5 (I2C) SCL
A4 (I2C) SDA
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 Arduino Shield“.
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.
87Erste 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 ArduinoBoard 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 Arduino Shield 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.
88Erste Schritte
Anschließen an SDI-Equipment
Ist eine Verbindung zum Stromnetz hergestellt, können Sie das Arduino Shield 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
Arduino Shields an.
2 Verbinden Sie den SDI-Ausgang Ihres Arduino Shields mit dem mit „PGM“
gekennzeichneten SDI-Programmeingang Ihrer URSA Mini.
Ein Anschlussdiagramm finden Sie weiter unten.
SDI IN
SDI OUT
Switcher
SDI ‘PGM’ Input
Blackmagic 3G-SDI Arduino Shield
Blackmagic URSA Mini
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 Arduino Shield 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.
89Erste Schritte
Softwareinstallation
HINWEIS Laden Sie zunächst 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 Arduino Shield Setup-Dienstprogramm.
Sobald Sie die Installation der Arduino-Software ausgeführt haben, können Sie nun
die Produktsoftware für Ihr Arduino Shield installieren.
Installieren der Produktsoftware
Blackmagic Arduino Shield Setup dient der Aktualisierung der Produktsoftware Ihres Shields.
DieProduktsoftware 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 Arduino Shield 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 3G-SDI Arduino Shield Software herunter und entpacken Sie sie.
2 Öffnen Sie das Speicherabbild und starten Sie das Blackmagic Arduino Shield
Installationsprogramm. Folgen Sie den Anweisungen auf Ihrem Bildschirm.
3 Nachdem die aktuellste Version des Blackmagic Arduino Shield 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 3G-SDI Arduino Shield Software herunter und entpacken Sie sie.
2 Nun sollten Sie einen Blackmagic Arduino Shield Ordner sehen. Darin finden Sie dieses
Handbuch und das Blackmagic Arduino Shield 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 Arduino Shield 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.
90Softwareinstallation
Installieren der Arduino Bibliotheksdateien
Die Programme zur Steuerung Ihres Arduinos werden als Sketche bezeichnet. Ihr Blackmagic
3G-SDI Arduino Shield 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 Arduino Shield“ 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 Ordner „Dokumente“ 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 Arduino Shield“.
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 Ordner „Dokumente“ 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 BeispielSketche 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.
91Blackmagic Arduino Shield Setup
Blackmagic Arduino Shield Setup
Über die Blackmagic Arduino Shield Setup Software können Sie Änderungen der Einstellungen an Ihrem
Shield vornehmen. Dazu gehören bspw. die I2C-Adresse und das Videoausgabeformat
Wenn Blackmagic Arduino Shield Setup auf Ihrem Computer installiert ist, können Sie darüber die
Einstellungen Ihres Shields ändern. Dazu gehört die „I
identifiziert, damit das Arduino-Board mit ihm kommunizieren kann, und das „Video Format“
(Videoformat), das das Ausgabeformat Ihres Shields festlegt.
2
C Address“ (I2C-Adresse), die Ihr Shield
„I2C Address“
In seltenen Fällen ist es möglich, dass ein weiteres Shield, das auf Ihrem Blackmagic Shield
angebracht ist, dieselbe standardmäßige I
Konflikt. Sollte dies der Fall sein, können Sie die Standardadresse ändern.
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 Arduino Shield 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).
2
C-Adresse wie Ihr Shield verwendet. Das führt zu einem
„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 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.
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 Sie „TallyBlink“ aus.
4 Laden Sie den Sketch auf Ihr Board.
93Testen der Blackmagic Shield und Bibliotheken-Installation
Das Beispiel mit dem Blinken des Tally-Lichts ist eine schnelle und einfache
Möglichkeit, Ihr Arduino Shield 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.
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.
94Testen der Blackmagic Shield und Bibliotheken-Installation
Status-LEDs
10 PIN
8 PIN
8 PIN
Ihr Blackmagic 3G-SDI Arduino Shield verfügt über sechs Status-LEDs, die unterschiedliche
Aktivitätszustände wie Stromzufuhr, UART-, I
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– I
Leuchtet auf, wenn Ihr Shield und der Arduino über das I
2
C-Parser aktiv
2
C- und SPI-Kommunikation anzeigen. Die LEDs zeigen
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
2
C-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
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.
95Anbringen von Shield-Komponenten
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 Arduino
Shield, 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 Arduino Shield montieren
Kommunizieren mit Ihrem Arduino Shield
You can communicate with your Arduino Shield 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 I
the shield.
High Level Overview
The library provides two core objects, BMD_SDITallyControlandBMD_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 physicalI
Serialcommunication busses the shield supports.
I2C Interface
To use theI2Cinterface to the shield:
// NOTE: Must match address set in the setup utility software
BMD_SDI Tally Contr o l_Seri al s d iTally C o n trol;
96Kommunizieren mit Ihrem Arduino Shield
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
2
the I
C bus is shown below.
// NOTE: Must match address set in the setup utility software
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’sFile->Examples>BMDSDIControl menu.
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 Arduino shield.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group IDGroup
0Lens
1Video
2Audio
97Studio Camera Control Protocol
Group IDGroup
3Output
4Display
5Ta l ly
6Reference
7Configuration
8Color Correction
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,
Gr o u p,
Parameter being controlled,
Op er ation,
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,
liftAdj u s t
);
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.
98Studio Camera Control Protocol
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.