Chris Guidry is friends with Jasem Mutlaq

Chris Guidry replied to the topic 'Manual Focusing' in the forum. 6 years ago

Thanks for the tips, everyone. "Framing" was exactly what I was looking for. Last night I was able to use it to manually focus my scope and get a V curve reading while I did it. The results were much better than I had been doing before. For people landing here from search engines:

If you want to manually focus your camera with Ekos, don't select a "Focuser" in your Ekos profile. When you start Ekos, INDI, and connect your devices, on the "Focus" module, you will see buttons for "Capture" and "Framing". "Capture" will capture a single frame for you to preview, and "Framing" will capture a continuous loop of frames. Click "Framing" and begin to adjust your scope's focus manually. The chart below will plot the V curve for your focus throughout. You should be able to achieve a relatively sharp focus. This is probably nowhere near as tight of a focus as you could get with a motorized focuser, but not bad either.

Read More...

Chris Guidry replied to the topic 'Manual Focusing' in the forum. 6 years ago

I am also interested in using the Ekos Focus module without a motorized focuser. I am a hobbyist at this point, and at the hobby level, I can't afford any of the automated focusers I've found.

I was thinking that you might be able to pull this off with a "human-in-the-loop" focuser driver (not unlike the Focuser Simulator). Imagine if you could start the autofocus procedure, but when Ekos wants to focus in or out, the driver prompts you with a window that says "Focus in by about 10%". You as the human focuser would do that with your telescope as best you can, then click a "Continue" button. That would feed back through Indi that the focuser had moved, and then it would loop on to the next frame, update the V curve, and so on.

I don't know if this is feasible, or what units you would use to express to the human-in-the-loop for how much to focus, but it would be a great boon to amateurs like me who are working with lower-end equipment.

Another thought occurs to me, is this something the Focus module already supports? If you setup Ekos without a Focuser, then continuously click "Capture", will the focus detection algorithms process the images?

Read More...

Chris Guidry replied to the topic 'DSUSB' in the forum. 6 years ago

github.com/indilib/indi/pull/702

Thanks for being so welcoming!

Read More...

Chris Guidry replied to the topic 'DSUSB' in the forum. 6 years ago

Thanks, Jasem. After some more experimentation, and reviewing the code, it turns out that it wasn't

gphoto->dsusb
being
nullptr
like I originally thought. There's a second place where the "remote serial shutter" message was coming from, and I made a couple of small adjustments:
diff --git a/3rdparty/indi-gphoto/gphoto_driver.cpp b/3rdparty/indi-gphoto/gphoto_driver.cpp
index 57471bd3..b43c400d 100644
--- a/3rdparty/indi-gphoto/gphoto_driver.cpp
+++ b/3rdparty/indi-gphoto/gphoto_driver.cpp
@@ -606,6 +606,10 @@ static void *stop_bulb(void *arg)
             {
                 //shut off bulb mode
                 DEBUGDEVICE(device, INDI::Logger::DBG_DEBUG, "Closing shutter");
+                if (gphoto->dsusb)
+                {
+                    gphoto->dsusb->closeShutter();
+                }
                 if (gphoto->bulb_widget)
                 {
                     DEBUGFDEVICE(device, INDI::Logger::DBG_DEBUG, "Using widget:%s", gphoto->bulb_widget->name);
@@ -619,10 +623,6 @@ static void *stop_bulb(void *arg)
                         gphoto_set_widget_num(gphoto, gphoto->bulb_widget, FALSE);
                     }
                 }
-                else if (gphoto->dsusb)
-                {
-                    gphoto->dsusb->closeShutter();
-                }
                 else
                 {
                     ioctl(gphoto->bulb_fd, TIOCMBIC, &RTS_flag);
@@ -1195,7 +1195,7 @@ int gphoto_start_exposure(gphoto_driver *gphoto, uint32_t exptime_usec, int mirr
         return -1;
 
     // If bulb port is specified, a serial shutter control is required to start the exposure. Treat this as a bulb exposure.
-    if (gphoto->bulb_port[0])
+    if (gphoto->bulb_port[0] && !gphoto->dsusb)
     {
         DEBUGFDEVICE(device, INDI::Logger::DBG_DEBUG, "Opening remote serial shutter port: %s ...", gphoto->bulb_port);
         gphoto->bulb_fd = open(gphoto->bulb_port, O_RDWR, O_NONBLOCK);

There were just two other cases where we were looking at
bulb_port
without checking if
dsusb
was set first. What are your thoughts on this diff? I could send you a PR but I'd like your opinion that I'm on the right track here.

Read More...

Chris Guidry replied to the topic 'DSUSB' in the forum. 6 years ago

Okay, after reading the code for gphoto_driver.cpp and dsusbriver.cpp (quite readable, nice work!) I'm puzzled by the output I'm seeing in my indi logs:

I've set the shutter release port to "DSUSB" after reading the code and realizing that you didn't need a device filename, you just need the string "DSUSB" in order to look for the USB device by its vendor IDs.

In the beginning, everything looks great:

[2018-08-30T20:44:30.539 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Model: D3200 "
[2018-08-30T20:44:30.539 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Finding DSUSB 0x134A, 0x9021 ... "
[2018-08-30T20:44:30.539 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Connected to DSUSB! "
[2018-08-30T20:44:30.539 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] RC: 1 - Info Byte: 0X30 "
[2018-08-30T20:44:30.541 EDT INFO ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 :  "[INFO] Connected to DSUSB "
[2018-08-30T20:44:30.542 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] GPhoto initialized. "
[2018-08-30T20:44:30.546 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Blub-stop thread enabled. "
[2018-08-30T20:44:30.547 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Capture target is SD Card. "
[2018-08-30T20:44:30.552 EDT INFO ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 :  "[INFO] Nikon DSLR DSC D3200 0 is online. "

That tells me that things went well in the constructor for
DSUSBDriver
and that the
gphoto->dsusb[code] field should be set.  When I try to take an exposure, these logs are puzzling:

[code]
[2018-08-30T20:45:04.278 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Opening remote serial shutter port: DSUSB ... "
[2018-08-30T20:45:04.278 EDT DEBG ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 : "[DEBUG] Failed to open serial port: DSUSB "
[2018-08-30T20:45:04.282 EDT INFO ][           org.kde.kstars.indi] - Nikon DSLR DSC D3200 0 :  "[ERROR] Error starting exposure "

Those messages are coming from code in
gphoto_driver.cpp
that it shouldn't go to if
gphoto->dsusb
is set:
        // If bulb port is specified, let's open it
        if (gphoto->dsusb)
        {
            DEBUGDEVICE(device, INDI::Logger::DBG_DEBUG, "Using DSUSB to open shutter...");
            gphoto->dsusb->openShutter();
        }
        else if (gphoto->bulb_port[0])
        {
            DEBUGFDEVICE(device, INDI::Logger::DBG_DEBUG, "Opening remote serial shutter port: %s ...",
                         gphoto->bulb_port);
            gphoto->bulb_fd = open(gphoto->bulb_port, O_RDWR, O_NONBLOCK);
            if (gphoto->bulb_fd < 0)
            {
                DEBUGFDEVICE(device, INDI::Logger::DBG_DEBUG, "Failed to open serial port: %s", gphoto->bulb_port);
                pthread_mutex_unlock(&gphoto->mutex);
                return -1;
            }
            ioctl(gphoto->bulb_fd, TIOCMBIS, &RTS_flag);
        }

I'm not super familiar with the code of indi and have only spent a little time here with it. I'm on version 1.7.4 from the PPA and I'm reading the code from the v.1.7.4 tag of the repo. Attaching my full log in case there's more info in there that would help.

Thanks for looking!

Read More...

Chris Guidry replied to the topic 'DSUSB' in the forum. 6 years ago

Hi RDBeck! I just got my DSUSB and I'm trying to use it with my Nikon D3200. As I'm looking through the logs you posted, I'm seeing that you mapped the DSUSB to /dev/dsusb. Can you say more about how you did that? My DSUSB mounts to /dev/usb/hiddev0 on my Ubuntu laptop. Are you entering "DSUSB" in the shutter release port for the INDI Nikon driver in Ekos? Or are you entering "/dev/dsusb"? You seem to be the only person on the internet who has posted success with INDI and DSUSB :D

Read More...