asalamon74 / pktriggercord

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

Support for Samsung GX-1L #36

Open tempUser99 opened 5 years ago

tempUser99 commented 5 years ago

I am looking at a GX-1L and attempting to get it up and running.

What can I do to help out and get support for this unit?

I have tried a few things and found the first issue begins when attempting to get_drive_info from pslr_scsi_linux.c. It appears lines 138-144 are when the check fails on the GX-1L.

If we are able to pass those lines successfully it does appears the camera with change from 'PC' on the LED to the normal readout.

Let me know what I can do to help contribute.

asalamon74 commented 5 years ago

Samsung GX-1L is basically Pentax *ist DL2, but none of them is supported right know.

Adding a new camera requires to add a new line to the camera_models array in pslr_model.c. (Later a camera model specific parser could be also very useful).

I would start be copying the *ist D line and replace the name and the id. Ids can be found here: https://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Pentax.html

Unfortunately *ist models are not really working, someone added the support a long time ago (maybe it was working that time, maybe it was only a test), but no one reported me a successful test after that.

It would be really great if you can add the support.

tempUser99 commented 5 years ago

It actually looks like the GX-1L has been added to camera_models.

Unfortunately right now I am seeing issues right at the beginning of the calls. I am attempting to diagnose the issue some but it does not appear to be responding to SCSI calls at all. When testing the response is consistently blank.

Any other thoughts on getting any response? The really interesting part is that even though I am getting no response when the LCD changes it tends to make me feel like the camera is hearing something just not saying anything back at this point.

Is there a simple way to make very simple calls one by one with some debug information? I am thinking we might be able to find some limited functionality but other calls for status aren't getting anything back.

tempUser99 commented 5 years ago

Does the following output help determine anything? I am unsure exactly what calls are made.

pi@raspberrypi:~/Desktop/pktriggercord_PS $ sudo ./pktriggercord-cli --debug Debug messaging is now enabled. command line: ./pktriggercord-cli --debug ./pktriggercord-cli 0.84.05 model (null) device (null) [C] plsr_init() driveNum:27 Checking drive: sg0 Samsung Digital Camera

Found camera Samsung Digital Camera

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] <<< [] [R] => [10 00 00 00] [C] read_result(0x3, size=16) [S] >>> [F0 49 00 00 10 00 00 00] [S] <<< [] [R] => [00 00 00 01 00 00 00 0E 00 0C 01 40 03 00 00 04] [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] <<< [] [R] => ERROR: 0x00 [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] <<< [] [R] => [10 00 00 00] [C] read_result(0x3, size=16) [S] >>> [F0 49 00 00 10 00 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 40 03 00 00 04] [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] <<< [] [R] => [08 00 00 00] [C] read_result(0x3, size=8) [S] >>> [F0 49 00 00 08 00 00 00] [S] <<< [] [R] => [00 01 2B 80 00 00 1D F3] id of the camera: 12b80 [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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 40 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 bytes more)] init bufmask=0x0 [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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 40 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 bytes more)] [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] <<< [] [R] => ERROR: 0x00 [C] ipslr_cmd_00_05() [C] command(fd=3, 0, 5, 0) [S] >>> [F0 24 00 05 00 00 00 00] [C] get_result(0x3) [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [R] => [B8 00 00 00] [C] read_result(0x3, size=184) [S] >>> [F0 49 00 00 B8 00 00 00] [S] <<< [] [R] => [80 00 1F FF 80 00 03 F1 00 00 00 07 80 00 00 AF 00 00 00 03 00 00 00 07 80 00 00 01 80 00 00 01 ... (152 bytes more)] [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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 40 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 bytes more)] [C] pslr_camera_name() ./pktriggercord-cli: GX-1L 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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 40 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 40 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 bytes more)] [C] ipslr_read_dspinfo() [C] command(fd=3, 1, 1, 0) [S] >>> [F0 24 01 01 00 00 00 00] [C] get_result(0x3) [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [R] => [04 00 00 00] [C] ipslr_read_dspinfo() bytes: 4 [C] read_result(0x3, size=4) [S] >>> [F0 49 00 00 04 00 00 00] [S] <<< [] [R] => [01 00 00 00] Firmware version: 1.00.00.00 [C] pslr_get_settings_json() [C] ipslr_read_setting(0) [C] _ipslr_write_args(cmd_2 = 0x0, {0x0}) [S] >>> [F0 4F 00 00 04 00 00 00] [S] >>> [00 00 00 00] [C] command(fd=3, 20, 9, 4) [S] >>> [F0 24 20 09 04 00 00 00] [C] get_result(0x3) [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] ^C

asalamon74 commented 5 years ago

Yes, I missed the GX-1L line. I've checked my e-mails,we tried to add support in 2015, but it was not working.

Your log shows that the camera is recognized, it's even possible to read some info (like firmware version).

Instead of taking a picture, let's start with status reading. What is the debug output of the following command:

pktriggercord-cli --statux_hex --debug

tempUser99 commented 5 years ago

Below is what we have when running pktriggercord-cli --status_hex --debug. (You meant status not statux correct?)

pi@raspberrypi:~/Desktop/pktriggercord_PS $ sudo ./pktriggercord-cli --status_hex --debug Debug messaging is now enabled. command line: ./pktriggercord-cli --status_hex --debug ./pktriggercord-cli 0.84.05 model (null) device (null) [C] plsr_init() driveNum:27 Checking drive: sg0 Samsung Digital Camera

Found camera Samsung Digital Camera

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] <<< [] [R] => [10 00 00 00] [C] read_result(0x3, size=16) [S] >>> [F0 49 00 00 10 00 00 00] [S] <<< [] [R] => [00 00 00 01 00 00 00 0E 00 0C 01 20 03 00 00 04] [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] <<< [] [R] => ERROR: 0x00 [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] <<< [] [R] => [10 00 00 00] [C] read_result(0x3, size=16) [S] >>> [F0 49 00 00 10 00 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 20 03 00 00 04] [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] <<< [] [R] => [08 00 00 00] [C] read_result(0x3, size=8) [S] >>> [F0 49 00 00 08 00 00 00] [S] <<< [] [R] => [00 01 2B 80 00 00 1D F3] id of the camera: 12b80 [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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 20 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 bytes more)] init bufmask=0x0 [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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 20 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ... (232 bytes more)] [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] <<< [] [R] => ERROR: 0x00 [C] ipslr_cmd_00_05() [C] command(fd=3, 0, 5, 0) [S] >>> [F0 24 00 05 00 00 00 00] [C] get_result(0x3) [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [R] => [B8 00 00 00] [C] read_result(0x3, size=184) [S] >>> [F0 49 00 00 B8 00 00 00] [S] <<< [] [R] => [80 00 1F FF 80 00 03 F1 00 00 00 07 80 00 00 AF 00 00 00 03 00 00 00 07 80 00 00 01 80 00 00 01 ... (152 bytes more)] [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] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 20 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 ... (232 bytes more)] [C] pslr_camera_name() ./pktriggercord-cli: GX-1L 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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 20 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 ... (232 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] <<< [] [R] => [08 01 00 00] read 264 bytes expected_bufsize: 0 [C] read_result(0x3, size=264) [S] >>> [F0 49 00 00 08 01 00 00] [S] <<< [] [R] => [00 00 00 02 00 00 00 0E 00 0C 02 20 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 ... (232 bytes more)] [C] ipslr_read_dspinfo() [C] command(fd=3, 1, 1, 0) [S] >>> [F0 24 01 01 00 00 00 00] [C] get_result(0x3) [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [R] => [04 00 00 00] [C] ipslr_read_dspinfo() bytes: 4 [C] read_result(0x3, size=4) [S] >>> [F0 49 00 00 04 00 00 00] [S] <<< [] [R] => [01 00 00 00] Firmware version: 1.00.00.00 [C] pslr_get_settings_json() [C] ipslr_read_setting(0) [C] _ipslr_write_args(cmd_2 = 0x0, {0x0}) [S] >>> [F0 4F 00 00 04 00 00 00] [S] >>> [00 00 00 00] [C] command(fd=3, 20, 9, 4) [S] >>> [F0 24 20 09 04 00 00 00] [C] get_result(0x3) [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] [S] <<< [] [S] >>> [F0 26 00 00 00 00 00 00] ^C

tempUser99 commented 5 years ago

Note: When running both sudo ./pktriggercord-cli --debug and pktriggercord-cli --status_hex --debug the top LCD on the camera changes from Pc to information that is usually there when not connected to USB like is ready to take a picture. In fact, after running either of those commands above the camera can take pictures as if it were not connected to USB. Usually when the LCD on the top of the camera says Pc the camera cannot do anything from the actual physical buttons on the camera (like taking pictures, viewing pictures, etc). When terminating the command the camera stays in a state in which it acts like it is not connected to USB unless I power cycle the camera at which time it changes back to Pc until I run either of the commands above.

tempUser99 commented 5 years ago

I am going down this path a little further and looking into when we are getting an [R] => ERROR: 0x00 response at one point. I am feeling like that might be the time when the camera appears to seemingly switch over to the second mode where it is able to take a picture.

Do you think that is the right direction to investigate?

asalamon74 commented 5 years ago

@tempUser99 A few tips:

tempUser99 commented 5 years ago

We are indeed getting somewhere now. Although nothing is happening on the camera at least the camera does stay in Pc mode. Below is the output I get after commenting out the line you suggest (998).


pi@raspberrypi:~/Desktop/pktriggercord_PS $ sudo ./pktriggercord-cli --status_hex --debug
Debug messaging is now enabled.
command line:
./pktriggercord-cli --status_hex --debug 
./pktriggercord-cli 0.84.05 
model (null)
device (null)
[C] plsr_init()
driveNum:27
    Checking drive:  sg0 Samsung 
 Digital Camera  

    Found camera Samsung 
 Digital Camera  

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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 00 04]
[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]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04]
[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]                  <<< []
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< []
[R]              => [00 01 2B 80  00 00 1D F3]
    id of the camera: 12b80
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
    init bufmask=0x0
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_cmd_00_05()
[C]         command(fd=3, 0, 5, 0)
[S]                  >>> [F0 24 00 05  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [B8 00 00 00]
[C]         read_result(0x3, size=184)
[S]                  >>> [F0 49 00 00  B8 00 00 00]
[S]                  <<< []
[R]              => [80 00 1F FF  80 00 03 F1  00 00 00 07  80 00 00 AF
                     00 00 00 03  00 00 00 07  80 00 00 01  80 00 00 01 ... (152 bytes more)]
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: GX-1L 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
[C]     ipslr_read_dspinfo()
[C]         command(fd=3, 1, 1, 0)
[S]                  >>> [F0 24 01 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [04 00 00 00]
[C]     ipslr_read_dspinfo() bytes: 4
[C]         read_result(0x3, size=4)
[S]                  >>> [F0 49 00 00  04 00 00 00]
[S]                  <<< []
[R]              => [01 00 00 00]
Firmware version: 1.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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
[C] pslr_get_status_buffer()
0x0000 | 00 00 00 02 00 00 00 0e  00 0c 02 20 03 00 00 04  
0x0010 | 00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 07  
0x0020 | 00 00 00 04 00 00 00 00  00 00 00 00 00 00 00 01  
0x0030 | 00 00 00 00 00 00 00 00  00 00 00 c8 00 00 00 00  
0x0040 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0050 | 00 00 00 00 00 00 00 0a  00 00 00 00 00 00 00 00  
0x0060 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0070 | 00 00 00 00 00 00 00 00  00 00 00 f0 00 00 00 00  
0x0080 | 00 00 00 01 00 00 00 0a  00 00 00 38 00 00 00 0a  
0x0090 | 00 00 00 00 00 00 00 0a  00 00 00 00 00 00 00 0a  
0x00a0 | 00 00 00 01 00 00 0f a0  00 00 03 20 00 00 00 07  
0x00b0 | 00 00 03 00 00 00 00 08  00 00 00 28 00 00 00 0a  
0x00c0 | 00 00 01 0e 00 00 00 0a  00 00 00 00 00 00 00 00  
0x00d0 | 00 00 00 00 00 00 00 0a  00 00 00 00 00 00 00 00  
0x00e0 | 00 00 02 40 ad ad 00 00  00 00 04 f6 00 00 00 00  
0x00f0 | 00 00 00 00 00 00 00 1f  ff ff ff f6 ff ff ff d8  
0x0100 | 00 00 00 00 00 00 00 f0  00 00 00 00 00 00 00 00  
0x0110 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0120 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0130 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0140 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0150 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0160 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0170 | 00 00 00 00 00 00 00 00  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 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x01a0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x01b0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x01c0 | 00 00 00 00 00 00 00 00  

current iso                     : 0
current shutter speed           : 0/0
camera max shutter speed        : 0/0
current aperture                : unknown
lens max aperture               : unknown
lens min aperture               : unknown
set shutter speed               : 0/0
set aperture                    : unknown
fixed iso                       : 0
auto iso                        : 0-0
jpeg quality                    : 0
jpeg resolution                 : 6M
jpeg image tone                 : Natural
jpeg saturation                 : 0
jpeg contrast                   : 0
jpeg sharpness                  : 0
jpeg hue                        : 0
zoom                            : unknown mm
focus                           : 0
color space                     : sRGB
image format                    : JPEG
raw format                      : PEF
light meter flags               : 0
ec                              : unknown
custom ev steps                 : 1/2 EV steps
custom sensitivity steps        : 1 EV steps
exposure mode                   : 0
scene mode                      : NONE
user mode flag                  : 0
ae metering mode                : Multi
af mode                         : MF
af point select                 : Auto-5
selected af point               : none
focused af point                : none
drive mode                      : Single
auto bracket mode               : off
auto bracket picture count      : 0
auto bracket picture counter    : 0
auto bracket ev                 : unknown
shake reduction                 : off
white balance mode              : Auto
white balance adjust            : M7B7
flash mode                      : Manual
flash exposure compensation     : 0.00
manual mode ev                  : 0.00
lens                            : M-42 or No Lens
battery                         : 0.00V 0.00V 0.00V 0.00V
buffer mask                     : 0000000000000000
[C] pslr_disconnect()
[C]     ipslr_cmd_10_0a(0x0)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x0})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_set_mode(0x0)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x0})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[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]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 00 04]
[C] pslr_shutdown()
asalamon74 commented 5 years ago

@tempUser99 This one actually looks very good. Then program was able to connect to the camera and read the status buffer. Since status parsing is not implemented yet, the fields are not rcorrectly ecognized.

You can improve it in two ways:

  1. Modify the GX-1L line, add buffer size info (264 bytes) and create a parser for this camera. It might be very similar to ipslr_status_parse_istds. Most of the fields are zeroes, but you can probably find basic fields like aperture, shutter speed.

  2. Try to take a picture. Theoretically it should work even without the status parser.

tempUser99 commented 5 years ago

What is the correct procedure to attempt to take the picture without the buffer?

I will see what I can do to create a parser.

asalamon74 commented 5 years ago

The following command should take a single picture and save it:

pktriggercord-cli -o test.pef --debug

The output file format will be most likely a pef for your model. Maybe a dng.

tempUser99 commented 5 years ago

I copied over ipslr_status_parse_istds and specified 264 for the GL-1L as you had mentioned. Below is my output when running pktriggercord-cli -o test.pef --debug. The output continues to repeat at the end indefinitely so I stop it after a couple seconds.

The camera changes from Pc mode to show the regular data on the top LCD this time.

Also interestingly, after running this command a dialog box pops up on the desktop of the raspberry pi running this saying "No object for D-Bus interface".

pi@raspberrypi:~/Desktop/pktriggercord_PS $ sudo ./pktriggercord-cli -o test.pef --debug
Debug messaging is now enabled.
command line:
./pktriggercord-cli -o test.pef --debug 
./pktriggercord-cli 0.84.05 
model (null)
device (null)
[C] plsr_init()
driveNum:27
    Checking drive:  sg0 Samsung 
 Digital Camera  

Found camera Samsung 
 Digital Camera  

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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 00 04]
[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]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04]
[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]                  <<< []
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< []
[R]              => [00 01 2B 80  00 00 1D F3]
    id of the camera: 12b80
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
    init bufmask=0x0
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_cmd_00_05()
[C]         command(fd=3, 0, 5, 0)
[S]                  >>> [F0 24 00 05  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [B8 00 00 00]
[C]         read_result(0x3, size=184)
[S]                  >>> [F0 49 00 00  B8 00 00 00]
[S]                  <<< []
[R]              => [80 00 1F FF  80 00 03 F1  00 00 00 07  80 00 00 AF
                     00 00 00 03  00 00 00 07  80 00 00 01  80 00 00 01 ... (152 bytes more)]
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: GX-1L 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[C]     ipslr_read_dspinfo()
[C]         command(fd=3, 1, 1, 0)
[S]                  >>> [F0 24 01 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [04 00 00 00]
[C]     ipslr_read_dspinfo() bytes: 4
[C]         read_result(0x3, size=4)
[S]                  >>> [F0 49 00 00  04 00 00 00]
[S]                  <<< []
[R]              => [01 00 00 00]
Firmware version: 1.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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
json text:
{
    "0x13222": {
        "fields": [
        { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x178" },
        { "name" : "one_push_bracketing", "type": "boolean", "address": "0x17e"},
        { "name" : "bulb_timer", "type": "boolean", "address": "0x133"},
        { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x134"},
        { "name" : "using_aperture_ring", "type": "boolean", "address": "0x18c"},
        { "name" : "shake_reduction", "type": "boolean!", "address": "0x07d"},
        { "name" : "astrotracer", "type": "boolean", "address": "0x087"},
        { "name" : "horizon_correction", "type": "boolean!", "address": "0x080"}
    ]
    },

    "0x12dfe": {
        "fields": [
        { "name" : "bulb_mode_press_press", "type": "boolean", "value": "false" },
        { "name" : "one_push_bracketing", "type": "boolean", "value": "false"},
        { "name" : "bulb_timer", "type": "boolean", "value": "false"},
        { "name" : "bulb_timer_sec", "type": "boolean" },
        { "name" : "astrotracer", "type": "boolean", "value": "false"}
    ]
    },

    "0x12fb6": {
        "fields": [
        { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
    ]
    },

    "0x12ef8": {
        "fields": [
        { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
    ]
    },

    "0x13092": {
    "fields": [
        { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
        { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
    ]
    },

    "0x1309c": {
    "fields": [
        { "name" : "astrotracer", "type": "boolean", "address": "0x1ac"},
        { "name" : "astrotracer_timer_sec", "type": "uint16", "address": "0x1ad"}
    ]
    },

    "0x13240": {
    "fields": [
        { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
        { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
    ]
    },
}

JSON: Cannot find camera model
JSON: Cannot find camera model
cont: 0
not bulb
[C] pslr_shutter()
[C]     ipslr_press_shutter(fullpress = true)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
        before: mask=0x0
[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, 10, 5, 4)
[S]                  >>> [F0 24 10 05  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x82
    ERROR: 0x82
        shutter result code: 0x82
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 07 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
tempUser99 commented 5 years ago

@asalamon74 Do you have any updated thoughts based on the last output? I have been making a few modifications to try to test but nothing appears to be helpful.

asalamon74 commented 5 years ago

It seems to me that the shutter command (this command tells the camera to take a picture) is unrecognised, and gives and error:

[C] pslr_shutter()
[C]     ipslr_press_shutter(fullpress = true)
...
    ERROR: 0x82
        shutter result code: 0x82

This command is the same for all the camera models, so I don't really think we need to change this part of the code. Maybe the camera initialization code should be different. You may try to change the code, but this is only a trial and error approach.

For some camera models, upgrading the firmware was helpful. According to the logs, your are using firmare 1.00 (or firmware version reading is not working), upgrading it might help.

tempUser99 commented 5 years ago

I managed to get what looks like the only available copy of 1.02 firmware and I upgraded. Now this is all I see when running:

sudo ./pktriggercord-cli --status_hex --debug

command line:
./pktriggercord-cli --status_hex --debug 
./pktriggercord-cli 0.84.05 
model (null)
device (null)
[C] plsr_init()
driveNum:27

I am working on getting passed this point, any thoughts?

asalamon74 commented 5 years ago

That is quite strange. After printing the driveNum the program reads info from the /sys/class/scsi_generics or /sys/block directory, and prints out the Checking drive... text which is missing from your output. This should be in the log, because it is printed before we start the real communication. When we check the drives, we might check lots of other devices, some of them are not even cameras.

I'll add a few debug messages soon.

asalamon74 commented 5 years ago

I've added more debug messages to the code. @tempUser99 can you please try it again.

tempUser99 commented 5 years ago

I finally was able to get connected again and ran a test with the new debug messages you added. See attached below.

pi@raspberrypi:~/Desktop/pktriggercord_DEBUG $ sudo ./pktriggercord-cli --status_hex --debug
Debug messaging is now enabled.
command line:
./pktriggercord-cli --status_hex --debug 
./pktriggercord-cli 0.85.01 
model (null)
device (null)
[C] plsr_init()
driveNum:27
Getting drive info for sg0
Looking for vendor
vendor: Samsung 

Looking for model
model: Digital Camera  

Looking for device file
    Checking drive:  sg0 Samsung 
 Digital Camera  

    Found camera Samsung 
 Digital Camera  

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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 02 04]
[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]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04]
[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]                  <<< []
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< []
[R]              => [00 01 2B 80  00 00 1D F3]
    id of the camera: 12b80
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
    init bufmask=0x0
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_cmd_00_05()
[C]         command(fd=3, 0, 5, 0)
[S]                  >>> [F0 24 00 05  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [B8 00 00 00]
[C]         read_result(0x3, size=184)
[S]                  >>> [F0 49 00 00  B8 00 00 00]
[S]                  <<< []
[R]              => [80 00 1F FF  80 00 03 F1  00 00 00 07  80 00 00 AF
                     00 00 00 03  00 00 00 07  80 00 00 01  80 00 00 01 ... (152 bytes more)]
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: GX-1L 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[C]     ipslr_read_dspinfo()
[C]         command(fd=3, 1, 1, 0)
[S]                  >>> [F0 24 01 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [04 00 00 00]
[C]     ipslr_read_dspinfo() bytes: 4
[C]         read_result(0x3, size=4)
[S]                  >>> [F0 49 00 00  04 00 00 00]
[S]                  <<< []
[R]              => [01 02 00 04]
Firmware version: 1.02.00.04
json text:
{
    "0x13222": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x178" },
            { "name" : "one_push_bracketing", "type": "boolean", "address": "0x17e"},
            { "name" : "bulb_timer", "type": "boolean", "address": "0x133"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x134"},
            { "name" : "using_aperture_ring", "type": "boolean", "address": "0x18c"},
            { "name" : "shake_reduction", "type": "boolean!", "address": "0x07d"},
            { "name" : "astrotracer", "type": "boolean", "address": "0x087"},
            { "name" : "horizon_correction", "type": "boolean!", "address": "0x080"}
        ]
    },

    "0x12dfe": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "value": "false" },
            { "name" : "one_push_bracketing", "type": "boolean", "value": "false"},
            { "name" : "bulb_timer", "type": "boolean", "value": "false"},
            { "name" : "bulb_timer_sec", "type": "uint16", "value": 0 },
            { "name" : "using_aperture_ring", "type": "boolean", "address": "0x142"},
            { "name" : "shake_reduction", "type": "boolean!", "address": "0x065"},
            { "name" : "astrotracer", "type": "boolean", "value": "false"},
            { "name" : "astrotracer_timer_sec", "type": "uint16", "value": "0"},
            { "name" : "horizon_correction", "type": "boolean", "value": "false"}
        ]
    },

    "0x12fb6": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
        ]
    },

    "0x12ef8": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
        ]
    },

    "0x13092": {
        "fields": [
            { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
        ]
    },

    "0x1309c": {
        "fields": [
            { "name" : "astrotracer", "type": "boolean", "address": "0x1ac"},
            { "name" : "astrotracer_timer_sec", "type": "uint16", "address": "0x1ad"}
        ]
    },

    "0x13240": {
        "fields": [
            { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
        ]
    }
}

JSON: Cannot find camera model
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[C] pslr_get_status_buffer()
0x0000 | 00 00 00 02 00 00 00 0e  00 0c 02 20 03 00 02 04  
0x0010 | 00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 04  
0x0020 | 00 00 00 04 00 00 00 00  00 00 00 00 00 00 00 01  
0x0030 | 00 00 00 00 00 00 00 00  00 00 00 c8 00 00 00 01  
0x0040 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0050 | 00 00 00 00 00 00 00 0a  00 00 00 00 00 00 00 00  
0x0060 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0070 | 00 00 00 00 00 00 00 00  00 00 00 f0 00 00 00 00  
0x0080 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 0a  
0x0090 | 00 00 00 50 00 00 00 0a  00 00 00 00 00 00 00 0a  
0x00a0 | 00 00 00 00 00 00 00 00  00 00 00 06 00 00 00 00  
0x00b0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 0a  
0x00c0 | 00 00 00 00 00 00 00 0a  00 00 00 00 00 00 00 00  
0x00d0 | 00 00 00 50 00 00 00 0a  00 00 00 00 00 00 00 00  
0x00e0 | 00 00 02 40 aa aa 00 00  00 00 04 24 00 00 00 00  
0x00f0 | 00 00 00 00 00 00 00 46  00 00 00 50 00 00 00 0a  
0x0100 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0110 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0120 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0130 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0140 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0150 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0160 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x0170 | 00 00 00 00 00 00 00 00  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 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x01a0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x01b0 | 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
0x01c0 | 00 00 00 00 00 00 00 00  

current iso                     : 0
current shutter speed           : 0/0
camera max shutter speed        : 0/0
current aperture                : unknown
lens max aperture               : unknown
lens min aperture               : unknown
set shutter speed               : 0/0
set aperture                    : unknown
fixed iso                       : 0
auto iso                        : 0-0
jpeg quality                    : 0
jpeg resolution                 : 6M
jpeg image tone                 : Natural
jpeg saturation                 : 0
jpeg contrast                   : 0
jpeg sharpness                  : 0
jpeg hue                        : 0
zoom                            : unknown mm
focus                           : 0
color space                     : sRGB
image format                    : JPEG
raw format                      : PEF
light meter flags               : 0
ec                              : unknown
custom ev steps                 : 1/2 EV steps
custom sensitivity steps        : 1 EV steps
exposure mode                   : 0
scene mode                      : NONE
user mode flag                  : 0
ae metering mode                : Multi
af mode                         : MF
af point select                 : Auto-5
selected af point               : none
focused af point                : none
drive mode                      : Single
auto bracket mode               : off
auto bracket picture count      : 0
auto bracket picture counter    : 0
auto bracket ev                 : unknown
shake reduction                 : off
white balance mode              : Auto
white balance adjust            : M7B7
flash mode                      : Manual
flash exposure compensation     : 0.00
manual mode ev                  : 0.00
lens                            : M-42 or No Lens
battery                         : 0.00V 0.00V 0.00V 0.00V
buffer mask                     : 0000000000000000
[C] pslr_disconnect()
[C]     ipslr_cmd_10_0a(0x0)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x0})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_set_mode(0x0)
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x0})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[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]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 02 04]
[C] pslr_shutdown()
tempUser99 commented 5 years ago

Additionally when attempting to run sudo ./pktriggercord-cli -o test.pef --debug the following is the output.

pi@raspberrypi:~/Desktop/pktriggercord_DEBUG $ sudo ./pktriggercord-cli -o test.pef --debug
Debug messaging is now enabled.
command line:
./pktriggercord-cli -o test.pef --debug 
./pktriggercord-cli 0.85.01 
model (null)
device (null)
[C] plsr_init()
driveNum:27
Getting drive info for sg0
Looking for vendor
vendor: Samsung 

Looking for model
model: Digital Camera  

Looking for device file
    Checking drive:  sg0 Samsung 
 Digital Camera  

    Found camera Samsung 
 Digital Camera  

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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 02 04]
[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]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04]
[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]                  <<< []
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< []
[R]              => [00 01 2B 80  00 00 1D F3]
    id of the camera: 12b80
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
    init bufmask=0x0
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_cmd_00_05()
[C]         command(fd=3, 0, 5, 0)
[S]                  >>> [F0 24 00 05  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [B8 00 00 00]
[C]         read_result(0x3, size=184)
[S]                  >>> [F0 49 00 00  B8 00 00 00]
[S]                  <<< []
[R]              => [80 00 1F FF  80 00 03 F1  00 00 00 07  80 00 00 AF
                     00 00 00 03  00 00 00 07  80 00 00 01  80 00 00 01 ... (152 bytes more)]
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: GX-1L 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 04 ... (232 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 06 ... (232 bytes more)]
[C]     ipslr_read_dspinfo()
[C]         command(fd=3, 1, 1, 0)
[S]                  >>> [F0 24 01 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [04 00 00 00]
[C]     ipslr_read_dspinfo() bytes: 4
[C]         read_result(0x3, size=4)
[S]                  >>> [F0 49 00 00  04 00 00 00]
[S]                  <<< []
[R]              => [01 02 00 04]
Firmware version: 1.02.00.04
json text:
{
    "0x13222": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x178" },
            { "name" : "one_push_bracketing", "type": "boolean", "address": "0x17e"},
            { "name" : "bulb_timer", "type": "boolean", "address": "0x133"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x134"},
            { "name" : "using_aperture_ring", "type": "boolean", "address": "0x18c"},
            { "name" : "shake_reduction", "type": "boolean!", "address": "0x07d"},
            { "name" : "astrotracer", "type": "boolean", "address": "0x087"},
            { "name" : "horizon_correction", "type": "boolean!", "address": "0x080"}
        ]
    },

    "0x12dfe": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "value": "false" },
            { "name" : "one_push_bracketing", "type": "boolean", "value": "false"},
            { "name" : "bulb_timer", "type": "boolean", "value": "false"},
            { "name" : "bulb_timer_sec", "type": "uint16", "value": 0 },
            { "name" : "using_aperture_ring", "type": "boolean", "address": "0x142"},
            { "name" : "shake_reduction", "type": "boolean!", "address": "0x065"},
            { "name" : "astrotracer", "type": "boolean", "value": "false"},
            { "name" : "astrotracer_timer_sec", "type": "uint16", "value": "0"},
            { "name" : "horizon_correction", "type": "boolean", "value": "false"}
        ]
    },

    "0x12fb6": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
        ]
    },

    "0x12ef8": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
        ]
    },

    "0x13092": {
        "fields": [
            { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
        ]
    },

    "0x1309c": {
        "fields": [
            { "name" : "astrotracer", "type": "boolean", "address": "0x1ac"},
            { "name" : "astrotracer_timer_sec", "type": "uint16", "address": "0x1ad"}
        ]
    },

    "0x13240": {
        "fields": [
            { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
        ]
    }
}

JSON: Cannot find camera model
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 06 ... (232 bytes more)]
JSON: Cannot find camera model
JSON: Cannot find camera model
cont: 0
not bulb
[C] pslr_shutter()
[C]     ipslr_press_shutter(fullpress = true)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 06 ... (232 bytes more)]
        before: mask=0x0
[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, 10, 5, 4)
[S]                  >>> [F0 24 10 05  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x82
    ERROR: 0x82
        shutter result code: 0x82
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 06 ... (232 bytes more)]
get buffer 0 type 0 res 0
[C] pslr_buffer_open(#0, type=0, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 02 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 06 ... (232 bytes more)]
    p->status.bufmask = 0
        Select buffer 0,0,0,0
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x0, 0x0, 0x0, 0x0})
[S]                  >>> [F0 4F 00 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[S]                  >>> [F0 4F 04 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[S]                  >>> [F0 4F 08 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[S]                  >>> [F0 4F 0C 00  04 00 00 00]
[S]                  >>> [00 00 00 00]
[C]         command(fd=3, 2, 1, c)
[S]                  >>> [F0 24 02 01  0C 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x82
    ERROR: 0x82
[C]     ipslr_buffer_segment_info()
[C]         command(fd=3, 4, 0, 0)
[S]                  >>> [F0 24 04 00  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
^C
asalamon74 commented 5 years ago

@tempUser99 The strange error of printing out only the driveNum disappeared, right now it's possible to connect to the camera again.

Unfortunately I don't see too much difference in the logs. Status buffer reading works, taking a picture gives the same ERROR: 0x82 error.

tempUser99 commented 5 years ago

I ran a few more tests, without changing anything to try to better understand what is happening. Output appears to be the same for sudo ./pktriggercord-cli --status_hex --debug but for sudo ./pktriggercord-cli -o test.pef --debug it appears to be looping differently.

0x82 appears to mean that the camera is rejecting the command but at least it is responding to something.

pi@raspberrypi:~/Desktop/pktriggercord_DEBUG $ sudo ./pktriggercord-cli -o test.pef --debug
Debug messaging is now enabled.
command line:
./pktriggercord-cli -o test.pef --debug 
./pktriggercord-cli 0.85.01 
model (null)
device (null)
[C] plsr_init()
driveNum:27
Getting drive info for sg0
Looking for vendor
vendor: Samsung 

Looking for model
model: Digital Camera  

Looking for device file
    Checking drive:  sg0 Samsung 
 Digital Camera  

    Found camera Samsung 
 Digital Camera  

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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 01  00 00 00 0E  00 0C 01 20  03 00 00 04]
[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]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x01
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x00
[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]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04]
[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]                  <<< []
[R]              => [08 00 00 00]
[C]         read_result(0x3, size=8)
[S]                  >>> [F0 49 00 00  08 00 00 00]
[S]                  <<< []
[R]              => [00 01 2B 80  00 00 1D F3]
    id of the camera: 12b80
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
    init bufmask=0x0
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
[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]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_cmd_00_05()
[C]         command(fd=3, 0, 5, 0)
[S]                  >>> [F0 24 00 05  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [B8 00 00 00]
[C]         read_result(0x3, size=184)
[S]                  >>> [F0 49 00 00  B8 00 00 00]
[S]                  <<< []
[R]              => [80 00 1F FF  80 00 03 F1  00 00 00 07  80 00 00 AF
                     00 00 00 03  00 00 00 07  80 00 00 01  80 00 00 01 ... (152 bytes more)]
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
[C] pslr_camera_name()
./pktriggercord-cli: GX-1L 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
[C]     ipslr_read_dspinfo()
[C]         command(fd=3, 1, 1, 0)
[S]                  >>> [F0 24 01 01  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [04 00 00 00]
[C]     ipslr_read_dspinfo() bytes: 4
[C]         read_result(0x3, size=4)
[S]                  >>> [F0 49 00 00  04 00 00 00]
[S]                  <<< []
[R]              => [01 02 00 04]
Firmware version: 1.02.00.04
json text:
{
    "0x13222": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x178" },
            { "name" : "one_push_bracketing", "type": "boolean", "address": "0x17e"},
            { "name" : "bulb_timer", "type": "boolean", "address": "0x133"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x134"},
            { "name" : "using_aperture_ring", "type": "boolean", "address": "0x18c"},
            { "name" : "shake_reduction", "type": "boolean!", "address": "0x07d"},
            { "name" : "astrotracer", "type": "boolean", "address": "0x087"},
            { "name" : "horizon_correction", "type": "boolean!", "address": "0x080"}
        ]
    },

    "0x12dfe": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "value": "false" },
            { "name" : "one_push_bracketing", "type": "boolean", "value": "false"},
            { "name" : "bulb_timer", "type": "boolean", "value": "false"},
            { "name" : "bulb_timer_sec", "type": "uint16", "value": 0 },
            { "name" : "using_aperture_ring", "type": "boolean", "address": "0x142"},
            { "name" : "shake_reduction", "type": "boolean!", "address": "0x065"},
            { "name" : "astrotracer", "type": "boolean", "value": "false"},
            { "name" : "astrotracer_timer_sec", "type": "uint16", "value": "0"},
            { "name" : "horizon_correction", "type": "boolean", "value": "false"}
        ]
    },

    "0x12fb6": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
        ]
    },

    "0x12ef8": {
        "fields": [
            { "name" : "bulb_mode_press_press", "type": "boolean", "address": "0x0f2" }
        ]
    },

    "0x13092": {
        "fields": [
            { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
        ]
    },

    "0x1309c": {
        "fields": [
            { "name" : "astrotracer", "type": "boolean", "address": "0x1ac"},
            { "name" : "astrotracer_timer_sec", "type": "uint16", "address": "0x1ad"}
        ]
    },

    "0x13240": {
        "fields": [
            { "name" : "bulb_timer", "type": "boolean", "address": "0x131"},
            { "name" : "bulb_timer_sec", "type": "uint16", "address": "0x132"}
        ]
    }
}

JSON: Cannot find camera model
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
JSON: Cannot find camera model
JSON: Cannot find camera model
cont: 0
not bulb
[C] pslr_shutter()
[C]     ipslr_press_shutter(fullpress = true)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 04
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
        before: mask=0x0
[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, 10, 5, 4)
[S]                  >>> [F0 24 10 05  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x82
    ERROR: 0x82
        shutter result code: 0x82
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  03 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
[C] pslr_buffer_open(#0, type=5, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 264
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 0E  00 0C 02 20  84 00 00 05
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
    p->status.bufmask = 0
    No buffer data (0)
get buffer 0 type 5 res 0
andyboeh commented 5 years ago

Did you ever proceed in getting this to work? I found my old *istDL2 and I'm trying to get it to connect - I added the model info before I found out that it is similar to the GX-1L and I'm experiencing the very same behavior! Mine is also on Firmware 1.02.

asalamon74 commented 5 years ago

No update on this issue.

*istDL2 is basically the same as GX-1L, so they should behave similarly.

andyboeh commented 5 years ago

OK - so I did som research: I tried the new Pentax SCSI protocol instead of the old one and - the shutter fires. Now I need to figure out how to transfer an image, this still doesn't work.

For now, it reports the following:

[C] pslr_shutter()
[C]     ipslr_press_shutter(fullpress = true)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 00  02 00 02 20  85 00 00 01
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
        before: mask=0x0
[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, 10, 5, 4)
[S]                  >>> [F0 24 10 05  04 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x00
        shutter result code: 0x0
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 00  02 00 02 20  85 00 08 01
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
get buffer 0 type 0 res 0
[C] pslr_buffer_open(#0, type=0, res=0)
[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]                  <<< []
[R]              => [08 01 00 00]
    read 264 bytes
    expected_bufsize: 0
[C]         read_result(0x3, size=264)
[S]                  >>> [F0 49 00 00  08 01 00 00]
[S]                  <<< []
[R]              => [00 00 00 02  00 00 00 00  02 00 02 20  85 00 08 01
                     00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 05 ... (232 bytes more)]
    p->status.bufmask = 0
        Select buffer 0,0,0,0
[C]         _ipslr_write_args(cmd_2 = 0x0, {0x0, 0x0, 0x0, 0x0})
[S]                  >>> [F0 4F 00 00  10 00 00 00]
[S]                  >>> [00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00]
[C]         command(fd=3, 2, 1, 10)
[S]                  >>> [F0 24 02 01  10 00 00 00]
[C]         get_status(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => ERROR: 0x00
[C]     ipslr_buffer_segment_info()
[C]         command(fd=3, 4, 0, 0)
[S]                  >>> [F0 24 04 00  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00]
    Waiting for segment info addr: 0x0 len: 0 B=0
[C]         command(fd=3, 4, 0, 0)
[S]                  >>> [F0 24 04 00  00 00 00 00]
[C]         get_result(0x3)
[S]                  >>> [F0 26 00 00  00 00 00 00]
[S]                  <<< []
[R]              => [10 00 00 00]
[C]         read_result(0x3, size=16)
[S]                  >>> [F0 49 00 00  10 00 00 00]
[S]                  <<< []
[R]              => [00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00]

and this repeats until pslr_disconnect() is called.

The entry in pslr_model.c now looks like the following:

{ 0x12b7e, "*ist DL2",     false,  true,  true,  false, false, false, 0,   3, {6, 4, 2}, 5, 4000, 200, 3200, 200, 3200, PSLR_JPEG_IMAGE_TONE_BRIGHT, false, 11, NULL},
andyboeh commented 5 years ago

Actually, my settings are similar to the K110D. I couldn't find any references as to why the K110D doesn't work, only that it's not working. Do you know more?

asalamon74 commented 5 years ago

@andyboeh I don't remember the exact problem with K110D.

Maybe you could try to change 'bufmask_command' to 'true'.