Source code upload
[framework/connectivity/libgphoto2.git] / camlibs / ptp2 / README.ptp2
1 libptp2 (c)2001-2003 Mariusz Woloszyn <emsi@ipartners.pl>
2
3 libgphoto2 ptp2 camlib driver also 
4 Copyright 2003 - 2009 Marcus Meissner <marcus@jet.franken.de>
5 Copyright        2005 Hubert Figuire.
6
7 ========================
8 *Upstream documentation*
9 ========================
10 - For the PTP command set there is no freely available reference. However
11   you can buy the ISO standard ISO 15740 from http://www.iso.org/
12
13 - For PTP via USB Documentation check:
14         http://www.usb.org/developers/devclass_docs/usb_still_img10.pdf
15
16 - For PTP via PTPIP check:
17         ftp://www.fotonation.com//download/IEEE_PTPIP_paper.pdf
18
19 - For MTP additions check:
20         http://www.usb.org/developers/devclass_docs/MTP_1.0.zip
21
22
23 =====================
24 *About this software*
25 =====================
26
27 This folder contains following code:
28 generic:
29 ptp.c           - the main libptp2 code; this library is used to communicate
30                   with PTP devices. This is not libgphoto2 specific, but used
31                   in libmtp too.
32 ptp.h           - header file for the above.
33 ptp-pack.c      - this file is included into ptp.c (internal structure
34                   pack/unpack code)
35
36 libgphoto2 specific:
37 config.c        - Contains the device and driver configuration management code.
38 usb.c           - The USB Imaging Class interface code.
39 ptpip.c         - The PTP/IP interfacing code (for wireless devices).
40 library.c       - gphoto2 PTP2 driver (used by gphoto2 to communicate with
41                   PTP devices)
42
43 ===================
44 *Supported Cameras*
45 ===================
46
47 NOTE, that if your camera is not on the list, it DOES NOT mean that it is not
48 supported! Most of USB cameras designed after 2002 are PTP or USB Mass
49 Storage. In both cases the camera is supported under Linux!
50
51 Below the list of cameras explicitly supported by gphoto2 ptp driver:
52
53 =============================================+
54 Model                   |Vendor ID|Product ID|
55 ========================|=========|==========|
56 Kodak DC240 (PTP)       | 0x040a  |  0x0121  |
57 Kodak DC4800            | 0x040a  |  0x0160  |
58 Kodak DX3215            | 0x040a  |  0x0525  |
59 Kodak DX3500            | 0x040a  |  0x0500  |
60 Kodak DX3600            | 0x040a  |  0x0510  |
61 Kodak DX3700            | 0x040a  |  0x0530  |
62 Kodak DX3900            | 0x040a  |  0x0170  |
63 Kodak DX4330            | 0x040a  |  0x0555  |
64 Kodak DX4900            | 0x040a  |  0x0550  |
65 Kodak MC3               | 0x040a  |  0x0400  |
66 Kodak LS420             | 0x040a  |  0x0540  |
67 Kodak LS443             | 0x040a  |  0x0568  |
68 Kodak CX4200            | 0x040a  |  0x0560  |
69 Kodak CX4210            | 0x040a  |  0x0560  |
70 Kodak CX4230            | 0x040a  |  0x0535  |
71 Kodak CX4300            | 0x040a  |  0x0566  |
72 Kodak Easyshare *any*   | 0x040a  |  any     |
73 ------------------------+---------+----------+
74 HP PhotoSmart 120       | 0x03f0  |  0x6502  |
75 HP PhotoSmart 318       | 0x03f0  |  0x6302  |
76 HP PhotoSmart 320       | 0x03f0  |  0x6602  |
77 HP PhotoSmart 612       | 0x03f0  |  0x6302  |
78 HP PhotoSmart 620       | 0x03f0  |  0x6802  |
79 HP PhotoSmart 715       | 0x03f0  |  0x6402  |
80 HP PhotoSmart 720       | 0x03f0  |  0x6702  |
81 HP PhotoSmart 735       | 0x03f0  |  0x6a02  |
82 HP PhotoSmart 812       | 0x03f0  |  0x4202  |
83 HP PhotoSmart 850       | 0x03f0  |  0x4302  |
84 ------------------------+---------+----------+
85 Sony DSC-CD300          | 0x054c  |  0x004e  |
86 Sony DSC-F505           | 0x054c  |  0x004e  |
87 Sony DSC-F505V          | 0x054c  |  0x004e  |
88 Sony DSC-F707           | 0x054c  |  0x004e  |
89 Sony DSC-F707V          | 0x054c  |  0x004e  |
90 Sony DSC-P5             | 0x054c  |  0x004e  |
91 Sony DSC-P30            | 0x054c  |  0x004e  |
92 Sony DSC-P50            | 0x054c  |  0x004e  |
93 Sony DSC-P71            | 0x054c  |  0x004e  |
94 Sony DSC-S75            | 0x054c  |  0x004e  |
95 Sony DSC-S85            | 0x054c  |  0x004e  |
96 Sony MVC-CD300          | 0x054c  |  0x004e  |
97 ------------------------+---------+----------+
98 Nikon DSC D100          | 0x04b0  |  0x0402  |
99 Nikon Coolpix 2000      | 0x04b0  |  0x0302  |
100 Nikon Coolpix SQ        | 0x04b0  |  0x0202  |
101 Nikon Coolpix 2500      | 0x04b0  |  0x0109  |
102 Nikon Coolpix 4500      | 0x04b0  |  0x010b  |
103 Nikon Coolpix 5700      | 0x04b0  |  0x010d  |
104 Nikon Coolpix 4300      | 0x04b0  |  0x010f  |
105 Nikon Coolpix 3500      | 0x04b0  |  0x0111  |
106 Nikon Coolpix 885       | 0x04b0  |  0x0112  |
107 Nikon Coolpix 5000      | 0x04b0  |  0x0113  |
108 Nikon Coolpix 3100      | 0x04b0  |  0x0115  |
109 Nikon Coolpix 2100      | 0x04b0  |  0x0117  |
110 Nikon Coolpix 5400      | 0x04b0  |  0x0119  |
111 Nikon Coolpix 5600      | 0x04b0  |  0x012e  |
112 Nikon Coolpix 5200      | 0x04b0  |  0x0206  |
113 ------------------------+---------+----------+
114 Canon PowerShot S45     | 0x04a9  |  0x306d  |
115 Canon PowerShot G3      | 0x04a9  |  0x306f  |
116 Canon PowerShot S230    | 0x04a9  |  0x3071  |
117 Canon Digital IXUS v3   | 0x04a9  |  0x3071  |
118 Canon PowerShot A60     | 0x04a9  |  0x3074  |
119 Canon PowerShot A70     | 0x04a9  |  0x3073  |
120 Canon PowerShot A80     | 0x04a9  |  0x309A  |
121 ==============================================
122
123 ABOVE LIST IS OUTDATED!
124
125 Note that for some HP, Nikon, Canon and Sony cameras you have to switch
126 them to PTP mode, as in most cases the camera is dual mode:
127 PTP and USB Mass Storage.
128 For some cameras it even changes the Product ID number, so don't panic if
129 it does not match the one listed above, just switch the mode.
130 Don't ask me how to do it. Refer to camera documentation.
131
132 If you know that your camera might be a PTP one, you may test it
133 against this code even if it's not on the list above. If it's really
134 a PTP device, the USB interface class should be set to 6 (it's called "still").
135 You may check this by reading /proc/bus/usb/devices, for example:
136
137 cat /proc/bus/usb/devices | grep "Cls=06"
138
139 If you find something like this:
140
141 I:  If#= 0 Alt= 0 #EPs= 3 Cls=06(still) Sub=01 Prot=01 Driver=(none)
142                           ^^^^^^^^^^^^^
143 that means that your camera is a PTP one.
144 The ptp driver should detect that camera by interface class as "USB PTP
145 Class Camera" and allow downloading the pictures and do other stuff exactly
146 the same way as if it would be detected by product and vendor ID.
147
148 If you're not Linux user fetch libptp2 from:
149 http://sourceforge.net/projects/libptp
150 and try to compile and install it.
151 The ptpcam tool attached to thil library is able to find and identify PTP
152 devices. Type:
153
154 ptpcam --list-devices
155
156 and ptpcam will search and display the names of all found PTP devices.
157
158
159 ================================
160 *Solving and reporting problems*
161 ================================
162
163 To solve the problem stick to gphoto2 CLI, forget about the GUI now.
164 Use gphoto2 -L to see if it detects the camera.
165
166 If you see something like this:
167
168 ~> gphoto2 -L
169 Unable to get descriptor (-1)                                                   
170 (... lot of other errors ...)
171
172 it may mean that you're working as user while the usb access is restricted.
173 See gphoto2-manual, section "Setting up your system for use with libgphoto2
174 and gphoto2", subsection "Setting up permissions for USB ports"
175 (http://gphoto.sourceforge.net/doc/manual/permissions-usb.html).
176
177 If the gphoto2 detects the camera but then fails with some error messages
178 please report the bug sending the mail to gphoto-devel@lists.sourceforge.net or
179 directly to me at: emsi@emsi.it.pl.
180 The mail should contain the full output of gphoto2 -L --debug with locale
181 language set to _ENGLISH_.
182 For example in bash do:
183 env LANG=C gphoto2 --debug -L
184 tcsh/csh:
185 setenv LANG C; gphoto2 --debug -L
186
187 WARGING!!! Before sending any mail make sure you read the notes in
188 "Supported Cameras" above.
189
190 Enjoy!
191
192 =============
193 Documentation
194
195 While ptp transactions usage seems to be quite obvious the ptp events
196 handling code should be documented.