Posted on Leave a comment

No Master Configuration For Genlocking

A PC controlled genlock system support is added to Dongle’s source code.

For genlock rigs we’ve offered two configurations, namely

  1. Single Dongle configuration
  2. Double Dongle configuration

and these are described in this post. The latter is usable with PC by connecting MewPro #0 to FTDI serial USB breakout and by sending commands from its console.

Shāndōng University – Virginia Tech researchers use a double dongle configuration, as I know so far, and also use a PC that is connected to MewPro #0 in order to control the whole system. (For their recent progress, a blog post is here: Matt Bender, Mincan Cao, Yu Wei, Shaoxu Xing “Tracking of Fiducial Markers for Bat Flight Motion Capture Experiments)

To control the whole system from PC, today we added support for

  • 3. no master configuration.

Control everything from PC. No master camera.
Control everything from PC. No master camera.

(DTR connection between Dongle #0 and FTDI is for resetting Dongle #0 when uploading a sketch to the dongle or opening the Arduino Monitor in PC.)

As you can see this is the same to the single dongle configuration but GoPro #0 is replaced by Genlock Dongle #0 connected to PC through FTDI serial USB breakout board.

The no master configuration is completely symmetric and everything is PC controllable but there is no master camera that you might be accustomed to push mode/shutter buttons or to browse through menus on LCD.

How To Use No Master Configuration

You should follow the instructions for single dongle configuration first. And don’t forget to prepare/buy one more Genlock Dongle for Genlock Dongle #0 in the figure above.

You must update the dongles with the latest version of Dongle source code that supports no master configuration. It is always available at the GitHub repo.

For dongles the initial value of bool debug and the directive UART_RECEIVER_DISABLE should be set as follows:

bool debug UART_RECEIVER_DISABLE
Dongle #0 true or false #undef
Dongle #1 false #undef or #define

(Bold face is the default in the GitHub source code.)

In this configuration usable commands from PC are those which are listed in the I2C command list and its label contains _BACPAC_.

Example:

  • SH1 start recording/shutter
  • SH0 stop recording
  • CM1 change mode to camera
  • VV0A change video resolution to 720p Super
  • etc., etc.

The dongle also suports two more commands:

  • @ power on
  • & toggle debug output

Enjoy!

Posted on Leave a comment

Mounting GoPro’s microSD thru Side USB

By installing a slide switch or an alternate push button to the reset line of our genlock system, GoPro’s microSDs get easily accessible from PC through the USB on the side.

The customer in Germany recently told us that they succeeded in mounting GoPro’s microSDs without detaching MewPros nor soldering additional wires. They’ve got two key ideas: 1. If the reset line is kept LOW then MewPros don’t logically exist on Herobus; 2. If Dual Hero bacpac (or MewPro) is attached to Herobus then the side USB cannot be used to mount GoPro’s microSD from PC.

We misunderstood that the I2C command “UM0” enabled access to internal microSD from the side USB. The truth is the command only disables access from the back USB that have been enabled by “UM2”, and resumes the 3D mode.

The following is a demo to mount all the microSDs in a sample rig.

Example Session

The rig is in a single-dongle configuration with one master camera and, for simplicity sake, only one slave camera. All cameras and the Dual Hero bacpac are powered/charged by a self-powered USB 2.0 hub. An alternate push button switch is installed on the reset line (the red part in the photos below. When the button is pushed/latched its red rod is seen shorter).

Step 0: Let’s start this session with normal charging state: Master camera is OFF; Slave camera(s) OFF; USB hub’s power is ON; Reset line HIGH, i.e., reset is OFF.

Master OFF. Slave OFF. USB hub ON. Reset OFF.
Master OFF. Slave OFF. USB hub ON. Reset OFF.

Step 1: Push the master camera’s power button. Then the system enters in 3D shooting state.

Master ON (3D). Slave ON (3D). USB hub ON. RESET OFF.
Master ON (3D). Slave ON (3D). USB hub ON. Reset OFF.

Step 2: Push and hold the reset switch to keep the reset line LOW. And temporally detach power from the USB hub. Then the master camera becomes automatically OFF because the peer Dongle has lost its power.

Master OFF. Slave ON (not 3D). USB hub OFF. Reset ON.
Master OFF. Slave ON (not 3D). USB hub OFF. Reset ON.

Step 3: Plug a USB cable to PC and hub. And power on the USB hub.
Then the slave camera(s) become(s) hard disk mode and they are accessible from PC simultaneously.

Master OFF. Slave ON (disk). USB hub ON and connected to PC. Reset ON.
Master OFF. Slave ON (disk). USB hub ON and connected to PC. Reset ON.

Step 4: After downloading video/image data from slave GoPros unmount these disks on PC. And push release the reset line.

Master OFF. Slave ON (3D). USB hub ON and connected to PC. Reset OFF.
Master OFF. Slave ON (3D). USB hub ON and connected to PC. Reset OFF.

Step 5: We have downloaded data from all the cameras but the master. Now push the master camera’s power button again. Then we will be able to do the job.

Master ON (disk). Slave ON (3D). USB hub ON and connected to PC. Reset OFF.
Master ON (disk). Slave ON (3D). USB hub ON and connected to PC. Reset OFF.

Posted on Leave a comment

How To Use MewPro 2 and Application

We will show you basics to use MewPro 2 for controlling GoPro Hero 3+ Black camera.

The post involves no external sensors.

UPDATE 25 Feb. 2017: Hero 4s are now supported: Please refer this post.

mew2-11


Prerequisites

In order to use MewPro 2 as a GoPro controller you need the following hardwares:

GoPro Hero 3+ Black
No previous editions work with MewPro 2.
MewPro 2
MewPro 2 is ready to use without soldering.
Arduino Pro Mini Temporary FTDI Header
If you buy a MewPro 2 from our shop the header is included in the package.
Sparkfun FTDI Basic Breakout – 3.3V and USB cable
Use 3.3V version of the breakout board. Any compatible board should work.

Softwares:

MewPro 2 is shipped with optiboot as well as MewPro software (for genlock) installed. But if you like to modify/update the software you will need to prepare the following IDE, core and library. To install each software please refer their documentations.

Arduino IDE 1.6.5 or newer
Older versions of Arduino IDE might work but we don’t confirm that.
ATTiny Core
1634, x313, x4, x41, x5, x61, x7, x8 and 828 for Arduino 1.6.x
WireS library
Slave only hardware Wire library for ATtiny1634 microcontroller.

Lastly grab the MewPro application:

MewPro Application
This is an open source software (MIT license). You can modify and distribute it as you like.

Connection

On your PC launch Arduino IDE that was installed as described in the above. In Arduino IDE [File]→[Open...]→ then open MewPro.ino.

Remark: MewPro.ino contains the following files as tabs; a_Queue.ino, b_TimeAlarms.ino, c_I2C.ino, d_BacpacCommands.ino, e_Shutter.ino, f_Switch.ino,g_IRremote.ino, h_LightSensor.ino, i_PIRsensor.ino, j_VideoMotionDetect.ino, and k_Genlock.ino. If you like to see what will be happen inside of your ATtiny1634 you could read any of them.

Connect MewPro 2
connection2

to your PC w/ FTDI board and the temporary header.
conne2

Connecting FTDI please refer the pinout image below:
MewPro2

Then connect them to GoPro Hero 3+ Black.
conne1

In Arduino IDE application, select [Tools]→[Board]→[ATTiny1634 (optiboot)] and [Tools]→[Port]→[(the port where you connected the FTDI cable)]. (B.O.D. and Clock settings are “don’t care” as these values are only effective when you burn a bootloader to the microcontroller by using an ISP programmer.)

The MewPro source code is originally targeted to MewPro 1, Arduino Pro Mini, so please change the following lines in MewPro.ino from

#include <Wire.h> // *** please comment out this line if __MK20DX256__ or __MK20DX128__ or __MKL26Z64__ or __AVR_ATtiny1634__ is defined ***
#if BUFFER_LENGTH < 64
#error Please modify Arduino Wire library source code to increase the I2C buffer size
#endif
//
// Teensy 3.0 or 3.1 or LC
//#include <i2c_t3.h> // *** please comment out this line if __MK20DX256__ and __MK20DX128__ and __MKL26Z64__ are not defined ***
//
// ATtiny1634 core https://github.com/SpenceKonde/arduino-tiny-841
// WireS library is downloadable from https://github.com/orangkucing/WireS
//#include <WireS.h> // *** please comment out this line if __AVR_ATtiny1634__ is not defined ***

to

//#include <Wire.h> // *** please comment out this line if __MK20DX256__ or __MK20DX128__ or __MKL26Z64__ or __AVR_ATtiny1634__ is defined ***
//#if BUFFER_LENGTH < 64
//#error Please modify Arduino Wire library source code to increase the I2C buffer size
//#endif
//
// Teensy 3.0 or 3.1 or LC
//#include <i2c_t3.h> // *** please comment out this line if __MK20DX256__ and __MK20DX128__ and __MKL26Z64__ are not defined ***
//
// ATtiny1634 core https://github.com/SpenceKonde/arduino-tiny-841
// WireS library is downloadable from https://github.com/orangkucing/WireS
#include <WireS.h> // *** please comment out this line if __AVR_ATtiny1634__ is not defined ***

that is, to use the WireS library instead of the standard Wire library.

The code should now be compiled successfully.
Verify” the MewPro sketch and “Upload” it to MewPro 2 board.

Remark: If you are using MewPro 2 board for genlocking, please modify MewPro.ino as

boolean debug = false;
#define USE_GENLOCK

and for MewPro #0 in double dongle configuration

#define UART_RECEIVER_DISABLE

Control GoPro

Controlling details through Arduino console is the same as MewPro 1.


Resources