Feasibility of LANC to Tally "Converter"

Hi all. This is a weird project and not one I'm really qualified to handle, but ah well. Not sure if it's in the scope of Arduino as I'm not too well researched on it.

About me: No experience in electronics other than cursory knowledge. Lots of experience in high level programming, but very little with direct hardware access. My main concern is with hardware, as I will usually pick up software implementation pretty quickly.

General Outline

LANC is a protocol in camera circles, which allows control of a camera via remote. The physical connection is a 2.5mm TRS-style jack. It also allows the camera to send back information to the remote control (such as recording status).

Tally is another protocol which essentially allows a light to come on when a camera is active. It's used in live broadcast situations - when a camera is on the air, the light comes on.

However, I do not work in live broadcast, but in video recording, so I don't use production switchers or anything else which can activate the Tally light on my monitor, but I do need the tally light to see when the camera is recording.

My idea is this: 1. Press record button LANC remote. 2. Start/stop record command is sent to the Arduino board. 3. Arduino does nothing with the command but sends it onwards to the camera. 4. Camera changes status from "not recording" to "recording" (or vice versa). It sends this status via LANC to the Arduino. 5. Arduino receives the status change. It passes it back to the LANC remote, but it also sends a signal to the monitor over Tally, reporting that the camera is "on the air".

Electronics

Hardware is where I really struggle. I don't trust myself to solder (I've set myself on fire making a sandwich), but ah well, cross that bridge when I get to it.

Here is the spec for the LANC protocol: http://www.boehmel.de/lanc.htm Easy enough to follow, kind of. I'm not sure exactly what combination of codes I have to send to the camera to start recording, but if I can just receive the signal from the LANC remote and just pass it on, then that'll be fine.

From what I can tell, I only want to send a signal over Tally if the camera is reporting status "rec", so Byte 4, 0x04.

The tally monitor I'm using is a Blackmagic SmartView Duo which has 2 monitors and one serial port to control the tally indicators on both monitors. I am only concerned with "Monitor 1 Blue".

The diagram of the tally connector is here: http://i.imgur.com/dgZVxt4.png

I am unsure if Tally is standardised so I'm really not sure what signal to send it or what a contact closure is.

"Ports" I will need on the circuit board are "LANC In", "LANC Out" and "Tally Out".

If anyone can help me out with this, it would be hugely appreciated. I need to know everything. What would be the best board to buy, what cables to buy etc.

In the meantime I'm just going to buy a LANC remote with a status LED, but I really want to be able to use a tally light and this seems a good project to get into electronics programming.

Thank you so much guys, hopefully I'll soon be able to return the favour.

It's a long time since I looked at LANC. Thanks for including the link. I will look at that later. From your quick description, why does the Arduino need to see the outgoing command? Can it just read the response from the camera? Or does the camera simply send an identical "ok" in response to every different command?

You didn't explain what Tally is. Is it a serial protocol or just a voltage on a wire?

The Uno is the best starter Arduino board. But I feel you will quickly run out of serial ports. A Micro is a little better and very useful if you need your project to be small. A Teensy is even smaller and more capable. If smallness is not a factor then the best board for you will be a Mega. You won't run out of capacity on a Mega.

Hi Morgan

The camera still has to be able to fired by a remote trigger, so if I want to record from a remote, I need to send the signal somehow. Since the return signal is on the same cable, I will have to slice the cable in half to connect it to the arduino. The arduino doesn't have to see the outgoing command, but the command will have to pass through the arduino to get to the camera (from my understainding).

As to Tally, I am unsure. It might just be voltage - I am able to trigger the Tally indicators on my monitor by using a paperclip, if that helps.

I will look at the Mega, price is more of an issue than space as I will just rackmount the converter. So as long as its smaller than a standard server board it'll be fine.

Thanks alot.

Okay, so I'm going to start with the simplest part which is activating the tally light. All this seems to need is contact to the "Monitor 1 Blue" pin and a "Ground Pin". I'm assuming this is "contact closure" and I'm assuming it needs a closed circuit.

So theoretically, it's a switch. When the switch is closed, the tally light activates.

But how do I physically open and close a switch with software? This is the part I don't get.

What cables do I need? What kind of switch would I get?

I also found the information about the LANC protocol interesting.

I once attempted to hack a LANC cable but the camera I was using also had an IR interface and it turned out to be easier to send data over IR than over the wire. I didn't know what I was doing with the wired connection. Perhaps if I had seen the site you linked to, I could have made the wired connection work properly.

dredgy: But how do I physically open and close a switch with software?

I think a simple signal relay should do the job.

It's not a good idea to directly drive a relay from a microcontroller. You'll probably want to use a transistor. You'll also need a resistor and a diode. If you decide to try the relay, let us know and we can provide a link to a circuit you could use.

DuaneDegn: I also found the information about the LANC protocol interesting.

I once attempted to hack a LANC cable but the camera I was using also had an IR interface and it turned out to be easier to send data over IR than over the wire. I didn't know what I was doing with the wired connection. Perhaps if I had seen the site you linked to, I could have made the wired connection work properly.

Glad it's interesting. I'm still hoping to understand it :p But putting the lanc part out of my mind for now, mainly because I can't afford to be stripping $100 cables until I have a firm enough grasp.

I think a simple signal relay should do the job.

It's not a good idea to directly drive a relay from a microcontroller. You'll probably want to use a transistor. You'll also need a resistor and a diode. If you decide to try the relay, let us know and we can provide a link to a circuit you could use.

I will need a tried and true method. I live in a tiny town (not even a grocery store) so everything will have to be ordered online at once and every extra part I have to get will cost lots of money and lots of time. So I need a working circuit design first. And nothing I'm reading about it makes much sense to me, it all seems like everything could be much more efficient.

So to reiterate, how do I translate this kind of code:

if(conditionIsMet){
      tallySwitch.open();
}

So that that physically moves a switch/opens a relay or whatever? I would have thought there'd be definitive answer to that, but I can't find any. Just lots of speculation.

Ideally I'd be able to buy a completed or partially completed circuit and just do the programming myself.

How small do you want it?

Can you measure the voltage on the Tally wire?

A reed relay can be driven directly by a 20mA Arduino output.

@MorganS One $100 multimeter later...and its 3.25V across the tally wire.

I would like it to fit into a Mega enclosure, but can be rackmounted. So size isn't too much of an issue.

Hoping I can drive the tally by just switching digital pins on and off. Going to order everything tonight.

Ok. 3.3V is going to require a bit of ingenuity but no more components. If you have a 3.3V Arduino, such as a Due then a direct connection is easy. If you have a 5V Arduino then you need to be careful to never output 5V on that pin.

Instead of digitalWrite(pin, HIGH); you should use pinMode(pin, INPUT); which will allow the pin to float. Then to turn the tally on, change it back to an output, which will draw it low to zero volts.

MorganS: Ok. 3.3V is going to require a bit of ingenuity but no more components. If you have a 3.3V Arduino, such as a Due then a direct connection is easy. If you have a 5V Arduino then you need to be careful to never output 5V on that pin.

Instead of digitalWrite(pin, HIGH); you should use pinMode(pin, INPUT); which will allow the pin to float. Then to turn the tally on, change it back to an output, which will draw it low to zero volts.

And don't forget to connect the grounds.

Thanks guys. I ordered a mega and a good amount of connnectors, clips and cables etc.

Am hoping everything arrives this week and I can dive into the nitty gritty. I was very interested in electronics as a kid but never got into it cause I was...not very good. Hoping this can rekindle the spark.

So everything's arrived and will start programming tonight.

Simple electronics question though - where do I plug the connectors into on the Arduino.

Pin diagram is here: http://i.imgur.com/dgZVxt4.png

I will be connecting pin 3 and pin 5 to get the light to come on.

On a simulation I did with an LED (so not quite applicable) I had to plug the cathode into the 3.3V power button, and the anode into the digital pin. Whereas my instinct here is to plug ground into ground and the input into the digital pin.

What should I do? Thanks

Nevermind. Figured that on and got tally to programatically turn on and off by oscillating pinmode between input and output and connecting the ground to "digital" ground. Has the slight annoyance of leaving the tally light on when the device is switched off, but will solve that later.

Onto LANC! Which should be the hard part.