Newer firmwares for Hero 4 cameras have a fatal bug in bulk transfer of the settings. This post get to the core of its reason by arranging events in chronological order.
Bulk Transfer Bug
In order to sync camera’s settings Hero 4 Black/Silver has two kinds of I2C/Herobus commands:
Bulk transfer
Individual transfer
The bulk transfer sets each of the video/photo/multi-shot settings at once. This is usually useful at boot process of camera, whereas an I2C/Herobus command for the individual transfer is issued from user interaction with LCD menu.
Newer firmwares for Hero 4 cameras can’t do the former. So if you like to use some new function introduced in the buggy firmwares then you must prepare the camera mode in advance and it’s better not to change it in the field.
History of Hero 4 Firmwares
It is said that “Good intent and good deed contribute to good karma and future happiness, and vice versa”. So let’s investigate GoPro’s actions in time sequence.
05 Oct 2014: version 01.00.04 (Black) / 01.00.00 (Silver)
These are the firmwares for Black and Silver cameras at product release.
14 Oct 2014: version 01.02.00 (Black, Silver)
No I2C/Herobus commands are supported, yet.
04 Feb 2015: version 02.00.00 (Black, Silver)
There is a support for a kind of I2C/Herobus commands, which is a bit different from the current one or discontinued Dual Hero’s.
28 May 2015:
Google and GoPro announce a VR project, which finally evolved into GoPro Odyssey after tired waiting for more than a year, at Google I/O 2015.
30 Jul 2015: version 03.00.00 (Black, Silver)
Current I2C/Herobus commands are fully implemented without a flaw.
01 Jun 2016:
GoPro Odyssey is released. Instead utilizing Black’s default firmware user must install Odyssey exclusive, privileged firmware 16.01.10 to their Blacks. It can shoot in 2.7K 4:3 30/25 (NTSC/PAL) only.
17 Aug 2016:
GoPro Omni is released. User must install Omni exclusive, privileged firmware 26.01.10 to their Blacks. It can shoot in not only 2.7K 4:3 30/25 but also 1440 4:3 60/50 (NTSC/PAL).
18 Aug 2016: version 04.00.00 (Black, Silver)
Bulk transfer bug is put.
21 Oct 2016: version 05.00.00 (Black, Silver)
The update is exclusively for supporting Karma. Still the bug is there…
23 Oct 2016:
GoPro Karma is released. It works with version 05.00.00 firmware.
Conclusion
We wish we could test the firmware 05.00.00 with Black and Karma, however, it became impossible now as bad karma fell from the sky.
Note: Hero 4 Silver with firmware version 03.00.00 or later is now supported by MewPro Iliad software published at our GitHub repo (please edit/define the compiler directive HERO_4_SILVER in Iliad.h and compile/upload it). No change is necessary for MewPro4 software to use with Silver.
MewPro Iliad generates HSYNC/VSYNC and synchronizes any number of GoPro Hero 4 Blacks or Silvers. The post describes details of this new genlock device.
How Iliad Works
The following clip is a demo of MewPro Iliad, the production version of our sync generator/controller for Hero 4 Black/Silver.
Iliad can be interacted with any IR remote by learning its code and/or with three on-board momentary switches, which correspond to the familiar Mode/Shutter/Setting buttons of GoPro Hero 4 Blacks. In the short footage above three cameras are in complete sync: Power on – sync setting – change video resolution/protune on – start recording – stop recording – change to camera mode – shoot photo – power off.
(Note: n is the number of cameras. In our case n=3.)
The items marked * are in our shop.
Currently MewPro Iliad is still in beta stage, however, here we venture to sell it because there is huge urgent demand. It can do the following.
Video: All the video modes Hero 4 Black/Silver supports
Photo: Single shot in any resolutions
The camera has many charming submodes such as “Timelapse” or “Night Lapse” or “Burst” or something but shooting in these submodes is not genlocked. This might be due to camera’s restrictions so please don’t blame MewPro and Iliad.
GoPro Hero 4 Black/Silver’s firmware can be version 03.00.00 or later (N.B. The version is shown on camera’s LCD without the last two digits as “03.00” at camera power on).
Note: There is a fatal bug in version 04.00.00 or later that causes bulk setting sync transfer impossible, i.e., settings cannot be synced when power on. Thus, we strongly recommend to use MewPro Iliad with the firmware version 03.00.00. And if you have version 26.01.10 for Omni then it also works after sending a command to MewPro board, however, in this case only two video modes (2.7K 4:3 30/25 and 1440 4:3 60/50 (NTSC/PAL)) are supported and there is no reliability improvement at all.
Connections
MewPro Iliad and MewPro2’s can be connected by using 6-core cables or (straight) ethernet cables of any category.
Case 1: Using 6-core cables
On the Iliad board there are thru holes for necessary signals.
Connect 5 signals and optional 1 line to each MewPro 2 board as follows:
Table 1. Connection Between Iliad and MewPro 2
Iliad
MewPro 2
GND
—
GND
(*)
VSYNC
—
VSYNC
TRIG
(no connection)
HSYNC
—
HSYNC
RESET
—
RESET
TXO
—
RXI (**)
3V3
—
VCC
optional (***)
Remark *: There are two GND pins on the Iliad board. It doesn’t matter you connect both or either of them.
Remark **: On MewPro 2 board there are two different RXI pins “FTDI RXI” and “RXI 1”. The former pin at the row “FTDI” is ONLY FOR PROGRAMMING. So you should connect the serial line from Iliad/Bastet to the “RXI 1” pin at the edge.
Remark ***: If you like to use Hero 4 camera without battery and feed 5V power thru side USB socket or VUSB pin on MewPro 2 board then also connect this line in order to feed power to MewPro 2 board from Iliad.
Case 2: Using ethernet cables
The Iliad board has a RJ45 receptacle to connect to an ethernet cable of any category. You can directly connect this to one or more MewPro 2 boards by simply branching each of signals.
Signals at the RJ45 receptacle of the Iliad board are:
Table 2. Signals at the Ethernet Jack
pin #
T-568A color
T-568B color
signal
1
white/green
white/orange
(no connection)
2
green
orange
VSYNC
3
white/orange
white/green
(no connection. reserved for TRIG)
4
blue
blue
HSYNC
5
white/blue
white/blue
GND
6
orange
green
RESET
7
white/brown
white/brown
TXO (Iliad) / RXI (MewPro 2)
8
brown
brown
3V3
If you also bought RJ45 Stackable Hub with Buffer from our shop then all RJ45 connector pins are aligned as in Table 2.
Softwares
The software is being developed by using Arduino IDE that is downloadable from https://www.arduino.cc/en/Main/Software. If you are not familiar with Arduino platform there are many introductions or tutorials on the Net. So please refer them first.
If you bought Iliad from our shop then all the software is pre-installed. However, there will be frequent updates or bug fixes from us you’d better prepare the IDE.
To compile/upload please refer the README.md included in the zip file.
Software for MewPro Iliad
The Iliad board is designed as a shield of Seeed Studio’s Seeeduino Mega, which is an Arduino Mega 2560’s enhanced clone. You can use the Iliad board with the original Arduino Mega 2560 R3, however, the size will be larger. This is the reason why we ship MewPro Iliad with Seeeduino Mega.
Seeeduino Mega can run in either 5V or 3.3V logic. Iliad shield itself has a voltage translator so you can set Seeeduino Mega’s voltage, for which there’s a slide switch, to either voltage. However, according to Atmel’s ATmega2560 documentation 16MHz is “overclocking” when 3.3V so we recommend to use the board in 5V logic.
(Note: The IRremote library conflicts with RobotIRremote library in the standard Arduino IDE. So please delete your_IDE_folder/Contents/Java/libraries/RobotIRremote
if you encounter some issues.)
To compile/upload is easier than MewPro4 application because it is nothing but an Arduino Mega 2560 clone. So please search the net for tutorial for it if you need.
Let’s Sync!
Everything is ready if you’ve done the above steps (If you bought all the items from our shop then installing software is not necessary).
Iliad board needs one CR2032 button battery to keep date and time. There’s a holder for it at the back of the shield. Please take care + (plus) side is the far side from the board (there’s a curved + mark both on cell and holder). The battery is expected to last two or three years.
Connect USB cable between USB battery (or wall charger) and Seeeduino Mega with Iliad. LCD should light and show “MewPro Iliad” and its software version. If it doesn’t show anything then please try to turn the potentiometer marked 103 for contrast or 102 for brightness.
After the start up message “MewPro Iliad” is shown, you can use it as if it were a real GoPro Hero 4 Black. Camera’s side button for setup corresponds to the SETUP momentary switch, shutter to SHUTTER, and mode to MODE.
(Note: To power on all the camera long press MODE as well as to power off.)
Furthermore, there’s an extra menu that real camera doesn’t have. You can enter to the menu by pressing SETUP while the start up message is shown. The extra settings consist of:
Date/Time – Setting date/time to on-board real time clock chip
Reset – Reset Iliad to factory default
Mount microSD – Resetting all the MewPro 2 board
Learn IR code
By using the last menu item Iliad can learn any IR remote’s code (from TV remote or Video remote etc.) so you can control GoPros with your favorite IR remote controller.
Also resetting all the MewPro 2 board has the same effect to detaching all the MewPro 2 from cameras. This is usually very convenient if you fix up all the cameras in a rig.
Hero 4 Black genlocking is demonstrated in the video. The system uses MewPro 2 and up-coming sync signal generator.
The prototype system consists of a sync generator (at the left), three GoPro Hero 4 Black + MewPro 2’s, cables etc. And it is perfectly controlled by an IR (Infrared) remote as in the clip : Power On – Mode Change – Start Recording – Stop Recording – Power Off. The prototype as well as up-coming sync generator is based on Arduino Mega 2560 and will be an open hardware/software as our other products.
Note: The system will work with any number of cameras but can only shoot in the following two video modes (the restriction is due to camera’s firmware).
2.7K 4:3 30fps NTSC / 25fps PAL
1440p 60fps NTSC / 50fps PAL
We are currently designing a PCB for the product so please wait until it appears in our shop. 🙂
This post is outdated. We are already selling Iliad in our shop. Please refer more recent post for info.
A DIY stand-alone unit for watching geofence breach is made by using Teensy 3. The general purpose device, which has a similar functionality of geofence or sending notification by location on smartphones, is also usable to automatically start/stop recordings of GoPro camera with aid of MewPro.
Details
Although each MewPro has a microcontroller (AVR) on its board, we decided to separately use Teensy 3 (Cortex-M4) that can do with double-precision floating-point (64 bits) numbers. Implementing geofence as stand-alone enables the unit to control not only GoPro cameras but also other equipments (such as LEDs and buzzers) with regard to preconfigured geofence, which can be a union of convex polygons.
To test the unit we connect an LED to its alarm pin: SHUTTER signal (red wire) at the audio mini plug in the photo becomes LOW/hi-Z if it enters/exits the geofenced area. We use digistump’s ATtiny85 Digispark board to watch the pin and to turn on/off the LED, however, you can use any device such as GoPro+MewPro or something as Digispark.
The following is a teardown of the DIY unit.
Resources
The module is an open software/hardware. The schematics and the source code with a simple README document are downloadable from: