Sony 9-Pin Remote Protocol

This is not the offical Sony 9-pin protocol. It is a summary for reference puroposes only. To obtain the protocol document, contact Sony directly. This is a prelimary version 4/27/95

Communication Format

The protocol is based on the EIA RS-422-A signal standard, usually at 38.4 kBit/s. The data are sent as 1 start bit + 8 data bits + 1 parity bit + 1 stop bit. Parity is odd: the bitwise sum of data bits 0 -7 and the parity bit is an odd number.

Command Block Format

The controlling device and the controlled device communicate through the interchange of command blocks. The bytes in each command block are assigned as follows:

CMD-1
Indicates the function and direction of the command, according to:
DATA COUNT
Indicates the number of bytes ( max 15 ) inserted between CMD-2 and CHECKSUM
CMD-2
Designates the command. Refer to the command table for definitions. Ex. CMD-1=0 and CMD-2=0C means LOCAL DISABLE.
DATA-1 to DATA-N
Data which correspond to those indicated by the command. Refer to the command table for data formats.
CHECKSUM
Lower eight bits of the sum of the bytes in the command block.

Communication Protocol

The protocol is initiated by the master. The slave should return a response within 9 msec. The response may be: The master should not send another command until receiving a response from the slave device. The master must also insure that no more than 10 msec lapses between bytes in a command block. The master must immediatly stop sending data when it receives a NAK + Error Data message. If the Error Data contains "Undefined Command" the master may immediatley send another command, otherwise it must wait at least 10 msec before sending another command. When the master does not receive a response from the slave within the 10 msec timeout, it may assume that communications have ceased and take appropriate measures.

Cabling

The pin assignments for the 9-pin cable are as follows:
  Pin  -    Master   -   Slave
--------------------------------
   1   - Ground      - Ground
   2   - Rcv A       - Xmit A
   3   - Xmit B      - Rcv B
   4   - Xmit Common - Rcv Common
   5   - Spare       - Spare
   6   - Rcv Common  - Xmit Common
   7   - Rcv B       - Xmit B
   8   - Xmit A      - Rcv A
   9   - Ground      - Ground
Auth - this varies alot: contact individual manufacturers for pinouts.

Command Table

This is the command table for the DVR-2000/2100. It is summarised here for reference purposes only. If you want to order it from Sony call the Kansas City supply center and hope you get someone who knows the part number for the recorder whose protocol you want to use.

Command				Response

00 0C Local Disable 10 01 Ack 00 11 Device Type Request 12 11 Device Type 00 1D Local Enable 10 01 Ack 20 00 Stop 10 01 Ack 20 01 Play 10 01 Ack 20 02 Record 10 01 Ack 20 04 Standby Off 10 01 Ack 20 05 Standby On 10 01 Ack 20 0F Eject 10 01 Ack 20 10 Fast Fwd 10 01 Ack 2X 11 Jog Fwd 10 01 Ack 2X 12 Var Fwd 10 01 Ack 2X 13 Shuttle Fwd 10 01 Ack 20 20 Rewind 10 01 Ack 2X 21 Jog Rev 10 01 Ack 2X 22 Var Rev 10 01 Ack 2X 23 Shuttle Rev 10 01 Ack 20 30 Preroll 10 01 Ack 24 31 Cue up with Data 10 01 Ack 20 34 Sync Play 10 01 Ack 21 38 Prog Speed Play + 10 01 Ack 21 39 Prog Speed Play - 10 01 Ack 20 40 Preview 10 01 Ack 20 41 Review 10 01 Ack 20 42 Auto Edit 10 01 Ack 20 43 Outpoint Preview 10 01 Ack 2X 54 Anti-Clog Timer Disable 10 01 Ack 2X 55 Anti-Clog Timer Enable 10 01 Ack 20 60 Full EE Off 10 01 Ack 20 61 Full EE On 10 01 Ack 20 63 Select EE On 10 01 Ack 20 64 Edit Off 10 01 Ack 20 65 Edit On 10 01 Ack 20 6A Freeze Off 10 01 Ack 20 6B Freeze On 10 01 Ack 44 00 Timer-1 Preset 10 01 Ack 44 04 Time Code Preset 10 01 Ack 44 05 User Bit Preset 10 01 Ack 40 08 Timer-1 Reset 10 01 Ack 40 10 In Entry 10 01 Ack 40 11 Out Entry 10 01 Ack 40 12 Audio In Entry 10 01 Ack 40 13 Audio Out Entry 10 01 Ack 40 14 In Data Preset 10 01 Ack 40 15 Out Data Preset 10 01 Ack 40 16 Audio In Data Preset 10 01 Ack 40 17 Audio Out Data Preset 10 01 Ack 40 18 In + Shift 10 01 Ack 40 19 In - Shift 10 01 Ack 40 1A Out + Shift 10 01 Ack 40 1B Out - Shift 10 01 Ack 40 1C Audio In + Shift 10 01 Ack 40 1D Audio In - Shift 10 01 Ack 40 1E Audio Out + Shift 10 01 Ack 40 1F Audio Out - Shift 10 01 Ack 40 20 In Flag Reset 10 01 Ack 40 21 Out Flag Reset 10 01 Ack 40 22 Audio In Flag Reset 10 01 Ack 40 23 Audio Out Flag Reset 10 01 Ack 40 24 In Recall 10 01 Ack 40 25 Out Recall 10 01 Ack 40 26 Audio In Recall 10 01 Ack 40 27 Audio Out Recall 10 01 Ack 40 2D Lost Lock Reset 10 01 Ack 4X 30 Edit Preset 10 01 Ack 44 31 Preroll time preset 10 01 Ack 41 32 Tape/Audo Select 10 01 Ack 41 33 Servo Ref Select 10 01 Ack 41 34 Head Select 10 01 Ack 41 35 Color Frame select 10 01 Ack 41 36 Timer Mode Select 10 01 Ack 41 37 Input Check 10 01 Ack 41 3A Edit Field Select 10 01 Ack 41 3B Freeze Mode Select 10 01 Ack 4X 3E Record Inhibit 10 01 Ack 40 40 Auto Mode Off 10 01 Ack 40 41 Auto Mode On 10 01 Ack 40 42 Spot Erase Off 10 01 Ack 40 43 Spot Erase On 10 01 Ack 40 44 Audio Split Off 10 01 Ack 40 45 Audio Split On 10 01 Ack 4X 98 Output H Phase 10 01 Ack 4X 9B Output Video Phase 10 01 Ack 4X A0 Audio Input Level 10 01 Ack 4X A1 Audio Output Level 10 01 Ack 4X A2 Audio Adv Level 10 01 Ack 4X A8 Audio Output Phase 10 01 Ack 4X A9 Audio Adv Out Phase 10 01 Ack 4X AA Cross Fade Time Preset 10 01 Ack 4X B8 Local Key Map 10 01 Ack 42 F8 Still Off time 10 01 Ack 42 FA Stby Off time 10 01 Ack 61 0A TC Gen Sense 74 08 Gen Time Data 79 09 Gen User Bits Data 74 00 Timer-1 Data 74 01 Timer-2 Data 74 04 LTC Time Data 74 05 User Bits (LTC) Data 61 0C Current Time Sense 74 06 VITC Time Data 74 07 User Bits (VITC) Data 74 14 Corrected LTC Time Data 74 15 Hold User Bits (LTC) Data 74 16 Hold VITC Time Data 74 17 Hold User Bits (VITC) Data 60 10 In Data Sense 74 10 In Data 60 11 Out Data Sense 74 11 Out Data 60 12 Audio In Data Sense 74 12 Audio In Data 60 13 Audio Out Data Sense 74 13 Audio Out Data 61 20 Status Sense 7X 20 Status Data 61 21 Extended VTR Status 7X 21 Extended Status Data 62 23 Signal Control Sense 7X 23 Signal Control Data 6X 28 Local Key Map Sense 7X 28 Local Key Map 61 2A Head Meter Sense 7X 2A Head Meter Data 60 2B Remaining Time Sense 76 2B Remaining Time 60 2E Cmd Speed Sense 7X 2E Cmd Speed Data 61 30 Edit Preset Sense 7X 30 Edit Preset Status 60 31 Preroll Time Sense 74 31 Preroll Time 60 36 Timer Mode Sense 71 36 Timer Mode Status 60 3E Record Inhibit Sense 72 3E Record Inhibit Status 60 52 DA Inp Emph Sense 71 52 DA Input Emphasis Data 60 53 DA PB Emph Sense 71 53 DA Playback Emphasis Data 60 58 DA Samp. Freq. Sense 71 58 DA Sampling Frequency Data 61 AA Cross Fade Time Sense 7X AA Cross Fade Time Data

Command Formats

00 0C Local Disable
Disables operation of the slave device from its control panel.
00 11 Device Type Request
Slave Responds with
12 11 Device Type
message, with 2 bytes of data:
Model               Data
DVR-2000 525/60     30 10
         625/50     31 10
DVR-2100 525/60     30 11
         625/50     31 11
00 1D Local Enable
Enable operation of slave device from local panel according to the local enable map set by the "4X B8" Local Key Map command.
10 01 ACK
Slave Sends this when it receives a command from Master.
11 12 NAK
When a communication error is detected, the slave sends this command with the data formatted as follows:
Bit		"1" Meaning
7		Time Out
6		Framing Error
5		Overrun Error
4		Parity Error
2		Checksum Error
0		Undefined command
20 00 Stop
Slave stops current motion.
20 01 Play
Slave Starts to play from current location. When the "Sync play" mode is selected from the System menu on the slave, "Play" has the same effect as 20.34 "Sync Play".
20 02 Record
Slave begins recording. Exactly what happens depends on Auto Mode, record lockout, and edit presets.
20 04 Standby Off
Turns off standby mode. For VTR, this causes the machine to unthread in stop. Affects EE/Tape selection. Available only in Stop mode.
20 05 Standby On
Turns on standby mode. For VTR, this causes the machine to stay threaded when in stop. Affects EE/Tape selection.
20 0F Eject
When this command is received, the slave will eject the tape.
20.10 Fast Fwd
When this command is received, the slave device will run in fast forward mode. The speed depends on the VTR; for the DVR2000 series it is 50 x play speed.
2X.11 Jog Forward
2X.12 Var Forward
2X.13 Shuttle Forward
When these commands are received the slave device will move forward with the speed indicated by DATA-1 and DATA-2.

When only DATA-1 is given, the speed wil be given by

		Tape Speed = 10^((N/32)-2) x play speed.
where N is the value of DATA-1. Some sample values are:
     Speed          Speed Data
      0.1            32  (20H)
      1.0            64  (40H)
      2.9            79  (4FH)
     48.7           118  (76H)

When a more precise speed value is required, then DATA-2 will be added. The speed formula for this case is

 
     Tape Speed = 10^((N/32)-2) + N'/256*(10^(((N+1)/32)-2)-10^((N/32)-2))

where N is the value of DATA-1 and N' is the value of DATA-2.

auth - in more standard terms, the formula says that DATA-2 is used to linealy interpolate between the value given by N and that of N+1.

The maximum jog speed is set in the System:System menu. The maximum Var speed is 3X play speed. The maximum shuttle speed is 50X play speed.

auth - There is considerable controversy over the minimum speed. For a speed value of 0, the above formula with only DATA-1 gives 10^-2, or .01 x play speed. The standard states that when a speed between 0 and the minumum is given, the slave moves at minimum speed. In fact, many editors and control systems intend a "Shuttle 0" command ( 21 13 00 ) to pause the device and have it stop without disengaging. Devices which fail to do so will creep about 1 frame/second in this situation.

20 20 Rewind
When it receives this command, the slave runs in reverse at maximum speed: on the DVR2000, this is 50xplay speed.
2X 21 Jog Rev
2X 22 Var Rev
2X 23 Shuttle Rev
When receiving one of the above commands, the slave will start running in accordance with the speed data defined by DATA-1 and DATA-2. For the maximum and minimum speed see the 2X.12 Shuttle Fwd command.
20 30 Preroll
When this command is received the slave will search to the preroll position defined as the value obtained by subtracting the preroll time set by the 44.31 Preroll Time Preset command from the IN POINT data stored in the IN ENTRY memory by the 40.10 In Entry command.
24 31 Cue Up With Data
Cues the slave to the indicated time. Time is formatted as follows:
        data-1      data-2      data-3     data-4
      | Frame | | Seconds | | minutes | | hours |
      | 10  1 | |   10 1  | |   10 1  | | 10 1  |
20 34 Sync Play
Prerolls the slave for the preset preroll time, then enters play mode.
21 38 Prog Speed Play +
21 39 Prog Speed Play -
These commands play back the slave device in steps of 0.1% within the range of +/- 25.5% of play speed. DATA-1 contains an 8-bit speed value. The deviation from nominal play speed is
        Deviation(%)=0.1 x speed value
20 40 Preview
20 41 Review
20 42 Auto Edit
When one of these commands is received the slave goes into the indicated mode.

This is all the spec states here. What actually happens is determined by the edit presets, in and out point selections, and ee/tape settings. Basically, all three set the device to the preroll position, and run at play speed up to the in point. In Preview, the slave switches to EE mode at the in point, and out at the out point, simulating the edit without disturbing the recording media. In review, the slave simply continues to play at the in point and rolls to the outpoint. In Auto Edit, the channels indicated by the edit presets are put into record at the in point and the recoding proceeds to the out point.

4X 30 Edit Preset
This command is used for selecting the edit mode and selection of preset audio and video channels.
DATA-1:
        Bit 7 Bit 6   Bit 5   Bit 4   Bit 3   Bit 2    Bit 1    Bit 0
              Insert Assemble Video            TC     A2 (Cue) A1 (Cue)
DATA-2:
        Bit 7 Bit 6   Bit 5   Bit 4   Bit 3   Bit 2    Bit 1    Bit 0
                                       DA4     DA3      DA2      DA1
when the 41.30 command is used, the audio channels are set as per the table in the Edit:Setup menu. When the 42.30 command is used and Bit1 or Bit0 of Data-1 are "1", the Cue channel is selected.
4X B8 Local Key Map
When the slave receives the 00.1D Local Enable command, the control panel may be used according to the local key map that was set by this command. When the slave receives the 00.0C Local Disable command all the keys, buttons, and adjustment controls on the control panel are disabled. The Eject button can always be used. If the slave receives the 41.B8 command, the local key map is preset by the block level in accordance with DATA-1. IF it receives the 4X.B8 command ( X > 2 ) The local key map is preset by the Switch level.

Block Level switches:


        Bit 7 Bit 6 Bit 5   Bit 4   Bit 3   Bit 2   Bit 1   Bit 0
                          Tracking Monitor  Audio   Video Transport
                          Control  Control Control Control Control

"1": This function will be enabled when in remote
"0": This function will be disabled in remote.

When DATA-2 or more are added, control data with two bytes per each block assigned by DATA-1 are added following DATA-1.

At present the transport switches are defined as follows:


          Bit 7   Bit 6   Bit 5   Bit 4   Bit 3   Bit 2   Bit 1   Bit 0
1st Byte Execute Preroll Search            Rec    Play    Stop   Standby
2nd Byte                                          Var     Jog    Shuttle

None of the other blocks have any switches assigned, but rather operate as follows:

Video Control: Video phase and Sync phase can be adjusted on the system menu in remote mode.

Audio Control: Audio levels and output phase can be adjusted on the Audio:DA out menu in remote mode.

Monitor Control: the wfm monitor output selection on the system:wfm monitor menu and the montior level adjustments and monitor out selection on the system:audio monitor menu can be adjusted in remote mode.

Tracking Control: Tracking adjustments in the system:tracking menu can be made in remote mode.

74 20 Status Data
When the slave receives a 61.20 Status Sense command, the following data will be sent back in response according to the request:
Data 0:
  • Bit 5: Tape Unthreaded (Cassette Out) When the tape is threaded, this is 0. When it is completely unthreaded this is 1. When threading or unthreading, who knows what it is.
  • Bit 4: Servo Ref Missing When servo reference is absent this is 1.
  • Bit 0: Local When remote operation is inhibited by the "remote/local" switch on the panel this is 1.
Data 1:
  • Bit 7: Standby When the tape is threaded and the scanner is locked but the tape is stopped, this is 1.
  • Bit 5: Stop When the machine is in full stop, this is 1. The thread state depends on the tape/ee and standby settings.
  • Bit 4: Eject When the tape is ejecting this is 1.
  • Bit 3: Rewind When the machine is in fast reverse this is 1.
  • Bit 2: Fast Fwd When the machine is in fast forward this is 1.
  • Bit 1: Record This bit goes from 0 to 1 some number of frames after the machine starts recording. For the DVR2000 we measured 5 frames. Others have varying delays on the record status.
  • Bit 0: Play This bit goes from 0 to 1 some number of frames after the machine starts playing. For the DVR2000 we measured 5 frames. Others have varying delays on the play status.
Data 2:
  • Bit 7: Servo Lock 1 indicates servos are locked. This is a necessary condition for an edit to occur correctly.
  • Bit 6: TSO Mode Bit is 1 in tape speed override: in this mode, audio and video are still locked though speed is off play speed by +/- up to 15%.
  • Bit 5: Shuttle
  • Bit 4: Jog
  • Bit 3: Var
  • Bit 2: Tape Dir
  • Bit 1: Still
  • Bit 0: Cue Up
Data 3:
  • Bit 7: Auto Mode
  • Bit 6: Freeze On
  • Bit 4: CF Mode
  • Bit 3: A Out
  • Bit 2: A In
  • Bit 1: Out
  • Bit 0: In
Data 4:
  • Bit 7: Select EE
  • Bit 6: Full EE
  • Bit 4: Edit
  • Bit 3: Review
  • Bit 2: Auto Edit
  • Bit 1: Preview
  • Bit 0: Preroll
Data 5:
  • Bit 6: Insert
  • Bit 5: Assemble
  • Bit 4: Video
  • Bit 3: A4
  • Bit 2: A3
  • Bit 1: A2
  • Bit 0: A1
Data 6:
  • Bit 6: Lamp Still
  • Bit 5: Lamp Fwd
  • Bit 4: Lamp Rev
  • Bit 3: Srch LED 8
  • Bit 2: Srch LED 4
  • Bit 1: Srch LED 2
  • Bit 0: Srch LED 1
Data 7:
  • Bit 5: Aud Split
  • Bit 4: Sync Act
  • Bit 2: Spot Erase
  • Bit 0: In/Out
Data 8:
  • Bit 7: Buzzer
  • Bit 6: Lost lock
  • Bit 5: Near EOT
  • Bit 4: EOT
  • Bit 3: CF Lock
  • Bit 2: Svo Alarm
  • Bit 1: Sys Alarm
  • Bit 0: Rec Inhib
Data 9:
  • Bit 7: Fnc Abort

auth - here's a code snippet for you c-heads.
char *StatusBitStrings[][8] =
{
	// Data 0
	{"         ","          ","Unthread  ","Svo Ref   ",
	 "          ","          ","          ","Local     "},
	// Data 1
	{"Standby   ","          ","Stop      ","Eject     ",
	 "Rewind    ","Fast Fwd  ","Record    ","Play      "},
	// Data 2
	{"Servo Lock","TSO Mode  ","Shuttle   ","Jog       ",
	 "Variable  ","Tape Rev  ","Still     ","Cue       "},
	// Data 3
	{"Auto Mode ","Freeze On ","          ","CF Mode   ",
	 "A Out     ","A In      ","Out       ","In        "},
	// Data 4
	{"Select EE ","Full EE   ","          ","Edit      ",
	 "Review    ","Auto Edit ","Preview   ","Preroll   "},
	// Data 5
	{"          ","Insert    ","Assemble  ","Video     ",
	 "A4        ","A3        ","A2        ","A1        "},
	// Data 6
	{"          ","Lamp Still","Lamp Fwd  ","Lamp Rev  ",
	 "Srch LED 8","Srch LED 4","Srch LED 2","Srch LED 1"},
	// Data 7
	{"          ","          ","Aud Split ","Sync Act  ",
	 "          ","Spot Erase","          ","In/Out    "},
	// Data 8
	{"Buzzer    ","Lost lock ","Near EOT  ","EOT       ",
	 "CF Lock   ","Svo Alarm ","Sys Alarm ","Rec Inhib "},
	// Data 9
	{"Fnc Abort ","          ","          ","          ",
	 "          ","          ","          ","          "},
};

The Status bits communicate much about the progress of a motion command. The precise timing of each signal varies almost from machine to machine, and many edit controlers expect certain timing behaviour of these signals. Herein lie many of the problems associated with edit controllers, edit timing, and just plain wacky transport behavior.

Not Yet Entered The typist has not yet docuemnted this feature.

Back to the Video Page

Rick Davis <rld@sgi.com>