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.
- 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.
- Thomas Gray
- Jurgen Schulze