Interfacing a Grass Valley control surface

By Trevor Brown:

Something a little different, but still with a link to older equipment and preservation, Trevor Brown reports on his project to interface a Grass Valley GVG-100 control surface to the vMix software. This is just a synopsis of something he has been working on for nearly 2 years, the full reports and investigations can be found in the free electronic issues of CQ-DATV which are available from the link above, the articles start in issue 68 – February 2019.


Back in 1959, Grass Valley was born, a company that produced equipment for the television broadcast industry. In 1968 they introduced their first vision mixer, or production switcher as they are better known in the USA. They then added a whole range of production switchers from the small to the very grand, but the small GVG-100 is the one that captured everyone’s imagination. The unit was in two halves, a crate which was rack mounted and an extremely attractive control surface housed in a desk top case. The two units were linked by a small cable carrying RS422 serial commands.

The crate first appeared as a small 3U unit that could mix composite video and was followed later by a larger crate that brought component mixing to the party. The control panel was able to drive either version. Later a separate company, Ross, designed and built an SDI (digital TV) mixer crate that again connected to the same control panel and used the same protocol. This was a brave move, as it enabled Ross to produce a very price competitive switcher. As the most expensive part of any mixer is the control surface being able to re-use an existing panel was a popular move. The cut buttons ordered as replacement items alone were over £30 each! They have a genuinely nice feel and can be customised by printing the source name onto an overhead projector gel, cutting, and fitting it inside the button.

The communication from the panel to the crate uses RS 422, a standard that was extremely popular with linear edit suites. The GVG mixer can be controlled via this, using P2 protocol and there is a button on the panel to pass control to an edit controller.

The Grass Valley Mixer control surface. The top set of 10 yellow buttons is the key bank. The red bank of buttons controls the on air or PGM and the bottom white buttons are the PST or pre-set where the on-air source is previewed, before being switched to on air.


If we understand how the GVG panel works we can then investigate how to interface it to something else. The GVG mixer was brilliant mixer in its day, but dated now. The heart of the logic is a 6801 microprocessor and, unfortunately, this is not the kind of processor with an external EPROM, which could be removed to look at the code and perhaps on a good day change it. I decided to investigate making it work without the processor.

Board showing processor socket.

Remove the case, eight screws at the bottom of the unit and we are inside the control panel, remove the processor. The unit requires two power supply rails to stand alone, these were in the original crate and are +9V and +14V.

J3 is for power and it is connected to the 15 pin D connector on the bottom so you can either power it through the D connector or remove the ribbon cable and connect to J3 direct. The +9V is further regulated on the panel by a pair of 5V regulators and draws about 300 mA. The 14V has no further regulation and may need as much as 1.5A in the worst case with all the lamps lit. Later panels were fitted with LEDs and reduced this consumption considerably.

Power connections.

With the processor removed the only way to communicate with the panel is via the processor socket and a header plug or via J2 (IDC Connector) which carries the same data address and command connections.

The processor used to communicate all the button presses to the crate which in turn replied with which lamps to light, via the RS422 data link, again on the 15 way D connector, with the processor removed all this has gone and we have a very dumb control panel.

The GVG Processor I/O connections.

The processor I/O is where the states of all the switches and analogue controls are read, and the panel lamps controlled via communications with the crate. The processor has control over the panel via a 4-bit address bus, 8 data connections and 5 command lines. These are all outputs from the processor, except for the data lines which are bidirectional. If we can take possession of the 17 lines then we can do everything the processor did, all we have to do is map out the hardware, then, working backwards, plan how to read a button or light a lamp.

I2C interface dongle

My first thoughts on pulling the micro was to fit a header plug and build three 8 bit i2c port chips (PCF 8574s). Plan B was to interface the same three port chips via the J2 socket, where all of the 17 I/O connections are also available. This allows us to have i2c access to the control panel. Then we need a way to quickly to manipulate the i2c bus, verify we have control, map out the hardware, and develop routines for controlling the mixer panel. I decided to use the ESP 8266 development module, running “Annex BASIC” and, via the i2c bus, control the three chips that now replace the GVG processor. In this way I can make some sense of the hardware interconnections within the panel.

The three PCF8574 chips essentially become an exploratory dongle supplying an i2c interface to the GVG panel.

THE GVG Exploratory dongle (header plug).

My junk box was without a header plug, so the i2c dongle was constructed on a prototyping board with connections to J2. Since then we have developed a Mk1 PCB and a Mk2 is underway.

The PCF 8574. The i2c address can be set by A0 A1 A3 (explained later).

Interfacing to vMix

Once we have the lamps and buttons working in harmony, we need to communicate the panel commands out to a commercial software package; vMix ( was chosen. This will process the video effects and produce streaming data. vMix can be used by mouse clicks or PC Keyboard commands. This software is commercial, but there are two free options, a time limited full option and limited function option that does not time expire.

I started with the full-time limited version, but it expired so I am running with the free version. This will only allow four video inputs. While all ten lights work on the GVG panel you can only have the first four buttons fully working unless you purchase a full version of the software.

The vMix shortcuts menu page.

The vMix short cut menu (top right on the front panel) allows you to assign functions to PC keyboard commands, useful to get the hang of what the command does. The other shortcut choice is MIDI (Musical Industry Digital Interface). This is how our GVG panel communicates with vMix. Annex Basic will not deliver MIDI data so we have added a second processor that will, an Arduino Pro. This processor is in slave mode and interfaces to the i2c bus at address 7. The Arduino processor runs a separate programme in C+ to convert the data sent to i2c address 7 to a MIDI note of the same value. In vMix we have set up a table to match the GVG key press or MIDI note to a vMix operation.

The Arduino micro translates all i2c communication to a three function MIDI note (channel, note and value). The last field is not used as the GVG panel is not a musical instrument. All the notes use CH3 with one exception, 76, which is will deliver analogue data as a sandwich: 76 followed by a single data byte of analogue data followed by 76 and the next analogue data byte and so on. This is how the GVG T-bar communicates with vMix.


The T-Bar will not use the wipe buttons to select its effect. It will instead use the effect set here on the vMix control screen.

The Mk1 PCB has two additional PCF 8574s located at i2c address locations 57 and 69, these are not required to drive vMix, but I have been experimenting with camera tally lights. vMix has a better inbuilt camera tally light system.

Controlling a pan and tilt head

An added optional module is the PCA 9685, this is connected to the i2c bus and controls up to sixteen SG 90 or larger servo modules. One pair is used to control a small pan and tilt webcam. Larger servo modules can be used but beware – some of them can consume several amps on stall and overload the +5V supply from the GVG panel, so a separate supply is advisable for the large modules.

The software can select any one of four sockets and the matt box. The chroma control will control pan and the luminance control will control tilt. I do not have zoom or focus on my webcam, but the hue control will control a third servo for this purpose, if required.

A PCA 9685 module is needed to control the remote Camera Pan and Tilt.
The re-purposed GVG controls that now control the Pan and Tilt.
Inexpensive Pan and Tilt Head. Four of these are selectable via the 5 yellow buttons below the OLED display. Normal returns the control to the mixer.

Other controls

So far, I have repurposed the following GVG controls:

Positioner and Reverse will start and stop the hard disc recorder.

Fade to Black will do exactly that, but not show on the PGM monitor in vMix.

The wipe buttons will select the DVE effect (and display on the OLED screen which one).

Auto Trans will switch the PST and PGM banks.

Mix and Wipe will toggle the Auto Trans between Mix and DVE effect.

Key Bank will animate in a strapline for input 1 (free software), more on full versions of vMix.

Key 9 will animate out any strapline.

The T-Bar will DVE or mix PST source to PGM and, if completed, will switch PGM and PST to keep in sync.

Matte Box chroma and luminance will pan and tilt a remote camera head as detailed above.

An OLED display has replaced the 7-segment “duration of effect” display and will show the DVE effect selected and PST source.