From Immersive Visualization Lab Wiki
Jump to: navigation, search


Project Overview

The Camelot project involves the stitching of 50+ synchronized video cameras to produce large, completely immersive videos/images. My involvement in this project is to reverse engineer how two GoPro camera's synchronize for stereoscopic recordings and extend this to N-number of cameras with custom hardware.


  • Obtain an iPhone female-to-male (30-pin) connector with all pins exposed.
  • Solder pins to custom iPhone connector and analyze communication between master and slave GoPro's.
  • Determine logic used to initialize a slave GoPro from a master device.
  • Reproduce this behavior with an Arduino unit to drive a slave GoPro from it (the Arduino Uno).
  • Extend this logic to two cameras at the same time.
  • Create a proof of concept with one master GoPro and two slave GoPro's.

Known Bugs/Issues

  • Why use a GoPro?
    • There is another capturing device that allows for synchronization between all cameras, but it requires a computer since it needs to be connected to one.
    • GoPro's are a lot smaller and, more importantly, are self-contained -- they don't need to be connected to a computer to function and save all data to their removable storage devices.
    • GoPro's are also a cheaper alternative to the other camera in question, which would significantly help save development costs for the Camelot project.
  • GoPro availability
    • The version of the GoPro (Hero 2) being used for my proof of concept have been discontinued -- they are widely available on places like the Amazon Marketplace or eBay, however, which could help lower the project's cost.
    • The newer version of the GoPro's (Hero 3) are ultimately what we wish to extend this proof of concept to, but GoPro, themselves, haven't even released a synchronization cable for them yet, and using a sync cable from a Hero 2 causes the cameras to not function properly.
  • Hero 2 Sync Cable
    • The connector is an active cable -- there is additional hardware inside the connector, itself. This needs to be analyzed to determine what needs to be reproduced on a per-camera basis and what signals simply need to be buffered and forwarded to additional cameras.
    • There is an EEPROM inside the connector on both the slave/master ends; all cameras in our GoPro 'network' would need a local EEPROM to interact with to fully emulate a slave connection.


Software Developer

  • Thomas Gray

Project Advisor

  • Jurgen Schulze