gphoto / libgphoto2

The libgphoto2 camera access and control library.
GNU Lesser General Public License v2.1
1.06k stars 325 forks source link

Support for Canon EOS R5m2 | Canon EOS R5 Mark II #1028

Open karlkopf opened 1 month ago

karlkopf commented 1 month ago

*Name of the camera

Canon EOS R5 Mark II

USB IDs Bus 002 Device 005: ID 04a9:3314 Canon, Inc. Canon Digital Camera

lsusb -v ```C Bus 002 Device 005: ID 04a9:3314 Canon, Inc. Canon Digital Camera Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.20 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x04a9 Canon, Inc. idProduct 0x3314 bcdDevice 0.02 iManufacturer 1 Canon Inc. iProduct 2 Canon Digital Camera iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0039 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 6 Imaging bInterfaceSubClass 1 Still Image Capture bInterfaceProtocol 1 Picture Transfer Protocol (PIMA 15470) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 bMaxBurst 0 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 0x006c bNumDeviceCaps 6 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000006 BESL Link Power Management (LPM) Supported SuperSpeedPlus USB Device Capability: bLength 20 bDescriptorType 16 bDevCapabilityType 10 bmAttributes 0x00000001 Sublink Speed Attribute count 1 Sublink Speed ID count 0 wFunctionalitySupport 0x1100 bmSublinkSpeedAttr[0] 0x000a4030 Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus bmSublinkSpeedAttr[1] 0x000a40b0 Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x000e Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 1 Lowest fully-functional device speed is Full Speed (12Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 2047 micro seconds ** UNRECOGNIZED: 12 10 06 00 54 4a 00 00 00 00 01 00 00 00 00 03 30 01 ** UNRECOGNIZED: 18 10 07 03 01 01 01 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ** UNRECOGNIZED: 18 10 08 00 06 00 64 00 b4 00 00 00 8c 0a 00 00 8c 0a 00 00 ff ff ff ff Device Status: 0x000d Self Powered U1 Enabled U2 Enabled ```

camera summary output Camera summary: Manufacturer: Canon.Inc Model: Canon EOS R5m2 Version: 3-1.0.0 Serial Number: 61d2b9efcb43a2a698e44599417a693 Vendor Extension ID: 0xb (1.0) Vendor Extension Description:

Capture Formats: JPEG Unknown(b108) Unknown(b10b) Unknown(b982) Unknown(b109) Display Formats: Association/Directory, Script, DPOF, MS AVI, MS Wave, JPEG, Unknown(b103), Unknown(bf02), Defined Type, Unknown(b105), Unknown(b982), Unknown(b10a), Unknown(b10b), Unknown(b109)

Device Capabilities: File Download, File Deletion, File Upload No Image Capture, No Open Capture, Canon EOS Capture, Canon EOS Capture 2 Canon Wifi support

Storage Devices Summary:

Device Property Summary: Friendly Device Name (d402 ro str): 'Canon EOS R5m2' Perceived Device Type (d407 ro u32): 1 Session Initiator Info (d406 rw str): 'Unknown Initiator' [Unknown Property] (d303 ro u8 ): 1 Battery Level (5001 ro u8 ): Enumeration [100,0,75,0,50] value: 9% (9)

camera configuration output

gphoto2 --list-all-config > list-all-config.txt

and attach list-all-config.txt here

list-all-config ```C /main/actions/syncdatetimeutc Label: Synchronize camera date and time with PC (UTC) Readonly: 0 Type: TOGGLE Current: 0 END /main/actions/syncdatetime Label: Synchronize camera date and time with PC Readonly: 0 Type: TOGGLE Current: 0 END /main/actions/uilock Label: UI Lock Readonly: 0 Type: TOGGLE Current: 2 END /main/actions/popupflash Label: Popup Flash Readonly: 0 Type: TOGGLE Current: 2 END /main/actions/autofocusdrive Label: Drive Canon DSLR Autofocus Readonly: 0 Type: TOGGLE Current: 0 END /main/actions/manualfocusdrive Label: Drive Canon DSLR Manual focus Readonly: 0 Type: RADIO Current: None Choice: 0 Near 1 Choice: 1 Near 2 Choice: 2 Near 3 Choice: 3 None Choice: 4 Far 1 Choice: 5 Far 2 Choice: 6 Far 3 END /main/actions/cancelautofocus Label: Cancel Canon DSLR Autofocus Readonly: 0 Type: TOGGLE Current: 0 END /main/actions/eoszoom Label: Canon EOS Zoom Readonly: 0 Type: TEXT Current: 0 END /main/actions/eoszoomposition Label: Canon EOS Zoom Position Readonly: 0 Type: TEXT Current: 0,0 END /main/actions/viewfinder Label: Canon EOS Viewfinder Readonly: 0 Type: TOGGLE Current: 0 END /main/actions/eosremoterelease Label: Canon EOS Remote Release Readonly: 0 Type: RADIO Current: None Choice: 0 None Choice: 1 Press Half Choice: 2 Press Full Choice: 3 Release Half Choice: 4 Release Full Choice: 5 Immediate Choice: 6 Press 1 Choice: 7 Press 2 Choice: 8 Press 3 Choice: 9 Release 1 Choice: 10 Release 2 Choice: 11 Release 3 END /main/actions/eosmoviemode Label: Movie Mode Readonly: 0 Type: TOGGLE Current: 2 END /main/actions/opcode Label: PTP Opcode Readonly: 0 Type: TEXT Current: 0x1001,0xparam1,0xparam2 END /main/settings/datetimeutc Label: Camera Date and Time Readonly: 0 Type: DATE Current: 1727182803 Printable: Tue Sep 24 15:00:03 2024 Help: Use 'now' as the current time when setting. END /main/settings/datetime Label: Camera Date and Time Readonly: 0 Type: DATE Current: 1727182803 Printable: Tue Sep 24 15:00:03 2024 Help: Use 'now' as the current time when setting. END /main/settings/output Label: Camera Output Readonly: 0 Type: RADIO Current: TFT Choice: 0 TFT END /main/settings/movierecordtarget Label: Recording Destination Readonly: 0 Type: RADIO Current: SDRAM Choice: 0 Card Choice: 1 None Choice: 2 SDRAM END /main/settings/evfmode Label: EVF Mode Readonly: 0 Type: RADIO Current: 1 Choice: 0 1 END /main/settings/ownername Label: Owner Name Readonly: 0 Type: TEXT Current: END /main/settings/nickname Label: Nickname Readonly: 0 Type: TEXT Current: EOSR5m2_B5C889 END /main/settings/customfuncex Label: Custom Functions Ex Readonly: 0 Type: TEXT Current: 20,1,6,14,1,102,1,0, END /main/settings/focusarea Label: Focus Area Readonly: 0 Type: TEXT Current: 127 END /main/settings/strobofiring Label: Strobo Firing Readonly: 1 Type: RADIO Current: 1 Choice: 0 1 END /main/settings/flashcharged Label: Flash Charging State Readonly: 1 Type: TEXT Current: 0 END /main/settings/oneshotrawon Label: One Shot Raw On Readonly: 1 Type: TEXT Current: 0 END /main/settings/autopoweroff Label: Auto Power Off Readonly: 0 Type: RADIO Current: 0 Choice: 0 15 Choice: 1 30 Choice: 2 60 Choice: 3 180 Choice: 4 300 Choice: 5 600 Choice: 6 1800 Choice: 7 0 Choice: 8 -1 END /main/settings/depthoffield Label: Depth of Field Readonly: 0 Type: TEXT Current: 0 END /main/settings/capturetarget Label: Capture Target Readonly: 0 Type: RADIO Current: Internal RAM Choice: 0 Internal RAM Choice: 1 Memory card END /main/settings/capture Label: Capture Readonly: 0 Type: TOGGLE Current: 0 END /main/settings/remotemode Label: Remote Mode Readonly: 0 Type: TEXT Current: 0 END /main/settings/eventmode Label: Event Mode Readonly: 0 Type: TEXT Current: 0 END /main/settings/testolc Label: Test OLC Readonly: 0 Type: TOGGLE Current: 2 END /main/status/serialnumber Label: Serial Number Readonly: 1 Type: TEXT Current: 61d2b9efcb43a2a698e44599417a693 END /main/status/manufacturer Label: Camera Manufacturer Readonly: 1 Type: TEXT Current: Canon.Inc END /main/status/cameramodel Label: Camera Model Readonly: 1 Type: TEXT Current: Canon EOS R5m2 END /main/status/deviceversion Label: Device Version Readonly: 1 Type: TEXT Current: 3-1.0.0 END /main/status/vendorextension Label: Vendor Extension Readonly: 1 Type: TEXT Current: END /main/status/model Label: Camera Model Readonly: 1 Type: TEXT Current: 2147484822 END /main/status/batterylevel Label: Battery Level Readonly: 1 Type: TEXT Current: 25% END /main/status/mirrorlockstatus Label: Mirror Lock Status Readonly: 1 Type: TEXT Current: 0 END /main/status/mirrordownstatus Label: Mirror Down Status Readonly: 1 Type: TEXT Current: 0 END /main/status/lensname Label: Lens Name Readonly: 1 Type: TEXT Current: RF24-105mm F4 L IS USM END /main/status/availableshots Label: Available Shots Readonly: 1 Type: TEXT Current: 0 END /main/status/eosmovieswitch Label: Movie Switch Readonly: 1 Type: TEXT Current: 0 END /main/imgsettings/imageformat Label: Image Format Readonly: 0 Type: RADIO Current: Unknown value 0000 Choice: 0 Unknown value 0000 Choice: 1 Unknown value 1000 Choice: 2 Unknown value d000 Choice: 3 Unknown value e000 Choice: 4 cRAW Choice: 5 RAW Choice: 6 Unknown value 0b10 Choice: 7 Unknown value 0c10 Choice: 8 Unknown value 0bd0 Choice: 9 Unknown value 0cd0 Choice: 10 Unknown value 0be0 Choice: 11 Unknown value 0ce0 Choice: 12 RAW Choice: 13 cRAW END /main/imgsettings/imageformatsd Label: Image Format SD Readonly: 0 Type: RADIO Current: Unknown value 0000 Choice: 0 Unknown value 0000 Choice: 1 Unknown value 1000 Choice: 2 Unknown value d000 Choice: 3 Unknown value e000 Choice: 4 cRAW Choice: 5 RAW Choice: 6 Unknown value 0b10 Choice: 7 Unknown value 0c10 Choice: 8 Unknown value 0bd0 Choice: 9 Unknown value 0cd0 Choice: 10 Unknown value 0be0 Choice: 11 Unknown value 0ce0 Choice: 12 RAW Choice: 13 cRAW END /main/imgsettings/imageformatcf Label: Image Format CF Readonly: 0 Type: RADIO Current: Unknown value 0000 Choice: 0 Unknown value 0000 Choice: 1 Unknown value 1000 Choice: 2 Unknown value d000 Choice: 3 Unknown value e000 Choice: 4 cRAW Choice: 5 RAW Choice: 6 Unknown value 0b10 Choice: 7 Unknown value 0c10 Choice: 8 Unknown value 0bd0 Choice: 9 Unknown value 0cd0 Choice: 10 Unknown value 0be0 Choice: 11 Unknown value 0ce0 Choice: 12 RAW Choice: 13 cRAW END /main/imgsettings/iso Label: ISO Speed Readonly: 0 Type: RADIO Current: 16000 Choice: 0 Auto Choice: 1 100 Choice: 2 125 Choice: 3 160 Choice: 4 200 Choice: 5 250 Choice: 6 320 Choice: 7 400 Choice: 8 500 Choice: 9 640 Choice: 10 800 Choice: 11 1000 Choice: 12 1250 Choice: 13 1600 Choice: 14 2000 Choice: 15 2500 Choice: 16 3200 Choice: 17 4000 Choice: 18 5000 Choice: 19 6400 Choice: 20 8000 Choice: 21 10000 Choice: 22 12800 Choice: 23 16000 Choice: 24 20000 Choice: 25 25600 Choice: 26 32000 Choice: 27 40000 Choice: 28 51200 END /main/imgsettings/whitebalance Label: WhiteBalance Readonly: 0 Type: RADIO Current: Auto Choice: 0 Auto Choice: 1 AWB White Choice: 2 Daylight Choice: 3 Shadow Choice: 4 Cloudy Choice: 5 Tungsten Choice: 6 Fluorescent Choice: 7 Flash Choice: 8 Color Temperature Choice: 9 Manual Choice: 10 Manual 2 Choice: 11 Manual 3 Choice: 12 Manual 4 Choice: 13 Manual 5 END /main/imgsettings/colortemperature Label: Color Temperature Readonly: 0 Type: RADIO Current: 5200 Choice: 0 2500 Choice: 1 2600 Choice: 2 2700 Choice: 3 2800 Choice: 4 2900 Choice: 5 3000 Choice: 6 3100 Choice: 7 3200 Choice: 8 3300 Choice: 9 3400 Choice: 10 3500 Choice: 11 3600 Choice: 12 3700 Choice: 13 3800 Choice: 14 3900 Choice: 15 4000 Choice: 16 4100 Choice: 17 4200 Choice: 18 4300 Choice: 19 4400 Choice: 20 4500 Choice: 21 4600 Choice: 22 4700 Choice: 23 4800 Choice: 24 4900 Choice: 25 5000 Choice: 26 5100 Choice: 27 5200 Choice: 28 5300 Choice: 29 5400 Choice: 30 5500 Choice: 31 5600 Choice: 32 5700 Choice: 33 5800 Choice: 34 5900 Choice: 35 6000 Choice: 36 6100 Choice: 37 6200 Choice: 38 6300 Choice: 39 6400 Choice: 40 6500 Choice: 41 6600 Choice: 42 6700 Choice: 43 6800 Choice: 44 6900 Choice: 45 7000 Choice: 46 7100 Choice: 47 7200 Choice: 48 7300 Choice: 49 7400 Choice: 50 7500 Choice: 51 7600 Choice: 52 7700 Choice: 53 7800 Choice: 54 7900 Choice: 55 8000 Choice: 56 8100 Choice: 57 8200 Choice: 58 8300 Choice: 59 8400 Choice: 60 8500 Choice: 61 8600 Choice: 62 8700 Choice: 63 8800 Choice: 64 8900 Choice: 65 9000 Choice: 66 9100 Choice: 67 9200 Choice: 68 9300 Choice: 69 9400 Choice: 70 9500 Choice: 71 9600 Choice: 72 9700 Choice: 73 9800 Choice: 74 9900 Choice: 75 10000 END /main/imgsettings/whitebalanceadjusta Label: WhiteBalance Adjust A Readonly: 0 Type: RADIO Current: 0 Choice: 0 -9 Choice: 1 -8 Choice: 2 -7 Choice: 3 -6 Choice: 4 -5 Choice: 5 -4 Choice: 6 -3 Choice: 7 -2 Choice: 8 -1 Choice: 9 0 Choice: 10 1 Choice: 11 2 Choice: 12 3 Choice: 13 4 Choice: 14 5 Choice: 15 6 Choice: 16 7 Choice: 17 8 Choice: 18 9 END /main/imgsettings/whitebalanceadjustb Label: WhiteBalance Adjust B Readonly: 0 Type: RADIO Current: 0 Choice: 0 -9 Choice: 1 -8 Choice: 2 -7 Choice: 3 -6 Choice: 4 -5 Choice: 5 -4 Choice: 6 -3 Choice: 7 -2 Choice: 8 -1 Choice: 9 0 Choice: 10 1 Choice: 11 2 Choice: 12 3 Choice: 13 4 Choice: 14 5 Choice: 15 6 Choice: 16 7 Choice: 17 8 Choice: 18 9 END /main/imgsettings/whitebalancexa Label: WhiteBalance X A Readonly: 1 Type: RADIO Current: 0 Choice: 0 0 Choice: 1 1 Choice: 2 2 Choice: 3 3 END /main/imgsettings/whitebalancexb Label: WhiteBalance X B Readonly: 1 Type: RADIO Current: 0 Choice: 0 0 Choice: 1 1 Choice: 2 2 Choice: 3 3 END /main/imgsettings/colorspace Label: Color Space Readonly: 0 Type: RADIO Current: sRGB Choice: 0 sRGB Choice: 1 AdobeRGB END /main/capturesettings/zoomspeed Label: Zoom Speed Readonly: 0 Type: RADIO Current: 0 Choice: 0 1 Choice: 1 2 Choice: 2 3 Choice: 3 4 Choice: 4 5 Choice: 5 6 Choice: 6 7 Choice: 7 8 Choice: 8 9 Choice: 9 10 Choice: 10 11 Choice: 11 12 Choice: 12 13 Choice: 13 14 Choice: 14 15 END /main/capturesettings/exposurecompensation Label: Exposure Compensation Readonly: 0 Type: RADIO Current: 0 Choice: 0 -3 Choice: 1 -2.6 Choice: 2 -2.3 Choice: 3 -2 Choice: 4 -1.6 Choice: 5 -1.3 Choice: 6 -1 Choice: 7 -0.6 Choice: 8 -0.3 Choice: 9 0 Choice: 10 0.3 Choice: 11 0.6 Choice: 12 1 Choice: 13 1.3 Choice: 14 1.6 Choice: 15 2 Choice: 16 2.3 Choice: 17 2.6 Choice: 18 3 END /main/capturesettings/focusmode Label: Focus Mode Readonly: 0 Type: RADIO Current: AI Focus Choice: 0 One Shot Choice: 1 AI Servo Choice: 2 AI Focus END /main/capturesettings/continuousaf Label: Continuous AF Readonly: 0 Type: RADIO Current: Off Choice: 0 Off Choice: 1 On END /main/capturesettings/aspectratio Label: Aspect Ratio Readonly: 0 Type: RADIO Current: 3:2 Choice: 0 3:2 Choice: 1 1:1 Choice: 2 4:3 Choice: 3 16:9 Choice: 4 1.6x END /main/capturesettings/afmethod Label: AF Method Readonly: 0 Type: RADIO Current: WholeAreaAF Choice: 0 LiveSpotAF Choice: 1 Live Choice: 2 LiveSingleExpandCross Choice: 3 LiveSingleExpandSurround Choice: 4 FlexibleZoneAF1 Choice: 5 FlexibleZoneAF2 Choice: 6 FlexibleZoneAF3 Choice: 7 WholeAreaAF Choice: 8 Unknown value 000f Choice: 9 Unknown value 0010 Choice: 10 Unknown value 0011 Choice: 11 Unknown value 0012 END /main/capturesettings/storageid Label: Storage Device Readonly: 0 Type: TEXT Current: 00020000 END /main/capturesettings/highisonr Label: High ISO Noise Reduction Readonly: 0 Type: RADIO Current: Off Choice: 0 Off Choice: 1 Low Choice: 2 Normal Choice: 3 High END /main/capturesettings/autoexposuremode Label: Canon Auto Exposure Mode Readonly: 0 Type: RADIO Current: TV Choice: 0 P Choice: 1 TV Choice: 2 AV Choice: 3 Manual Choice: 4 Bulb Choice: 5 A_DEP Choice: 6 DEP Choice: 7 Custom Choice: 8 Lock Choice: 9 Green Choice: 10 Night Portrait Choice: 11 Sports Choice: 12 Portrait Choice: 13 Landscape Choice: 14 Closeup Choice: 15 Flash Off Choice: 16 C2 Choice: 17 C3 Choice: 18 Creative Auto Choice: 19 Movie Choice: 20 Auto Choice: 21 Handheld Night Scene Choice: 22 HDR Backlight Control Choice: 23 SCN Choice: 24 Food Choice: 25 Grainy B/W Choice: 26 Soft focus Choice: 27 Toy camera effect Choice: 28 Fish-eye effect Choice: 29 Water painting effect Choice: 30 Miniature effect Choice: 31 HDR art standard Choice: 32 HDR art vivid Choice: 33 HDR art bold Choice: 34 HDR art embossed Choice: 35 Panning Choice: 36 HDR Choice: 37 Self Portrait Choice: 38 Hybrid Auto Choice: 39 Smooth skin Choice: 40 Fv END /main/capturesettings/autoexposuremodedial Label: Canon Auto Exposure Mode Dial Readonly: 0 Type: RADIO Current: TV Choice: 0 P Choice: 1 TV Choice: 2 AV Choice: 3 Manual Choice: 4 Bulb Choice: 5 Custom Choice: 6 C2 Choice: 7 C3 Choice: 8 Auto Choice: 9 Fv END /main/capturesettings/drivemode Label: Drive Mode Readonly: 0 Type: RADIO Current: Single Choice: 0 Single Choice: 1 Super high speed continuous shooting Choice: 2 Continuous high speed Choice: 3 Continuous low speed Choice: 4 Timer 10 sec Choice: 5 Timer 2 sec Choice: 6 Continuous timer END /main/capturesettings/picturestyle Label: Picture Style Readonly: 0 Type: RADIO Current: Standard Choice: 0 Standard Choice: 1 Portrait Choice: 2 Landscape Choice: 3 Neutral Choice: 4 Faithful Choice: 5 Monochrome Choice: 6 Auto Choice: 7 Fine detail Choice: 8 User defined 1 Choice: 9 User defined 2 Choice: 10 User defined 3 END /main/capturesettings/aperture Label: Aperture Readonly: 0 Type: RADIO Current: 1 Choice: 0 Unknown value 0f00 Choice: 1 1 END /main/capturesettings/shutterspeed Label: Shutter Speed Readonly: 0 Type: RADIO Current: 1/125 Choice: 0 30 Choice: 1 25 Choice: 2 20 Choice: 3 15 Choice: 4 13 Choice: 5 10.3 Choice: 6 8 Choice: 7 6.3 Choice: 8 5 Choice: 9 4 Choice: 10 3.2 Choice: 11 2.5 Choice: 12 2 Choice: 13 1.6 Choice: 14 1.3 Choice: 15 1 Choice: 16 0.8 Choice: 17 0.6 Choice: 18 0.5 Choice: 19 0.4 Choice: 20 0.3 Choice: 21 1/4 Choice: 22 1/5 Choice: 23 1/6 Choice: 24 1/8 Choice: 25 1/10 Choice: 26 1/13 Choice: 27 1/15 Choice: 28 1/20 Choice: 29 1/25 Choice: 30 1/30 Choice: 31 1/40 Choice: 32 1/50 Choice: 33 1/60 Choice: 34 1/80 Choice: 35 1/100 Choice: 36 1/125 Choice: 37 1/160 Choice: 38 1/200 Choice: 39 1/250 Choice: 40 1/320 Choice: 41 1/400 Choice: 42 1/500 Choice: 43 1/640 Choice: 44 1/800 Choice: 45 1/1000 Choice: 46 1/1250 Choice: 47 1/1600 Choice: 48 1/2000 Choice: 49 1/2500 Choice: 50 1/3200 Choice: 51 1/4000 Choice: 52 1/5000 Choice: 53 1/6400 Choice: 54 1/8000 Choice: 55 Unknown value 00a3 Choice: 56 Unknown value 00a5 Choice: 57 1/16000 Choice: 58 Unknown value 00ab Choice: 59 Unknown value 00ad Choice: 60 Unknown value 00b0 END /main/capturesettings/meteringmode Label: Metering Mode Readonly: 0 Type: RADIO Current: Evaluative Choice: 0 Spot Choice: 1 Evaluative Choice: 2 Partial Choice: 3 Center-weighted average END /main/capturesettings/bracketmode Label: Bracket Mode Readonly: 0 Type: RADIO Current: Unknown value 0000 Choice: 0 Unknown value 0000 END /main/capturesettings/aeb Label: Auto Exposure Bracketing Readonly: 0 Type: RADIO Current: off Choice: 0 off Choice: 1 +/- 1/3 Choice: 2 +/- 2/3 Choice: 3 +/- 1 Choice: 4 +/- 1 1/3 Choice: 5 +/- 1 2/3 Choice: 6 +/- 2 Choice: 7 +/- 2 1/3 Choice: 8 +/- 2 2/3 Choice: 9 +/- 3 END /main/capturesettings/alomode Label: Auto Lighting Optimization Readonly: 0 Type: RADIO Current: Standard (disabled in manual exposure) Choice: 0 Standard (disabled in manual exposure) Choice: 1 x1 Choice: 2 x2 Choice: 3 x3 END /main/capturesettings/movieservoaf Label: Movie Servo AF Readonly: 0 Type: RADIO Current: Off Choice: 0 Off END ```

test capture

test if capture perhaps already works:

gphoto2 --capture-image-and-download

time env LC_ALL=C gphoto2 --debug-logfile=capture-image-and-download_logfile.log --debug --capture-image-and-download
*** Error ***
Canon EOS Half-Press failed (0x02fa: PTP Timeout)
ERROR: Could not capture image.
ERROR: Could not capture.

real    2m0.493s
user    0m0.470s
sys     0m0.130s

gphoto2 --capture-preview

time env LC_ALL=C gphoto2 --debug-logfile=capture-preview_logfile.log --debug --capture-preview

*** Error ***
PTP Timeout

*** Error ***
An error occurred in the io-library ('Timeout reading from or writing to the port'): The supplied vendor or product id (0x0,0x0) is not valid.
*** Error (-10: 'Timeout reading from or writing to the port') ***

real    0m24.384s
user    0m0.417s
sys     0m0.122s

gphoto2 --capture-tethered

time env LC_ALL=C gphoto2 --debug-logfile=capture-tethered_logfile.log --debug --capture-tethered --filename=raw_current_%Y-%m-%d_%H.%M.%S_%06n.jpg --hook-script=/usr/local/sbin/hook-script
Waiting for events from camera. Press Ctrl-C to abort.
*** Error (-10: 'Timeout reading from or writing to the port') ***

^C
Cancelling...

real    0m50.971s
user    0m0.430s
sys     0m0.143s

At the moment it's not possible for me to capture pictures from the camera

capture-image-and-download_logfile.log capture-preview_logfile.log capture-tethered_logfile.log list-all-config.txt list-all-config_logfile.log summary_logfile.log

axxel commented 1 month ago

This is weird. It times out while waiting for the Response packet of a EOS_GetDeviceInfoEx call after the data has been transferred apparently successfully (I compared the output with my R8 and the output seems reasonable).

I noticed you were working with a fairly up to date code base. Can you quickly test if gphoto2 --get-config aperture fails with both the current HEAD revision as well as with the last release version 2.5.31?

karlkopf commented 1 month ago

This is weird. It times out while waiting for the Response packet of a EOS_GetDeviceInfoEx call after the data has been transferred apparently successfully (I compared the output with my R8 and the output seems reasonable).

I noticed you were working with a fairly up to date code base. Can you quickly test if gphoto2 --get-config aperture fails with both the current HEAD revision as well as with the last release version 2.5.31?

I will do any test you want. I just have to wait to get the camera back

karlkopf commented 1 month ago

I just testet a small set of actions on the camera with different commits and branches but I wasn't able to get a picture from the camera. I'll upload the logs to a git repository and link it here later

Edit: Here is the repository for the logs based on the commit

logs

axxel commented 1 month ago

Thanks for the effort. I conclude that 1) EOS_GetDeviceInfoEx fails to send a PTP response packet even on an 8 month old code base as well as with the latest. 2) my new imageformat2 code works for the R5m2

My first guess is: this is a bug in the firmware of the camera. It just so happens that Canon released a 1.0.1 firmware update yesterday. Could you maybe try updating it and then perform another gphoto2 --get-config aperture?

axxel commented 1 month ago

If the firmware upgrade is not an option or does not help, please see if the following 2 lines added exactly here does fix it for you.

if (operation == PTP_OC_CANON_EOS_GetDeviceInfoEx && !strcmp(params->deviceinfo.Model,"Canon EOS R5m2"))
    return 0;
msmeissn commented 1 month ago

can i also ask to check if hardware is affected, like switch to a different usb port, use a different cable?

karlkopf commented 1 month ago

Thanks for all your suggestions.

I have updated the camera to FW: 1.0.1 but there was no big change in the behavior

In the next step I patched the ptp.h and testet it with the different commits --> this was a little success! :-)

Now the camera informations from for example --list-all-config appears immediately and not after 3m20s It is also possible to capture a preview, but after the capture the camera is in "busy" mode

It's still not possible for me to do --capture-and-download and --capture-tethered

I have tried three different USB cabel to be sure

If I can further assist you, I'd be happy to do so

axxel commented 1 month ago

I have updated the camera to FW: 1.0.1 but there was no big change in the behavior

Ahh, bummer. That would have been too easy ;).

In the next step I patched the ptp.h and testet it with the different commits --> this was a little success! :-)

So far so good. The hanging, now disabled call is actually not really necessary for the devices operation.

It's still not possible for me to do --capture-and-download and --capture-tethered

The capture command now fails with busy when sending the "Full press button" command after the library went into a 2s timeout waiting for some feedback about successful auto-focusing. Could you please set your lens / settings to manual focus, just to see if that changes things?

karlkopf commented 1 month ago

The capture command now fails with busy when sending the "Full press button" command after the library went into a 2s timeout waiting for some feedback about successful auto-focusing. Could you please set your lens / settings to manual focus, just to see if that changes things?

I tested it with manual focus, after a --capture-preview the camera is still in busy mode Test with --capture-image-and-download - Now there is a shutter sound and an image is taken on the camera but gphoto is unable to retreive the image.

axxel commented 1 month ago

Looks like we are slowly making progress... ;). The log-file indicates that there is no SD-Card in the camera. Just to rule out more potential pitfalls: can you please insert an SD-Card? Then please set the mode dial to 'M', the exposure time to 1/60 and execute the following command:

gphoto2 --set-config capturetarget=1 --trigger-capture --wait-event=1s
karlkopf commented 1 month ago

Now the image is triggered and will be saved on the SD-Card but not downloaded by gphoto2

--get-all-files also doesn't work

axxel commented 1 month ago

I had closer look at the log files you added and unfortunately, I'm out of ideas now. Comparing with my R8, I see the following differences 1) ad --get-all-files: the very first EOS_GetObjectInfoEx on the R5m2 simply fails with an error. The parameters passed are the same as on the R8. 2) ad --wait-for-events: the R8 sends 2 events related to the completion of the capture process (object-info-added and camera-status-changed) while the R5m2 is simply silent. 3) ad EOS_GetDeviceInfoEx: the earlier discussed timeout waiting for the response packet for that command.

While the first 2 might potentially be explained by a random change in the firmware now requiring some new command or setting before executing the respective operation, the 3rd one can't be explained that way as it simply seems to be in violation of the PTP specification to do that.

If @msmeissn has no other ideas, then the only next option I see would be to setup a USB packet-sniffer on Windows and collect a trace of a working PTP session from the EOS utility and compare the differences. That is a lot of work, at least it was 10 years ago. :-/

msmeissn commented 1 month ago

it looks weird that commands fail, and usually it would mean hardware or firmware issues.

so, yes, check if it works on windows, and if yes, try to get a packettrace (using USBPcap for instance)

karlkopf commented 1 month ago

Thanks for the info

I have added a raw USB trace.

I have started the trace, opened the Canon EOS Utility, selected remote capture, took a picture, close the utility

I hope this'll help a bit

msmeissn commented 1 month ago

One thing i see is it calls 0x9170, the GetObjectInfo64 call ... We are not doing that so far. calls also 913f PTP_OC_CANON_EOS_GetCameraSupport

There is 0x9087 which I do not know the name for yet.

and 0x917d whuich I also do not know.

msmeissn commented 1 month ago

remote-capture.txt

axxel commented 1 month ago

I spend all afternoon manually parsing the dumped data (reminded me of the good old times, when I did this for the 5Dm2 ;)). I'm not fully done, yet. But I think I found the key to maybe get the download going after capture: a new EOS event 0xc1b8. @msmeissn where did this name come from? Could it be that there is a typo and this was actually supposed to be c1b8 instead of c1a8? Or could you get some more of those names, which would already help quit a bit in deciphering their meaning.

Not clear yet why we ran into the busy issue when the in auto-focus mode. @karlkopf was that USB trace with manual or auto-focus? Can you make a second remote-capture trace with the setting reversed?

msmeissn commented 1 month ago

I think a name in the disassembly of Canon EOS driver kit.

msmeissn commented 1 month ago

(need to do another round of disassembly on the current EOS driver, last tiome was a while ago I think)

karlkopf commented 1 month ago

Not clear yet why we ran into the busy issue when the in auto-focus mode. @karlkopf was that USB trace with manual or auto-focus? Can you make a second remote-capture trace with the setting reversed?

Yesterday it was done with manual focus, shutter time 1/60

Now I have done three traces, manual focus, auto focus and auto focus fail. When the auto focus fail you can't capture an image with the eos utility --> status busy

axxel commented 1 month ago

@karlkopf thanks for the new trace data. I'll have a look at it later. Can you do me the favor and pull current HEAD and run these commands with manual focus and 1/60?:

gphoto2 --set-config capturetarget=4 --trigger-capture --wait-event=1s
gphoto2 --set-config capturetarget=1 --trigger-capture --wait-event=1s

I improved the event logging to help with finding the differences between EOSUtility and gphoto2 faster. This also includes the one-liner fix, so it should do something out of the box. If you feel bored, doing the first with auto-focus would also be of interest.

karlkopf commented 1 month ago

@axxel I just compiled the latest head, run a few tests and added the new debug logs for af and mf. I hope this'll help a little bit

axxel commented 1 month ago

@karlkopf Thanks for all the new data. Unfortunately, the new event c1b8 does not show up in any of the logs. So the EOS utility does something important before performing the remote-release commands. It might be settings the CaptureDestination to 4 (instead of 2). I thought I could achieve that with the capturetarget=4 but I was mistaken.

Random idea: you are not living in Berlin by any chance? That would maybe open the possibility for us meeting in person and having your camera being connected to my PC and thereby speeding up this trial-and-error processes substantially.

axxel commented 1 month ago

Here is my current "manual" parsing of the original USB message trace:

0110 - GetDeviceInfo
0191 - GetStorageIDs
0291 - GetStorageInfo
1091 - SetDevicePropValueEx
1491 - SetRemoteMode
1591 - SetEventMode
1791 - TransferComplete
1a91 - PCHDDCapacity
2791 - RequestDevicePropValue
2891 - RemoteReleaseOn
2991 - RemoteReleaseOff
3d91 - SetRequestOLCInfoGroup

new/unused

3f91 - GetCameraSupport
7091 - GetObjectInfo64
7291 - GetPartialObject64
7d91 - ???
8790 - ???
8991 - GetPictureStylePCFlavorParam

===============================================

actual order of appearance with arguments:
 *'#' means a command/param that we don't use, yet
 * GetEvent (9116) has been ommitted most of the time to make it more readable

1491 01000000                   - SetRemoteMode 1
1591 01000000                   - SetEventMode 1
7091 000020a3                   # GetObjectInfo64
7091 000020a3                   # GetObjectInfo64
7091 000020a3                   # GetObjectInfo64
0291 00000200                   - GetStorageInfo
3d91 ff0f0000                   - SetRequestOLCInfoGroup
3f91 00000001 10010000 00008431         # GetCameraSupport
0191                        - GetStorageIDs
0291 00000100                   - GetStorageInfo
0291 00000200                   - GetStorageInfo
3f91 00000001 10020000 09008431         # GetCameraSupport
0110                        - GetDeviceInfo
8790                        # ??? - this returns nothing
7d91 01000000                   # ??? - this retrieves over 50kB of 'random' data

1491 02000000                   # SetRemoteMode 2
0110                        - GetDeviceInfo
2791 afd10000                   - RequestDevicePropValue ???
0110                        - GetDeviceInfo
2791 a6d10000                   - RequestDevicePropValue ???
2791 69d10000                   - RequestDevicePropValue ErrorHistory
2791 6ad10000                   - RequestDevicePropValue LensExchangeHistory
2791 6bd10000                   - RequestDevicePropValue StroboExchangeHistory
2791 72d20000                   - RequestDevicePropValue ???
0291 00000100                   - GetStorageInfo
0291 00000200                   - GetStorageInfo
2791 d0d10000                   - RequestDevicePropValue Artist
2791 d1d10000                   - RequestDevicePropValue Copyright

1491 01000000                   - SetRemoteMode 1
1091                        # SetDevicePropValueEx (with no parameters!?!)
1091 0c000000 1cd10000 04000000         - SetDevicePropValueEx CaptureDestination -> 4 (PC?)

1a91 7f86fb0b 00100000 01000000         - PCHDDCapacity
8991 01000000                   - GetPictureStylePCFlavorParam
8991 02000000                   - GetPictureStylePCFlavorParam
8991 03000000                   - GetPictureStylePCFlavorParam
2791 7fd10000                   - RequestDevicePropValue FlavorLUTParams

2891 01000000 01000000              - RemoteReleaseOn (1, 1)
1691                        - GetEvent (see A)
2991 01000000                   - RemoteReleaseOff (1)

# capture starts here
2891 01000000 01000000              # RemoteReleaseOn (1, 1) # use use (1, 0)
1691                        - GetEvent (see B)
1a91 e1feffff 00100000 00000000 - PCHDDCapacity
0291 00000100                   - GetStorageInfo
0291 00000200                   - GetStorageInfo
2891 02000000 01000000              # RemoteReleaseOn (2, 1) # we use (2, 0) @33.66
1691                        # GetEvent (see C) @ 33.70
2991 02000000                   - RemoteReleaseOff (2)   @ 33.95s
1691                        - GetEvent (see D1) @ 34.14
1691                        - GetEvent (see D2) @ 34.36 contains c1b8 80880714
7291 80880714 00000000 00f00f00 00000000    # GetPartialObject64 @ 34.37
7291 80880714 00f00f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00e01f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00d02f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00c03f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00b04f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00a05f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00906f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00807f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00708f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 00609f00 00f00f00 00000000    # GetPartialObject64
7291 80880714 0050af00 00f00f00 00000000    # GetPartialObject64
2991 01000000                   - RemoteReleaseOff (1)
7291 80880714 0040bf00 05880c00 00000000    # GetPartialObject64
1791 80880714                   # TransferComplete
1a91 b0fcffff 00100000 00000000         - PCHDDCapacity

2891 01000000 01000000              - RemoteReleaseOn (1, 1)
2991 01000000                   - RemoteReleaseOf (1)
1a91 d4ffffff 00100000 00000000         - PCHDDCapacity

Event C:
888 33.703424   URB_BULK in 
520000000200169197000000
0c000000 8bc10000 01000000      - CameraStatusChanged 1
10000000 89c10000 1bd10000 789f0000 - PropValueChanged (EOS_AvailableShots)
10000000 89c10000 c3d10000 00000000 - PropValueChanged (EOS_OneShotRawOn)
12000000 a5c10000 0e000000010000000400  - OLCInfoChanged
08000000 00000000

Event D1:
898 34.142530   URB_BULK in
700000000200169199000000
10000000 89c10000 b7d10000 00000000     - PropValueChanged (EOS_ExposureSimMode)
10000000 89c10000 c3d10000 00000000         - PropValueChanged (EOS_OneShotRawOn)
12000000 a5c10000 0e000000010000000200      - OLCInfoChanged
15000000 a5c10000 11000000000200000101040000    - OLCInfoChanged
15000000 a5c10000 11000000000200000101080000    - OLCInfoChanged
08000000 00000000

Event D2:
904 34.360451   URB_BULK in
38000000020016919a000000 
24000000 b8c10000 80880714 01380000 00000000 05c8cb00 00000000 00880714 01000000 # new event
08000000 00000000
msmeissn commented 1 month ago

Disassembly brings new defines:

+#define PTP_EC_CANON_EOS_ObjectAddedEx64LFN 0xc1b6 +#define PTP_EC_CANON_EOS_ObjectInfoChangedEx64LFN 0xc1b7 +#define PTP_EC_CANON_EOS_RequestObjectTransfer64LFN 0xc1b8

msmeissn commented 1 month ago

more opcodes added, the two we see are: +#define PTP_OC_CANON_GetDebugLog 0x9087 +#define PTP_OC_CANON_EOS_GetDebugLogEx 0x917D