Author Topic: DIY IR remote camera starter triggerd by the slate signal of a Tascam DR-70D  (Read 1116 times)

Killernoy

  • New to the forum
  • *
  • Posts: 5
Hello,
since I was adviced to use a IR remote control device instead of using a lua scipt to start/stop video recording on my EOS M i have build myself such a device.

It takes the Audio Signal from my DR-70D and searches for the slate signal and then uses an IR Led to Start/Stop the recording.

On The DR-70D you need to set the Slate Auto Tone to HEAD+TAIL meaning both at the start and end of the recording there is going to be a slate signal but the camera will only pick up the Tail/end Signal.

Parts needed: Raspberry Pi Pico
                     3.5mm audio jack brakeout board
                     0.1 microF Capacitor
                     940 nm IR Led
First here is the very simple schemetic for this:

And This is the arduino IDE code I came up with:
Code: [Select]
/****************************************
Sketch for a Raspberry Pi Pico based IR
remote Camera starter triggerd by the
slate Signal of a Tascam DR-70D
****************************************/

const int sampleWindow = 500;                   // Sample window width in mS (500 mS = 0.5s)
unsigned int sample;
void setup()
{
  pinMode(0, OUTPUT);                           // Set GP0 as Output
}
void loop()
{
  unsigned long startMillis= millis();          // Start of sample window
  unsigned int peakToPeak;                      // peak-to-peak level
  unsigned int signalMax = 0;
  unsigned int signalMin = 1024;
  while (millis() - startMillis < sampleWindow) // collect data for 500 mS
  {
    sample = analogRead(A0);                    // read from ADC0
    if (sample < 1024)                          // toss out spurious readings
    {
      if (sample > signalMax)
      {
        signalMax = sample;                     // save just the max levels
      }
      else if (sample < signalMin)
      {
        signalMin = sample;                     // save just the min levels
      }
    }
  }
peakToPeak = signalMax - signalMin;             // max - min = peak-peak amplitude

if (peakToPeak < 900 and peakToPeak > 820)      // test for slate Signal
  {
    delay(2000);                                // Wait 2s inorder to not pickup the same slate again
    for(int i=0; i<16; i++)                     // blink IR Led 16 times
    {
      digitalWrite(0, HIGH);
      delayMicroseconds(16);                    // with 16 microseconds on
      digitalWrite(0, LOW);
      delayMicroseconds(16);                    // and 16 microseconds off time
    }
    delayMicroseconds(5360);                    // Off Period of 5360 microseconds
    for(int i=0; i<16; i++)                     // blink IR Led 16 times
    {
      digitalWrite(0, HIGH); 
      delayMicroseconds(16);                    // with 16 microseconds on
      digitalWrite(0, LOW);
      delayMicroseconds(16);                    // and 16 microseconds off time
    }
  }
}

Skinny

  • Member
  • ***
  • Posts: 197
Cool, so if you just blink 16 times with 16us delays, then wait 5360us and do blinks again - it is Canon remote control code and you can start and stop video recording?

I actually want to make a remote for video start-stop, so thanks for this thread..

By the way on usual arduino you probably shouldn't use digitalWrite because it is very slow, if we are talking about microseconds.. direct port manipulation is much better... but maybe your Raspberry Pi Pico is fast enough.

Killernoy

  • New to the forum
  • *
  • Posts: 5
Cool, so if you just blink 16 times with 16us delays, then wait 5360us and do blinks again - it is Canon remote control code and you can start and stop video recording?
Here is the Blog Post i used for inspration with a graph for the IR Code for both Video and Photo.
https://publiclab.org/notes/cfastie/02-28-2016/auto-eos-m
Quote
By the way on usual arduino you probably shouldn't use digitalWrite because it is very slow, if we are talking about microseconds.. direct port manipulation is much better... but maybe your Raspberry Pi Pico is fast enough.
for me it works fine and the author of the blog post corrected for that fact by simply shortening the delays to 11us

Skinny

  • Member
  • ***
  • Posts: 197
Ok thanks! This article has some useful links as well as exact timing signals from the actual rc-1.. seems like everything is just running from 32.768kHz clock (standard quartz resonator frequency) and I think I can make it even without microcontroller. Just a simple timer/counter IC and maybe a transistor or two could be enough.. I have to think about it though.

Skinny

  • Member
  • ***
  • Posts: 197
I read some articles, and 16 pulses are not 100% requirement. as well as precise timings.
So the pulses at 32 kHz is actually the way IR reciever works, it has bandpass filter inside and it is tuned somewhere around 32k. For example in TVs they sometimes have frequencies close to 38 kHz if I remember correctly..
And once you pulse your ~32kHz, the reciever will output a steady 5v (or maybe 3.3v). It doesn't care if there are 16 pulses or slightly less/more.. there is no counter or anything.

The camera itself has some timing tolerances. So you can use any frequency close to 32kHz and send any amount of pulses for ~500us, then wait ~5,8ms and send pulses again.

If no counter and precise timings required, I can make the whole circuit using just simple analog components :D
Why? just because it can be done ;) I like microcontrollers but here it looks a bit like overkill.. it is just more interesting to do it analog way sometimes.
Here https://www.doc-diy.net/photo/rc-1_hacked/ in the comments someone made his version using just 4093 NAND chip, but I don't really like two switches and 6v batteries. So now I have to design my own version from components that I have around.