Arduino Shield, Tally, and Control Data

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

anthonythompson

  • Posts: 2
  • Joined: Fri Sep 27, 2019 8:17 pm
  • Real Name: Anthony Thompson

Arduino Shield, Tally, and Control Data

PostFri Sep 27, 2019 8:32 pm

We are building out a custom tally and CCU system for our studios, in which we have a current total of seven BMD URSA Mini 4Ks. We are feeding each of them tally from our two GV Kula switchers via a whole host of SKAARHOJ devices to translate the GPO from the switcher to the tally signals the BMD cameras expect on the SDI Return.

Basically, everything works great, if you don't need to feed tally to a prompter hood, which accepts tally via an optosensor. Since the URSA Mini 4K doesn't have any external source of tally that wouldn't trigger an optosensor when tally is not active, we decided to come up with a clever (to us) solution of putting an Arduino with the BMD 3G Shield in line with each camera. This device takes in the full return feed with tally and control data embedded, reads the tally information, enables an LED when program tally is set, and sends that tally data to the camera. The control data is set in the Arduino Sketch to just be passed through from shield input to the output.

If we connect the SDI Return directly to the camera, tally is passed and control data will shade the camera til the cows come home. Once the Shield is put in the signal chain between the return feed and the camera, tally continues to be passed without a problem, but control data will STOP being passed after 5-10 minutes. So, control data will initially be passed, but eventually will just stop being passed to the camera.

Hopefully I've made this whole thing super confusing and hard to follow. Has anyone else run into this issue and have any clues as to where the control data is being dropped or ignored?
Offline
User avatar

Xtreemtec

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

Re: Arduino Shield, Tally, and Control Data

PostFri Sep 27, 2019 9:23 pm

Dont put it in the return feed. Put the shield on the Front SDI out. and program it to listen for Tally ID 0 ;)

The front SDI output sends Tally ID 0 This is also known as MonitorTally and is used with the EVF's to run the Tally. ( The clever thing about this.. Is that it follows the Camera ID. So if you set the camera to ID 7. Monitor ID 0 will output the tally of CAM ID 7. When you set the camera to CAM ID 4. Monitor ID 0 will output the tally of Cam ID 4. ;)

We have our own SDI Tally light. Which works perfectly in line with the EVF. :D ;)
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

anthonythompson

  • Posts: 2
  • Joined: Fri Sep 27, 2019 8:17 pm
  • Real Name: Anthony Thompson

Re: Arduino Shield, Tally, and Control Data

PostFri Sep 27, 2019 11:48 pm

Xtreemtec wrote:Dont put it in the return feed. Put the shield on the Front SDI out. and program it to listen for Tally ID 0 ;)


Ok, this got me thinking in the right direction. I wasn't able to get the Shield to read Tally ID 0 using the Arduino's BMD Tally Control library, but I was able to read the tally brightness from the control data. Once I switched gears, I was able to pull that brightness data from the SDI feed to the studio viewfinder, use it to light the LED and let it continue to passthrough to the viewfinder.

Now, I need to figure out why the viewfinder will periodically lose picture and camera information, but at least the tally works!
Offline

markkitus

  • Posts: 3
  • Joined: Fri Jul 13, 2018 3:27 am
  • Real Name: Marcos Nuñez

Re: Arduino Shield, Tally, and Control Data

PostThu Oct 17, 2019 3:40 pm

Xtreemtec wrote:Dont put it in the return feed. Put the shield on the Front SDI out. and program it to listen for Tally ID 0 ;)

The front SDI output sends Tally ID 0 This is also known as MonitorTally and is used with the EVF's to run the Tally. ( The clever thing about this.. Is that it follows the Camera ID. So if you set the camera to ID 7. Monitor ID 0 will output the tally of CAM ID 7. When you set the camera to CAM ID 4. Monitor ID 0 will output the tally of Cam ID 4. ;)

We have our own SDI Tally light. Which works perfectly in line with the EVF. :D ;)




Hi I can not make it work with the front output of the sdi when I put the id 0 does not work, if I put another id and plug it to the output of the switcher it is going to be perfect, I tested it in a 4.6k mini ursa
Offline

Beto Faro

  • Posts: 31
  • Joined: Sat Mar 09, 2013 7:23 pm

Re: Arduino Shield, Tally, and Control Data

PostFri Apr 23, 2021 3:57 pm

Hi
I would like to do the same as you did about tally/SDI shield and Arduino, can you supply me the Aduino Scketch you used?
Thanks
Offline

marceggers.de

  • Posts: 2
  • Joined: Mon Jul 05, 2021 10:56 pm
  • Real Name: Marc Eggers

Re: Arduino Shield, Tally, and Control Data

PostMon Jul 05, 2021 10:58 pm

// includes the Blackmagic Design SDI Control library.
#include <BMDSDIControl.h>

const int shieldAddress = 0x6E;
BMD_SDITallyControl_I2C ccu(shieldAddress);

constexpr int tally_pinOUT = 7;
constexpr int preview_pinOUT = 6;

void setup() {
ccu.begin();
ccu.setOverride(false);
pinMode(tally_pinOUT, OUTPUT);
pinMode(preview_pinOUT, OUTPUT);
}


void loop() {
bool tally = false;
bool preview = false;

for (int ID = 1; ID <= 16; ID++) {
bool tallyFromID;
bool previewFromID;

ccu.getCameraTally(ID, tallyFromID, previewFromID);

tally |= tallyFromID;
preview |= previewFromID;
}

digitalWrite(tally_pinOUT , tally ? HIGH : LOW);
digitalWrite(preview_pinOUT, preview ? HIGH : LOW);
}

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 19 guests