Posted on Leave a comment

GoPro Hero 3+ Black slave mode

GoPro Hero 3+ Black can be controlled by Dual Hero BacPac™. In this post the protocol among two Blacks and the BacPac™, which is called “Smarty”, is roughly explained.

There are three devices involved:

  1. Master Camera
  2. Slave Camera
  3. Smarty

Role of a camera, Master or Slave is determined by the camera reading the first byte of I²C EEPROM located inside of Dual Hero BacPac™ connected; if the content of address 0 is 4 or 5 then the camera will play Master or Slave respectively.

After a camera knew its future role, it sends “vs” (GET_BACPAC_PROTOCOL_VERSION) command to Smarty (Please refer the other post about the detail of I²C commands).

Then Smarty respond to both “vs”s as OKs then each camera enters to each role; Master send the configuration of the camera (mode, pixels, upside-down and so on) to Smarty; and Smarty send the heard info to Slave; …

It is not so obvious that Master or Slave has two modes:

  1. 3d_SYNC_MASTER: Route DSP sync signals to CCD sensor
  2. 3d_SYNC_SLAVE: Route Dual Hero BacPac™ generated sync signals to CCD sensor

Just after a Dual Hero BacPac™ has been connected, both Master and Slave camera are in the 3d_SYNC_MASTER mode. But after the negotiation of camera configuration etc. is finished, they both go into the 3d_SYNC_SLAVE mode. This way 3d video is “genlocked” by Smarty (NOT by Master).


You are now understand the basics. Then what we can do? Maybe almost all of us don’t need “genlock”. Because many of us have only ONE GoPro Hero 3+ Black, don’t we?

MewPro don’t choose the way of generating a “genlock” signal. Instead MewPro interfere the negotiation of two cameras and leave both of them in the 3d_SYNC_MASTER state. So we don’t worry about the precision of a “genlock” signal but we can easily control all of the functionalities of GoPro Hero 3+ Black as if MewPro were a Smarty.


Tomorrow I’ll post some demonstrations or screenshots using MewPro and Arduino Pro Mini.

Posted on Leave a comment

List of I²C Commands

Here is a list of I²C Commands among master/slave Bacpac™ of GoPro Dual System and GoPro Hero 3+ Black.

MewPro emulates not only the listed commands but also controls power supply of GoPro body (one letter ‘@’ command) and configures itself as master or slave (one letter ‘!’ command).

Examples: (Connect GoPro and MewPro and type a command followed by a return in your Arduino IDE Serial Monitor)

  • @ : power on (MewPro command)
  • PW0 : shutdown GoPro
  • TM0E0A0D090F00 : set GoPro clock to 2014-10-13 09:15:00 (hexadecimal of YYYY-MM-DD hh:mm:ss)
  • SY1 : shutter (camera mode) or start record (video mode)
  • SY0 : stop record (video mode)

Note: Some commands may not work as expected. It may depend on the role of BacPac™, master or slave. Try changing the MewPro role by entering ‘!’. This one letter command as well as power-on command ‘@’ are special built-in commands of MewPro and not listed in below.