asalamon74 / pktriggercord

Remote control for Pentax DSLR cameras
http://pktriggercord.melda.info
GNU Lesser General Public License v3.0
103 stars 39 forks source link

K50 - Bulb #6

Open farbodab opened 8 years ago

farbodab commented 8 years ago

Hello,

I have a k50 and this is the only software I've found that seems very promising. Let me know what I can do to help you with improving support for the K50. I currently cannot take pictures in bulb mode. I can in manual mode but I cannot change the shutter speed or the bulb exposure mode. The only thing I can change is aperture

asalamon74 commented 8 years ago

What operating system do you use?

First, please set the camera to bulb mode and execute the following command and copy the result here:

pktriggercord-cli --debug --status_hex

Please also try the following:

pktriggercord-cli --debug -t 32 -o test.dng

farbodab commented 8 years ago

I've used both linux and windows with the same results. Here are the results of commands in linux terminal:

jharvard@appliance (~/Desktop/pktriggercord): sudo ./pktriggercord-cli --debug --status_hex

    Debug messaging is now enabled.
./pktriggercord-cli 0.83.01 
model (null)
device (null)
[C] plsr_init()
driveNum:2
    Checking drive:  sg0 VMware, 
 VMware Virtual S

    Checking drive:  sg1 PENTAX  
 DSC_K-50        

    Found camera PENTAX  
 DSC_K-50        

before connect
[C] pslr_connect()
[C]     ipslr_status()
[C]         command(fd=3, 0, 1, 0)
[S]                  >>> [F0 24 00 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [1C 00 00 00  00 00 01 00]
[R]              => [1C 00 00 00]
[C]         read_result(0x3, size=28)
[S]                  >>> [F0 49 00 00  1C 00 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B]
[C]     ipslr_set_mode(0x1)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x1})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 01]
[C]         command(fd=3, 0, 0, 4)
[S]                  >>> [F0 24 00 00  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_status()
[C]         command(fd=3, 0, 1, 0)
[S]                  >>> [F0 24 00 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [1C 00 00 00  00 00 01 00]
[R]              => [1C 00 00 00]
[C]         read_result(0x3, size=28)
[S]                  >>> [F0 49 00 00  1C 00 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01 
                          00 00 00 00  00 00 00 00  00 00 00 1B]
[R]              => [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01
                     00 00 00 00  00 00 00 00  00 00 00 1B]
[C]     ipslr_identify()
[C]         command(fd=3, 0, 4, 0)
[S]                  >>> [F0 24 00 04  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [08 00 00 00  00 00 01 00]
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< [00 01 2F B6  00 00 02 21]
[R]              => [00 01 2F B6  00 00 02 21]
    id of the camera: 12fb6
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01 
                          00 00 00 00  00 00 00 00  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01
                     00 00 00 00  00 00 00 00  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
0x0000 | 00 00 00 02 00 00 00 00  01 00 02 10 80 80 00 01  
0x0010 | 00 00 00 00 00 00 00 00  00 00 00 1b 00 00 00 00  
0x0020 | 00 00 00 0f 00 00 00 00  00 00 00 00 00 00 00 00  
0x0030 | 00 00 01 00 00 00 00 00  00 00 00 00 00 00 00 23  
0x0040 | 00 00 00 0a 00 00 00 00  00 00 00 0a 00 00 00 00  
0x0050 | 00 00 00 03 00 00 00 0a  00 00 00 00 00 00 00 00  
0x0060 | 00 00 00 00 00 00 00 00  00 00 06 40 00 00 00 64  
0x0070 | 00 00 06 40 00 00 00 00  00 00 00 07 00 00 00 07  
0x0080 | 00 00 00 01 00 00 00 00  00 00 00 00 00 00 00 01  
0x0090 | 00 00 00 00 00 00 00 04  00 00 00 04 00 00 00 04  
0x00a0 | 00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 00  
0x00b0 | 00 00 00 00 00 00 00 09  00 00 00 00 00 00 00 00  
0x00c0 | 00 00 00 01 00 00 00 03  00 00 00 00 00 00 00 00  
0x00d0 | 00 00 00 00 00 00 00 00  00 00 00 03 00 00 00 01  
0x00e0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  
0x00f0 | 00 00 00 01 00 00 00 00  00 00 13 88 00 00 00 04  
0x0100 | 00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  
0x0110 | 00 00 00 00 00 00 00 23  00 00 00 0a 00 00 00 00  
0x0120 | 00 00 00 0a 00 00 00 00  00 00 00 0a 00 00 00 00  
0x0130 | 00 00 00 00 00 00 06 40  00 00 00 00 00 00 00 00  
0x0140 | 00 00 00 00 00 00 00 23  00 00 00 0a 00 00 00 dc  
0x0150 | 00 00 00 0a 00 00 00 00  00 00 00 00 00 00 00 50  
0x0160 | 00 00 00 0a 00 00 00 00  00 00 00 00 00 00 02 50  
0x0170 | 00 00 03 42 00 00 02 f8  00 00 00 00 00 00 00 00  
0x0180 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0190 | 00 00 00 87 00 00 00 00  00 00 00 00 00 00 00 ca  
0x01a0 | 00 00 07 08 00 00 00 64  00 00 00 3c ff ff ff d8  
0x01b0 | 00 00 00 00 00 00 00 00  00 00 00 0f 00 00 00 3f  
0x01c0 | 00 00 00 00 
    init bufmask=0x0
[C]     ipslr_cmd_00_09(0x2)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x2})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 02]
[C]         command(fd=3, 0, 9, 4)
[S]                  >>> [F0 24 00 09  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
        buf[008] last 01h   1 new 02h   2
        buf[00B] last 10h  16 new 00h   0
        buf[017] last 00h   0 new 03h   3
---------------------------
[C]     ipslr_cmd_10_0a(0x1)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x1})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 01]
[C]         command(fd=3, 10, a, 4)
[S]                  >>> [F0 24 10 0A  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: K-50 Connected...
[C] pslr_get_status()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
[C] pslr_get_status()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
[C] pslr_get_status()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
[C] pslr_get_status_buffer()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
0x0000 | 00 00 00 02 00 00 00 00  02 00 02 00 80 80 00 01  
0x0010 | 00 00 00 00 00 00 00 03  00 00 00 1b 00 00 00 00  
0x0020 | 00 00 00 0f 00 00 00 00  00 00 00 00 00 00 00 00  
0x0030 | 00 00 01 00 00 00 00 00  00 00 00 00 00 00 00 23  
0x0040 | 00 00 00 0a 00 00 00 00  00 00 00 0a 00 00 00 00  
0x0050 | 00 00 00 03 00 00 00 0a  00 00 00 00 00 00 00 00  
0x0060 | 00 00 00 00 00 00 00 00  00 00 06 40 00 00 00 64  
0x0070 | 00 00 06 40 00 00 00 00  00 00 00 07 00 00 00 07  
0x0080 | 00 00 00 01 00 00 00 00  00 00 00 00 00 00 00 01  
0x0090 | 00 00 00 00 00 00 00 04  00 00 00 04 00 00 00 04  
0x00a0 | 00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 00  
0x00b0 | 00 00 00 00 00 00 00 09  00 00 00 00 00 00 00 00  
0x00c0 | 00 00 00 01 00 00 00 03  00 00 00 00 00 00 00 00  
0x00d0 | 00 00 00 00 00 00 00 00  00 00 00 03 00 00 00 01  
0x00e0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  
0x00f0 | 00 00 00 01 00 00 00 00  00 00 13 88 00 00 00 04  
0x0100 | 00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  
0x0110 | 00 00 00 00 00 00 00 23  00 00 00 0a 00 00 00 00  
0x0120 | 00 00 00 0a 00 00 00 00  00 00 00 0a 00 00 00 00  
0x0130 | 00 00 00 00 00 00 06 40  00 00 00 00 00 00 00 00  
0x0140 | 00 00 00 00 00 00 00 23  00 00 00 0a 00 00 00 dc  
0x0150 | 00 00 00 0a 00 00 00 00  00 00 00 00 00 00 00 50  
0x0160 | 00 00 00 0a 00 00 00 00  00 00 00 00 00 00 02 50  
0x0170 | 00 00 03 42 00 00 02 f8  00 00 00 00 00 00 00 00  
0x0180 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0190 | 00 00 00 87 00 00 00 00  00 00 00 00 00 00 00 ca  
0x01a0 | 00 00 07 08 00 00 00 64  00 00 00 3c ff ff ff d8  
0x01b0 | 00 00 00 00 00 00 00 00  00 00 00 0f 00 00 00 3f  
0x01c0 | 00 00 00 00 

current iso                     : 1600
current shutter speed           : 0/0
camera max shutter speed        : 0/0
current aperture                : 3.5
lens max aperture               : 22.0
lens min aperture               : 3.5
set shutter speed               : 0/0
set aperture                    : 3.5
fixed iso                       : 1600
auto iso                        : 100-1600
jpeg quality                    : 4
jpeg resolution                 : 16M
jpeg image tone                 : Natural
jpeg saturation                 : 4
jpeg contrast                   : 4
jpeg sharpness                  : 4
jpeg hue                        : 4
zoom                            : 18.00 mm
focus                           : 0
color space                     : sRGB
image format                    : 1
raw format                      : DNG
light meter flags               : 0
ec                              : 0.00
custom ev steps                 : 1/3
custom sensitivity steps        : 0
exposure mode                   : 7 (NONE)
user mode flag                  : 0
ae metering mode                : Multi
af mode                         : AF.S
af point select                 : Auto-11
selected af point               : 0
focused af point                : 0
drive mode                      : Single
auto bracket mode               : off
auto bracket picture count      : 0
auto bracket ev                 : 0.30
shake reduction                 : off
white balance mode              : Auto
white balance adjust            : 0
flash mode                      : Manual
flash exposure compensation     : 0.00
manual mode ev                  : 8.00
lens                            : smc PENTAX-DA L 18-55mm F3.5-5.6 AL WR
battery                         : 8.34V 7.60V 0.00V 0.00V

This one went into an infinite loop which I had to end:

jharvard@appliance (~/Desktop/pktriggercord): sudo ./pktriggercord-cli --debug -t 32 -o test.dng
Debug messaging is now enabled.
./pktriggercord-cli 0.83.01 
model (null)
device (null)
[C] plsr_init()
driveNum:2
    Checking drive:  sg0 VMware, 
 VMware Virtual S

    Checking drive:  sg1 PENTAX  
 DSC_K-50        

    Found camera PENTAX  
 DSC_K-50        

before connect
[C] pslr_connect()
[C]     ipslr_status()
[C]         command(fd=3, 0, 1, 0)
[S]                  >>> [F0 24 00 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [1C 00 00 00  00 00 01 00]
[R]              => [1C 00 00 00]
[C]         read_result(0x3, size=28)
[S]                  >>> [F0 49 00 00  1C 00 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B]
[C]     ipslr_set_mode(0x1)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x1})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 01]
[C]         command(fd=3, 0, 0, 4)
[S]                  >>> [F0 24 00 00  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_status()
[C]         command(fd=3, 0, 1, 0)
[S]                  >>> [F0 24 00 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [1C 00 00 00  00 00 01 00]
[R]              => [1C 00 00 00]
[C]         read_result(0x3, size=28)
[S]                  >>> [F0 49 00 00  1C 00 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01 
                          00 00 00 00  00 00 00 00  00 00 00 1B]
[R]              => [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01
                     00 00 00 00  00 00 00 00  00 00 00 1B]
[C]     ipslr_identify()
[C]         command(fd=3, 0, 4, 0)
[S]                  >>> [F0 24 00 04  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [08 00 00 00  00 00 01 00]
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< [00 01 2F B6  00 00 02 21]
[R]              => [00 01 2F B6  00 00 02 21]
    id of the camera: 12fb6
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01 
                          00 00 00 00  00 00 00 00  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  01 00 02 10  80 80 00 01
                     00 00 00 00  00 00 00 00  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
0x0000 | 00 00 00 02 00 00 00 00  01 00 02 10 80 80 00 01  
0x0010 | 00 00 00 00 00 00 00 00  00 00 00 1b 00 00 00 00  
0x0020 | 00 00 00 0f 00 00 00 00  00 00 00 00 00 00 00 00  
0x0030 | 00 00 01 00 00 00 00 00  00 00 00 00 00 00 00 23  
0x0040 | 00 00 00 0a 00 00 00 00  00 00 00 0a 00 00 00 00  
0x0050 | 00 00 00 03 00 00 00 0a  00 00 00 00 00 00 00 00  
0x0060 | 00 00 00 00 00 00 00 00  00 00 06 40 00 00 00 64  
0x0070 | 00 00 06 40 00 00 00 00  00 00 00 07 00 00 00 07  
0x0080 | 00 00 00 01 00 00 00 00  00 00 00 00 00 00 00 01  
0x0090 | 00 00 00 00 00 00 00 04  00 00 00 04 00 00 00 04  
0x00a0 | 00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 00  
0x00b0 | 00 00 00 00 00 00 00 09  00 00 00 00 00 00 00 00  
0x00c0 | 00 00 00 01 00 00 00 03  00 00 00 00 00 00 00 00  
0x00d0 | 00 00 00 00 00 00 00 00  00 00 00 03 00 00 00 01  
0x00e0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  
0x00f0 | 00 00 00 01 00 00 00 00  00 00 13 88 00 00 00 04  
0x0100 | 00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  
0x0110 | 00 00 00 00 00 00 00 23  00 00 00 0a 00 00 00 00  
0x0120 | 00 00 00 0a 00 00 00 00  00 00 00 0a 00 00 00 00  
0x0130 | 00 00 00 00 00 00 06 40  00 00 00 00 00 00 00 00  
0x0140 | 00 00 00 00 00 00 00 23  00 00 00 0a 00 00 00 dc  
0x0150 | 00 00 00 0a 00 00 00 00  00 00 00 00 00 00 00 50  
0x0160 | 00 00 00 0a 00 00 00 00  00 00 00 00 00 00 02 50  
0x0170 | 00 00 03 42 00 00 02 f8  00 00 00 00 00 00 00 00  
0x0180 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0190 | 00 00 00 87 00 00 00 00  00 00 00 00 00 00 00 ca  
0x01a0 | 00 00 07 08 00 00 00 64  00 00 00 3c ff ff ff d8  
0x01b0 | 00 00 00 00 00 00 00 00  00 00 00 0f 00 00 00 3f  
0x01c0 | 00 00 00 00 
    init bufmask=0x0
[C]     ipslr_cmd_00_09(0x2)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x2})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 02]
[C]         command(fd=3, 0, 9, 4)
[S]                  >>> [F0 24 00 09  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
        buf[008] last 01h   1 new 02h   2
        buf[00B] last 10h  16 new 00h   0
        buf[017] last 00h   0 new 03h   3
---------------------------
[C]     ipslr_cmd_10_0a(0x1)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x1})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 01]
[C]         command(fd=3, 10, a, 4)
[S]                  >>> [F0 24 10 0A  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: K-50 Connected...
[C] pslr_get_status()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
[C] pslr_get_status()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
shutter_speed.nom=32
shutter_speed.denom=1
[C] pslr_set_shutter(20)
[C]     ipslr_handle_command_x18(0x16, 2)
[C]     ipslr_cmd_00_09(0x1)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x1})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 01]
[C]         command(fd=3, 0, 9, 4)
[S]                  >>> [F0 24 00 09  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x20, 0x1})
[S]                  >>> [F0 4F 00 00  08 00 00 00]
[S]                  >>> [00 00 00 20  00 00 00 01]
[C]         command(fd=3, 18, 16, 8)
[S]                  >>> [F0 24 18 16  08 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C]     ipslr_cmd_00_09(0x2)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x2})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 02]
[C]         command(fd=3, 0, 9, 4)
[S]                  >>> [F0 24 00 09  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 01]
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 00]
[C] pslr_get_status()
[C]     ipslr_status_full()
[C]         command(fd=3, 0, 8, 0)
[S]                  >>> [F0 24 00 08  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [C4 01 00 00  00 00 01 00]
[R]              => [C4 01 00 00]
    read 452 bytes
    expected_bufsize: 452
[C]         read_result(0x3, size=452)
[S]                  >>> [F0 49 00 00  C4 01 00 00]
[S]                  <<< [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01 
                          00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00]
[R]              => [00 00 00 02  00 00 00 00  02 00 02 00  80 80 00 01
                     00 00 00 00  00 00 00 03  00 00 00 1B  00 00 00 00 ... (420 bytes more)]
cont: 0
bulb
[C] pslr_bulb(1)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x1})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 01]
[C]         command(fd=3, 10, d, 4)
[S]                  >>> [F0 24 10 0D  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< [00 00 00 00  00 00 00 81]
[R]              => ERROR: 0x81
asalamon74 commented 8 years ago

The Bulb mode setting on the camera is correctly recognized, but the camera does not accept the bulb start command. It might be firmware limitation, or the K-50 requires a different way to start bulb exposure.

I'll add this info to the BUGS file and keep the issue open, maybe later someone with a K-50 camera will send a patch.

Blueshawk commented 7 years ago

:picks up the gauntlet:

asalamon74 commented 7 years ago

@Blueshawk Thanks, waiting for the pull request. ;)

asalamon74 commented 7 years ago

I've fixed a similar bug for K-70, hopefully the solution will work also for K-50.

I need the output of the following command twice. Once when the camera is set to BULB but the timer is not set, second when the camera is set to BULB and the timer is set to a long exposure (preferably 5 minutes). Please also tell me the exact time it was set:

pktriggercord-cli --settings_hex --debug > debug.log 2>&1

Blueshawk commented 7 years ago

Woot! I'm on it! Stopping other work. I got stuck on this after helping out at libgphoto with an apparent command offset issue. Fingers crossed! I have a couple of procedural questions , to make sure we are on the same page for testing.

  1. -Which menu setting should I set the bulb type to in the menu? press and hold or press press? Or will it not matter- (I just did both.)
  2. ----Which dial setting should I set it to? "B" bulb seems like a fair choice but I wanted to be sure since It can also be set to bulb in user modes using firmware.--- (oh, got that. set to BULB, okay)
Blueshawk commented 7 years ago

oh argh!...I checked the manual and the k70 has an internal timer for bulb mode. The k50 doesn't have this. I does however have the two modes I mentioned above. I'll go ahead and get you hex from each one. Here's the one I got from the first part: bulb1debug.log.txt And the second one: bulb2debug.log.txt

Hope this helps. :)

asalamon74 commented 7 years ago

@Blueshawk

Setting the dial to "B" is the best, I'm not sure about the user modes.

K-70 has two bulb modes (green button can change between them) one is the indefinite time (press-press or press-hold to specifies the length) and the other is the internal timer mode where you specify in advance the exposure time. In this mode a single press is enough to take a bulb picture.

A K-1 tester found out that bulb works correctly in the internal timer mode. So my solution was to change the camera to the interval timer mode from the code, specify the length from the code and send a single press command. (These changes are camera-specific that's why I was asking for more debug info).

If K-50 has no internal timer mode then this patch cannot be applied here. :(

I'll check the press-press and press-hold modes of my K-70 camera and maybe come up with a different solution. It's a long shot.

asalamon74 commented 7 years ago

@Blueshawk Thanks to your 2 debug logs, I've commited a change, now the program is able to read to bulb mode of K-50 (press-press or press-hold). Please try it. It does not really help to fix the bulb problem, but it might be useful later.

Blueshawk commented 7 years ago

I went ahead and made new logs with the settingshex and with -t60
In mode 1 the shutter opens but closes right away ignoring any delay, and does not do the second one due to the error(presumably) as before. In mode 2 it is a different story, The shutter locks open and stays, never finishing or writing a file

[rambling a bit jic something helps] Seems like I got it to do the shutter twice in this mode in my own hacking by ignoring the status and just retriggering shutter after the delay and creating two files of short shutter time. which shows the camera is happy at that point in the process, just didn't grok the command. Bulb vs. shutter. I noticed that bulb() includes shutter in this arrangement which might explain that. Maybe in early models the shutter command was be enough to trigger the bulb routine? or maybe the other way around. I wonder if in mode two there is a shutter open, and then a second shutter call would close it? Yes it is confusing and i'm sure it's more complicated than that. I would do more hacking on my own on this but i'm busy trying to get experiments ready to try to do crazy eclipse photography...because I'm apparently slightly insane. :) What we really need is the guys who originally cracked the protocol to reget the command structure but apparently that has gotten harder and more encrypted.

debugbulb1.log.txt debugbulb1nohexsettingst60.log.txt debugbulb2.log.txt debugbulb2nohexsettingst60.log.txt

asalamon74 commented 7 years ago

I've tried press-press mode and sent a shutter command (pslr_shutter) waited for a few seconds and sent a second pslr_shutter command but it was not working. The second call of pslr_shutter gave me error.

Blueshawk commented 7 years ago

Yeah there was something in the code that tripped it, I wish I could remember how I tricked it into doing that. I'll look it over again and see if I can duplicate it. Might be nothing but it's a squirrel to chase anyway. :D
--update, I took a quick look(I'm at work) and I'm pretty sure what I did was disable the bit in pktriggercord.c that calls bulb if in bulb mode, and just called shutter to get it to happen.

if ( status.exposure_mode == PSLR_GUI_EXPOSURE_MODE_B ) { DPRINT("bulb\n");

          pslr_bulb( camhandle, true );

pslr_shutter(camhandle); gettimeofday(&current_time, NULL); waitsec = 1.0 * shutter_speed.nom / shutter_speed.denom - timeval_diff(&current_time, &prev_time) / 1000000.0; if ( waitsec < 0 ) { waitsec = 0; } sleep_sec( waitsec ); pslr_bulb( camhandle, false ); } else { DPRINT("not bulb\n"); pslr_shutter(camhandle); } pslr_get_status(camhandle, &status);

I did it for troubleshooting way back when. The idea I got from it was that the camera did not like the bulb call (errors) but would take a double shutter just fine in bulb mode and finish out.