To go directly to your preferred language, simply click on the hyperlinks listed in the
contents below.
English3
日本語32
Français62
Deutsch92
Español122
中文152
한국어182
Русский212
Italiano242
Português272
Türkçe302
English
Welcome
Thank you for purchasing your new Blackmagic 3G-SDI Shield for Arduino.
We are always interested in new technologies and are excited by all the creative ways our SDI
products can be used. With your 3G-SDI Shield for Arduino, you can now integrate the Arduino
into your SDI workflow to get more control options with your Blackmagic Design equipment.
For example, ATEM switchers can control Blackmagic URSA Mini and Blackmagic Studio
Cameras via data packets embedded in the SDI signal. If you are not running an ATEM switcher,
but you would still like the ability to control your Blackmagic cameras, you can build custom
control solutions with your 3G-SDI Shield for Arduino. The shield gives you the SDI platform to
build upon, so you can loop the program return feed from your switcher, through the shield, and
into the program input on your Blackmagic Cameras.
Writing the code to send the commands to the camera is easy and all the supported commands
are included in this manual.
You can control the cameras using a computer, or you can add buttons, knobs and joysticks to
your shield and build dynamic hardware controllers for adjusting features such as lens focus
and zoom, aperture settings, pedestal and white balance control, the camera’s powerful built
in color corrector, and much more. Building your own custom controller is useful for production,
but it’s also a lot of fun!
We are excited by this technology and would love to hear about any SDI controllers you have
built for your 3G-SDI Shield for Arduino!
This instruction manual contains all the information you need to start using your
Blackmagic3G-SDI Shield for Arduino. Please check the support page on our website at
www.blackmagicdesign.com for the latest version of this manual and for updates to your
shield’s internal software. Keeping your software up to date will ensure you get all the latest
features! When downloading software, please register with your information so we can keep
you updated when new software is released. We are continually working on new features and
improvements, so we would love to hear from you!
Attaching Shield Components 14
Communicating with yourBlackmagic Shield for Arduino 14
High Level Overview 14
2
C Interface 15
I
Serial Interface 15
Example Usage 15
Studio Camera Control Protocol 16
Blackmagic SDI Camera Control Protocol 17
Overview 17
Assumptions 17
Blanking Encoding 17
Message Grouping 17
Abstract Message Packet Format 17
Defined Commands 18
Example Protocol Packets 25
Developer Information 26
2
Physical Encoding - I
Physical Encoding - UART 26
Help 30
Warranty 31
C 26
Getting Started
6 PIN
8 PIN
Attaching and Soldering Headers
Your Blackmagic 3G-SDI Shield for Arduino 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 3G-SDI Shield. Refer to the illustration below for the header layout
arrangement.
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
2
NOTE When connecting to the shield, communication is via I
2
Werecommend I
C as this enables the serial monitor to be used and makes all
C or Serial.
other pins available. Select the communication mode when defining the
BMDSDIControl object in the sketch. Refer to the ‘Communicating with your
Blackmagic 3G-SDI Shield for Arduino’ section for more information.
A5 (I2C) SCL
A4 (I2C) SDA
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.
Nowplace the shield onto the Arduino board to check the pin alignment. If any
headers need adjusting, you can then warm the solder joint on the corresponding
header and improve its alignment. This is a much easier method than soldering all the
joints first and then trying to make adjustments.
Mounting to the Arduino Board
Now that your headers are soldered to your shield, you can mount the 3G-SDI shield to your
Arduino board.
Carefully holding each side of the shield, align the header pins with your Arduino board’s
headers and gently push the pins into the header slots. Be careful not to bend any of the pins
while mounting the shield.
With all pins plugged in, the connection between the Blackmagic
shield and the Arduino board should be firm and stable.
Plugging in Power
To power your Blackmagic 3G-SDI Shield for Arduino, simply plug in a 12V power adapter into
the 12V power input on your Blackmagic shield.
NOTE Plugging power into the Arduino board will not provide sufficient power to the
Blackmagic shield, however, powering the Blackmagic shield will provide power to the
Arduino as well, so make sure power is connected to your Blackmagic shield only.
6Getting Started
Connecting to SDI Equipment
With power supplied, you can now plug your Blackmagic 3G-SDI Shield into your
SDIequipment. For example, to plug into a switcher and a Blackmagic URSA Mini:
1 Plug the program output from your switcher to the Blackmagic 3G-SDI Shield’s
SDI input.
2 Plug your Blackmagic 3G-SDI Shield’s SDI output into the ‘program’ SDI input marked
PGM on your Blackmagic URSA Mini.
A connection diagram is provided below.
SDI IN
SDI OUT
Switcher
SDI ‘PGM’ Input
Blackmagic 3G-SDI Shield for Arduino
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
SDIequipment, 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,
andwhere to install the Arduino library files so the shield can communicate with your Arduino.
TIP You can also use your Blackmagic 3G-SDI Shield for Arduino to control other
Blackmagic Design products, such as Blackmagic MultiView 16. For example, when
your shield is connected to input 16, you can display a tally border on the multi view.
When using Blackmagic URSA Mini cameras, make sure the grid overlay is turned on
toenable the tally display on the camera viewfinder. Refer to your Blackmagic camera
manual for more information.
7Getting Started
Software Installation
NOTE Before installing the Blackmagic Shield for Arduino setup utility, download the
latest Arduino IDE software from www.arduino.cc and install it on your computer.
After installing the Arduino software, you can now install your Blackmagic 3G-SDI
Shield’s internal software.
Installing Internal Software
Blackmagic Shield for Arduino Setup is used to update your shield’s internal software. The
internal software communicates with the Arduino board, and controls the board using Arduino
library files. These library files are installed with the setup software and all you need to do is
copy the folder containing the files and paste it into your Arduino application folder. You can
find information about the library files and how to install them in the next section of this manual.
We recommend downloading the latest Blackmagic Shield for Arduino software and updating
your shield so you can benefit from new features and improvements. The latest version can be
downloaded from the Blackmagic Design support center at
www.blackmagicdesign.com/support
To install the internal software using Mac OS X:
1 Download and unzip the Blackmagic Shield for Arduino software.
2 Open the resulting disk image and launch the Blackmagic Shield for Arduino installer.
Follow the on screen instructions.
3 After installing the latest version of Blackmagic Shield for Arduino installer, power your
Blackmagic shield and connect it to your computer via a USB cable.
4 Now launch the setup utility and follow any onscreen prompt to update your shield’s
internal software. If no prompt appears, the internal software is up to date and there is
nothing further you need to do.
To install the internal software using WIndows:
1 Download and unzip the Blackmagic Shield for Arduino software.
2 You should see a Blackmagic Shield for Arduino folder containing this manual and
the Blackmagic Shield for Arduino installer. Double-click the installer and follow the
onscreen prompts to complete the installation.
3 After installing the latest version of the Blackmagic Shield for Arduino installer, power
your Blackmagic shield and connect it to your computer via a USB cable.
4 Now launch the setup utility and follow any onscreen prompt to update your shield’s
internal software. If no prompt appears, the internal software is up to date and there is
nothing further you need to do.
8Software Installation
Installing Arduino Library Files
The programs written to control your Arduino are called sketches and your Blackmagic 3G-SDI
Shield for Arduino uses Arduino library files that help make writing sketches easier. After
installing your shield’s setup software, the library files are installed into a folder named ‘Library’.
All you need to do now is copy the folder containing the library files and paste it into your
Arduino libraries folder.
NOTE The Arduino IDE software needs to be closed when installinglibraries.
To install the library files on Mac OS X:
1 Open ‘Blackmagic Shield for Arduino’ in your ‘applications’ folder.
2 Open the ‘Library’ folder and right click/copy the folder named: BMDSDIControl.
3 Now go to your computer’s ‘documents’ folder and open the Arduino folder.
4 You will see a sub-folder named ‘libraries’. Paste the BMDSDIControl folder into the
‘libraries’ folder.
To install the library files on Windows:
1 Open the Programs/ Blackmagic Shield for Arduino folder.
2 You will now see a subfolder named ‘Library’. Open this folder and then right click/copy
the folder named: BMDSDIControl.
3 Now go to your computer’s ‘documents’ folder and open the Arduino folder.
4 You will see a sub-folder named ‘libraries’. Paste the BMDSDIControl folder into the
‘libraries’ folder.
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 Shield for Arduino Setup
The Blackmagic Shield for Arduino Setup software lets you change
settings on your shield such as the I2C address and video output format.
With Blackmagic Shield for Arduino Setup installed on your computer, you can now change
settings for your shield, such as the ‘I
board can communicate with it, and the ‘video format’, which sets the output format for
your shield.
2
C address’, which identifies your shield so the Arduino
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.
C address as your shield’s default address which will create a conflict. If this
10Blackmagic Shield for Arduino Setup
The default address for your shield is 0x6E, however, you can choose from a range of
addresses between 0x08 and 0x77.
To change the address for your shield:
1 Launch Blackmagic Shield for Arduino Setup and click on your shield’s ‘settings’ icon.
2 In the ‘set address to:’ edit box, type the address you wish to use.
3 Click ‘save’.
Video Format
The default output format is selected in the setup utility for when no input is connected. When
an input is detected, the output will follow the same format as the input. If this input is removed
the output will revert to the default output format selected in the utility. You can change the
video format by clicking in the ‘default output format’ drop down menu and selecting the
format you want.
You can choose from the following video output formats:
The programs, or sketches, written into the Arduino software are very easy to write! Sketches
are written using common ‘C’ programming language. When programming your sketches using
commands from the Studio Camera Control Protocol, the shield embeds these commands into
the SDI output which lets you control your Blackmagic URSA Mini or Blackmagic Studio Cameras.
All supported commands are included in the Studio Camera Control Protocol section of this
manual so you can take the commands from the protocol and use them in your sketch.
11Programming Arduino Sketches
Testing your Blackmagic Shield
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.
The Tally Blink example sketch is a fast and easy way to test your Blackmagic 3G-SDI
Shield for Arduino. Rawdata can be sent to your shield via I
the Studio Camera Protocol document, but we have also provided customlibraries to
make programming sketches much easier.
2
C using commands from
12Testing your Blackmagic Shield andLibrary Installation
NOTE Make sure your Blackmagic Camera’s tally number is set to 1. Also, ensure the
10 PIN
8 PIN
8 PIN
camera’s grid overlay is turned on to enable the tally display on the camera viewfinder.
Refer to your Blackmagic camera manual for more information.
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
andthe camera’s grid overlay is turned on.
If you need further assistance, please visit the Blackmagic Design support center at
www.blackmagicdesign.com/support. Refer to the help section of this manual for more
information on the different ways you can get help setting up your shield.
LED Indicators
Your Blackmagic 3G-SDI Shield for Arduino has six indicator LEDs that confirm activity on your
shield such as power, UART, 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.
2
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
13Testing your Blackmagic Shield andLibrary Installation
After a successful boot, the power LED will turn on and all LEDs will resume their standard
functions during operation.
In the rare case of a boot failure, all LEDs except for the failed activity will flash rapidly so you
can identify the cause of the failure.
Attaching Shield Components
If you want to build your own hardware controller, you can create a new shield with buttons,
knobs and a joystick for more tactile, hands on control. Simply mount the custom shield to your
Blackmagic 3G-SDI Shield for Arduino by plugging it into your shield’s header slots. There is no
limit to the types of controllers you can build. You can even replace the circuitry in an old CCU
with your own custom Arduino solution for an industry standard camera control unit.
You can create your own hardware controller and plug it into your Blackmagic
3G-SDI Shield for Arduino for more interactive and refined control.
Communicating with yourBlackmagic
Shield for Arduino
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I
you to use more I
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
2
C because of the low pin count and it frees up the serial monitor. This also allows
2
C devices with the shield.
2
C or Serialcommunication busses the shield supports.
14Communicating with yourBlackmagic Shield for Arduino
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);
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);
C bus is shown below.
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
15Communicating with yourBlackmagic Shield for Arduino
Studio Camera Control Protocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control supported Blackmagic Design
cameras via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group IDGroup
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10Media
11PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera 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.
Blackmagic SDI Camera Control Protocol
Version 1.3
If you are a software developer you can use the SDI Camera Control Protocol to construct
devices that integrate with our products. Here at Blackmagic Design our approach is to open
upour protocols and we eagerly look forward to seeing what you come up with!
Overview
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and the Blackmagic Camera Control app to provide Camera Control
functionality with supported Blackmagic Design cameras. Please refer to the ‘Understanding
Studio Camera Control’ chapter section of this manual, or the ATEM Switchers Manual
and SDKmanual for more information. These can be downloaded at
www.blackmagicdesign.com/support.
This document describes an extensible protocol for sending a uni directional stream of small
control messages embedded in the non-active picture region of a digital video stream. The
video stream containing the protocol stream may be broadcast to a number of devices. Device
addressing is used to allow the sender to specify which device each message is directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritize and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
17Studio Camera Control Protocol
Destination device (uint8)
Command length (uint8)
Command id (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.
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.
The command id is an 8 bit unsigned integer which indicates themessage
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)
Command data (uint8[])
Padding (uint8[])
This byte is reserved for alignment and expansion purposes. Itshould be
set to zero.
The command data may contain between 0 and 60 bytes of data. The format
of the data section is def ined by the command itself.
Messages must be padded up to a 32 bit boundary with 0x0bytes.
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)
Parameter (uint8)
Data type (uint8)
The category number specifies one of up to 256 configuration categories
available on the device.
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
The data type specifies the type of the remaining data. Thepacket 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:
A void value is represented as a boolean array of length zero.
0: void / boolean
1: signed byteData elements are signed bytes
2: signed 16bit integerData elements are signed 16 bit values
3: signed 32bit integerData elements are signed 32 bit values
4: signed 64bit integerData elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
The data f ield is a 8 bit value with 0 meaning false and all other values
meaning true.
18Studio Camera Control Protocol
Data types 6 through 127 are reserved.
Data elements are signed 16 bit integers representing a real number with
5bits for the integer component and 11 bits for the fractional component.
128: signed 5.11fixed point
Thefixed 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:
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
0: assign value
'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.
Each value specifies signed offsets of the same type to be added to the
1: offset / toggle value
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 128through 255 are available for device specific purposes.
Data (void)
The data f ield is 0 or more by tes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp)
select 1080p 23.98 mode on
all cameras
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
844000100
12480015300x10 0x27 0x00 0x00
1246004212810x33 0x0100
162559001010241300000
1641200811281000x9a 0xfd 0x9a 0xfd00
command
category
reserved
type
parameter
operation
all operations combined76440001002555000600
1000480015300x10 0x27 0x00 0x00
46004212810x33 0x0100255900
101024130000041200
811281000x9a 0xfd 0x9a 0xfd00
25Studio Camera Control Protocol
Developer Information
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
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
26Developer Information
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.
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.
28Developer Information
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously from
the next video frame until new data is set. Automatically cleared once
the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ 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.
29Developer Information
Help
Getting Help
Your Blackmagic 3G-SDI Shield for Arduino is a developers tool designed for you to develop
independently based on your custom requirements.
For the most up to date information about your shield, visit the Blackmagic Design online
support pages and check the latest support material.
Blackmagic Design Online Support Pages
The latest manual, software and support notes can be found at the Blackmagic Design support
center at www.blackmagicdesign.com/support.
Arduino Development Forum
If you have programming questions, you can get help from Arduino development forums on the
Internet. There is a whole community of Arduino developers and many good quality forums
where you can ask software questions, or even find a willing engineer to hire to implement your
solution for you!
Blackmagic Design Forum
The Blackmagic Design forum on our website is a helpful resource you can visit for more
information and creative ideas. This can also be a faster way of getting help as there may
already be answers you can find from other experienced users and Blackmagic Design staff
which will keep you moving forward. You can visit the forum at
https://forum.blackmagicdesign.com
Checking the Software Version Currently Installed
To check which version of Blackmagic 3G-SDI Shield for Arduino Setup software is installed on
your computer, open the About Blackmagic 3G-SDI Shield for Arduino Setup window.
On Mac OS X, open Blackmagic 3G-SDI Shield for Arduino Setup from the Applications
folder. Select About Blackmagic Shield for Arduino Setup from the application menu to
reveal theversion number.
On Windows 7, open Blackmagic 3G-SDI Shield for Arduino Setup from your Start
menu. Clickonthe Help menu and select About Blackmagic 3G-SDI Shield for Arduino
Setup to reveal the version number.
On Windows 8, open Blackmagic 3G-SDI Shield for Arduino Setup from the Blackmagic
3G-SDI Shield for Arduino Setup tile on your Start page. Click on the Help menu and
select About Blackmagic Shield for Arduino Setup to reveal the version number.
How to Get the Latest Software Updates
After checking the version of Blackmagic 3G-SDI Shield for Arduino Setup software installed
on your computer, please visit the Blackmagic Design support center at
www.blackmagicdesign.com/support to check for the latest updates. While it is usually a
goodidea to run the latest updates, it is wise to avoid updating any software if you are in
themiddle of an important project.
30Help
Warranty
12 Month Limited Warranty
Blackmagic Design warrants that the Blackmagic 3G-SDI Shield for Arduino product will be free
from defects in materials and workmanship for a period of 12 months from the date of purchase.
If a product proves to be defective during this warranty period, Blackmagic Design, at its option,
either will repair the defective product without charge for parts and labor, or will provide a
replacement in exchange for the defective product.
In order to obtain service under this warranty, you the Customer, must notify Blackmagic Design
of the defect before the expiration of the warranty period and make suitable arrangements for the
performance of service. The Customer shall be responsible for packaging and shipping the
defective product to a designated service center nominated by Blackmagic Design, with shipping
charges pre paid. Customer shall be responsible for paying all shipping changes, insurance, duties,
taxes, and any other charges for products returned to us for any reason.
This warranty shall not apply to any defect, failure or damage caused by improper use or improper
or inadequate maintenance and care. Blackmagic Design shall not be obligated to furnish service
under this warranty: a) to repair damage resulting from attempts by personnel other than
Blackmagic Design representatives to install, repair or service the product, b) to repair damage
resulting from improper use or connection to incompatible equipment, c) to repair any damage or
malfunction caused by the use of non Blackmagic Design parts or supplies, or d) to service a
product that has been modified or integrated with other products when the effect of such a
modification or integration increases the time or difficulty of servicing the product. THIS WARRANTY
IS GIVEN BY BLACKMAGIC DESIGN IN LIEU OF ANY OTHER WARRANTIES, EXPRESS OR IMPLIED.
BLACKMAGIC DESIGN AND ITS VENDORS DISCLAIM ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. BLACKMAGIC DESIGN’S
RESPONSIBILITY TO REPAIR OR REPLACE DEFECTIVE PRODUCTS IS THE WHOLE AND EXCLUSIVE
REMEDY PROVIDED TO THE CUSTOMER FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES IRRESPECTIVE OF WHETHER BLACKMAGIC DESIGN OR THE
VENDOR HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. BLACKMAGIC
DESIGN IS NOT LIABLE FOR ANY ILLEGAL USE OF EQUIPMENT BY CUSTOMER. BLACKMAGIC
IS NOT LIABLE FOR ANY DAMAGES RESULTING FROM USE OF THIS PRODUCT. USER OPERATES
THIS PRODUCT AT OWN RISK.
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial. We
recommend I2C because of the low pin count and it frees up the serial monitor. This also allows
you to use more I2C devices with the shield.
HighLevelOverview
The library provides two core objects, BMD_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
C or Serialcommunication busses the shield supports.
// NOTE: Must match address set in the setup utility software
const int shieldAddress = 0x6E;
BMD _ SDICameraControl _ I2C sdiCameraControl(shieldAddress);
BMD _ SDITallyControl _ I2C sdiTallyControl(shieldAddress);
SerialInterface
To use 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.
ExampleUsage
Once created in a sketch, these objects will allow you to issue commands to the shield over
selected bus by calling functions on the created object or objects. A minimal sketch that uses
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);
C bus is shown below.
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control supported Blackmagic Design
cameras via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group IDGroup
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10Media
11PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera 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.
BlackmagicSDICameraControlProtocol
Version 1.3
If you are a software developer you can use the SDI Camera Control Protocol to construct
devices that integrate with our products. Here at Blackmagic Design our approach is to open
upour protocols and we eagerly look forward to seeing what you come up with!
Overview
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and the Blackmagic Camera Control app to provide Camera Control
functionality with supported Blackmagic Design cameras. Please refer to the ‘Understanding
Studio Camera Control’ chapter section of this manual, or the ATEM Switchers Manual
and SDKmanual for more information. These can be downloaded at
www.blackmagicdesign.com/support.
This document describes an extensible protocol for sending a uni directional stream of small
control messages embedded in the non-active picture region of a digital video stream. The
video stream containing the protocol stream may be broadcast to a number of devices. Device
addressing is used to allow the sender to specify which device each message is directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
BlankingEncoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
MessageGrouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritize and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
AbstractMessagePacketFormat
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
StudioCameraControlProtocol
47
Destination device (uint8)
Command length (uint8)
Command id (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.
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.
The command id is an 8 bit unsigned integer which indicates themessage
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)
Command data (uint8[])
Padding (uint8[])
This byte is reserved for alignment and expansion purposes. Itshould be
set to zero.
The command data may contain between 0 and 60 bytes of data. The format
of the data section is def ined by the command itself.
Messages must be padded up to a 32 bit boundary with 0x0bytes.
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.
DefinedCommands
Command 0 : change configuration
Category (uint8)
Parameter (uint8)
Data type (uint8)
The category number specifies one of up to 256 configuration categories
available on the device.
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
The data type specifies the type of the remaining data. Thepacket 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:
A void value is represented as a boolean array of length zero.
0: void / boolean
1: signed byteData elements are signed bytes
2: signed 16bit integerData elements are signed 16 bit values
3: signed 32bit integerData elements are signed 32 bit values
4: signed 64bit integerData elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
The data f ield is a 8 bit value with 0 meaning false and all other values
meaning true.
StudioCameraControlProtocol
48
Data types 6 through 127 are reserved.
Data elements are signed 16 bit integers representing a real number with
5bits for the integer component and 11 bits for the fractional component.
128: signed 5.11fixed point
Thefixed 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:
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
0: assign value
'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.
Each value specifies signed offsets of the same type to be added to the
1: offset / toggle value
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 128through 255 are available for device specific purposes.
Data (void)
The data f ield is 0 or more by tes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp)
select 1080p 23.98 mode on
all cameras
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
844000100
12480015300x10 0x27 0x00 0x00
1246004212810x33 0x0100
162559001010241300000
1641200811281000x9a 0xfd 0x9a 0xfd00
command
category
reserved
type
parameter
operation
all operations combined76440001002555000600
1000480015300x10 0x27 0x00 0x00
46004212810x33 0x0100255900
101024130000041200
811281000x9a 0xfd 0x9a 0xfd00
StudioCameraControlProtocol
55
DeveloperInformation
This section of the manual provides all the details you will need if you want to write custom
libraries and develop your own hardware for your Blackmagic 3G-SDI Shield for Arduino.
2
PhysicalEncoding
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.
-
I
C
2
C slave address is 0x6E.
PhysicalEncoding
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
-
UART
DeveloperInformation
56
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.
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.
DeveloperInformation
58
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.ARM_
was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously from
the next video frame until new data is set. Automatically cleared once
the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ 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.
Nous vous remercions d’avoir fait l’acquisition d’une carte Blackmagic 3G-SDI Shield for Arduino.
Nous nous intéressons aux nouvelles technologies et souhaitons développer des façons innovantes
d’utiliser nos produits SDI. Grâce à la 3G-SDI Shield for Arduino, vous pouvez désormais intégrer
une carte Arduino à votre workflow SDI et ainsi ajouter des options de contrôle à votre équipement
Blackmagic Design.
Par exemple, les mélangeurs ATEM peuvent contrôler la Blackmagic URSA Mini et les Blackmagic
Studio Cameras via des paquets de données intégrés au signal SDI. Si vous n’utilisez pas de
mélangeur ATEM, mais que vous souhaitez pouvoir contrôler vos caméras Blackmagic, vous pouvez
créer des solutions de contrôle personnalisées à l’aide de la 3G-SDI Shield for Arduino. Cette carte
vous offre une plateforme de création, qui vous permet d’envoyer le signal de retour du programme
provenant du mélangeur vers la carte, puis vers l’entrée de programme de votre caméra Blackmagic.
Il est très facile d’écrire un code pour envoyer des commandes à la caméra. De plus, toutes les
commandes prises en charge sont décrites dans ce manuel.
Vous pouvez contrôler les caméras à l’aide d’un ordinateur ou ajouter des boutons, molettes et
joysticks à votre carte. Vous disposerez ainsi de solutions de contrôle dynamiques qui permettent
de modifier des fonctionnalités telles que la mise au point, le zoom, l’ouverture, le niveau de noir,
la balance des blancs, le correcteur de couleurs intégré à la caméra et autres. Créer sa propre
solution de contrôle est utile à la production, mais aussi très amusant !
Nous sommes très heureux de pouvoir proposer cette technologie et nous avons hâte de découvrir
les solutions de contrôle SDI que vous avez conçues avec la 3G-SDI Shield for Arduino !
Ce manuel d’utilisation comprend toutes les informations dont vous avez besoin pour utiliser
la Blackmagic 3G-SDI Shield for Arduino. Consultez notre page d’assistance sur
www.blackmagicdesign.com/fr pour obtenir la dernière version du manuel et les mises à jour
du logiciel interne de la carte. Nous vous recommandons de mettre le logiciel à jour régulièrement
afin de travailler avec les fonctions les plus récentes. N’oubliez pas d’enregistrer vos coordonnées
lorsque vous téléchargerez le logiciel afin d’être informé des dernières mises à jour. Nous souhaitons
continuer à améliorer nos produits, n’hésitez donc pas à nous faire part de vos commentaires !
Grant Petty
PDG de Blackmagic Design
Sommaire
Manuel de la Blackmagic 3G-SDI Shield
for Arduino
Mise en route 65
Fixer et souder les barrettes 65
Installation sur la carte Arduino 66
Branchement de l'alimentation 66
Connexion à du matériel SDI 67
Installation du logiciel 68
Installation du logiciel interne 68
Installation des fichiers bibliothèqueArduino 69
Blackmagic Shield for Arduino Setup 70
2
C Address 70
I
Format vidéo 71
Programmation des sketches Arduino 71
Test de la carte extension Blackmagic et installation de la bibliothèque 72
Voyants LED 73
Fixation de composants surlacarteextension 74
Communiquer avec votre Blackmagic Shield for Arduino 74
High Level Overview 74
2
C Interface 75
I
Serial Interface 75
Example Usage 75
Studio Camera Control Protocol 76
Blackmagic SDI Camera Control Protocol 77
Overview 77
Assumptions 77
Blanking Encoding 77
Message Grouping 77
Abstract Message Packet Format 77
Defined Commands 78
Example Protocol Packets 85
Informations pour les développeurs 86
Physical Encoding - I
Physical Encoding - UART 86
2
C 86
Assistance 90
Garantie 91
Mise en route
6 PIN
8 PIN
Fixer et souder les barrettes
La Blackmagic 3G-SDI Shield for Arduino est fournie avec 4 barrettes, dont deux barrettes mâles à
8 broches, une à 10 broches et une à 6 broches. Les barrettes sont des connecteurs qui permettent
d’installer votre carte extension sur l’Arduino. Comme elles se superposent, vous pouvez installer
d’autres cartes les unes sur les autres ainsi que des composants, notamment des boutons de
contrôle, des molettes et des joysticks. Ces barrettes sont conçues pour être installées sur les
cartes Arduino R3, telles que l’Arduino UNO.
Pour fixer les barrettes à votre carte extension :
1 Insérez les broches de chaque barrette dans les trous correspondants situés de part et
d’autre de la Blackmagic 3G-SDI Shield. L’illustration ci-dessous vous indique la disposition
des barrettes.
0 - Serial RX
1 - Serial TX
(I2C) SDA
(I2C) SCL
REMARQUE Lors de la connexion à la carte extension, la communication
est établie via le protocole I2C ou le protocole série. Nous recommandons
de choisir I2C afin de pouvoir utiliser le moniteur série et les autres broches.
Sélectionnez le mode de communication lorsque vous définissez l’objet
BMDSDIControl dans le sketch. Pour plus d’informations, consultez la
section « Communication avec la Blackmagic 3G-SDI Shield for Arduino »
de ce manuel.
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.
65Mise 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 Shield for Arduino, 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.
66Mise 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 3G-SDI Shield.
2 Branchez la sortie SDI de la Blackmagic 3G-SDI Shield à l’entrée programme SDI (PMG) de
la Blackmagic URSA Mini.
Vous trouverez ci-dessous un schéma de connexion.
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 la Blackmagic 3G-SDI Shield for Arduino
pour contrôler d’autres produits Blackmagic Design, tels que le Blackmagic
MultiView 16. Par exemple, lorsque la carte est connectée à l’entrée 16 de l’appareil,
une bordure tally s’affiche sur le multivue. Lorsque vous utilisez des caméras
Blackmagic URSA Mini, veillez à activer la grille afin d’afficher le tally sur le viseur de
la caméra. Pour plus d’informations, consultez le manuel des caméras Blackmagic.
67Mise en route
Installation du logiciel
REMARQUE Avant d’installer l’utilitaire Blackmagic Shield for Arduino Setup,
téléchargez la dernière version du logiciel Arduino IDE depuis le site
www.arduino.cc et installez-le sur votre ordinateur.
Après avoir installé le logiciel Arduino, vous pouvez installer le logiciel internet
de votre Blackmagic 3G-SDI Shield.
Installation du logiciel interne
Le Blackmagic Shield for Arduino Setup permet de mettre à jour le logiciel interne de la carte
extension. Le logiciel interne communique avec l’Arduino et contrôle la carte à l’aide des fichiers
bibliothèque Arduino. Ces fichiers bibliothèque sont installés avec le logiciel d’installation. Il suffit
donc de copier le dossier contenant les fichiers et de le coller dans le dossier application de
l’Arduino. Pour plus d’informations concernant l’installation des fichiers bibliothèque, consultez
la section suivante du manuel.
Nous vous recommandons de télécharger la dernière version du logiciel Blackmagic Shield
for Arduino et de mettre la carte à jour afin de bénéficier des nouvelles fonctionnalités et
améliorations. Vous pouvez télécharger la dernière version de ce manuel sur la page d’assistance
de Blackmagic Design www.blackmagicdesign.com/fr/support.
Pour installer le logiciel interne avec Mac OS X :
1 Téléchargez et dézippez le logiciel Blackmagic Shield for Arduino.
2 Ouvrez l’image disque et lancez le programme d’installation Blackmagic Shield for Arduino.
Suivez les instructions affichées à l’écran.
3 Après avoir installé la dernière version du programme d’installation Blackmagic Shield for
Arduino, alimentez la carte extension Blackmagic et connectez-la à votre ordinateur à 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 mise à jour n’apparaît, le logiciel
interne est à jour.
Pour installer le logiciel interne avec Windows :
1 Téléchargez et dézippez le logiciel Blackmagic Shield for Arduino.
2 Le dossier Blackmagic Shield for Arduino s’affiche, il contient le manuel et le programme
d’installation Blackmagic Shield for Arduino. Double-cliquez sur le programme d’installation
et suivez les instructions à l’écran pour terminer l’installation.
3 Après avoir installé la dernière version du programme d’installation Blackmagic Shield for
Arduino, alimentez la carte extension Blackmagic et connectez-la à votre ordinateur à 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 mise à jour n’apparaît, le logiciel
interne est à jour.
68Installation du logiciel
Installation des fichiers
bibliothèqueArduino
Les programmes conçus pour contrôler l’Arduino sont appelés croquis ou sketches. La Blackmagic
3G-SDI Shield for Arduino utilise des fichiers bibliothèque Arduino pour faciliter l’écriture des
sketches. Après avoir installé le logiciel de la carte extension, les fichiers bibliothèque sont installés
dans un dossier intitulé Library. Il suffit à présent de copier le dossier contenant ces fichiers et de
le coller dans le dossier bibliothèque de l’Arduino.
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 Shield for Arduino dans le dossier Applications.
2 Ouvrez le dossier Library et faites un clic droit/copiez le dossier intitulé : BMDSDIControl.
3 Dans le dossier Documents de votre ordinateur, ouvrez le dossier Arduino.
4 Vous verrez un sous-dossier intitulé Libraries. Collez le dossier BMDSDIControl dans
le dossier Libraries.
Pour installer les fichiers bibliothèque sur Windows :
1 Ouvrez Programmes/ Blackmagic Shield for Arduino.
2 Vous verrez un sous-dossier intitulé Library. Ouvrez ce dossier et faites un clic droit/copiez
le dossier intitulé : BMDSDIControl.
3 Dans le dossier Documents de votre ordinateur, ouvrez le dossier Arduino.
4 Vous verrez un sous-dossier intitulé Libraries. Collez le dossier BMDSDIControl dans le
dossier Libraries.
C'est tout ce que vous devez faire pour installer les fichiers bibliothèque Blackmagic Design sur
votre ordinateur. Lorsque vous utilisez le logiciel Arduino, vous disposerez désormais d'exemples
de sketches Blackmagic Design.
Dans le menu déroulant Fichier du logiciel Arduino, sélectionnez Exemples. Sélectionnez
BMDSDIControl pour afficher la liste d'exemples de sketches que vous pouvez utiliser.
Une fois les fichiers bibliothèque stockés dans le dossier approprié, la carte extension peut les
utiliser pour communiquer avec l'Arduino. Il ne reste plus qu'à programmer le logiciel IDE Arduino.
Pour plus d'informations à ce sujet, consultez la section « Programmation des sketches Arduino »
de ce manuel.
REMARQUE 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.
69Installation des fichiers bibliothèqueArduino
Blackmagic Shield for Arduino Setup
Le logiciel Blackmagic Shield for Arduino Setup vous permet de changer les paramètres
de la carte extension, notamment l’adresse I
Grâce au logiciel Blackmagic Shield for Arduino 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 et le format de sortie vidéo.
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
vous pouvez changer l'adresse par défaut de la carte extension.
2
C par défaut, ce qui peut créer un conflit. Si cela ce produit,
70Blackmagic Shield for Arduino Setup
L'adresse par défaut pour la carte extension est 0x6E, cependant, vous pouvez choisir des adresses
comprises entre 0x08 et 0x77.
Changer l'adresse de la carte extension :
1 Lancez le Blackmagic Shield for Arduino Setup et cliquez sur l’icône de paramétrage.
2 Dans le paramètre Set address to:, saisissez l'adresse que vous souhaitez utiliser.
3 Cliquez sur Save.
Format vidéo
Si aucun signal d’entrée n'est connecté, le format de sortie par défaut est choisi par le logiciel
d'installation. Lorsqu'un signal d’entrée est connecté, la sortie est configurée au même format que
celui de l'entrée. Si l'entrée est déconnectée, le format de sortie par défaut sera choisi par le logiciel.
Vous pouvez changer le format vidéo dans le menu déroulant Default output format.
Les 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.
71Programmation des sketches Arduino
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.
L’exemple de sketch Tally Blink est simple à réaliser pour tester votre Blackmagic 3G-SDI
Shield for Arduino. Les données brutes peuvent être envoyées à la carte via I2C à l’aide des
commandes du Studio Camera Protocol. Nous avons également inclus des bibliothèques
personnalisées pour rendre la programmation de sketches encore plus facile.
72Test de la carte extension Blackmagic et installation de la bibliothèque
REMARQUE Vérifiez que le numéro du tally de la caméra est réglé sur 1. Aussi,
10 PIN
8 PIN
8 PIN
veillez à activer la grille afin d’afficher le tally sur le viseur de la caméra. Pour plus
d’informations, consultez le manuel des caméras Blackmagic.
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 et que
la grille de la caméra est activée.
Si vous avez besoin d'aide, consultez la page d'assistance technique Blackmagic Design à l’adresse
suivante www.blackmagicdesign.com/fr/support. Veuillez lire la section d'assistance de ce manuel
pour obtenir davantage d'informations sur le fonctionnement de votre carte extension.
Voyants LED
La Blackmagic 3G-SDI Shield for Arduino comprend six voyants LED qui permettent de confirmer
les activités de la carte extension, par exemple, l’alimentation, la liaison UART ainsi que la
communication I
du tally et des commandes de la caméra est activée.
2
C et SPI. Les voyants indiquent également lorsque la prise de contrôle manuel
LED 1
LED 2
LED 3
LED 4
LED 5
LED 6
LED 1 - Système actif
S'allume lorsque l'alimentation est connectée à la carte extension.
LEC 2 - Prise de contrôle manuel de la commande activée
S'allume lorsque les commandes de la caméra sont activées sur le sketch Arduino.
LEC 3 - Prise de contrôle manuel du tally activée
S'allume lorsque les commandes du tally sont activées sur le sketch Arduino.
LED 5 - Analyseur 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
2
C occupé
2
C.
73Test de la carte extension Blackmagic et installation de la bibliothèque
Une fois la carte extension démarrée, le voyant d’alimentation s'allume et les autres LED reprennent
leur fonction standard.
En cas de problème au cours du démarrage, les LED qui rencontrent des problèmes ne clignotent
pas. En revanche, celles qui fonctionnent clignotent rapidement. Cela vous permet d’identifier
facilement l'origine du problème.
Fixation de composants
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 Shield for Arduino en
l’insérant dans les trous de la barrette. Vous pouvez ajouter le nombre de contrôleurs dont vous
avez besoin. Si vous le souhaitez, vous pouvez même remplacer le circuit électronique d’une
ancienne voie de commande par votre propre Arduino.
Créez votre propre contrôleur matériel et fixer-le à la Blackmagic
3G-SDI Shield for Arduino pour un contrôle extrêmement précis.
Communiquer avec votre Blackmagic
Shield for Arduino
You can communicate with your Blackmagic 3G-SDI Shield for Arduino via I2C or Serial.
We recommend I
allows you to use more I
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
2
C because of the low pin count and it frees up the serial monitor. This also
2
C devices with the shield.
2
C or Serialcommunication busses the shield supports.
74Fixation de composants surlacarteextension
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);
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);
C bus is shown below.
void setup() {
// Must be called before the objects can be used
sdiCameraControl.begin();
sdiTallyControl.begin();
// Turn on camera control overrides in the shield
sdiCameraControl.setOverride(true);
// Turn on tally overrides in the shield
sdiTallyControl.setOverride(true);
}
void loop() {
// Unused
}
The list of functions that may be called on the created objects are listed further on in this
document. Note that before use, you must call the‘begin’function on each object before
issuing any other commands.
Some example sketches demonstrating this library are included in the Arduino
IDE’sFile->Examples->BMDSDIControl menu.
75Communiquer avec votre Blackmagic Shield for Arduino
Studio Camera Control Protocol
This section contains the Studio Camera Control Protocol from the Blackmagic Studio Camera
manual. You can use the commands in this protocol to control supported Blackmagic Design
cameras via your Blackmagic 3G-SDI Shield for Arduino.
The Blackmagic Studio Camera Protocol shows that each camera parameter is arranged in
groups, such as:
Group IDGroup
0Lens
1Video
2Audio
3Output
4Display
5Tally
6Reference
7Configuration
8Color Correction
10Media
11PTZ Control
The group ID is then used in the Arduino sketch to determine what parameter to change.
The function: sdiCameraControl.writeXXXX, is named based on what parameter you wish to
change, and the suffix used depends on what group is being controlled.
For example sdiCameraControl.writeFixed16 is used for focus, aperture, zoom, audio, display,
tally and color correction when changing absolute values.
The complete syntax for this command is as follows:
sdiCameraControl.writeFixed16 (
Camera 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.
Blackmagic SDI Camera Control Protocol
Version 1.3
If you are a software developer you can use the SDI Camera Control Protocol to construct
devices that integrate with our products. Here at Blackmagic Design our approach is to open
upour protocols and we eagerly look forward to seeing what you come up with!
Overview
The Blackmagic SDI Camera Control Protocol is used by ATEM switchers, Blackmagic 3G-SDI
Shield for Arduino and the Blackmagic Camera Control app to provide Camera Control
functionality with supported Blackmagic Design cameras. Please refer to the ‘Understanding
Studio Camera Control’ chapter section of this manual, or the ATEM Switchers Manual
and SDKmanual for more information. These can be downloaded at
www.blackmagicdesign.com/support.
This document describes an extensible protocol for sending a uni directional stream of small
control messages embedded in the non-active picture region of a digital video stream. The
video stream containing the protocol stream may be broadcast to a number of devices. Device
addressing is used to allow the sender to specify which device each message is directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritize and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
77Studio Camera Control Protocol
Destination device (uint8)
Command length (uint8)
Command id (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.
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.
The command id is an 8 bit unsigned integer which indicates themessage
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)
Command data (uint8[])
Padding (uint8[])
This byte is reserved for alignment and expansion purposes. Itshould be
set to zero.
The command data may contain between 0 and 60 bytes of data. The format
of the data section is def ined by the command itself.
Messages must be padded up to a 32 bit boundary with 0x0bytes.
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)
Parameter (uint8)
Data type (uint8)
The category number specifies one of up to 256 configuration categories
available on the device.
The parameter number specifies one of 256 potential configuration
parameters available on the device. Parameters 0 through 127 are device
specific parameters. Parameters 128 though 255 are reserved for parameters
that apply to multiple types of devices.
The data type specifies the type of the remaining data. Thepacket 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:
A void value is represented as a boolean array of length zero.
0: void / boolean
1: signed byteData elements are signed bytes
2: signed 16bit integerData elements are signed 16 bit values
3: signed 32bit integerData elements are signed 32 bit values
4: signed 64bit integerData elements are signed 64 bit values
5: UTF-8 string Data elements represent a UTF-8 string with no terminating character.
The data f ield is a 8 bit value with 0 meaning false and all other values
meaning true.
78Studio Camera Control Protocol
Data types 6 through 127 are reserved.
Data elements are signed 16 bit integers representing a real number with
5bits for the integer component and 11 bits for the fractional component.
128: signed 5.11fixed point
Thefixed 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:
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
0: assign value
'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.
Each value specifies signed offsets of the same type to be added to the
1: offset / toggle value
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 128through 255 are available for device specific purposes.
Data (void)
The data f ield is 0 or more by tes as determined by the data type and number
of elements.
The category, parameter, data type and operation type partition a 24 bit operation space.
set exposure to 10 ms on
camera 4 (10 ms = 10000
us = 0x00002710)
add 15% to zebra level
(15 % = 0.15 f = 0x0133 fp)
select 1080p 23.98 mode on
all cameras
subtract 0.3 from gamma
adjust for green & blue
(-0.3 ~= 0xfd9a fp)
844000100
12480015300x10 0x27 0x00 0x00
1246004212810x33 0x0100
162559001010241300000
1641200811281000x9a 0xfd 0x9a 0xfd00
command
category
reserved
type
parameter
operation
all operations combined76440001002555000600
1000480015300x10 0x27 0x00 0x00
46004212810x33 0x0100255900
101024130000041200
811281000x9a 0xfd 0x9a 0xfd00
85Studio 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 Shield for Arduino.
Physical Encoding - I2C
The shield operates at the following I2C speeds:
1. Standard mode (100 kbit/s)
2. Full speed (400 kbit/s)
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
86Informations pour les développeurs
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.
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.
88Informations pour les développeurs
Register: ICDATA (Incoming Control Payload Data)
[ CONTROL DATA ]
255*8-1 0
**Control Data:** Last control data extracted from a video frame since _ICARM.
ARM_ was reset.
Register: OTARM (Output Tally Arm)
[ RESERVED ] [ ARM ]
7 1 0
**Reserved:** Always zero.
**Arm:** When 1, the outgoing tally data is armed and will be continuously
from the next video frame until new data is set. Automatically
cleared once the tally has been sent in at least one frame.
Register: OTLENGTH (Output Tally Length)
[ LENGTH ]
7 0
**Length:** Length in bytes of the data to send in OTDATA.
Register: OTDATA (Output Tally Data)
[ 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.
89Informations pour les développeurs
Assistance
Obtenir de l'aide
La Blackmagic 3G-SDI Shield for Arduino est un outil pour développeurs créé pour vous aider à
développer en fonction de vos besoins.
Pour avoir accès aux informations les plus récentes concernant les cartes extension, consultez les
pages d'assistance en ligne de Blackmagic Design.
Pages d'assistance en ligne de Blackmagic Design
Les dernières versions du manuel, du logiciel et des notes d'assistance peuvent être consultées sur
la page d'assistance technique de Blackmagic Design : www.blackmagicdesign.com/fr/support.
Forum pour développeurs Arduino
Si vous souhaitez poser des questions concernant la programmation, consultez les forums pour
développeurs Arduino sur Internet. Il existe une large communauté de développeurs Arduino et de
nombreux forums sur Internet qui vous aideront à répondre à vos questions.
Forum Blackmagic Design
Le forum Blackmagic Design est une source d'information utile qui offre des idées innovantes pour
vos productions. Cette plate-forme d’aide vous permettra également d’obtenir des réponses rapides
à vos questions, car un grand nombre de sujets peuvent avoir déjà été abordés par d'autres
utilisateurs. Pour vous rendre sur le forum : http://forum.blackmagicdesign.com/fr
Vérification du logiciel actuel
Pour vérifier quelle version du logiciel Blackmagic 3G-SDI Shield for Arduino Setup est installée sur
votre ordinateur, ouvrez la fenêtre About Blackmagic 3G-SDI Shield for Arduino Setup.
Sur Mac OS X, ouvrez le logiciel Blackmagic 3G-SDI Shield for Arduino Setup dans le
dossier Applications. Sélectionnez About Blackmagic Shield for Arduino Setup dans
le menu d’application pour connaître le numéro de version.
Sur Windows 7, ouvrez le logiciel Blackmagic 3G-SDI Shield for Arduino Setup dans le menu
de Démarrage. Cliquez sur le menu Aide et sélectionnez À propos de Blackmagic 3G-SDI
Shield for Arduino Setup pour connaître le numéro de version.
Sur Windows 8, ouvrez le logiciel Blackmagic 3G-SDI Shield for Arduino Setup à partir de
la vignette Blackmagic 3G-SDI Shield for Arduino Setup située sur l’écran d’accueil. Cliquez
sur le menu Aide et sélectionnez À propos de Blackmagic Shield for Arduino Setup pour
connaître le numéro de version.
Comment obtenir les dernières mises à jour du logiciel
Après avoir vérifié quelle version du logiciel Blackmagic 3G-SDI Shield for Arduino Setup est
installée sur votre ordinateur, veuillez vous rendre au centre de support technique Blackmagic
Design à l’adresse suivante www.blackmagicdesign.com/fr/support pour vérifier les dernières mises
à jour. Même s’il est généralement conseillé d’installer les dernières mises à jour, il est prudent
d’éviter d’effectuer ces mises à jour au milieu d’un projet important.
90Assistance
Garantie
Garantie limitée à 12 mois
Par la présente, Blackmagic Design garantit que le produit Blackmagic 3G-SDI Shield for Arduino sera
exempt de défauts matériels et de fabrication pendant une durée d’un an à compter de la date 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 Shield for Arduino entschieden haben.
Wir haben ein ungemeines Interesse an neuen Technologien und sind immer wieder begeistert, auf
welch kreative Art und Weise unsere SDI-Produkte eingesetzt werden. Mit dem 3G-SDI Shield for
Arduino können Sie den Arduino jetzt in Ihren SDI-Workflow integrieren, um Ihr Blackmagic Design
Equipment um noch mehr Steuerungsmöglichkeiten zu erweitern.
So lassen sich bspw. die URSA Mini und Blackmagic Studio Cameras von einem ATEM Mischer aus
steuern. Das geschieht mithilfe von Datenpaketen, die in das SDI-Signal eingebettet sind. Sollten Sie
über keinen ATEM Mischer verfügen, aber dennoch die Möglichkeit haben wollen, Ihre Blackmagic
Kameras zu steuern, können Sie mit Ihrem 3G-SDI Shield for Arduino auch Steuerungslösungen nach
Ihrem Gusto kreieren. Das Shield dient Ihnen hierbei als SDI-Grundgerüst, damit Sie den 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.
Alleunterstü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 teilenund uns erzählen, welche SDI-Steuerelemente Sie für Ihr 3G-SDI Shield for Arduino
zusammengestellt haben.
Diese Bedienungsanleitung gibt Ihnen alle Informationen, die Sie für die Inbetriebnahme Ihres
Blackmagic 3G-SDI Shield for Arduino brauchen. Bitte sehen Sie auf der Support-Seite unter
www.blackmagicdesign.com/de/support nach der aktuellsten Auflage der Bedienungsanleitung
sowie Aktualisierungen der Produktsoftware Ihres Shields. Indem Sie Ihre Software auf dem neuesten
Standhalten, 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,
sobalddiese 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 Shield for Arduino
Erste Schritte 95
Aufstecken und Verlöten von Stiftleisten 95
Anbringen an das Arduino-Board 96
Anschließen an das Stromnetz 96
Anschließen an SDI-Equipment 97
Softwareinstallation 98
Installieren der Produktsoftware 98
Installieren der Arduino Bibliotheksdateien 99
Blackmagic Shield for Arduino Setup 100
2
C Address“ 100
„I
„Video Format“ 101
Programmieren von Arduino-Sketchen 101
Testen der Blackmagic Shield und Bibliotheken-Installation 102
Status-LEDs 103
Anbringen von Shield-Komponenten 104
Kommunizieren mit Ihrem Blackmagic Shield for Arduino (English) 104
High Level Overview 104
2
C Interface 105
I
Serial Interface 105
Example Usage 105
Studio Camera Control Protocol
Blackmagic SDI Camera Control Protocol 107
Overview 107
Assumptions 107
Blanking Encoding 107
Message Grouping 107
Abstract Message Packet Format 107
Defined Commands 108
Example Protocol Packets 115
Developer Information
Physical Encoding - I
Physical Encoding - UART 116
Hilfe 120
Garantie 121
(English) 116
2
C 116
(English) 106
Erste Schritte
6 PIN
8 PIN
Aufstecken und Verlöten von Stiftleisten
Ihr Blackmagic 3G-SDI Shield for Arduino wird mit vier stapelbaren Stiftleisten geliefert, darunter zwei
8-polige, eine 10-polige und eine 6-polige. Stiftleisten sind Verbindungsstecker, mit denen Sie Ihr
Shield auf das Arduino-Board aufstecken. Da die Stiftleisten stapelbar sind, können Sie weitere
Shields mit zusätzlichen Komponenten wie Steuerungstasten, Reglern und Joysticks übereinander
anbringen. Die Stiftleisten sind so aufgebaut, dass sie für die Montage auf Arduino-Boards mit
R3-Fläche wie dem Arduino UNO geeignet sind.
So verbinden Sie die Stiftleisten mit Ihrem Shield:
1 Führen Sie die Stifte der Leisten in die jeweiligen Buchsen auf beiden Seiten Ihres
Blackmagic 3G-SDI Shields ein. Die Anordnung der Stiftleisten finden Sie in der
Abbildung unten.
0 - Serial RX
1 - S erial TX
(I2C) SDA
2
C) SCL
(I
HINWEIS Wenn Sie sich mit dem Shield verbinden, läuft die Kommunikation über
2
I
C oder seriell. Wir empfehlen I2C, da dies den seriellen Monitor unterstützt und
alle Pins verfügbar bleiben. Wählen Sie den Kommunikationsmodus, wenn Sie das
BMDSDIControl-Objekt im Sketch festlegen. Weitere Informationen finden Sie im
Abschnitt „Kommunizieren mit Ihrem Blackmagic 3G-SDI Shield for Arduino“.
A5 (I2C) SCL
A4 (I2C) SDA
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.
95Erste 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 Shield for Arduino an das Stromnetz an, indem Sie einfach einen
12V-Stromadapter in den 12V-Stromausgang Ihres Blackmagic Shields stecken.
HINWEIS Die Stromversorgung des Arduino-Boards liefert nicht ausreichend Strom für das
Blackmagic Shield. Wenn Sie jedoch das Blackmagic Shield an das Stromnetz anschließen,
wird auch der Arduino mit Strom versorgt. Stellen Sie also sicher, dass lediglich Ihr
Blackmagic Shield mit dem Netzstrom verbunden ist.
96Erste Schritte
Anschließen an SDI-Equipment
Ist eine Verbindung zum Stromnetz hergestellt, können Sie das Blackmagic 3G-SDI Shield for Arduino
an Ihr SDI-Equipment anschließen. So schließen Sie bspw. einen Mischer und eine Blackmagic
URSA Mini an:
1 Schließen Sie den Programmausgang Ihres Mischers an den SDI-Eingang des Blackmagic
3G-SDI Shields an.
2 Verbinden Sie den SDI-Ausgang Ihres Blackmagic 3G-SDI Shields mit dem mit „PGM“
gekennzeichneten SDI-Programmeingang Ihrer URSA Mini.
Ein Anschlussdiagramm finden Sie weiter unten.
SDI IN
SDI OUT
Switcher
SDI ‘PGM’ Input
Blackmagic 3G-SDI Shield for Arduino
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 Shield for Arduino können Sie auch für die Steuerung anderer
Blackmagic Design Produkte wie bspw. des Blackmagic MultiView 16 benutzen. Wenn Sie Ihr
Shield an Eingang 16 koppeln, können Sie so Tally-Umrandungen in der Mehrfachansicht
anzeigen. Wenn Sie Blackmagic URSA Mini Kameras verwenden, stellen Sie sicher, dass das
Grid-Overlay eingeschaltet ist, damit das Tally-Display im Suchmonitor aktiviert wird. Für
weitere Informationen sehen Sie in der Bedienungsanleitung Ihrer Blackmagic Kamera nach.
97Erste Schritte
Softwareinstallation
HINWEIS Laden Sie die aktuellste Arduino IDE Software von www.arduino.cc herunter und
installieren Sie sie auf Ihrem Computer. Installieren Sie erst dann das Blackmagic 3G-SDI
Shield for Arduino Setup-Dienstprogramm.
Nachdem Sie die Arduino-Software installiert haben, können Sie die Blackmagic 3G-SDI
Shield Produktsoftware installieren.
Installieren der Produktsoftware
Blackmagic Shield for Arduino Setup dient der Aktualisierung der Produktsoftware Ihres Shields. Die
Produktsoftware kommuniziert mit dem Arduino-Board und steuert es mithilfe von ArduinoBibliotheksdateien. Diese Bibliotheksdateien werden zusammen mit der Setup-Software installiert. Sie
müssen lediglich den Ordner mit den Dateien kopieren und in den Arduino-Anwendungsordner
einfügen. Informationen zu den Bibliotheksdateien und wie diese installiert werden, finden Sie im
nächsten Kapitel dieses Handbuchs.
Wir empfehlen Ihnen, die aktuellste Blackmagic 3G-SDI Shield for Arduino Software herunterzuladen
und Ihr Shield auf den aktuellsten Stand zu bringen, damit Sie von neuen Funktionen und
Verbesserungen profitieren können. Die aktuellste Version steht im Blackmagic Design Support
Center unter www.blackmagicdesign.com/de/support zum Download bereit.
So installieren Sie die Produktsoftware unter Mac OS X:
1 Laden Sie die Blackmagic Shield for Arduino Software herunter und entpacken Sie sie.
2 Öffnen Sie das Speicherabbild und starten Sie das Blackmagic Shield for Arduino
Installationsprogramm. Folgen Sie den Anweisungen auf Ihrem Bildschirm.
3 Nachdem die aktuellste Version des Blackmagic Shield for Arduino Installationsprogramms
eingespielt wurde, versorgen Sie Ihr Blackmagic Shield mit Strom und verbinden Sie es per
USB-Kabel mit Ihrem Computer.
4 Starten Sie nun das Setup-Dienstprogramm und folgen Sie der Aufforderung auf Ihrem
Bildschirm für die Aktualisierung der Produktsoftware Ihres Shields. Sollte diese Aufforderung
nicht erscheinen, so ist Ihre Produktsoftware auf dem neuesten Stand. Keine weiteren
Aktionen Ihrerseits sind notwendig.
So installieren Sie die Produktsoftware unter Windows:
1 Laden Sie die Blackmagic Shield for Arduino Software herunter und entpacken Sie sie.
2 Nun sollten Sie einen Blackmagic Shield for Arduino Ordner sehen. Darin finden Sie dieses
Handbuch und das Blackmagic Shield for Arduino Installationsprogramm. Doppelklicken
Sie auf das Installationsprogramm und folgen Sie den Anweisungen zur Fertigstellung der
Installation auf dem Bildschirm.
3 Nachdem die aktuellste Version des Blackmagic Shield for Arduino Installationsprogramms
eingespielt wurde, versorgen Sie Ihr Blackmagic Shield mit Strom und verbinden Sie es per
USB-Kabel mit Ihrem Computer.
4 Starten Sie nun das Setup-Dienstprogramm und folgen Sie der Aufforderung auf Ihrem
Bildschirm für die Aktualisierung der Produktsoftware Ihres Shields. Sollte diese Aufforderung
nicht erscheinen, so ist Ihre Produktsoftware auf dem neuesten Stand. Keine weiteren
Aktionen Ihrerseits sind notwendig.
98Softwareinstallation
Installieren der Arduino
Bibliotheksdateien
Die Programme zur Steuerung Ihres Arduinos werden als Sketche bezeichnet. Ihr Blackmagic 3G-SDI
Shield for Arduino macht von Bibliotheksdateien Gebrauch, um das Schreiben von Sketchen zu
vereinfachen. Nach der Installation der Konfigurationssoftware Ihres Shields werden die
Bibliotheksdateien in einem Ordner namens „Library“ (Bibliothek) gespeichert. Kopieren Sie den
Ordner mit den Bibliotheksdateien und fügen Sie ihn in den „Library“-Ordner Ihres Arduino ein.
HINWEIS Während der Installation von Bibliotheken muss die IDE-Software
geschlossensein.
So installieren Sie Bibliotheksdateien unter Mac OS X:
1 Öffnen Sie „Blackmagic Shield for Arduino“ im Ordner „Programme“.
2 Öffnen Sie den Ordner „Library“ und führen Sie auf dem Ordner „BMDSDIControl“ einen
Rechtsklick aus. Wählen Sie anschließend „Kopieren“.
3 Gehen Sie nun zum 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 Shield for Arduino“.
2 Sie sehen nun einen Unterordner mit dem Namen „Library“. Öffnen Sie diesen und kopieren
Sie den Ordner mit dem Namen „BMDSDIControl“ per Rechtsklick.
3 Gehen Sie nun zum 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-IDESoftware zu programmieren. Weitere Informationen finden Sie im Abschnitt „Programmieren von
Arduino-Sketchen“.
HINWEIS Wenn in Zukunft ein Update der Bibliotheksdatei mit Beispielen
herausgegebenwird, müssen Sie den alten „BMDSDIControl“-Ordner löschen und ihn
mitdem neuen Ordner ersetzen. Folgen Sie den Anweisungen oben.
99Installieren der Arduino Bibliotheksdateien
Blackmagic Shield for Arduino Setup
Über die Blackmagic Shield for Arduino Setup Software können Sie Änderungen der Einstellungen an Ihrem
Shield vornehmen. Dazu gehören bspw. die I2C-Adresse und das Videoausgabeformat
Wenn Blackmagic Shield for Arduino Setup auf Ihrem Computer installiert ist, können Sie darüber die
Einstellungen Ihres Shields ändern. Dazu gehört die „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.
2
C-Adresse wie Ihr Shield verwendet. Das führt zu einem
100Blackmagic Shield for Arduino Setup
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.