×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

Canon 7D/7D mkII bulb exposure with mirror lock

Ok, so after spending a few hours on the driver today, I have a clearer idea on what's okay on. It's 4:30 AM here so I may not be at all coherent. I fixed the crash that was reported in the 350D as it was caused by the removal of bulb widget check. On my 60D, I was set to manual on the rotary dial, and in the driver I have autoexposuremode and it was set to manual too, but I can still take bulb exposures fine, albeit I didn't use mirror lock. At any rate, after my changes now (which included major changes and debug support), the issue is fixed on my DSLR.

I still do not exactly understand the mirrorlock, in gphoto_mirrorlock, we have:
gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 2);
gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 4);
usleep (msec * 1000);

What is this code doing exactly? and in your code, you open and close /dev/null and sleep then return, why is opening /dev/null necessary? usleep isn't enough? and how is the mirror "locked" in this way?
Last edit: 7 years 10 months ago by Jasem Mutlaq.
7 years 10 months ago #8103

Please Log in or Create an account to join the conversation.

  • Posts: 18
  • Thank you received: 3
Hello Jasem,

The purpose of this patch is to control the mirror lock function without the remote serial shutter.
Only the main USB.

1) I just put the "/dev/null" device to get the mirror lock timer option in ekos.
The if statement:
if (! strcmp(gphoto->bulb_port,"/dev/null") == 0)
prevent the opening of /dev/null as i did not use the gphoto->bulb_port

2) In the gphoto_driver.c i use the foolowing sequence:
(The Canon camera is set with mirror lock to ON, and rotation dial to Bulb)
a) gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 2); // I push the button and the mirror is now UP
b) gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 4); // I release the button
c) usleep (msec * 1000); // i sleep with the mirror locked until the end of timer set in ekos

3) After the mirror lock done the capture will begin with another
gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 2);

I will acquire a Canon 6D soon and will test this code portion.
7 years 10 months ago #8134

Please Log in or Create an account to join the conversation.

Hello Hoxca,

Ok great. The driver should remain simple. But where does it currently use the mirror lock with remote serial shutter? All I see is:
gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 2); // I push the button and the mirror is now UP
gphoto_set_widget_num (gphoto, gphoto->bulb_widget, 4); // I release the button

These use the bulb widget, not the bulb port. Am I missing something else in the code?
7 years 10 months ago #8136

Please Log in or Create an account to join the conversation.

  • Posts: 18
  • Thank you received: 3
You are perfectly right Jasem.
The fact is i'm only using the bulb port as an input for the int msec,
to provide user adjustable timing of the mirror lock option via the ekos gphoto interface.
=> actualy only adjustable when using the remote shutter release (bulb->port)
7 years 10 months ago #8140

Please Log in or Create an account to join the conversation.

So it is correct to assume that the "Mirror Lock" option is only available if you have a remote serial shutter? and you wanted to make it available in case there is no remote serial shutter available?
7 years 10 months ago #8142

Please Log in or Create an account to join the conversation.

  • Posts: 18
  • Thank you received: 3
Yes !
On 7D 6D 5D and all modern camera you can use the mirror lock without a serial shutter.
And, that's the porpose of my gphoto_driver patch.

Jasem, have a look on my #7782 #7785 message in this thread.
Last edit: 7 years 10 months ago by hugues obolonsky.
7 years 10 months ago #8152

Please Log in or Create an account to join the conversation.

Time to create page: 0.301 seconds