GVG 100 panel to control ATEM - schematics wanted

22 posts / 0 new
Last post
Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
GVG 100 panel to control ATEM - schematics wanted

Hi,
I have just bought a GVG 110 panel with the intention of modify it to control the ATEM 1M/E mixer.
The idea is to replace the controller in the panel with an Arduino that then does the controlling of ATEM. 

It would help a lot to have the schematics for the GVG panel, so if someone has that and would be willing to sell it or to scan th schematics of the panel I would be very happy. 

Although the panel wont be able to control all functions it would give a great surface for live productions with nice buttons and a nice T-bar. 
I will share the design and code if anyone else is interested. 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Jonas, Nice idea, my advice

Jonas,

Nice idea, my advice would be to start by messaging Bazino, and see what he is doing around this, and if he can help you:

http://www.atemuser.com/forums/atem-vision-mixers/blackmagic-atems/fyi-gvg100-protocol-control-atem

Otherwise you should find a 15 pin serial port on the back of the panel that would like to the switcher: This is basically a RS422 connection with a few "custom pins"

I don't think GV still publish details about mixers that old, but my advice is to drop someone at Grass Valley a email or a call, and ask for someone to send you the specs, they publish many of their current protocols, and I've always found them to be very helpful when contacted directly.

http://www.grassvalley.com/docs/Manuals/switchers/kalypso/071-8063-08.pdf

Then you've always got a "hacker method", get a handle on the remote control of that mixer:

http://www.grassvalley.com/docs/Manuals/switchers/100/A75-087614-00.pdf

Then monitor the comms between a GV110 panel and the mixer, and reverse the protocol to find out what the panel is sending to the switcher on that 15 pin RS422 port. Once you've got that, just attach your microprocessor to the port internally, and replace the port on the back with a Network connection so you can link the ATEM.

If you can make it work, I bet there are loads of people that would love that modification, as my guess is there are loads of those old panels knocking around.

Good Luck, please let us know how you get on.

John

Offline

Location

Hyde Park,
United States
Joined: 09/01/2012
Posts: 53
Count me in

I would be one of those "loads of people"!!

rberk2 offered some additional information about the old panel.

You may find that you don't need to even open up the panel.  My read of the protocol is that the panel is completely addressable via the control cable.

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
I tried to email GVG through

I tried to email GVG through the official support details, but just got an (maybe automated) reply that this mixer is end-of-life and not supported...
However, I have been able to find what I believe is the schematics, so hopefully the option of replacing the controller is still alive.

The protocol that is published is for the editor control of the GVG 100. But given the information in the protocol there is a slight chance that it is the same protocol used for the panel. Is there anyone out there that happens to know if that is the case? Or has any Connection to someone who might know?

Since I dont have the actual switcher I dont have the option of listening to the real communication to reverse-engineer the protocol...

Offline

Location

Sydney
Australia
Joined: 17/02/2013
Posts: 203
my solution

I am currently writing the code for GVG110 control panel to control the ATEM (its a bit of a secret as I do not want to upset my friends@ BMD).
The only trick with this panel is you have to supply it with 14 volts and 9 volts which I am working on a single adaptor solution that will also power the micro-controller that I interface with.

I have finished the ATEM control via an edit controller using GVG100 protocol (will post video soon).

About 6 months ago I did an AMPEX AVC control panel to ATEM but that panel is way to big to transport about. http://www.intercom.net/~darren/sw/sw.htm

Baz

Where would I be without the 'undo' button

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Friends @ BMD??? Seriously........
bazinoz wrote:

as I do not want to upset my friends@ BMD)

Baz,

I wouldn't worry too much about that!!!

I know I wouldn't, and I think Jonas might have experience of BMD not acting entirely like a friend too. Not althogether surprising since they are a company not a person, but unless one of their reps tells you they don't like something you are doing (which I assure you they will do, if you do), I really wouldn't lose too much sleep over imagining what they are thinking.  

If you can help these guys with their old GVG110 panels, I'm sure it would be appreciated. It's a little strange, to come on the forum and say, "I can help you, but it's a secret, so I won't"? I hope you'll change your mind.

Good luck with your project anyway.

Cheers

John

Offline

Location

Hyde Park,
United States
Joined: 09/01/2012
Posts: 53
GVG Power Supply
bazinoz wrote:

The only trick with this panel is you have to supply it with 14 volts and 9 volts which I am working on a single adaptor solution that will also power the micro-controller that I interface with.

I'd be interested in this solution.

The GVG Panel has sense lines ("+ Sense" and "- Sense") are you using those?  My concern was with heavy current draw (old incandescent lamps) that the voltage may drop.  Of course, now that I type that, it occurs to me that incandescent lamps aren't as affected by voltage fluctuation.

Please keep us posted.

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
I have received the

I have received the schematics now, and the panel has arrived to Sweden so sometime next week I guess it will be in my hands...

Given the recent development and changes in the UDP protocol, I am actually more and more looking towards using a small pc between the panel and the mixer. Since I think you need a software control anyway (for mediaplayers, config etc, and because all functions wont be in the GVG 100 panel due to the available number of buttons) it might just as well interface the panel. A small pc with integrated touch-screen for example...

I still hope someone could help me with the protocol of the panel control, so I dont need to reverse engineer it... Any information is helpful.

For those wanting to use an microcontroller to talk directly to the ATEM, the good news is that there is a connector on the GVG 100 panel board that exposes all signals you need to take control of the panel. An Arduino would for example work well I think. Just remove the existing controller from its socket, and plug the arduino into the test socket available. You need 8 bi-directional port pins for the data bus and another 9 output pins for the address bus and the latch signals. No soldering on (or other modification of) the original board is needed. You even get a +5V for the controller on this test socket.

Offline

Location

Sydney
Australia
Joined: 17/02/2013
Posts: 203
analog pins?
Jonas Hermansson wrote:

.... remove the existing controller from its socket, and plug the arduino into the test socket available. You need 8 bi-directional port pins for the data bus and another 9 output pins for the address bus and the latch signals. No soldering on (or other modification of) the original board is needed. You even get a +5V for the controller on this test socket.

What about the analog pots and fader - are there analog pins there?

Where would I be without the 'undo' button

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
Analog Pins
bazinoz wrote:

What about the analog pots and fader - are there analog pins there?

No, but you have access to the A/D converter. The way the panel is designed is that all parts of the panel is accessed using a common data and address bus. The databus is bi-directional, and you read or write data using the latch signals.

So on the test socket you have access to the same signals as the microcontroller in the panel has, and can therefore do the same things. 
If you are interested I can share the schematics of the panel. 

What about the protocol between the panel and the mixer? Can you share some info, since you seem to have figured out how it works?

Jonas

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
I got my panel

Now I have finally received my panel...
It must be around 10-12 years since I last worked on a GVG 100/110, but it was a nice re-union...
Just the T-bar itself makes it worth the money - not many mixers below $20000 comes with something that feels like the same quality (and not all above that price range either - including GVG's own mixers).

So now I am looking forward to controlling my ATEM from this one. Since there dont seem to be anyone who can or want to share any info on the protocol, I am getting ready for some protocol analysing. The good thing is that the panel is quite "stupid" - when GVG added the EMEM to this mixer as an field upgrade (early models did not have that when delivered) it did not require any firmware update on the panel. So all logic must be in the frame, with only button, potentiometer and light data sent between them.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Good luck Jonas, if I had any

Good luck Jonas, if I had any useful information I would share it.

When I have more time, I'm going to try to get panel and crate from ebay. Most seem to be in the US so shipping is tricky / expensive.

I reckon you'll be able to break the protocol down easily enough! My guess is it'll be pretty similar to the remote control protocol on the DB9, as, why wouldn't it be?

Cheers

John

Offline

Location

Gijón
Spain
Joined: 11/11/2013
Posts: 2
Good luck Jonas

Good luck Jonas,

i have a GVG 110 control panel, my idea originally was bypass buttons, tbar, potentiometer and leds to an arduino mega. I won`t ever use a GVG 110. But let us see panel squematics please.

Regards

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
Welcome to the forum,

Welcome to the forum, Tanga!

I will try to scan or take photo of the schematic as soon as I get the time.
What I can say already now is that it makes little sense to try to modify the circuit board in the panel in order to connect it to an arduino.
It will be a lot easier to just take out the existing microcontroller from its socket, and then connect the arduino to the test socket that is already on the panel. Then you have access to all buttons, led, potentiometers etc. using only 17 I/O pins (8 data, the rest address and latch lines).

Or, which will be at least my first attempt, just read the serial port alreday on the panel. It will also give access to all controls and lamps as soon as the protocol is known. You can of course use your arduino there as well, then you only need to use one serial port on the arduino,

/Jonas

maitilupas's picture
Offline

Location

Rotterdam
Netherlands
Joined: 17/09/2013
Posts: 81
I was also searching this mixer

I was also wondering if could use some basic commands from the GVG into the ATEM via rs-422
I have ordered a Lance Design HSE-100 VTR controller to control the Hyperdeck this same way and was woundering if the same could be done using ATEM with the GVG100.
I'll also update my current state of using the Lance HSE 100 with the Hyperdeck and hoepfully you can update your progress and the schematics if needed.
Just out of the box can you control anything with the serial protocol?

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
Out of the box you cannot

Out of the box you cannot control anything on the ATEM using the GVG panel (or any other panel not designed specifically to control the ATEM).
As far as I am aware of there is no serial control of the ATEM at all. It does have an RS422 port on the back, but to my knowledge it has not been implemented at all as of this date. And once BMD does something with it, I would expect it to be used to control external equipment (such as the Hyperdeck) rather than letting external devices control it.

Baz has, as can be seen in another thread here, made an interface for the GVG editor protocol, letting the ATEM being controlled from for example an editor. This can be useful if you want other equipment than a panel control the mixer (such as an automation system) as this is one of the major protocol standards for controlling switchers.

/Jonas

maitilupas's picture
Offline

Location

Rotterdam
Netherlands
Joined: 17/09/2013
Posts: 81
Thanks Jonas,  I was just now

Thanks Jonas, 
I was just now reading Baz threads regarding the GVG, its not as easy as I was thinking..  also because the GVG doesnt even send the correct data, and I didn't know that the ATEM RS422 was not implemented yet...
Its a pity, but finger crossed hopefully soon the protocol will be implemented, I would be up to try using an old vision mixer controller, I do think they greatly built and probably gives a pleasant experience working with them.

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
@maitilupas: Yes, old panels

@maitilupas: Yes, old panels are usually very good quality...

My plan at the moment, as I mentioned earlier, is to connect the panel to a PC running some kind of software that converts the protocol of the panel to the ATEM SDK. It could be JustMacros or something I write myself. The main point for me is to try to use the official SDK, as that way I dont need to worry about if or when BMD will release something that eventually breaks the compability (as they just did).

And since the PC will be needed anyway (not all functions is possible or practicle to implement on old hardware panels) it wont add any cost. With a bit of luck all that is needed is a power supply for the panel and a cheap RS-422 to USB converter. It would be great if it could work without modifying the panel at all, as that would open up for more people to be able to use these old but great panels...

Offline

Location

Sydney
Australia
Joined: 17/02/2013
Posts: 203
GVG110 panel mod for powering on just 9v

I have modified my GVG110 control panels to run on a single 9v wall power adaptor.

All you need to do is connect the 9v and 14v wires together (via a 55 ohm resistor) and replace all the 'light bulbs' with (bright) LEDs.

The bulbs just pull out of the sockets and the LEDs snap plug in. You have to cut the LED tails to about 15mm to allow them to fit snugly.
When plugging in you have to put the cathode (the larger element in the LED) in the top left hole.

I put white LEDs in the program and key busses and green LEDs in the preset buss.

For the other keys I put white LEDs in the colored keys and BLUE LEDs in the white keys. It looks much better than the original. The blue's are "very sexy".

Unfortunately, when I was half way thru bit-bashing the serial protocol between the panel and the frame, the frame stopped working (because it fell on the floor!) and I can't get it back to life. It did go pffftttt!
So i am stuck. The panel <> frame protocol is NOTHING like I have seen before. It is NOT the same as the 'serial interface' published protocol as the panel <> frame comms is for GVG internal use only; and is quite cumbersome.
I managed to get all the keycodes, knobs and fader values and all the lamp commands to/from the RS422 connector, and all I needed to do was determine the handshake ACK/NAK but now I can't reverse engineer it without the 2 way communications.

I am going to connect an Arduino directly to the control buss of the panel, and will have to determine all the buss mapping first. This would be a much faster way to communicate panel <> ATEM but not as convenient as just plugging into the 15pin plug.

Luckily the circuit board is well labelled including the x-y data diagram.

Baz

Where would I be without the 'undo' button

maitilupas's picture
Offline

Location

Rotterdam
Netherlands
Joined: 17/09/2013
Posts: 81
gvg110

Uu that hurts about the switcher, but good to know that you are still evolved in this! 

I've bought one, so I'm in the same boat as you now, looking forward to find a way to use it without much modification, otherwise I will use the great case, buttons, T-bar, in another way, for this kind of quality paying 200$ dollars for this controller pays already its T-Bar in which is more high quality than the plastic ones selling for $150.
Not to mention the buttons, joystick, case, so I'm happy that I've bought it.

Offline

Location

Gothenburg
Sweden
Joined: 24/12/2011
Posts: 20
Sorry to hear about the

Sorry to hear about the broken mixer frame...
Are you willing to share some info about the protocol, at least what you managed to find out?
Will the panel send anything when you press buttons on it unless it has established a proper connection (handshake) with the frame?

In return, here is some info about how to connect to the panel board with for example an Arduino:

The first thing to do is to remove the microcontroller from the panel board. This is required as it otherwise will interfere with the Arduino when reading and writing on the bus. The controller is IC3, the biggest chip on the board located next to the connectors.

All signals required for the Arduino is available on the connector called J2 ("Test Connector"). It is located right next to the connector that goes to the D-Sub at the back of the panel. You still need to provide power to the panel on the normal connector (+9 and +14 V).

The pinout on J2 is as follows:

1+2: GND
3: +5V
15,16,17,19,10,8,6,4: D0 - D7
11,12,13,14: A0 - A3
20: Read Button (Active Low)
18: Write Lamp (Active Low)
7: Convert (Active Low)
5: Read Analog (Active Low)
9: Display Clock (Active Low)

The database (D0-D7) is used both for reading and writing, while the address and read/write lines are only used as outputs from the controller to the panel.

To read button states:
Place the button matrix address on the address bus (A0-A3). Put the "Read Button" line low (make sure all other control lines are high) and read the databus - each data line (D0-D7) corresponds to one button. A total of 10 addresses (0-9) contains buttons, the last 6 (10-15) is not used.

To turn on and off lamps:
Place the lamp address on the address bus (A0-A3), and place the lamp status on the data bus (D0-D7). Each data line corresponds to one lamp in that address. Put the "Write Lamp" line low and back to high to store the lamp states. Note that you cannot set one lamp individually - all 8 lamps on the same address needs to be set together. Ten addresses are used (0-9), the rest is unused.

Reading analog (potentiometer) values:
Put the address of the potentiometer onto the address bus (A0-A3). 15 inputs (address 0-14) is used. Set the "convert" line to low and back to high again. Then set the "read analog" to low, and the data from the a/d converter is available on D0-D7.

Setting the display:
Three of the LED's (the duration selection leds) and the display is controlled by a special IC. This IC is using D0-D2 as data lines and D3-D6 as address lines. The data is stored by setting the correct data on D0-D6 and then setting "display clock" low and back to high again.

Remember to ALWAYS set the 5 control lines back to high when done, and NEVER drive more than one of them low at the same time!

Hope this can be useful...

Offline

Location

Sydney
Australia
Joined: 17/02/2013
Posts: 203
serial protocol

hello Jonas

Thanks for the info but I worked it all out as the circuit board is well labelled.
I have almost finished the interface using the 'test connector'.

I have connected a header to J2 that goes to a DB25 (same cable as a PC's header to parallel printer port).
Then I have a DB 25 going to the Arduino Mega. Here is the wiring...

J2            DB25           Function              Arduino       J2             DB25       Function                  Arduino
1              1                  gnd                     GND           11              14              W0                            22
2              2                  gnd                     GND           12              15              W1                            24
3              3                +5V                      VIN              13              16              W2                            26
4              4                 D7                       37               14              17              W3                            28
5              5                 read analog        34               15              18              D0                            23
6              6                 D6                      35               16              19              D1                            25
7              7                 convert analog   36               17              20              D2                            27
8              8                 D5                      33               18              21              write LAMP sel         30
9              9                 display               38               19              22              D3                            29
10           10                D4                      31               20              23              read button sel         32
               11                                                              24                                          
               12                                                              25                                          
               13                                                                                                                              

#define  Data0       23          //
#define  Data1       25          //
#define  Data2       27          //
#define  Data3       29          //
#define  Data4       31          //
#define  Data5       33          //
#define  Data6       35          //
#define  Data7       37          //
#define  W0          22          //
#define  W1          24          //
#define  W2          26          //
#define  W3          28          //
#define  AnalRead    34          //
#define  AnalConv    36          //
#define  LEDwrite    30          //
#define  buttread    32          //
#define  Display    38           //

This is the info I worked out from the GVG110's RS422 port...

Baud rate 9600
No Parity, 1 start/stop bit

Data from the GVG110

0xff = end of transmission
0xe0 = start of transmission

The GVG110 will send packets every half second untill it gets a response (0xfe) and then it will continuously send packets.
This is the packet format

Buffer                                                                                  
0          1      2      3      4      5      6    7       8     9     10  11  12     13    14   15  1 6  17  18    19     20  21    22     23    24    25  26    27   28    29    30  31
A2/3  pos  A4/7  pos  A8  fader  AC  hue  B0  hue  B4  clip  B8  crma  BC  lum  C0  clip  C4  gain  C8  asp  CC  mask  D0  soft  D4  brdr  D8  gain  DC  0 
           X               Y         MAIN         EFF        BKG       DSK       BKG        BKG       EFF       EFF        PATT       PATT       PATT      PATT        DSK                       

 32  33  34  35  36  37  38  39  40 
buttons>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      
^^^ ONLY WHEN BYTE COUNT OVER 34        
otherwise it will be 0xFE            

The amount of data sent out of the GVG110 is dependant on how much data you send (weird!!!)
So if you send 40 bytes followed by an 0xfe you will get as displayed above. Any less and you will miss data from the end which is where the key press data is!

Data to the GVG110

start with 40 bytes of data which includes LED data
0xfe = end of transmission

LEDS                                                                                                            
0        10        20        30        40        50        60        70        80        90        100        110        120            
1    pg9    1    pv7    1    k8    1    pg6    1    EKMFILL    1        1    k1    1    pg2    1    FTB    1    DKpvw    1    T AUTO    1    KEYON    1    Dshad        
2        2        2        2        2        2        2        2        2        2        2        2        2            
3    pv5 63    3    pv9    3    k7    3    EK inv    3    EKPSTPTN    3    k3    3        3    pv2    3    DK inv    3    UP /\    3    k9    3        3    Dext        
4        4        4        4        4        4        4        4        4        4        4        4        4            
5    pg10    5    pv8    5    pg8    5    EK mask    5    EK CK    5        5    pv4    5    pg3    5    DSKON    5    DWN \/    5    T WIPE    5    Dmatte    5    Dbrd        
6        6        6        6        6        6        6        6        6        6        6        6        6            
7    pv6    7    k6 55    7    pg5    7    EK EEXT    7    EK BUSS    7    k2    7    pg1    7    pv1    7    DK mask    7    T Key    7    k10    7    Doutl    7    Dkbus        
8        8        8        8        8        8        8        8        8        8        8        8        8            
9    pv10    9    k5    9    pg7    9    EMEM    9    K4    9        9    pv3    9    pg4    9    DK mix    9    Tbkgd    9    T MIX    9    Dkextvid    9    Prev        
                                                                                                            
                                                                                                            
130        140        150        160    _0000    170    _10    180    Xdskmix    190    Xtrans    200    _5000    210    _60    220    Xdskmix    230    Xtrans    240        250            
1    P3    1    P1    1    P5    1    _000    1    _1    1    XFTB    1        1    _500    1    _6    1    XFTB    1        1        1            
2        2        2        2    _00    2        2    Xtrans    2    _4000    2    _50    2    Xdskmix    2    Xtrans    2    _9000    2        2            
3    Ppos    3    P7    3    ED EN    3    _0    3        3        3    _400    3    _5    3    XFTB    3        3    _900    3        3    H E L P        
4        4        4        4    Xdskmix    4        4    _3000    4    _40    4    Xdskmix    4    Xtrans    4    _8000    4    _90    4        4            
5    P8    5    MBkgd    5    P10    5    XFTB    5        5    _300    5    _4    5    XFTB    5        5    _800    5    _9    5        5            
6        6        6        6    Xtrans    6    _2000    6    _30    6        6    Xtrans    6    _7000    6    _80    6    Xdskmix    6                    
7    P6    7    Mbrdr    7    P9    7        7    _200    7    _3    7        7        7    _700    7    _8    7    XFTB    7                    
8        8        8        8    _1000    8    _20    8    Xdskmix    8        8    _6000    8    _70    8    Xdskmix    8    Xtrans    8                    
9    P2    9    Mdsk    9    P4    9    _100    9    _2    9    XFTB    9        9    _600    9    _7    9    XFTB    9        9                    

I hope the spreadsheet cut and pastes display ok for you

The only thing left to do was to correctly 'time' the to/from packets and cross check the ACK/NAK timings but thats where gravity put a stop to proceedings!

Baz

(SORRY THE TEXT EDITOR ON THIS FORUM IS F*?!*ED! AND IT IS GOING TO TAKE FOREVER TOFORMAT CORRECTLY - IF YOU NEED IT I CAN SEND YOU THE SPREADSHEETS)

Where would I be without the 'undo' button