Posted on Leave a comment

PCB for Video Motion Detector Arrived

A MewPro add-on board “Video Motion Detector Board” will be ready soon; the PCBs have arrived to our lab.

We are now checking the functionalities of the board. So please wait two or three days more…

teensyVMD-top
⇧ Video Motion Detector w/ Teensy 3.1, back view

teensyVMD-back
⇧ w/ Teensy 3.1, front view (Reset button can be pushed through the hole, LED is visible)

kurumiVMD-back
⇧ w/ GR-KURUMI

Posted on Leave a comment

Teensy 3.x w/ MewPro and Motion Detection

More detailed articles will be published soon in this blog. Since there was a request for information about GoPro motion detection, I’m writing this very quickly.


Materials
The following hardwares and softwares I used.

  1. GoPro Hero 3+ Black
  2. MewPro board + MewPro application
  3. Teensy 3.1
  4. EL1883 sync separator
  5. Schematic to connect Teensy 3.1 and EL1883 w/ MewPro

IMG_5976
⇧ Motion Detect BacPac Side A: EL1883 (center left), Teensy 3.1 (bottom), and GoPro Herobus connector (top)

IMG_5975
⇧ Motion Detect BacPac Side B: MewPro board (trial product version) and Teensy 3.1

IMG_5977
⇧ Motion Detect BacPac fits into GoPro housing


Motion Detection
Basic ideas came from nootropic design Video Experimenter shield. They used LM1881 and the analog comparator of Atmel processor. I did almost the same thing using GoPro, EL1883 and the analog comparator of Teensy 3.1 (The most difficult part was to control GoPro from Herobus). Composite video signal is captured as binary frames (i.e., intensity is compared at the analog comparator in Teensy, if it is greater than the fixed threshold record 1, otherwise 0). In this way bit rate attained is 1 pixel/microsecond.

The following is a video capture of Serial Monitor connected to Teensy, showing debugging info: Powering on GoPro (by using MewPro ‘@’ command), initializing GoPro to output composite video (by using I2C command “VO”), and captured image output for debugging purposes. Actual capture is done every time the comparator interrupt (on both rising and falling edges) occurs; in the interrupt handler, the comparator output at that moment is also considered and if the comparator output is 1 then we record two bits of “01” (rising edge) otherwise “10” (falling edge); in the debug output even and odd frames are added (that’s why we sometimes notice the digit “2” while watching the following video).

Current motion detection algorithm implemented in MewPro application is very simple: Compare the pixels of adjacent frames; if the difference is large then something has moved.


Product PCB will be available within next week, and you will be able to buy it. Some more video demos are coming, too. So stay tuned.

Posted on Leave a comment

Yet another 3.3Vizing an Arduino

In this post we present some suggestion, “overclocking” on 3.3V and 16MHz Arduinos.

Processors from Atmel are usable on both 5V and 3.3V logics. For example, ATmega328P on Arduino Pro Mini or ATmega32U4 on Arduino Leonardo (Arduino Pro Micro) can work on both voltages without problems. But only one consideration is remained: 16MHz clock is not OFFICIALLY supported by Atmel if the processor is on 3.3V. So if you use these processors at 3.3V AND 16MHz you must understand/agree you are in danger(!) of overclocked them. (However, in many cases it should be safe and no problem.)

In this post we’ll do two overclocking experiments:

  1. Arduino Pro Mini 328 5V 16MHz → 3.3V 16MHz
  2. Arduino Leonardo (5V 16MHz) → (3.3V 16MHz)

1. Making Arduino Pro Mini 328 3.3V 16MHz
If you want Arduino Pro Mini 328 3.3V “16MHz” then there might be another way: Buy a genuine Arduino Pro Mini 328 3.3V “8MHz” and change the crystal (CERALOC® = ceramic resonator) on it. The problem is NO COMPATIBLE CERALOC® exists for the original one (original part no. is Murata CSTCE8M00G55A-R0). To be more precise, Murata makes a similar CERALOC® of 16MHz (part no. Murata CSTCE16M0V53-R0) but their footprints differ and 16MHz version can’t fit to the 8MHz place. So this method to change the crystal is not so easy to go through.

Thus we try the other way: Buy a genuine Arduino Pro Mini 328 “5V” 16MHz and change the voltage regulator on it. Photo: The location of regulator is marked red. The original voltage regulator is Micrel MIC5205-3.3YM5. It is the LoHS version of Micrel MIC5205-3.3BM5 and the footprint is SOT-23-5.

mini
(Sorry. I forgot to take a picture of original Arduino Pro Mini 328 5V 16MHz. The voltage regulator in this photo has already replaced by a 3.3V regulator.)

I used some low temperature solder (Removal Alloy by CHIPQUIK®) and two soldering irons to remove the SMD regulator. Detailed instruction of removing SMD parts is there in CHIPQUIK® site.

The replacement part should be any 3.3V voltage regulator that holds certain conditions. If you happen to get a Micrel MIC5205-3.3YM5 (LoHS) or Micrel MIC5205-3.3BM5 (non-LoHS) then you are very lucky to use the best one. However, the required conditions are, I think, only “3.3V fixed voltage”, “low dropout”, “150mA”, and “SOT-23-5” so there are many choices in buying a compatible regulator.

I used a Toshiba TAR5SB33 for the replace, because it is already there just in my parts-box. Soldering a SOT-23-5 part is not so difficult and is fun!

After soldering, connect the Arduino to your PC and check how it works (Don’t forget to use 3.3V version of FTDI board!!). In Arduino IDE, [Tools]→[Board] should be “Arduino Pro or Pro Mini” and [Tools]→[Processor] should be “ATmega328 (5V, 16MHz)” (Note: Arduino IDE doesn’t care about the voltage).


2. Making Arduino Leonardo (3.3V 16MHz)
There is a great article by Tyler Cooper on replacing Arduino Uno’s regulator to a 3.3V version. Arduino Uno and Leonardo are nearly identical around the power circuit (you can compare their schematics: Uno, Leonardo) so we could do the same on Leonardo, too.

However, the method Cooper used for Uno is not good for Leonardo who can speak some of USB protocols. Because after his surgery of removing the fuse XUSB signal doesn’t reach Uno’s (or Leonardo’s) processor pin but nowhere. USB 2.0 protocol requires XUSB (= VUSB) line to be alive (for checking impedances to D+/D-) at least speed negotiation phase thus the line shouldn’t be remained at infinite impedance or open after the surgery.

So I didn’t remove the fuse but did remove the MOSFET (T1 FDN340P in the schematic) marked red in the following photo.

leo
(Sorry, again. I also forgot to take a photo before removing/replacing something. In this photo the MOSFET has already removed, the voltage regulator replaced, and the additional diode attached.)

The rest of the surgery is the same as Cooper’s method: Replace the voltage regulator to a 3.3V version and connect VUSB to voltage regulator’s input pin through a diode. I used Advanced Analog Circuits AZ1086H-3.3 (SOT-223 package) for voltage regulator and 1N4007 for diode, however, any similar ones will do.

After removal and soldering things, connect the Arduino to your PC and check how it works. In Arduino IDE, no changes in settings are required (i.e., [Board] is also “Arduino Leonardo” and that’s all).


Enjoy!

Posted on Leave a comment

GoPro from CANON Timer Remote Controller

Canon TC-80N3 is an advanced cable remote controller for EOS cameras. This post is to connect TC-80N3 and GoPro.

Requirements

  • GoPro Hero 3+ Black
  • MewPro + Arduino Pro Mini 3.3V (Teensy 3.x or GR-KURUMI are also usable but we’re not going to show how-to in this post)
  • Canon Timer Remote Controller TC-80N3
  • some wires and solder

Theory
Basically TC-80N3 consists of two independent switches for shutter and focus. It remotely make corresponding circuits inside your camera CLOSE or OPEN. The difference between a mechanical switch and TC-80N3 is it bounces or not. To learn about contact bounce (aka “chatter”) see, for example, Wikipedia. Because TC-80N3 is specially crafted for shutter so that doesn’t bounce we can directly connect it to one of interrupt pins (INT0 or INT1) of Arduino Pro Mini without any additional circuits or software debounce routines.


Proprietary Connector
In order to connect TC-80N3 to Arduino its proprietary connector (N3-plug) may be an obstacle. If you don’t mind cutting your TC-80N3 cable then go to the next section “Connection”.

There are some places where N3-plug converters are purchasable:

These cables convert N3-plug to 2.5mm stereo phone plug (male connector), then you can easily find a receptacle that can mates with it.


Connection
The signals inside both TC-80N3 and its conversion cable are clearly explained in this article.

Then we solder the shutter signal to INT0 and the ground to GND as follows:
shutter-small
(The focus signal can be remained open.)


Software Mods
Open MewPro sketch in your Arduino IDE. Find the following lines in MewPro.ino file:

//********************************************************
// e_Shutters: One or two remote shutters without contact bounce or chatter
#undef USE_SHUTTERS

And change the lines like this:

//********************************************************
// e_Shutters: One or two remote shutters without contact bounce or chatter
#define USE_SHUTTERS

This enables to compile two routines in e_Shutter.ino (one is the interrupt handler and the other is the initializer attaching the handler to the actual signal pin (INT0)).


Then connect FTDI temporary header and USB cable to your PC, and install the software to Arduino Pro Mini.
That’s all. Enjoy!