Posted on Leave a comment

Introduction To MewPro Bastet

MewPro Bastet is a small device that enables us to control/genlock GoPro Hero 4 cameras. Unlike our monolithic MewPro Iliad, it simply listens broadcast by the master and provides sync signals for all of cameras while recording.

MewPro Bastet is ready to purchase in our shop, however, its product description is still under construction (I’m now editing it…).

Demo

The following video shows the three Hero 4s are synced and controled by Wi-Fi RC. (Power on — change mode -(video)- start recording — stop -(photo)- take a photo — power off.)


To make the footage we used:

  • 3 GoPro Hero 4 Black (one master and two slaves)
  • 3 MewPro 2
  • 1 MewPro Bastet
  • (cables and plugs/receptacles)

The white PCB is Bastet, the blue PCBs are MewPro 2s.

In the photo above you’ll also find bulky RJ45 Ethernet receptacles or “Stackable Hub with Buffer”, however, these parts are not always necessary for syncing cameras in, for example, weight restricted environments such as shooting videos from the sky.

How It Works

In Fig. 1 the number of GoPro Hero 4 cameras is five for example. Of course, any number of cameras can be synced in this way.

MewPro Bastet is put between the master camera (GoPro #0 in Fig. 1) and the slaves (GoPro #1, #2, #3, #4 in Fig. 1). It wiretaps the command packets that the master sends to the slaves. It understands all commands and changes its internal states accordingly. And once master’s shutter button is depressed then it begins to generate sync signals (VSYNC/HSYNC).

Fig. 1

In the diagram above “Hub (optional)” can be either solder joints of wires or our Stackable Hub with Buffer or some kind of DIY octopus cable or a strip board with 6 lines in parallel or something. We only offer a solution with Stackable Hub with Buffer but you can do it yourself in place of this in order to reduce the space.

Comparison Table Between Iliad and Bastet

For your information the following is a brief comparison table between Iliad and Bastet.

Iliad Bastet
Size larger than Hero 4 equal to MewPro 2
MCU ATmega2560 ATmega328PB
LCD 16 x 2 none
Switches 3 0
Infra Red 1 0
Wi-Fi no master camera (*)
Software MewPro_Iliad MewPro_Iliad
MewPro 2 all slave all slave but one master (**)

Note *: All the cameras are controlled by the master regardless of whether the change is made by using Wi-Fi or master camera’s button press.

Note **: The MewPro 2 board attached to the master GoPro must have MewPro 4 firmware that is compiled with #define BASTET_MASTER compiler directive. While other boards should have the default MewPro 4 firmware.

How To Use MewPro Bastet

In the next blog post we’ll explain how to connect wires between Bastet and each MewPro boards.

Posted on Leave a comment

List of GoPro Hero 4 I2C Commands

Hero 4 has a new I2C command set incompatible with old Hero 3+ Black. This post gives a demonstration of controlling a standalone Hero 4 camera from Arduino Monitor.

Here is the list of the commands for Hero 4. You can send these commands from your PC’s terminal or Arduino Monitor to MewPro 2 (or MewPro Cable) board or MewPro Iliad through the default UART lines.


Prerequisites

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

GoPro Hero 4 Black/Silver
NOTE: Hero 3+ Black is supported by a different software: Please refer this post.
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 MewPro4 software for genlock installed. If you like to modify/update the software you will need to prepare the following IDE and core. To install each software please refer their documentations.

Arduino IDE 1.6.12 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

Lastly grab the MewPro4 application:

MewPro4 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 MewPro4.ino.

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 4 Black/Silver (The photo below is stolen from our old blog post and connecting to Hero 3+ Black, but I think you will understand where you should connect to. 🙂 ).
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 MewPro4 source code is originally targeted to users with multiple cameras, so for standalone usage please edit/change the following line in MewPro.h at line 8

...
// undef if MewPro 2 board is used as standalone
#define USE_GENLOCK
...

to

...
// undef if MewPro 2 board is used as standalone
#undef USE_GENLOCK
...

Now you are ready to compile/upload the source code. Click on “check mark” icon at the top left of Arduino IDE window compiles the code. And “Right arrow” icon at the right next uploads the compiled binary to MewPro 2 board.

If you like to use a time alarm function MewPro4 source code has such an example included. In this case you must download Time and TimeAlarms libraries from PJRC site, modify the line #undef USE_TIME_ALARMS in MewPro.h to #define USE_TIME_ALARMS, and also remove two comment-outs ‘//’ located at these two lines:

#include <TimeLib.h> // *** please comment out this line if USE_TIME_ALARMS is not defined ***
#include <TimeAlarms.h> // *** please comment out this line if USE_TIME_ALARMS is not defined ***

Then edit d_TimeAlarms.ino to set your alarms.


Controlling Standalone Hero 4 from Arduino Monitor

Open “Serial Monitor” in Arduino IDE window (click the the top right “magnifier” icon). Set [57600 baud] using the bottom right pulldown, [Newline] the middle pulldown, [Autoscroll] the left box checked.

screen-shot-2017-02-25-at-18-09-17
Type ‘@‘ (one letter representing at sign) in the input area of Serial Monitor, and hit return key.

screen-shot-2017-02-25-at-18-09-37
The message “camera power on” is shown and your GoPro Hero 4 turned its power on.

The messages on “Serial Monitor” shows communication details between Arduino and GoPro. And now you can type in any of I2C commands found in “List of GoPro Hero 4 I2C Commands“.

screen-shot-2017-02-25-at-18-11-59
Try typing “YY000101000100” (change camera mode to video) and hit return key unless your camera is in video mode. Then type “YY00021B0000” (and hit return) and “YY00021C0000” (and hit return). (Start recording! Stop recording!!)

If you finished type “ZZ00030101” (and hit return). (This should power off your GoPro Hero 4.)

Enjoy!


Resources

Posted on Leave a comment

Overexposure Bug Fixed

MewPro Iliad’s overexposure problem in many video modes is fixed.

The Iliad source code at our GitHub repo has already been updated to the latest 1.2.15. Compiling and installation guide is here. Since this bug only affected sync signal parameters there is no need to update the firmware on your MewPro 2 boards.

All the video modes that the camera, GoPro Hero 4 Black or Silver can shoot are supported.

Enjoy!