1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
Blink2 Protocol
Mostly control messages...
(control <read/write> bRequest, wValue, wIndex -> buf[wLength])
Get Firmware ID:
control read 0x18, 0x03, 0x00 -> buf[6]
Gets the firmware id.
Number of Pictures:
control read 0x8, 0x03, 0x00 -> buf[2] (high, low byte)
Gets number of pictures.
Get Directory:
control read 0x0d, 0x03, 0x00 -> buf[1]
bulk read (((8*(1+numpics))+0x3f) & ~0x3f) bytes.
Buffer has now:
i = 0 .. numpics:
buf[8*(i+1)] - movie flag
buf[8*(i+1)+5 ... 7] - 3 bytes start, MSB first
buf[8*(i+1)+13 ... 15] - 3 bytes end, MSB first
Gets the directory entries.
Get Memory:
Prepare buffer as:
buf[0..4] start (MSB first)
buf[5..7] length (MSB first)
control write 0x0a, 0x03, 0x00, buf[8]
bulk read (length)
Gets the memory (imagedata) as specified.
Capture Picture:
control read 0x0e, 0x03, 0x00 -> buf[1]
do
control read 0x16, 0x03, 0x00 -> buf[1]
while buf[0] == 0
Afterwards the image is in the camera memory.
Delete All Images:
control read 0x12, 0x03, 0x00 -> buf[1]
All images on the camera are deleted.
Delete Last Image:
control read 0x11, 0x03, 0x00 -> buf[1]
Last image on camera is deleted.
Start Video:
control read 0x4, 0x01, 0x00 -> buf[1]
This starts the ISO transfers I suspect?
Current Video Position (??):
control read 0x7, 0x00, 0x00 -> buf[2]
Unclear, I think it returns amount of data read in buf[2].
Initialize Still Mode:
control read 0x4, 0x03, 0x00 -> buf[1]
Hmm (?) / Resync Routine:
control read 0x13, 0x0, 0x00 -> buf[1]
Bandwidth Allocate(type):
320x240: control read 0x14, 0x0, 0x00 -> buf[1]
640x480: control read 0x15, 0x0, 0x00 -> buf[1]
I think this is for ISO transfers, started by 0x04,0x01.
You need to change the interface accordingly.
Set Exposure Count(value):
control read 0x17, 0x03, value -> buf[1]
Unclear.
Set Compression(value):
control read 0x1b, 0x03, value -> buf[1]
Unclear.
Set Whitebalance(value):
control read 0x1d, 0x03, value -> buf[1]
Unclear.
Set Still Quality(value):
control read 0x1a, 0x03, value -> buf[1]
Unclear.
Set Flare(value)
control read 0x19, 0x03, value -> buf[1]
Unclear.
Internal Driver Properties:
ID Name Range Default
0x01 Brightness 0-50 43
0x03 Sharpness 0-255 20
0x08 Saturation 0-128 128
0x0b Whitebalance 0-7 7
0x0c Gamma 0-11 9
0x0d Backlight 0-1 0
0x0e Contrast ? 0-14 7
|