GV I/O 4.0: Third-Party Control
VDCP and AMP Support
by Damon Hawkins, April 2021
VDCP
Introduction
In GV I/O release v4.0, support for VDCP (Video Disk Control Protocol) has been implemented to allow third-party control of the GV I/O video server, as required by many customers. VDCP is a broadcast industry standard, developed over 10 years ago to support remote control of video servers. It is a serial interface similar to the Sony 9-pin format used for VTRs and is still widely used for controlling video servers. As GV I/O lacks a serial RS-422 port, VDCP control is achieved over IP via a Perle IOLAN SDG Serial RS-422 to IP converter device, which must be purchased separately.
Requirements
The Perle IOLAN SDG4 device has been validated by Grass Valley engineering for VDCP use as an RS-422 to IP converter. It features 4 x RJ45 connectors with software-selectable RS-232/422/485 interfaces, 10/100/1000 Ethernet, advanced data encryption, user authentication, event management security features, IPv6 support, COM port redirector, and 15kv ESD protection.
Description | Power Cord | Product Part Number |
---|---|---|
IOLAN SDG4 Device Server | USA | 04031854 |
UK | 04031851 | |
EU | 04031852 | |
AUS | 04031856 | |
None | 04031858 |
After connecting the Perle box, VDCP must be selected as the control protocol under Channel Configuration within the GV I/O Web UI. Refer to Appendix 1 for Perle configuration details. This configuration is per channel, enabling the channel to receive VDCP commands from third-party automation devices.
Automation Settings Example: A screenshot shows a dropdown menu for 'Protocol' with 'VDCP' and 'AMP' as options. 'VDCP' is selected.
VDCP Command Set
The following tables detail the VDCP commands supported by GV I/O 4.0. Some VDCP commands are not applicable as they are not supported server functions.
VDCP Compatibility Matrix
Command | Description | Supported on GV I/O | Comments |
---|---|---|---|
0x.0C | Local Disable | X | To be implemented |
0x.0D | Local Enable | X | To be implemented |
0x.14 | Delete From Archive | X | Not supported in GV I/O or K2 |
0x.15 | Delete Protect ID | ||
0x.16 | UnDelete Protect ID | ||
1x.00 | Stop | ||
1x.01 | Play | ||
1x.02 | Record | Note that back-to-back record is NOT supported but GV I/O allows you to cue a record (Record Init command) while a current record is in progress; in which case the current record will be prematurely terminated (this is consistent with K2 behavior). | |
1x.03 | Freeze | X | Not supported in GV I/O or K2 |
1x.04 | Still | ||
1x.05 | Step | ||
1x.06 | Continue | ||
1x.07 | Jog | Currently a Play after a Jog plays from the beginning of the clip. With a Jog and the Eject, the clip position does not go back to 00:00:00:00. | |
1x.08 | Variable Play | ||
1x.09 | Unfreeze | X | Not supported in GV I/O or K2 |
1x.0A | EE mode | X | Not supported in GV I/O or K2 |
2x.1D | Rename ID | ||
2x.1E | Preset Std Time | X | Not supported in GV I/O or K2 |
2x.1F | New Copy | ||
2x.20 | Sort Mode | ||
2x.21 | Close Port | ||
2x.22 | Select Port | ||
2x.23 | Record Init | ||
2x.24 | Play Cue | ||
2x.25 | Cue with Data | ||
2x.26 | Delete ID | ||
2x.27 | Get From Archive | X | Not supported in GV I/O or K2 |
2x.29 | Clear | X | Not supported in GV I/O or K2 |
2x.2A | Send to archive | X | Not supported in GV I/O or K2 |
2x.2B | % to signal full | ||
2x.2C | Record init with data | Does not work with media that already exists | |
2x.2D | Select logical drive | X | Not supported in GV I/O or K2 |
2x.2E | System delete ID | X | Not supported in GV I/O or K2 |
2x.30 | Preset | X | Not supported in GV I/O or K2 |
2x.31 | Vid Compr Rate | X | Not supported in GV I/O or K2 |
2x.32 | Aud. Sample Rate | X | Not supported in GV I/O or K2 |
2x.33 | Aud. Comp. Rate | X | Not supported in GV I/O or K2 |
2x.34 | Audio IN Level | X | Not supported in GV I/O or K2 |
2x.35 | Audio OUT Level | X | Not supported in GV I/O or K2 |
3x.37 | Vid Compr Param | X | Not supported in GV I/O or K2 |
2x.38 | Select Output | X | Not supported in GV I/O or K2 |
2x.39 | Select Input | X | Not supported in GV I/O or K2 |
2x.3A | Record Mode | X | Not supported in GV I/O or K2 |
2x.41 | SubCarrier Adjust | X | Not supported in GV I/O or K2 |
2x.42 | Horiz Sync Timing | X | Not supported in GV I/O or K2 |
2x.43 | Disk Preroll | X | Not supported in GV I/O or K2 |
2x.50 | Copy File To | X | Not supported in GV I/O or K2 |
2x.51 | Delete File From | X | Not supported in GV I/O or K2 |
2x.52 | Abort Copy File To | X | Not supported in GV I/O or K2 |
2x.53 | Set Working Folder | Not part of the standard VDCP command set - added by Grass Valley | |
3x.01 | Open Port | 01 = Player; 81 = Recorder. The channel has to be configured accordingly | |
3x.02 | Next | ||
3x.03 | Last | ||
3x.05 | Port Status Request | ||
3x.06 | Position Request | Outstanding issue - clip position needs to be 00:00:00:00 or error after Jog + Eject rather than some old position | |
3x.07 | Active ID Request | ||
3x.08 | Device Type Request | ||
3x.10 | System Status Request | ||
3x.11 | ID List | ||
3x.12 | Get Working Folder | Not part of the standard VDCP command set - added by Grass Valley | |
3x.14 | ID Size Request | ||
3x.15 | IDs Added to Arch | X | Not supported in GV I/O or K2 |
3x.16 | ID Request | ||
3x.17 | Compr. Settings Request | X | Not supported in GV I/O or K2 |
3x.18 | IDs Added List | ||
3x.19 | IDs Deleted List | ||
3x.25 | Multi Port Status Request | X | Not supported in GV I/O or K2 |
5x.60 | Abort Macro# | X | Not supported in GV I/O or K2 |
5x.61 | Active Macro List | X | Not supported in GV I/O or K2 |
5x.62 | Macro Status | X | Not supported in GV I/O or K2 |
5x.63 | Copy File To | X | Not supported in GV I/O or K2 |
5x.64 | Get From Archive | X | Not supported in GV I/O or K2 |
5x.65 | Send to Archive | X | Not supported in GV I/O or K2 |
5x.66 | Prepare ID To Play | X | Not supported in GV I/O or K2 |
5x.67 | Close ID from play | X | Not supported in GV I/O or K2 |
AMP
Introduction
AMP commands are a list of commands specified in the "Video Disk Recorder Command and Control Specification" from Odetics Broadcast Corporation, along with new and extended commands added by Grass Valley. The Advanced Media Protocol (AMP) is an extension of the Odetics protocol. Several AMP commands are not applicable to GV I/O as they are not supported server functions.
AMP Command Set
The following tables detail the AMP commands supported by GV I/O 4.0.
AMP Compatibility Matrix
General Access
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
1 | Channel Less mode | |||
2 | Generic Socket interface |
Device Management
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
6 | 00.0C | Local Disable (Standard) | X | Not supported |
7A | 0X.1D | Local Enable (Standard) | X | Not supported |
7B | 0X.1D | Local Enable (Extended) | X | Not supported |
8 | 00.11 | Device Type Request | Returns Category 0xD8 Model 0x06 | |
9 | 20.04 | Standby Off | N/A | |
10 | 20.05 | Standby On | N/A | |
11 | 20.60 | EE Off | X | Not supported |
12 | 20.61 | EE On | X | Not supported |
13 | 21.62 | Set Mute Mode | X | Not supported (The command listed from the protocol causes an error. The number of bytes is invalid) |
14 | A8.20 | Set Device ID | ||
14 | A0.21 | Device ID Request | ||
15 | A0.2C | Device Name Request | ||
16 | 01.30 | Set Channel Definition | X | Not supported |
17 | 00.31 | Get Channel Definition | X | Not supported (Returns a channel definition not listed in the document) |
Transport Controls
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
18 | 2X.00 | Stop | Stop works. Scheduled Stop is not supported. | |
19 | 2X.01 | Play | Play works. Scheduled Play is not supported. | |
20 | 2X.02 | Record | ||
21 | 20.0F | Eject | ||
22 | 20.10 | Fast Forward | ||
23 | 2X.11 | Jog Forward | ||
24 | 2X.12 | Variable Forward | ||
25 | 2X.13 | Shuttle Forward | ||
26 | 20.20 | Rewind | ||
27 | 2X.21 | Jog Reverse | ||
28 | 2X.22 | Variable Reverse | ||
29 | 2X.23 | Shuttle Reverse | ||
30 | 2X.31 | Cue Up With Data | Using 24.31 jumps to the incorrect timecode and positions to half the value. Using variant 2E.31, all works correctly. 2C.31 does not work. | |
31 | 20.52 | Tension Release | X | |
32 | 40.20 | InReset | ||
33 | 40.40 | Auto Mode OFF | ||
34 | 40.41 | Auto Mode ON | ||
35 | 41.42 | Set Loop Playback Mode | ||
36 | 41.36 | Timecode Mode Preset | ||
37 | 41.43 | Set Widescreen Mode | ||
38 | 40.45 | Get Stop Mode | ||
39 | 41.44 | Set Stop Mode | StopMode is set, but only stop mode OFF works for back-to-back playing with AUTO MODE ENABLED. | |
40 | 44.05 | User Bits Preset | X | Send: 4405000000FA Recv: NAK. Being investigated. |
41 | 60.0B | State Change Latency Request | ||
42 | 61.0C | Current Time Sense | When tested with a recorder channel, the Current Time Sense command always returned a timecode of 00:00:00,00, regardless of which timecode format was requested. Works with player channel, but user bits are not supported (see User Bits Preset 44.05). | |
43 | 61.20 | Status Sense | ||
44 | AX.02 | Record Cue With Data | Works, but providing timecode data has no effect in GV I/O. |
Managing Clips on the Timeline
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
45 | 4X.14 | InPreset | Multiple clips can't be attached | |
46 | 4X.15 | Out Preset | Multiple clips can't be attached | |
47 | 4X.21 | Out Reset | Multiple clips | |
48 | 4F.16 | Append Preset | X | Returns ACK, but the clip is not added to the timeline |
49 | A0.06 | Preview In Reset | Multiple clips | |
50 | AX.07 | Preview Out Reset | Multiple clips | |
51 | 44.31 | Pre-Roll | Multiple clips | |
52 | AX.04 | Preview In Preset | Multiple clips can't be attached | |
53 | AX.05 | Preview Out Preset | ||
54 | AF.0A | Append Preview Preset | X | Returns ACK, but the clip is not added to the preview timeline |
55 | A1.32 | Set Ganging | X | Handled at the protocol level, but is not supported |
56 | A0.33 | Get Ganging | X | Handled at the protocol level, but is not supported |
57 | AX.34 | Set Ganging Information | X | Not supported |
58 | A0.35 | Get Ganging Information | X | Not supported |
59 | A8.11 | Erase Segment | Works, but the last frame is off by one: EraseSegment (in="01:09:03,00", out="01:09:13,00") results in (in="01:09:03,00", out="01:09:13,01", length="00:00:10,01) | |
60 | A0.16 | ID Loaded Request | ||
61 | AX.01 | Auto Skip |
Managing Stored Clips
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
62 | A0.26 | ID Count Request | ||
63 | AX.14 | List First ID | ||
64 | AX.15 | List Next ID | ||
65 | AX.18 | ID Status Request | ||
66 | A2.0E | Set Working Folder Request | ||
67 | A0.0F | Get Working Folder Request | ||
68 | A0.12 | IDs Changed List Request | A810: The short version of the method is working as expected with clips with names of exactly 8 characters. No more, no less. AA10: The extended version, however, does not work correctly - to be addressed | |
69 | AX.10 | Erase ID | ||
70 | A0.2A | List First Folder | ||
71 | A0.2B | List Next Folder | The command lists a set of folders correctly, but when there is no more folders to list, it returns 802b instead of 802a like the protocol is indicating | |
72 | AX.1C | Total/Available Storage Request | The A11C02 returns the same amount of data as the other A11C commands, but the protocol document is listing it differently | |
73 | A4.1D | Set Record Duration | When executing the command, the duration passed is halved and the record will be shorter than expected. To be addressed | |
74 | A2.31 | Create Folder | ||
75 | A2.28 | Rename Folder | X | To be addressed |
76 | A2.29 | Delete Folder | ||
77 | A2.25 | ID Start Time Request | ||
78 | A2.17 | ID Duration Request | ||
79 | AE.30 | Replace Edit | X | Not supported |
80 | AX.2D | Stripe Timecode | ||
81 | AX.2E | Set Mark In | ||
82 | AX.2F | Set Mark Out | ||
83 | AX.1A | Get Aspect Ratio Conversion Override | Upconversion works, down conversion doesn't. To be addressed | |
84 | A2.1B | Set Aspect Ratio Conversion Override | X | |
85 | AE.1E | Set Audio Gain | X | Not supported. Can't set the audio gain |
86 | AA.1F | Get Audio Gain | X | Not supported. Audio gain is always returning 0 |
87 | C0.28 | Abort Transfer ID | X | To be addressed |
88 | C1.27 | Transfer ID Status Request | ||
89 | C2.26 | Transfer ID | This command is obsolete. The Extended Transfer ID (C2.25) should be used. | |
90 | C2.25 | Extended Transfer ID | The method doesn't transfer the requested clip even when the command is accepted | |
91 | C2.29 | Network Delete | The command requires the host name to be specified. Working as expected |
Clip Data Information
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
92 | AA.08 | Set Clip Data | ||
93 | AA.13 | Clip Data Request |
Create a Sub-Clip
No. | Command | Description | Supported on GV I/O | Comments |
---|---|---|---|---|
94 | AX.19 | New Copy | Deep copying does not work: Deep copy with no marks → shallow copy is made. Deep copy with marks → no copies are made. | |
95 | AX.22 | Get Audio Track Labels | X | To be implemented |
96 | AX.23 | Set Audio Track Labels | X | To be implemented |
97 | A0.36 | Get Audio Input Tags | X | To be implemented |
98 | AA.37 | Set Audio Input Tags | X | To be implemented |
99 | A0.38 | Get Audio Output Tags | X | To be implemented |
100 | AA.39 | Set Audio Output Tags | X | To be implemented |
101 | A2.3A | Get AFD Setting | ||
102 | A2.3B | Set AFD Setting | X | To be addressed |
103 | A2.09 | Get Thumbnail |
Appendix: Configuration of the Perle Converter Box for VDCP
Introduction
The Perle box is an RS-422 to IP converter used to connect VDCP controllers or automation devices to the GV I/O, which lacks native automation RS-422 ports. The process involves VDCP controllers/automation connecting to a serial port on the Perle box, and a TruePort virtual COM port on the GV I/O machine connecting to the Perle box to complete the connection.
Pinouts
The pinouts on the Perle converter box are listed below. The 8-pin RJ45 connector is used for the connection to the RS-422 controller. Ensure you have the appropriate cable for connecting your serial devices to the IOLAN's serial ports.
If the VDCP controller uses a 9-pin D-type serial connector, an RJ45 to 9-pin D-type connector will be needed. For the 8-pin RJ45 male connector on the IOLAN SDG side, the pinouts from the Perle side are as follows:
Pinout | EIA-232 | EIA-422 | EIA-485 Full Duplex | EIA-485 Half Duplex | IOLAN SDG RJ45 8-pin | EIA-422 VDCP controller |
---|---|---|---|---|---|---|
1 | Power In | Power In | Power In | Power In | ||
2 (in) | DCD | TX+ | Rx (+) | |||
3 (out) | RTS | TxD+ | TxD+ | TxD+/RxD+ | ||
4 (in) | DSR | TxD- | TxD- | TxD/RxD- | Rx (--) | |
5 (out) | TxD | TxD- | TxD- | TxD/RxD- | Tx (+) | |
6 (in) | RxD | RxD+ | RxD+ | RX+ | ||
7 | GND | GND | GND | GND | RX- | Tx (--) |
8 (in) | CTS | RxD- | RxD- | |||
9 (out) | DTR | |||||
10 | Power Out | Power Out | Power Out | Power Out |
The pinout numbers on the controller side should be provided by the user, and the Tx and Rx should match the above table. Refer to the Perle user manual for more detailed information.
Configuration
The Perle box is configured via its WebManager portal. After connecting the VDCP controller or automation device to the Perle box's serial RS-422 connection, follow these steps:
- Access the portal at the Perle device's IP address (e.g., http://12.34.56.78).
- Log in using the default administrator credentials: username 'admin', password 'superuser'.
- Navigate to Configuration → Serial → Serial Port.
Select the port connected to the VDCP controller/automation device and click 'Edit'. Ensure the Profile is set to 'TruePort' (use the 'Change...' button if needed) and configure a TCP port for incoming connections.
Screenshot Description: The Perle WebManager interface is shown, highlighting the Serial Port configuration section. It displays serial ports with profiles set to 'TruePort' and lists TCP ports for connections. Another view shows the 'Advanced TruePort Settings' with options like 'Enable TCP Keepalive' checked.
TruePort Management Tool Installation
On the GV I/O machine, virtual COM ports need to be configured to connect to the Perle box ports. The first step is to install the TruePort driver on the GV I/O machine. Run the TruePort driver installer (e.g., trueport6.9-setup-w10-x64.exe) and follow the setup wizard using default settings.
TruePort Configuration
To configure the virtual COM ports on the GV I/O machine:
- Launch the TruePort Management Tool. The TruePort Adapter Wizard will open.
- Enter the IP address of the Perle box in the 'Device Server Network Location' field.
- Create the desired number of ports and specify a starting COM port number. For example, 4 COM ports (COM3 to COM6) are needed for 4 channels, mapping to channels 1 to 4 respectively.
Screenshot Description: A screenshot shows the 'Add TruePort Adapter Wizard' where users can select a COM port range, number of ports, and starting COM port. Another shows the 'TruePort Management Tool' listing installed adapters, including TruePort Serial Ports (COM3-COM6).
After the TruePort wizard completes, the configured TruePort COM ports should be listed in the GV I/O machine's Device Manager.
Connecting Ports to the Perle Box
With the correct TruePort adapter selected in the Perle DeviceManager:
- Click the 'Properties' button.
- Navigate to the 'Configuration' tab.
- Click the 'Settings' button.
In the settings window, configure the TCP connection port for each virtual COM port to match a port the Perle box is listening on. Ensure the 'Connection Mode' is set to 'Lite Mode' (the default 'Full Mode' should be changed).
Click the 'Settings...' button next to 'Client Initiated Connect' and apply the settings. This establishes the connection between a TruePort virtual COM port and a matching serial port on the Perle device.
Screenshot Description: A dialog shows 'Perle TruePort Adapter Properties' with tabs for General, Configuration, Driver, Details, and Events. The 'Configuration' tab is active, showing 'Connection Settings' for a COM port, including 'Lite Mode' and TCP port configuration. Another dialog shows 'Client-Initiated Connection Settings' with options for connection retries and delay.
GV I/O Configuration
Each channel of the GV I/O uses a predefined COM port:
- Channel 1 → COM3
- Channel 2 → COM4
- Channel 3 → COM5
- Channel 4 → COM6
GV I/O Configuration Tool Approach
Use the GV I/O web portal to configure the automation protocol for each channel:
- Open the GV I/O configuration portal (e.g., http://12.34.56.78:3000).
- Log in using the administrator username and password.
- Navigate to the Channels tab.
- Click the 'Configure' button for a channel.
- In the 'Automation Settings' card, select 'VDCP' as the automation protocol.
- Apply the configuration.
Screenshot Description: A screenshot of the GV I/O web portal shows the 'Channel Configuration' for Channel 1. Under 'Automation Settings', 'VDCP' is selected as the protocol.
Join the Conversation at GrassValleyLive on Facebook, Twitter, YouTube and Grass Valley on LinkedIn.
This product may be protected by one or more patents. For further information, please visit: www.grassvalley.com/patents. Grass Valley®, GV® and the Grass Valley logo are trademarks or registered trademarks of Grass Valley USA, LLC, or its affiliated companies in the United States and other jurisdictions. Grass Valley products listed above are trademarks or registered trademarks of Grass Valley USA, LLC or its affiliated companies, and other parties may also have trademark rights in other terms used herein. Copyright © 2021 Grass Valley Canada. All rights reserved. Specifications subject to change without notice.