pwc
[Top] [All Lists]

[pwc] Re: Capturing frames from two cameras synchronously

To:
Subject: [pwc] Re: Capturing frames from two cameras synchronously
From: "Stanisław Szymczyk" <>
Date: Tue, 19 Dec 2006 22:35:12 +0100
Hi

After some research I can reply to my questions by myself :)

I've opened my Logitech Orbit / Sphere, inside I've found SAA8116
signal processor with some additional integrated circuits. Checking
SAA8116 specification revealed that external synchronization signal
can be theoretically applied in this circuit to pin V (number 96)
after modifying bits 2 and 3 of register PIN_CONFIG_1 (address 0x7F).

I've also found this program:
http://www.burri-web.org/bm98/soft/wcrmac/ which is used by amateur
astronomers to switch SAA8116-based webcams to RAW mode. It's possible
by using some special USB control messages to change register values
in camera EEPROM. It looks like all control registers are mapped to
upper 256 bytes of this EEPROM.
After some USB traffic sniffing I've discovered these control
messages. They are following:

1. Switching camera to EEPROM read/write mode:

request type: USB_TYPE_VENDOR + USB_RECIP_DEVICE + USB_DIR_OUT
request: 0x0000005
value: 0x0003000
index: 0x0000003
data: [0x6d]
size: 1

2. EEPROM read control command:

request: USB_TYPE_VENDOR + USB_RECIP_DEVICE + USB_DIR_IN
request type: 0x000000a
value: two bytes of EEPROM memory address in reverse order
index: 0x00000ff
size: 1

3. EEPROM write control command:

request: USB_TYPE_VENDOR + USB_RECIP_DEVICE + USB_DIR_OUT
request type: 0x0000009
value: two bytes of EEPROM memory address in reverse order
index: 0x00000ff
data: [memory byte value]
size: 1

4. Switching camera back to normal mode:

request: USB_TYPE_VENDOR + USB_RECIP_DEVICE + USB_DIR_OUT
request type: 0x0000005
value: 0x0003000
index: 0x0000003
data: [0x00]
size: 1

I see that these codes are filling some gaps in pwc driver
(GET_XX_CTL, SET_XX_CTL request types, GET_STATUS_3000 selector).
Actually I added support for these commands in pwc driver and created
a small utility to read / write values from camera EEPROM memory.
Correct operation of this utility was confirmed by using it to switch
my webcam to RAW mode and back. I can post them if anyone is
interested. I wonder if they will work in other SAA8116-based webcams
supported by pwc.

After all this research and development I was finally able to change
value of SAA8116 0x7F control register to check my webcam
synchronization idea. Unfortunately modifying this register has no
effect at all on webcam. I've checked some different bit settings with
no luck at all. Initial value of this register was 0xc8 which means
internal synchronization.

Any idea why it doesn't work?

regards
Stanislaw Szymczyk

On 12/11/06, Stanisław Szymczyk <> wrote:

I have three questions:

1. Is there any way to force synchronous frame retrieval in PWC?

2. If no, is there a way to force synchronous frame retrieval
generally in this camera?

3. Does anyone have any data about this camera (Logitech Orbit /
Sphere) internals? I mean PCB photos, schematic (guess I'm dreaming)
etc...

Thanks for your time

Stanislaw Szymczyk
_______________________________________________
pwc mailing list

http://lists.saillard.org/mailman/listinfo/pwc
<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU