Multicam Rig for Events - Step By Step Help Please!!

  • 82 Replies
  • 6219 Views
Multicam Rig for Events - Step By Step Help Please!!
« on: 28 / August / 2017, 17:54:27 »
Advertisements
I need clear instructions on how I can set up a multicamera rig for live events to create bullet time GIFs. PLEASE HELP. I've been pouring over these threads for weeks, educating myself on CHDK, but since I am not a programmer in any way, it's been a slow and painstaking process.

Here are the details - I am building a 16 camera rig, using Powershot A480's, to create a bullet time experience for guests at live events. I've figured out how to use CHDK in the camera with a multiple USB hub and an on/off switch to trigger them in synch. So the capture part I think I have down.

The problem I am having is, how do I then download all the images from 16 cameras to a computer quickly? One person has suggested using Eye-Fi cards, but I've had reliability issues with them in the past at live events. So I prefer hard wire solutions. I have both PCs and Macs, so a solution for either system would be fine.

I appreciate any help you could give me. Please remember that my programming knowledge is, at best, at a kindergarten level, so clear instructions and plain english would be greatly appreciated if possible :-)

Thank you very much!!
--Colin


Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #1 on: 28 / August / 2017, 20:14:24 »
cpat83 contacted me via PM and I requested that he post his questions here.  But I also told him :

Quote
So have you done any reading about the PTP extension and the chdkptp program?

If you connect all your cameras via USB cable to USB hubs and then to your PC you can fairly easily script things to download all your pictures after each shot.

Depending on your application, chdkptp can get pretty good sync quality without needing the hardware USB remote cabling that you are using.  But for the best sync its possible to combine the two solutions with some custom wiring work.  I can point you to related forum threads if you'd like to try that?

Did you take a look at this wiki page : Multiple Cameras using CHDK?  It's pretty high level but the links at the bottom might be helpful to get you started.   A/C power supplies, common grounding, and ptp communications all take some careful design but it's worth the effort when you do.

and he had already read through all of that.

So what he is missing is an understanding of how to use chdkptp.  Both the physical wiring of multiple camera via USB hubs to a PC and the syntax to download all recent images from multiple cameras.  He already has chdkptp working and can connect to the cameras one at a time via the GUI.

Ported :   A1200    SD940   G10    Powershot N    G16

Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #2 on: 28 / August / 2017, 20:30:45 »
That sounds about right, thank you Waterwingz. So, where do we go from here? Is there anyone that can walk me through how to create a basic multicam setup? :-) All I need is to be able to shoot in relative synch (perfect synch isn't necessary), and then download all the images. Any help would be wonderful, thank you :-)

Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #3 on: 28 / August / 2017, 20:53:59 »
...I need clear instructions on how I can set up a multicamera rig for live events to create bullet time GIFs....
...I am building a 16 camera rig, using Powershot A480's,....
...The problem I am having is, how do I then download all the images from 16 cameras to a computer quickly?..
If you are located in Australia or New Zealand I may be able to help out:-

a/ With about 70 legacy a450 and a460  Canon Camera's (from Zcreams abandoned project) see here
https://chdk.setepontos.com/index.php?topic=4103.msg62010#msg62010
22197 Views, 115 Replies, AND ONLY A FEW WORKING (CHDK) RIG's, that I am aware of.

b/ About 15 a480, 490 and 495 currently unused cameras.

c/ Some hardware, from Zcreams abandoned project.

d/ Some new ideas about "how to do and up-grade" Zcreams abandoned project.

However if you are on a micro-budget that will be a additional challenge.

Some stuff that you might not have considered:-

1/ Sub-Pixel x-y and rotate, gif, or video image alignments in near "Real-Time".

2/ Gif, video, or similar, Post-Processing  in near "Real-Time".

3/ The need for additional cameras i.e. "Eye Candy", is a 16 camera-rig sufficient.

4/ Multi-Computer "SWIG-Glue", custom software, and a customized setup (i.e. Hugin_Executor) files  for Post-Production.

5/ Multi-Camera rig, "Skills", "Construction" and setup/running costs.

H-H
« Last Edit: 11 / September / 2017, 05:30:07 by Hardware_Hacker »


Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #4 on: 28 / August / 2017, 21:55:38 »
That sounds about right, thank you Waterwingz. So, where do we go from here? Is there anyone that can walk me through how to create a basic multicam setup? :-) All I need is to be able to shoot in relative synch (perfect synch isn't necessary), and then download all the images. Any help would be wonderful, thank you :-)
I think you told me that you can use chdkptp to connect to each of your cameras individually?  I assume that means you have all 16 cameras connected to USB hubs that are in turn connected to your PC? (i.e. with all the cameras powered up, you can use chdkptp to connect to each of them one at a time).

I suspect that you are using the chdkptp GUI so you will need to get familiar with the command line for chdkptp.  It's really not that bad - trust me.

What you need here is the command syntax to cause the cameras to shoot "sync'd" and to then batch download all the resulting images. 

I know this is explained in several of the chdkptp threads but I'm hoping reyalp can spare us some googling and just post the necessary commands here? 

TIA reyalp.


Ported :   A1200    SD940   G10    Powershot N    G16

Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #5 on: 28 / August / 2017, 22:16:16 »
That is correct. I use chdkptp GUI without trouble, one camera at a time.
I currently have two A480s. Once I prove I can make it work with 2, I can upscale to 16. Baby steps. :-)

*

Offline reyalp

  • ******
  • 11583
Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #6 on: 28 / August / 2017, 23:39:02 »
That is correct. I use chdkptp GUI without trouble, one camera at a time.
I currently have two A480s. Once I prove I can make it work with 2, I can upscale to 16. Baby steps. :-)
First, a word of caution: What you are trying to do is quite technical and isn't something we can just give you step by step instructions for. Several of us are happy to give what advice we can, but you'll need to put in some effort to learn as well. This is not intended to discourage, only set reasonable expectations.

To control multiple cameras over a USB connection, you can use the multicam.lua module included with chdkptp. Unfortunately, I haven't documented this beyond what's in the file itself (found in the lua subdirectory of your chdkptp install, or https://app.assembla.com/spaces/chdkptp/subversion/source/HEAD/trunk/lua/multicam.lua)

Multicam is not integrated into the chdkptp GUI, so you will need to control it using the CLI to run Lua code. You can find an overview of the CLI system here: https://app.assembla.com/spaces/chdkptp/wiki/CLI_Quickstart
and an introduction to running Lua in the chdkptp CLI from here:
https://app.assembla.com/spaces/chdkptp/wiki/Scripting_Guide

Note you can use CLI commands from the GUI, but it may become unresponsive while they are being executed. The normal GUI controls are only set up to work with one camera, so wont be very useful and may break with multicam. You can run chdkptp in cli only mode by starting with -i

Multicam has two parts: PC side code that runs inside chdkptp, and code that runs on the cameras. The PC code allows you to connect to multiple cameras and send the same commands to all of them. The camera side code interprets these commands.

To use multicam, you first need to load the module, with
Code: [Select]
!mc=require'multicam'
This only needs to be done once after starting. After you do this, mc allows you to access multicam functions.

To connect to all cameras that are connected to your pc:
Code: [Select]
!mc:connect()

To start the camera side code
Code: [Select]
!mc:start()

You can now use multicam commands and functions.  Commands are sent using the mc:cmdwait or mc:cmd function. For example
Code: [Select]
!return mc:cmdwait('rec')
switches all the cameras to shooting mode. mc:cmdwait waits for the all the cameras to return a status, while mc:cmd does not. The 'return' in front of mc:cmdwait allows you to see the status. You can find all the available commands near the bottom of the muticam.lua file.

Other functions you might want to use
mc:init_sync()
Initializes timing information for USB software synchronized shooting. You need this if you aren't using the hardware remote, but it was significantly lower precision. If you want to combine the hardware remote and chdkptp control, you will need to modify the code. I believe a few people on the forum have made the required modifications.

mc:shoot()
shoots all the cameras. You can specify things like shutter speed, number of shots and so on. See the comments above mc:shoot in the source file.

mc:download_images()
does what it says on the tin ;)

I hope that's enough to get you started. I'd recommend looking around the multicam.lua file.

Don't forget what the H stands for.

Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #7 on: 29 / August / 2017, 04:51:42 »
In light of the previous multicam.lua module comments the following could also be relevant.
Code: [Select]
!mc:connect()Every time you issue that the cameras will be connected in a random fashion. Assuming it is important to easily download images from a particular camera to a particular PC directory for identification you can have multicam.lua save, in a file on the PC, the relationship of that particular random connection between an "id" number (sequentially assigned in order of the connection) & the serial no. of the camera (assuming your cameras have that).

For future connections (although still random) there are a few ways to get things set up correctly including just physically editing that text file so that this "id" is then related to the serial of the camera in the order that you wish.

For this to take effect you must, in future connection sessions, issue !mc:connect({list='path/to/listfile'})  after having previously changed & saved the local file. The command and discussion for that starts here:
https://chdk.setepontos.com/index.php?topic=11667.msg114745#msg114745

This comment:
https://chdk.setepontos.com/index.php?topic=11667.msg114920#msg114920

describes how that id (that you have created) is used to determine the PC directory into which the currently downloaded file(s), from a particular serial, will be placed (nice stuff!!)

I've figured out how to use CHDK in the camera with a multiple USB hub and an on/off switch to trigger them in synch. So the capture part I think I have down.

If you mean physical 5V on/off switches per usbhub port there is no way to get tight sync.
With multiple cameras, to do this properly, you, somehow, need to customise your usb cables to include both switch functionality (on the +5V line) & ptp comms (on the D+/D- lines) or do that via hacking the usb hubs.

Without one or the other of those, I don't recommend the following & don't plan to try it out but it is somewhat topical for me.

If you were to issue the following:
Code: [Select]
> !mc=require('multicam')
> !mc:connect({list='C:/CHDKPTP/listfile'})
> !mc:start()
> !return mc:cmdwait('lock_ptp_comms')
> !return mc:cmdwait('rec')
> !return mc:cmdwait('preshoot')
> !return mc:cmdwait('usb_sync_wait')

where you have already added the following to the cameraside multicam.lua code somewhere, say line 1084 currently here:
https://app.assembla.com/spaces/chdkptp/subversion/source/HEAD/trunk/lua/multicam.lua
Code: [Select]
function cmds.lock_ptp_comms()                           
--e.g. to run !return mc:cmdwait('lock_ptp_comms')
    usb_force_active(1) --lock ptp comms ON (+5V line changes do not disconnect)
    write_status(true)
end 

function cmds.usb_sync_wait()                           
--e.g. to run !return mc:cmdwait('usb_sync_wait')
    usb_sync_wait(1)
    press('shoot_full')
    write_status(true)
end
then asap but within 10 secs:
  • disconnect your usbhub network final connection to the PC
  • turn power off to all your usbhubs (at the same time)
Depending how quickly the 5V falls in different parts of the hub newtork, a reasonably sync'd shot should occur.

You would then need to
  • turn all cameras off/on by their power button - or via an external switch but having the camera power button permanaently pressed (but that could be bad?).
  • reconnect & power-up your hub network
then:
Code: [Select]
> !mc=require('multicam')
> !mc:connect({list='C:/CHDKPTP/listfile'})
> !mc:start()

and issue the download image command already discussed.

Having said this, i'm no expert - still trying to get a stable 8 camera rig going:
https://chdk.setepontos.com/index.php?topic=12368.msg134348#msg134348


Edit:
tlooking at this a second time, I don't think you do need to include:
Code: [Select]
!return mc:cmdwait('lock_ptp_comms')as suggested above (since you're always at 5V until you no longer need it), but it may be useful to turn the camera scripts off before pulling the plug:
Code: [Select]
function cmds.usb_sync_wait()                           
--e.g. to run !return mc:cmdwait('usb_sync_wait')                           
    usb_sync_wait(1)
    press('shoot_full')
    write_status(true)
    cmds.exit() -- but we can't know when that has finished executing on last camera
end
« Last Edit: 29 / August / 2017, 08:17:42 by andrew.stephens.754365 »


Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #8 on: 29 / August / 2017, 12:54:33 »
Reyalp:

Thank you for the instructions, and the words of caution. I agree, this is not an easy process, and will take considerable time and effort. Especially for a complete newb like me. I appreciate your patience and understanding.

I tried following your instructions as best I could, and read through the pages you sent me. I then opened chdkptp, and began inputting the codes you provided. I've provided a screenschot below for reference. I have two A480 cameras attached to the computer, running chdk. when i execute 'rec' one camera goes into record mode. Then I input the multicam code you provided... and nothing seems to happen. it goes on from there. I'm sure you can read the code in the screenshot better than I can explain it here. But anyways, it seems to not be working.

I'm sure this is on me. I probably missed something in the instructions, or downloaded the wrong thing. programming for me is a bit like reading Shakespear, I get the overall ideas, but there is plenty that goes over my head. Please help :-)

Re: Multicam Rig for Events - Step By Step Help Please!!
« Reply #9 on: 29 / August / 2017, 13:21:52 »
Also, I notice that the connection dropdown at the top right of chdkptp will display nothing if both cameras are connected when I open the program. If I then disconnect one camera, the remaining camera will appear on the list, and I can select connect. But once I plug the other camera back in, nothing happens, even after running the "!mc:connect()" script. I hope that gives a clue as to what the problem is.

 

Related Topics