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
|