Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Samsung GX-1L #36

Open
tempUser99 opened this issue Dec 20, 2018 · 27 comments
Open

Support for Samsung GX-1L #36

tempUser99 opened this issue Dec 20, 2018 · 27 comments

Comments

@tempUser99
Copy link

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
Copy link
Owner

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
Copy link
Author

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
Copy link
Author

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
Copy link
Owner

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
Copy link
Author

tempUser99 commented Dec 22, 2018

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
Copy link
Author

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
Copy link
Author

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
Copy link
Owner

@tempUser99 A few tips:

  • The program stuck at settings reading. Since this camera model does not have a settings parser, you might comment out the line ( https://github.com/asalamon74/pktriggercord/blob/master/pktriggercord-cli.c#L998 ) because settings info is not that import. Quite likely the program will stuck at a later step, but it's worth trying.

  • Yes it's possible that terminating the command leaves the camera in an invalid state, but I only seen things like that in newer models when the camera was not mounted.

  • Starting the program does not really disables all the controls of the camera. For some models it is possible to start the program using the --noshutter switch. The program connects to the camera but waits for a shutter press and reads the image after that. So it's possible that this camera is also in this state.

  • It is possible that the camera is not in the correct state, maybe pslr_connect ( https://github.com/asalamon74/pktriggercord/blob/master/pslr.c#L426 ) needs to be modified.

@tempUser99
Copy link
Author

tempUser99 commented Jan 4, 2019

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
Copy link
Owner

@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
Copy link
Author

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
Copy link
Owner

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
Copy link
Author

tempUser99 commented Jan 5, 2019

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
Copy link
Author

@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
Copy link
Owner

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
Copy link
Author

tempUser99 commented Jan 21, 2019

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
Copy link
Owner

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
Copy link
Owner

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

@tempUser99
Copy link
Author

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
Copy link
Author

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
Copy link
Owner

@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
Copy link
Author

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
Copy link

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
Copy link
Owner

No update on this issue.

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

@andyboeh
Copy link

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
Copy link

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
Copy link
Owner

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants