Building a mult-camera rig - page 3 - Hotwire! Hardware Mods, Accessories and Insights - CHDK Forum  

Building a mult-camera rig

  • 244 Replies
  • 63213 Views
Advertisements
It's a very Basic Test circuit Only ... however you are on the right track.

So just to clear up some of those (important) details:-

"USB-2 +5v Multiplexing Concept" [i.e. the "Original CHDK" Thread and Posts]

A Dummy 25th Camera is required for the "USB-2 +5v Multiplexing Concept".

A 5-bit Address bus required for 24 Cameras, and the Dummy 25 Camera.

The 3-Bit Enable pins. [i.e. used for the additional 5-bit Decoding]

74Hc86 Ex Or [i.e. Used for "Invert on a Command" logic]

"...When, one of cameras in the array, USB-2 +5v pin's is a Hi that camera will "Auto Connect" and
a "Serial" read/download is then possible..."

"Hacked USB-2 Hubs" were used. i.e. Port #01 to Port #24 had the +5v Usb pins tracks cut an then connected to the 74hc86 Ex Or gates outputs.

The 74Hc86 Ex Or is used because there are additional operating modes possible such as small sync delays in the forward or reverse directions.

~~~~~~~~~~~~~~

Battery Door Option. [i.e. this "NEW CHDK" Thread and Posts]

A 5-bit Address bus required for 24 Cameras.

The 3-Bit Enable pins. [i.e. used for the additional 5-bit Decoding]

74Hcxx Inverter Gates [i.e. Used for correct "Serial Read/Download" on a Command" logic]

"...Multi-Camera_Array_Concept_[Write].png was "Over Simplified"..."

So back to Building a mult-camera rig
[was: Re:] and the Battery third (temp) terminal as multipurpose analogue input.

"...The Battery third terminal(s) is NOW used for the "Parallel" write/shoot [common sync] camera input..."

"...When, one of cameras in the array, USB-2 +5v pin's is a Hi that camera will "Auto Connect" and
a "Serial" read/download is then possible. ..."

The  Dummy 25 Camera is not now required.

"Hacked USB-2 Hubs" are used. i.e. Port #01 to Port #24 had the +5v Usb pins tracks cut an then connected to the 74hxx inverter gates outputs.

Hacking USB-2 Hubs is simpler and easier than hacking the USB-2 Mini-B camera cables,
 also the original canon cables can be used.

H-H
« Last Edit: 13 / June / 2014, 20:11:21 by Hardware_Hacker »

A Dummy 25th Camera is required for the "USB-2 +5v Multiplexing Concept".
Huh?  Say what ?
Ported :   A1200    SD940   G10    Powershot N    G16

A Dummy 25th Camera is required for the "USB-2 +5v Multiplexing Concept".
The Dummy Camera Concept

The Original posts was only expanded to 16 Cameras. [Now expanded to 24 Cameras]
The 16 cameras had a "Parallel" or "Delayed Sync" write/shoot state.
And the 16 cameras had a "Serial" read/download state.
A total of 32 states.

The 74hc138 Decoder/De Multiplexer has 9 usable states.
Also the Dummy Camera makes use of the 9 state, which always decodes as a Hi.
Now a total of 32 states + 2 Dummy states.

When the Dummy Camera, is addressed, this Hi is inverted by the 74Hc86 ex Or
and its output are connected to the +5v USB-2 Hacked Hubs pins a common sync
pules low resulting in syncing all the cameras in the array.

Because the  Battery third  terminal is now used for a common sync input a
Dummy Camera [state] is no longer required. But can still be used for compatibility
with the CHDK USB 2 Remote operating mode.

Also there were a few additional camera operating modes.

The 74hc138 is used as a 1 of 8 decoder  is a good "Universal" choise
because the enable pins can be used to decode 5 or 6 address bits provided
by some sort of camera controller.

H-H
« Last Edit: 13 / June / 2014, 21:03:48 by Hardware_Hacker »

Because the  Battery third  terminal is now used for a common sync input a Dummy Camera [state] is no longer required.
Reading this thread, it seems clear that novsela has no (current) plans to use the battery 3rd teminal triggering method.

The 74hc138 is used as a 1 of 8 decoder  is a good "Universal" chose because the enable pins can be used to decode 5 or 6 address bits provided by some sort of camera controller.
I will again state that the 74HC138's are unnecessary as novsela has not requested the ability to trigger individual cameras. Also, the current diagrams do no show any circuitry that could do so. 

A simple switch on the 5V lines wired in parallel to all camera USB ports will be adequate.  While exact trigger point of each camera might vary a bit,  the switch will kill power in a few microseconds and we are only worried about millisecond precision for the actual trigger signal.
Ported :   A1200    SD940   G10    Powershot N    G16


Because the  Battery third  terminal is now used for a common sync input a Dummy Camera [state] is no longer required.
Reading this thread, it seems clear that novsela has no (current) plans to use the battery 3rd teminal triggering method.

The 74hc138....
I will again state that the 74HC138's are unnecessary ....

A simple switch on the 5V lines wired in parallel to all camera USB ports will be adequate.

Without 74hc138 or similar hardware the cameras will lose the ability to "Auto-Connect"
and then be able to Serial read/download from the cameras in the array.

This would then need to be done in software which will require much more time and effort than
a simple modification to the 74hc138 prototype circuit.

My simple experiments with multiple chdk cameras indicate that with more than two camera
and with a default libusb0 it quickly becomes very confusing as to which camera is connected.

In this case, most people, simply just remove the SD-Cards and put them into a SD-card reader.

The windows Registry dose contain a record of SD-Card history and Camera connection history.
BUT again with multiple cameras it quickly becomes very confusing.

H-H
« Last Edit: 13 / June / 2014, 21:33:38 by Hardware_Hacker »

Without 74hc138 or similar hardware the cameras will lose the ability to "Auto-Connect" and then be able to Serial read/download from the cameras in the array.
As drawn,  the 74HC138 simply delivers a constant +V to the cameras when the switch is open,  and 0V when it is closed.   Which you could do with just the switch.

The whole point of the multicamera scheme I originally defined is that the cameras all "auto connect" in playback mode while the +V is active and communicate via PTP.  When you are ready to take a shot, a ptp command goes to all camera telling them to switch to shooting mode and to "shoot".   The USB sync code in each camera intercepts the shoot sequence and halts the camera until the +V signal goes away. When the +V goes away,  all cameras shoot in (almost) perfect synchronization and then go back to normal idle state.  The on-camera script then switches the camera back to playback mode.  When the +V is reestablished via the switch,  normal ptp communication resumes and you are back to the start of the sequence I just described.

No 74HC138's needed.

Reponse to the subsequent edits of your previous post :

My simple experiments with multiple chdk cameras indicate that with more than two camera and with a default libusb0 it quickly becomes very confusing as to which camera is connected.
So what you are really trying to say is that connecting to multiple cameras all hooked up via USB can be difficult so a separate hardware multiplexing scheme that allows the PC to enable one camera at a time is needed.

I agree that would be a viable alternative approach but I think fixing the software so that this is not necessary would be a good thing for all the subsequent people who want to try this and don't want to build custom multiplexer hardware - which will also need custom PC code.
« Last Edit: 13 / June / 2014, 21:41:13 by waterwingz »
Ported :   A1200    SD940   G10    Powershot N    G16

Sounds Simple and Perfect.

I haven't as yet used the latest version.

Again the Original post had additional options that might be more difficult
with your simple software approach.

H-H

Edit #1

For anyone wanting to use multi-cam sync, with a small delay between each shot, the hardware
approach has the capability of easily being extended to provide a interface for fill-in LED Flash powered lighting.
« Last Edit: 14 / June / 2014, 19:40:38 by Hardware_Hacker »

I haven't as yet used the latest version.
The "hack" that I've described is not part of the latest version. It's a small one line modification to the core CHDK code.  Once you add it to the CHDK build,  that build is really only useful for multicam bullet time shooting rigs.

Update : and while I"m on a roll here,  the biggest issue I see with all these diagrams is getting a common ground for all the cameras, power supplies,  USB hubs and computers.  Karmaschinken found this out the hard way after getting a few nasty shocks.   If I was going to spend time designing custom hardware, I'd spend the money on three opto-couplers per camera (tx, rx, and USB 5V power) and let each camera "float" on its own.

« Last Edit: 13 / June / 2014, 22:08:49 by waterwingz »
Ported :   A1200    SD940   G10    Powershot N    G16


.... I'd spend the money on three opto-couplers per camera (tx, rx, and USB 5V power) and let each camera "float" on its own.

A great, cheap, and simple idea.

However as USB-2 uses a differential data transmission it might be better to use a dual opto-coupler
for the Data lines and a seperate, standard, opto-coupler for the USB-2 5V power. It would also need to support Data transmission from the Host to the Device and Device to Host.
There are low resistance [Ultra Low R-on] versions of high speed C-MOS bilateral Analog Switch's available.

Even Original Canon Power Supplies will have a very small, but observable, blue arc if a
Canon Power Adapter is connected and then the PC to USB Mini-B connector shell is placed
very close to the Canon camera Ext_USB connector.

This camera is still working OK.

Edit #1

As a matter of interest these (assorted) Original Canon Power Supply adapters consist of
a two plastic shells, two spring connectors, two ferrite suppression beads and a power cable.
There is ample room  for, a Battery third terminal, an additional forth opto-coupler and a few
additional components for anyone wanting to utilize the battery terminal sync option or the
delayed camera sync option's.
This is still a very good way to avoid the noise pickup problem on simple but long cables used
for the USB-2 +5 volt switching.

Edit #2

Also Battery third  terminal as multipurpose analogue input has a well defined switch point
for anyone requiring multi-camera precision sync. But there may be delays due to other factors
such as unwanted and unneeded (i.e face recognition etc.) asks running at a high priority.

Additionally, multi-camera, fake or homebrew battery power adapters are separate and plug able
modules that don't require a custom USB-2 modifications to cables or hubs.

Fake battery power adapters might be possible by having a custom, thin, flexible PCB that
sits on top of a original canon L-ion battery thus giving direct access to cameras Battery third  terminal,
which is available via the Power Cable slot or holes, and also isolating the L-ion Battery third  terminal

Similar to the SD-Card Extension adapters concept. see attached file

H-H
« Last Edit: 14 / June / 2014, 01:02:11 by Hardware_Hacker »

Even Original Canon Power Supplies will have a very small, but observable, blue arc if a
Canon Power Adapter is connected and then the PC to USB Mini-B connector shell is placed
very close to the Canon camera Ext_USB connector.
Yup. like I said - good grounding is essential once you start interconnecting devices that are intended to "float" on their own, prior to interconnecting them.
Ported :   A1200    SD940   G10    Powershot N    G16

 

Related Topics