Ursa Mini 4K tally

Questions about ATEM Switchers, Camera Converter and everything live!
  • Author
  • Message
Offline

JoaoSMD

  • Posts: 1
  • Joined: Fri Mar 02, 2018 10:53 am
  • Real Name: Joao Duarte

Ursa Mini 4K tally

PostFri Mar 02, 2018 6:29 pm

Hello
I need your support regarding a studio configuration using a non-BlackMagic vision mixer and three Ursa Mini 4K:
Is it possible using a non-BlackMagic vision mixer , with GPI/GPO, activate the Tally light in the Ursa Mini 4K cameras/viewfinder ? If so, what will be necessary and what connect should I do .
I have the ATEM Talkback converter.
regards
Offline
User avatar

Xtreemtec

  • Posts: 5387
  • Joined: Wed Jan 02, 2013 11:48 am
  • Location: The Netherlands

Re: Ursa Mini 4K tally

PostFri Mar 02, 2018 7:36 pm

You need an Arduino Uno board and the BMD SDI shield.

In the manual of the SDI shield is a perfect example on how to do Tally inputs on the arduino. My bad.. I thoughed it was.. But it was a Blink example. See code under here for an example.
http://documents.blackmagicdesign.com/ArduinoShield/20171129-08e66f/Blackmagic_3G-SDI_Arduino_Shield_Manual.pdf

tallymixer.png
From the manual of the SDI shield.
tallymixer.png (75.36 KiB) Viewed 7767 times

You want to put a SDI splitter in the SDI out of the SDI Shield to feed all your cameras. The signal has ID's inside so the same signal can be send to all cameras. Only need to set the CAM ID's inside the cameras.

Here is the code for an Arduino Uno to do 4 Preview and 4 Program Tally pins to SDI.
Dont forget to remove "delay(250); " after testing.. This will make your testing easy as you can read what is happening in the serial terminal for debug.
After you are done testing and have it all wired up correct.. Remove that line and the code will execute real time speed.

Code: Select all
/*
  SDI Tally interface based
  Turns tally of the cameras on and off based on pins pulled low.
  This interface is programed for Potential free outputs on a video mixer.
  This means that if the tally output of the video mixer is active it will make a connection to ground.
  By configuring the inputs with pull-up they are active 5V high and when pulled low to GND it will send that ports tally to the SDI output.

  Written by Daniel Wittenaar for free use.
  Use code and arduino's with care!! I'm not responsable for any damage caused by using this code!!

  When you don't know how electronics work always ask advice from an expert!

  I have put a  delay(250);   in the code. This is for debugging purposes. When done with serial debugging remove or //  the delay to have a more responsive interface.   

  This example code is in the public domain.
  You may re-distribute and share this code. But you need to leave this info unchanged and included with the code.
*/

#include <BMDSDIControl.h>                                // need to include the library
#include <Wire.h>                                         // Included because i had error with the original BMD Lib saying Wire.h did not exist

int PGM1 = 2;
int PRV1 = 3;

int PGM2 = 4;
int PRV2 = 5;

int PGM3 = 6;
int PRV3 = 7;

int PGM4 = 8;
int PRV4 = 9;


BMD_SDITallyControl_I2C sdiTallyControl(0x6E);            // define the Tally object using I2C using the default shield address

// the setup function runs once when you press reset or power the board
void setup()
{
 Serial.begin(115200);
 
  sdiTallyControl.begin();                                 // initialize tally control
  sdiTallyControl.setOverride(true);                       // enable tally override

  pinMode(PGM1, INPUT_PULLUP);
  pinMode(PGM2, INPUT_PULLUP);
  pinMode(PGM3, INPUT_PULLUP);
  pinMode(PGM4, INPUT_PULLUP);
 
  pinMode(PRV1, INPUT_PULLUP);
  pinMode(PRV2, INPUT_PULLUP);
  pinMode(PRV3, INPUT_PULLUP);
  pinMode(PRV4, INPUT_PULLUP);

}

// the loop function runs over and over again forever
void loop()

  /// Some debug info to check if we have the right port             
  if(digitalRead(PGM1) == LOW){ Serial.println("PGM1"); }
  if(digitalRead(PGM2) == LOW){ Serial.println("PGM2"); }
  if(digitalRead(PGM3) == LOW){ Serial.println("PGM3"); }
  if(digitalRead(PGM4) == LOW){ Serial.println("PGM4"); }

  if(digitalRead(PRV1) == LOW){ Serial.println("PRV1"); }
  if(digitalRead(PRV2) == LOW){ Serial.println("PRV2"); }
  if(digitalRead(PRV3) == LOW){ Serial.println("PRV3"); }
  if(digitalRead(PRV4) == LOW){ Serial.println("PRV4"); }
  Serial.println();                                               // Print New Line
 
  // Use this delay only when you use the Serial Terminal for debug!!
  delay(250);                                             
 
 
  // turn tally ON    // Camera Number   // Program Tally    // Preview Tally
  sdiTallyControl.setCameraTally( 1, ( !digitalRead(PGM1)) , ( !digitalRead(PRV1)) );
  sdiTallyControl.setCameraTally( 2, ( !digitalRead(PGM2)) , ( !digitalRead(PRV2)) );
  sdiTallyControl.setCameraTally( 3, ( !digitalRead(PGM3)) , ( !digitalRead(PRV3)) );
  sdiTallyControl.setCameraTally( 4, ( !digitalRead(PGM4)) , ( !digitalRead(PRV4)) );

}
Daniel Wittenaar .:: Xtreemtec Media Productions ::. -= www.xtreemtec.nl =-
4K OBV Trailer, ATEM TVS HD, 4M/E Broadcast Studio 4K, Constelation 8K, Hyperdeck Studio 12G, Ursa Broadcast 4K, 4K fiber converters with Sony Control
Offline

brianone20

  • Posts: 9
  • Joined: Tue Jul 24, 2018 10:44 pm
  • Real Name: brian reardon

Re: Ursa Mini 4K tally

PostMon Dec 03, 2018 4:30 am

Great info, thank you. Would it be possible to use a 3rd party mixer and the camera control unit? I have an ATEM switcher that is basically being used a "slave" to operate the paint functions in the software as well as the 4 bank CCU, however we want to use our existing switcher. I' am wondering if I generate a tally signal (not sure what format) of some kind, can it be integrated so that the camera control unit is effective still, however we add tally to that path as well? we are successfully running camera control through the SDI return lines, but tally is something we have yet to tackle. Any insight would be greatly appreciated by myself and many others to come I'm certain.
Offline
User avatar

Xtreemtec

  • Posts: 5387
  • Joined: Wed Jan 02, 2013 11:48 am
  • Location: The Netherlands

Re: Ursa Mini 4K tally

PostTue Dec 04, 2018 12:28 pm

Add the shield between the Atem output and the sdi districbution to the cameras.

Code: Select all
sdiTallyControl.setOverride(true);                       // enable tally override
Means it only affects the Tally data and will leave the CCU data unchanged.. So it will overwrite the Tally coming from the Atem with the Tally Data you generate from your own board. ;)

For control without an Atem you could look into the control panels of Skaarhoj. But you just might keep the Atem and buy the RCP controller for the Atem to have a nice integrated solution. :)
Daniel Wittenaar .:: Xtreemtec Media Productions ::. -= www.xtreemtec.nl =-
4K OBV Trailer, ATEM TVS HD, 4M/E Broadcast Studio 4K, Constelation 8K, Hyperdeck Studio 12G, Ursa Broadcast 4K, 4K fiber converters with Sony Control
Offline

brianone20

  • Posts: 9
  • Joined: Tue Jul 24, 2018 10:44 pm
  • Real Name: brian reardon

Re: Ursa Mini 4K tally

PostMon Jan 21, 2019 8:09 pm

Xtreemtec wrote:Add the shield between the Atem output and the sdi districbution to the cameras.

Code: Select all
sdiTallyControl.setOverride(true);                       // enable tally override
Means it only affects the Tally data and will leave the CCU data unchanged.. So it will overwrite the Tally coming from the Atem with the Tally Data you generate from your own board. ;)

For control without an Atem you could look into the control panels of Skaarhoj. But you just might keep the Atem and buy the RCP controller for the Atem to have a nice integrated solution. :)


THANK YOU! This is great info and we appreciate your input!!
Offline

Wolf Schiebel

  • Posts: 29
  • Joined: Tue Feb 05, 2013 9:00 am

Re: Ursa Mini 4K tally

PostThu Mar 30, 2023 11:39 am

Hi,

sorry for asking a question in this quite old thread, but when i try to compile your code i get the following error:

Compilation error: no matching function for call to 'BMD::I2CPhysical<BMD::SDITallyControl>::I2CPhysical(int)'

I have an Arduino Uno Board and Arduino IDE on Win10

Whta could cause this problem?

Thanks and best regards,

Wolf
Offline

Mike Ambrose

  • Posts: 188
  • Joined: Wed Jan 13, 2016 11:31 pm

Re: Ursa Mini 4K tally

PostThu Mar 30, 2023 3:38 pm

Do you have the SDK installed and the blackmagic library imported to your project?

Check out pages 9, 14, and 15:
https://documents.blackmagicdesign.com/ ... Manual.pdf
Offline

Wolf Schiebel

  • Posts: 29
  • Joined: Tue Feb 05, 2013 9:00 am

Re: Ursa Mini 4K tally

PostFri Mar 31, 2023 7:09 am

Thanks, i will check if everything is up to date and try again.
Offline

Wolf Schiebel

  • Posts: 29
  • Joined: Tue Feb 05, 2013 9:00 am

Re: Ursa Mini 4K tally

PostFri Mar 31, 2023 7:29 am

Mike Ambrose wrote:Do you have the SDK installed and the blackmagic library imported to your project?

Check out pages 9, 14, and 15:
https://documents.blackmagicdesign.com/ ... Manual.pdf



Thanks Mike, after updating the SDK and the library everything is running!

Return to Live Production

Who is online

Users browsing this forum: Blair Christensen, oniongarlic and 26 guests