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:
- Master Camera
- Slave Camera
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:
- 3d_SYNC_MASTER: Route DSP sync signals to CCD sensor
- 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.