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 detail of our open-hardware rig, Mani Wheel, which you can make or buy, is addressed in this article.
In the previous post we published two 360-degree videos of Japanese Cat/Rabbit Islands. These clips are made by using the following hardware and software:
Connected to the serial lines (RxD/TxD) of Dongle #0. And the whole system is controlled through BLE from the terminal application installed on iPhone or PC. (Note: In GenlockDongle source code, the serial baud rate must be modified from the default of 57600 to 9600 for Dongle #0.)
Software
Kolor Autopano Video Pro
Exact sync is detected by the software automatically.
YouTube 360 Video Metadata Tool
This is necessary for uploading 360-degree video to YouTube.
The hardware items are connected as in the following figure:
to supply 5V power to Dual Hero and Dongles through the USB connector. However, this can be done by any USB battery pack.
The following is top view of our Mani Wheel Rig:
Two Dongles (black small/large casings) and a Lipo battery can be seen. Next photo shows the inside of Dongles’ casings:
Opening and removing the orange top lid enables us to look inside of the hexagonal cavity consisting of six cameras. There sits a dedicated PCB disk to simplify soldering:
Note: We can sell 3D printed lids (top and bottom) and dedicated PCB disks starting from 200.00USD. Please ask us for detailed pricing of the items and/or extra soldering charge if you don’t want to do it by yourself.
UPDATE 22 May 2017: We received a STL file from Julien Brault-Chénier at LEOFILMS.CA. Thank you, Julien! The file can be 3D-printed and fit to use in place of our top lid so that the Mani Wheel rig can hold one more camera for shooting the zenith. (The STL file is also downloadable from our GitHub repo.)