Blackmagic HyperDeck Studio HD Plus

Blackmagic HyperDeck Disk Recorders RS-422 Control

Blackmagic HyperDeck Studio HD Plus

What is RS-422 Control?

The RS-422 standard is a serial deck control broadcast standard and has been used by broadcasters since the early 1980s and is found on many decks, linear editors, nonlinear editors and broadcast automation products. All current HyperDeck models support this standard so can be integrated into broadcast automation, remote control systems, editing systems and any kind of custom control you might like to design yourself.

HyperDeck Studio also supports file based commands from the Advanced Media Protocol via RS-422. This lets you control your HyperDeck with an external device using AMP commands such as adding clips to a playlist, determining the filename of the next clip, looping a single clip or timeline, or clearing a playlist.

Using an External RS-422 Controller

All current HyperDeck models feature an industry standard Sony™ compatible RS-422 deck control port, which has the correct pin connections for a direct connection to any remote controller with RS-422, for example HyperDeck Extreme Control.

You can use pre-manufactured 9 pin cables as long as each end of the cable is wired ‘pin for pin’ where the same pin numbers on each end of the cable are connected together. If you would like to make custom cables, please refer to the accompanying wiring diagram.

You can remotely control your HyperDeck from HyperDeck Extreme Control instead of locally pushing buttons.

  1. Connect a video signal to your HyperDeck’s video input.

  2. Connect an RS-422 cable from your HyperDeck Extreme Control to your HyperDeck Studio.

  3. Enable remote control by pressing the remote button on the front control panel, or via the LCD menu in HyperDeck Studio Mini, to allow remote deck control.

You can now remotely start and stop recording and playback of your HyperDeck as well as performing other common jog and shuttle functions. The full list of supported RS-422 commands is in the following section named ‘supported RS-422 commands’.

Receive (–)

Receive (+)

Transmit (–)

Transmit (+)

Ground Pins

2

7

8

3

1, 4, 6, 9

RS-422 remote pin connections

Make sure your HyperDeck has remote set to ‘on’ in the LCD menu, or via the front panel remote button, to enable RS-422 deck control

All HyperDeck models support remote control via the RS-422 port on the rear panel

Supported RS-422 Commands

Command

Reply

No Remote

Notes

0 - System Control

0x00

0x11

DeviceTypeRequest

NTSC: 0xF0E0 PAL: 0xF1E0 24P: 0xF2E0

Enabled

1 - Slave Response

0x20

0x00

Stop

Acknowledge

Disabled

0x20

0x01

Play

Acknowledge

Disabled

0x20

0x02

Record

Acknowledge

Disabled

0x20

0x04

StandbyOff

Acknowledge

Disabled

0x20

0x05

StandbyOn

Acknowledge

Disabled

0x20

0x0F

Eject

Acknowledge

Disabled

0x20

0x10

FastFwd

Acknowledge

Disabled

0x21

0x11

JogFwd1

Acknowledge

Disabled

0x22

0x11

JogFwd2

Acknowledge

Disabled

Treated as N=1; Same as JogFwd1

0x21

0x12

VarFwd1

Acknowledge

Disabled

Uses ShuttleFwd1

0x22

0x12

VarFwd2

Acknowledge

Disabled

Treated as N=1; Same as VarFwd1

0x21

0x13

ShuttleFwd1

Acknowledge

Disabled

0x22

0x13

ShuttleFwd2

Acknowledge

Disabled

Treated as N=1; Same as ShuttleFwd1

0x20

0x20

Rewind

Acknowledge

Disabled

0x21

0x21

JogRev1

Acknowledge

Disabled

0x22

0x21

JogRev2

Acknowledge

Disabled

Treated as N=1; Same as JogRev1

0x21

0x22

VarRev1

Acknowledge

Disabled

Uses ShuttleRev1

0x22

0x22

VarRev2

Acknowledge

Disabled

Treated as N=1; Same as VarRev1

0x21

0x23

ShuttleRev1

Acknowledge

Disabled

0x22

0x23

ShuttleRev2

Acknowledge

Disabled

Treated as N=1; Same as ShuttleRev1

0x20

0x30

Preroll

Acknowledge

Disabled

0x24

0x31

CueData

Acknowledge

Disabled

0x20

0x34

SyncPlay

Acknowledge

Disabled

0x20

0x40

Preview

Acknowledge

Disabled

Status bits are set

0x20

0x41

Review

Acknowledge

Disabled

Status bits are set

0x20

0x43

OutpointPreview

Acknowledge

Disabled

0x22

0x5C

DMCSetFwd

Acknowledge

Disabled

0x22

0x5D

DMCSetRev

Acknowledge

Disabled

0x20

0x60

FullEEOff

Acknowledge

Disabled

0x20

0x61

FullEEOn

Acknowledge

Disabled

0x20

0x63

SelectEEOn

Acknowledge

Disabled

4 - Preset/Select Control

0x40

0x10

InEntry

Acknowledge

Disabled

0x40

0x11

OutEntry

Acknowledge

Disabled

0x44

0x14

InDataPreset

Acknowledge

Disabled

0x44

0x15

OutDataPreset

Acknowledge

Disabled

0x40

0x18

InShift+

Acknowledge

Disabled

0x40

0x19

InShift-

Acknowledge

Disabled

0x40

0x1A

OutShift+

Acknowledge

Disabled

0x40

0x1B

OutShift-

Acknowledge

Disabled

0x40

0x20

InReset

Acknowledge

Disabled

0x40

0x21

OutReset

Acknowledge

Disabled

0x40

0x22

AInReset

Acknowledge

Disabled

0x40

0x23

AOutReset

Acknowledge

Disabled

0x44

0x31

PrerollPreset

Acknowledge

Disabled

0x40

0x40

AutoModeOff

Acknowledge

Disabled

ignored, Status bit remembered

0x40

0x41

AutoModeOn

Acknowledge

Disabled

ignored, Status bit remembered

0x41

0x37

InputCheck

Acknowledge

Disabled

6 - Sense Request

0x61

0x0A

TimeCodeGenSense

0x61

0x0C

CurrentTimeSense

0x60

0x10

InDataSense

InData

Enabled

0x60

0x11

OutDataSense

OutData

Enabled

0x60

0x12

AInDataSense

AInData

Enabled

0x60

0x13

AOutDataSense

AOutData

Enabled

0x61

0x20

StatusSense

StatusData

Enabled

0x60

0x2B

RemainTimeSense

RemainTimeData

Enabled

0x60

0x2E

SpeedSense

SpeedData

Enabled

0x60

0x31

PrerollTimeSense

PreRollTimeData

Enabled

0x60

0x36

TimerModeSense

TimerModeData

Enabled

0x60

0x3E

RecordInhibitSense

RecordInhibitStatus

Enabled

7 - Sense Reply

0x78

0x00

Timer1Data

Current Time and

00:00:00:00

0x78

0x04

LTCUserBitsTimeData

Current Time and

00:00:00:00

0x78

0x06

VITCUserBitsTimeData

Current Time and

00:00:00:00

0x74

0x06

VITCTimeData

Current Time

0x74

0x07

UserBitsVITCTimeData

00:00:00:00

0x74

0x08

GenTCData

Current Time

0x78

0x08

GenTCUBData

Current Time and

00:00:00:00

0x74

0x09

GenUBData

00:00:00:00

0x74

0x10

InData

0x74

0x11

OutData

0x74

0x12

AInData

0x74

0x13

AOutData

0x74

0x14

CorrectedLTCTimeData

Current Time

0x70

0x20

StatusData

Please see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated

0x76

0x2B

RemainTimeData

0x71

0x2E

SpeedData

0x74

0x31

PrerollTimeData

0x71

0x36

TimerModeData

Returns 0 (TimeCode)

0x72

0x3E

RecordInhibitStatus

A - Advanced Media Protocol

0xA1

0x01

AutoSkip

Acknowledge

Disabled

8-bit signed number of clips to skip from current clip

0xAX

0x15

ListNextID

IDListing

Enabled

when x = 0 single clip request when x = 1, # clips can be specified in the send data

0x20

0x29

ClearPlaylist

Acknowledge

Disabled

0x41

0x42

SetPlaybackLoop

Acknowledge

Disabled

Bit 0 loop mode enable, 0=false 1=true Bit 1 is single clip/timeline 0=single clip 1=timeline

0x41

0x44

SetStopMode

Acknowledge

Disabled

0 = Off 1 = Freeze on last frame 2 = Freeze on next clip 3 = Show black

0x4f

0x16

AppendPreset

Acknowledge

Disabled

2 Bytes for the length N

of the clip name N Bytes for each character of the clip name

4 Byte in point timecode

(format is FFSSMMHH) 4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x82

0x02

BMDSeekToTimelinePosition

Acknowledge

Disabled

16-bit big endian fractional position [0..65535]

0x81

0x03

BMDSeekRelativeClip

Acknowledge

Disabled

One-byte signed integer, which is the number of clips to skip (negative for backwards).

0x87

0x04

BMDScrubTimelineDelta

Acknowledge

Disabled

1 Byte unsigned integer, which is the whence, where 0 = Set 1 = Current

2 = End 4 Byte 32bit big endian unsigned integer, which is the delta to scrub by.

1 Byte signed integer, which is the delta’s sign, where a value less than 0 will set the delta scrub to a negative value.

1 Byte unsigned integer, which is the unit of time to scrub by, where

0 = Frames 1 = Milliseconds

0x85

0x05

BMDPlay

Acknowledge

Disabled

2 Bytes 16bit big endian signed integer, which is the speed to play at, where a value of 100 = 1.0x

1 Byte unsigned integer, which is the playback flags bitfield, where

bit 0 = Loop bit 1 = SingleClip 1 Byte unsigned integer,

which is the playback type, where 0 = Play 1 = Jog 2 = Shuttle

3 = Var 1 Byte unsigned integer, which is the scroll boolean flag, where 0 evaluates as false and all other values evaluate as true.

0x80

0x06

BMDClip

Acknowledge

Disabled

RS-422 Developer Information

bit 7

bit 6

bit 5

bit 4

bit 3

bit 2

bit 1

bit 0

Byte 0

0

0

Cassette out

Servo Ref

0

0

0

Local

Byte 1

Standby

0

Stop

0

Rewind

Forward

Record

Play

Byte 2

Servo Lock

0

Shuttle

Jog

Var

Direction

Still

1

Byte 3

Auto Mode

0

0

0

Aout Set

Ain Set

Out Set

In Set

Byte 4

Select EE

Full EE

Loop Playback

0

0

0

0

0

Byte 5

Scroll

0

0

0

Loop Clip

0

0

0

Byte 6

0

Lamp Still

Lamp Fwd

Lamp Rev

0

0

0

0

Byte 7

0

0

0

0

0

0

0

0

Byte 8

0

0

Near EOT

EOT

0

0

0

Rec Inhibit

Byte 9

0

0

0

0

0

0

0

0

Variables

Cassette Out

Set if no SSD is present

Local

Set if Remote is disabled (local control)

Standby

Set if a disk is available

Direction

Clear if playback is forwarding, set if playback is reversing

Still

Set if playback is paused, or if in input preview mode

Auto Mode

Set if in Auto Mode

Select EE, Full EE

Set if in input preview mode

Lamp Still/Fwd/Rev

Set according to playback speed and direction

Near EOT

Set if total space left on available SSDs is less than 3 minutes

EOT

Set if total space left on available SSDs is less than 30 seconds

Others

Cue Complete (byte 2, bit 0)

Always 1: Cue requests are always instantaneous

HyperDeck Serial RS-422 Protocol

Protocol

Based on Sony 9-pin protocol

Interface

Baud rate

38.4 Kbps

1 start bit

8 data bits

1 stop bit

1 parity bit

Odd parity

Was this information helpful?